home
wiki
classes/clusters list
class information
+
Point of view
FEATURE_ACCUMULATOR
ANY
CREATION_CLAUSE
TYPE
FEATURE_ACCUMULATOR
AGENT_EQUAL
CODE_PRINTER
MANIFEST_STRING_POOL
CECIL_ENTRY
LIVE_TYPE
CALL_SUPPORT
CODE
FEATURE_STAMP
NATIVE_JAVA
VISITOR
SYSTEM_TOOLS
SMART_EIFFEL
COMPILE
SE
ACE
INSTALL
INTERNALS_HANDLER
All features
class FEATURE_STAMP
Summary
top
FEATURE_STAMPs are globally allocated by the
FEATURE_ACCUMULATOR
.
Direct parents
inherit list:
HASHABLE
,
VISITABLE
insert list:
GLOBALS
Class invariant
top
name
/= Void
Overview
top
creation features
make
(n:
FEATURE_NAME
)
exported features
name
:
FEATURE_NAME
The corresponding unique one for this
name
.
has_anonymous_feature_for
(a_type:
TYPE
):
BOOLEAN
has_type
(a_type:
TYPE
):
BOOLEAN
hash_code
:
INTEGER_32
The hash-code value of
Current
.
accept
(visitor:
FEATURE_STAMP_VISITOR
)
Accept to be visited by the
visitor
.
rename_notify
(context_type:
TYPE
, parent_type:
TYPE
, parent_edge:
PARENT_EDGE
, parent_feature_stamp: FEATURE_STAMP)
has_root
(type:
TYPE
):
BOOLEAN
add_root
(type:
TYPE
)
add_anonymous_feature
(an_af:
ANONYMOUS_FEATURE
, a_type:
TYPE
)
anonymous_feature
(a_type:
TYPE
):
ANONYMOUS_FEATURE
resolve_static_binding_for
(declaration_type:
TYPE
, new_type:
TYPE
): FEATURE_STAMP
Assuming that
name
is the feature called in
declaration_type
, looks for the corresponding one to be called in
new_type
.
no_rename
:
BOOLEAN
specialize_thru
(parent_type:
TYPE
, parent_edge:
PARENT_EDGE
, new_type:
TYPE
): FEATURE_STAMP
is_equal
(other: FEATURE_STAMP):
BOOLEAN
Is
other
attached to an object considered equal to current object?
name
:
FEATURE_NAME
writable attribute
top
The corresponding unique one for this
name
.
has_anonymous_feature_for
(a_type:
TYPE
):
BOOLEAN
effective function
top
ensure
Result implies
has_type
(a_type)
has_type
(a_type:
TYPE
):
BOOLEAN
effective function
top
hash_code
:
INTEGER_32
writable attribute
top
The hash-code value of
Current
.
ensure
good_hash_value:
Result >= 0
accept
(visitor:
FEATURE_STAMP_VISITOR
)
effective procedure
top
Accept to be visited by the
visitor
.
require
visitor /= Void
rename_notify
(context_type:
TYPE
, parent_type:
TYPE
, parent_edge:
PARENT_EDGE
, parent_feature_stamp: FEATURE_STAMP)
effective procedure
top
require
context_type /= Void
parent_type /= Void
context_type /= parent_type
parent_edge.do_rename(parent_feature_stamp.
name
).is_equal(
name
)must be called with
parent_type
growing in topological order (i.e. never heir before ancestor), or else
resolve_static_binding_for
can fail.
has_root
(type:
TYPE
):
BOOLEAN
effective function
top
require
type /= Void
add_root
(type:
TYPE
)
effective procedure
top
require
type /= Void
not_so_sure:
not
has_root
(type)
ensure
has_root
(type)
add_anonymous_feature
(an_af:
ANONYMOUS_FEATURE
, a_type:
TYPE
)
effective procedure
top
require
an_af /= Void
has_type
(a_type)
not
has_anonymous_feature_for
(a_type)
ensure
has_anonymous_feature_for
(a_type)
anonymous_feature
(a_type:
TYPE
):
ANONYMOUS_FEATURE
effective function
top
require
a_type /= Void
has_anonymous_feature_for
(a_type)
ensure
Result /= Void
resolve_static_binding_for
(declaration_type:
TYPE
, new_type:
TYPE
): FEATURE_STAMP
effective function
top
Assuming that
name
is the feature called in
declaration_type
, looks for the corresponding one to be called in
new_type
.
require
declaration_type /= Void
new_type /= Void
no_rename
:
BOOLEAN
effective function
top
specialize_thru
(parent_type:
TYPE
, parent_edge:
PARENT_EDGE
, new_type:
TYPE
): FEATURE_STAMP
effective function
top
require
has_type
(parent_type)
new_type /= parent_type
new_type /= Void
parent_edge /= Void
new_type.direct_thru_step(parent_type, parent_edge)
ensure
Result = new_type.lookup(parent_edge.do_rename(parent_type.get_feature_name(Current)))
is_equal
(other: FEATURE_STAMP):
BOOLEAN
deferred function
top
Is
other
attached to an object considered equal to current object?
require
other /= Void
ensure
Result implies
hash_code
= other.
hash_code
commutative:
generating_type = other.generating_type implies Result = other.is_equal(Current)