org.eclipse.ocl.examples.domain.ids.impl
Class AbstractMetaclassId

java.lang.Object
  extended by org.eclipse.ocl.examples.domain.ids.impl.AbstractElementId
      extended by org.eclipse.ocl.examples.domain.ids.impl.AbstractMetaclassId
All Implemented Interfaces:
ElementId, MetaclassId, TemplateableId, TypeId
Direct Known Subclasses:
GeneralizedMetaclassIdImpl, SpecializedMetaclassIdImpl

public abstract class AbstractMetaclassId
extends AbstractElementId
implements MetaclassId


Nested Class Summary
 
Nested classes/interfaces inherited from class org.eclipse.ocl.examples.domain.ids.impl.AbstractElementId
AbstractElementId.OperationIdsMap, AbstractElementId.PropertyIdsMap
 
Field Summary
protected  int hashCode
           
 
Fields inherited from interface org.eclipse.ocl.examples.domain.ids.TypeId
BAG, BAG_NAME, BOOLEAN, BOOLEAN_NAME, CLASS_NAME, COLLECTION, COLLECTION_NAME, COLLECTION_TYPE_NAME, DATA_TYPE_NAME, ENUMERATION_NAME, INTEGER, INTEGER_NAME, INTEGER_RANGE, INTEGER_RANGE_NAME, LAMBDA_TYPE_NAME, METACLASS, METACLASS_NAME, NULL_STRING_ARRAY, NULL_TUPLE_PART_ID_ARRAY, NULL_TYPE_ID_ARRAY, OCL_ANY, OCL_ANY_NAME, OCL_COMPARABLE, OCL_COMPARABLE_NAME, OCL_INVALID, OCL_INVALID_NAME, OCL_SELF, OCL_SELF_NAME, OCL_SUMMABLE, OCL_SUMMABLE_NAME, OCL_VOID, OCL_VOID_NAME, OPERATION_NAME, ORDERED_COLLECTION, ORDERED_COLLECTION_NAME, ORDERED_SET, ORDERED_SET_NAME, PRIMITIVE_TYPE_NAME, PROPERTY_NAME, REAL, REAL_NAME, SEQUENCE, SEQUENCE_NAME, SET, SET_NAME, STRING, STRING_NAME, T_1, T_2, T_3, TUPLE_NAME, TUPLE_TYPE_NAME, UNIQUE_COLLECTION, UNIQUE_COLLECTION_NAME, UNLIMITED_NATURAL, UNLIMITED_NATURAL_NAME
 
Fields inherited from interface org.eclipse.ocl.examples.domain.ids.TemplateableId
NULL_TEMPLATEABLE_ID_ARRAY
 
Constructor Summary
protected AbstractMetaclassId(int hashCode)
           
 
Method Summary
<R> R
accept(IdVisitor<R> visitor)
           
 MetaclassId getGeneralizedId()
           
 java.lang.String getMetaTypeName()
           
 java.lang.String getName()
           
 OperationId getOperationId(int templateParameters, java.lang.String name, ParametersId parametersId)
          Return the OperationId for an Operation of this typeId.
 PropertyId getPropertyId(java.lang.String name)
          Return the PropertyId for a Property of this typeId.
 TemplateableId getSpecializedId(BindingsId bindings)
          Return the typeId for this typeId specialized by typeParameters.
 TemplateParameterId getTemplateParameterId(int index)
          Return the typeId for the named type parameter of this typeId.
 int getTemplateParameters()
           
 int hashCode()
           
 TypeId specialize(BindingsId templateBindings)
           
 
Methods inherited from class org.eclipse.ocl.examples.domain.ids.impl.AbstractElementId
equals, getLiteralName, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.eclipse.ocl.examples.domain.ids.MetaclassId
getElementId, getSpecializedId
 
Methods inherited from interface org.eclipse.ocl.examples.domain.ids.TypeId
getLiteralName
 
Methods inherited from interface org.eclipse.ocl.examples.domain.ids.TemplateableId
getLiteralName
 
Methods inherited from interface org.eclipse.ocl.examples.domain.ids.ElementId
getDisplayName
 

Field Detail

hashCode

protected final int hashCode
Constructor Detail

AbstractMetaclassId

protected AbstractMetaclassId(int hashCode)
Method Detail

accept

@Nullable
public <R> R accept(@NonNull
                             IdVisitor<R> visitor)
Specified by:
accept in interface ElementId

getGeneralizedId

@NonNull
public MetaclassId getGeneralizedId()
Specified by:
getGeneralizedId in interface TemplateableId

getMetaTypeName

@NonNull
public java.lang.String getMetaTypeName()
Specified by:
getMetaTypeName in interface MetaclassId
Specified by:
getMetaTypeName in interface TemplateableId
Specified by:
getMetaTypeName in interface TypeId

getName

@NonNull
public java.lang.String getName()
Specified by:
getName in interface MetaclassId
Specified by:
getName in interface TemplateableId

getOperationId

@NonNull
public OperationId getOperationId(int templateParameters,
                                          @NonNull
                                          java.lang.String name,
                                          @NonNull
                                          ParametersId parametersId)
Description copied from interface: TypeId
Return the OperationId for an Operation of this typeId.

Throws UnsupportedException for typeIds such as Primitive Types that may not have operations.

Specified by:
getOperationId in interface TypeId

getPropertyId

@NonNull
public PropertyId getPropertyId(@NonNull
                                        java.lang.String name)
Description copied from interface: TypeId
Return the PropertyId for a Property of this typeId.

Throws UnsupportedException for typeIds such as Primitive Types that may not have properties.

Specified by:
getPropertyId in interface TypeId

getSpecializedId

@NonNull
public TemplateableId getSpecializedId(@NonNull
                                               BindingsId bindings)
Description copied from interface: TemplateableId
Return the typeId for this typeId specialized by typeParameters.

Throws UnsupportedException for typeIds such as Primitive Types that may not be specialized.

Specified by:
getSpecializedId in interface TemplateableId

getTemplateParameterId

@NonNull
public TemplateParameterId getTemplateParameterId(int index)
Description copied from interface: TypeId
Return the typeId for the named type parameter of this typeId.

Throws UnsupportedException for typeIds such as Primitive Types that may not have type parameters.

Specified by:
getTemplateParameterId in interface TypeId

getTemplateParameters

public int getTemplateParameters()
Specified by:
getTemplateParameters in interface TemplateableId
Specified by:
getTemplateParameters in interface TypeId

hashCode

public final int hashCode()
Specified by:
hashCode in class AbstractElementId

specialize

@NonNull
public TypeId specialize(@NonNull
                                 BindingsId templateBindings)
Specified by:
specialize in interface TypeId