Interface ElementId

All Known Subinterfaces:
BuiltInTypeId, ClassId, CollectionTypeId, DataTypeId, EnumerationId, EnumerationLiteralId, LambdaTypeId, MetaclassId, NestedPackageId, NestedTypeId, NsURIPackageId, OclInvalidTypeId, OclVoidTypeId, OperationId, PackageId, PrimitiveTypeId, PropertyId, RootPackageId, SpecializedId, TemplateableId, TemplateableTypeId, TemplateBinding, TemplateParameterId, TuplePartId, TupleTypeId, TypeId, UnspecifiedId
All Known Implementing Classes:
AbstractElementId, AbstractGeneralizedIdImpl, AbstractMetaclassId, AbstractSpecializedIdImpl, AbstractTemplateableIdImpl, AbstractTypeId, EnumerationIdImpl, EnumerationLiteralIdImpl, GeneralizedClassIdImpl, GeneralizedCollectionTypeIdImpl, GeneralizedDataTypeIdImpl, GeneralizedLambdaTypeIdImpl, GeneralizedMetaclassIdImpl, GeneralizedNestedTypeIdImpl, GeneralizedOperationIdImpl, GeneralizedTupleTypeIdImpl, GeneralizedTypeIdImpl, JavaTypeId, NestedPackageIdImpl, NsURIPackageIdImpl, OclInvalidTypeIdImpl, OclVoidTypeIdImpl, PackageIdImpl, PrimitiveTypeIdImpl, PropertyIdImpl, RootPackageIdImpl, SpecializedCollectionTypeIdImpl, SpecializedLambdaTypeIdImpl, SpecializedMetaclassIdImpl, SpecializedOperationIdImpl, SpecializedTypeIdImpl, TemplateBindingImpl, TemplateParameterIdImpl, TuplePartIdImpl, UnscopedId, UnspecifiedIdImpl

public interface ElementId

An ElementId provides a unique hierarchical identifier for a metamodel element. The identifier is structured in that it comprises nested scopes but has no behavior. The identifier is used to compare metamodel elements by identifier equality allowing multiple actual representations of a conceptual metamodel element to co-exist.

For instance 'Boolean' is a well-understood conceptual type, but it may have many 'actual' types as a result of Complete OCL definitions merging additional features in to the 'actual' type. It may also have many representations, perhaps one from UML, another from Ecore and another in the Pivot model.

A unique identifier provides a convenient mechanism for locating alternative representations, or pre-existing copies of the same representation. The identifiers of for instance Collections and Tuples observe scope-independent semantics so that equivalent collection and tuple types share the same element identifier.

See Also:
EnumerationLiteralId, OperationId, PackageId, TypeId

Method Summary
<R> R
accept(IdVisitor<R> visitor)
 java.lang.String getDisplayName()
          Return a simple name for diagnostics.

Method Detail


<R> R accept(@NonNull
                      IdVisitor<R> visitor)


java.lang.String getDisplayName()
Return a simple name for diagnostics.