org.eclipse.ocl.examples.domain.elements
Interface DomainType

All Superinterfaces:
DomainElement, DomainNamedElement, DomainNamespace, Nameable, OCLValue
All Known Subinterfaces:
AnyType, AssociationClass, BagType, Behavior, Class, CollectionType, DataType, DomainCollectionType, DomainEnumeration, DomainInheritance, DomainInvalidType, DomainLambdaType, DomainMetaclass, DomainTupleType, DynamicType, ElementExtension, Enumeration, ExecutorTypeArgument, InvalidType, LambdaType, MessageType, Metaclass, OrderedSetType, PrimitiveType, SelfType, SequenceType, SetType, StateMachine, Stereotype, TemplateParameterType, TupleType, Type, TypeServer, UnspecifiedType, VoidType
All Known Implementing Classes:
AbstractCollectionType, AbstractInheritance, AbstractMetaclass, AbstractSpecializedType, AbstractTupleType, AbstractType, AbstractTypeServer, AnyTypeImpl, AnyTypeServer, AssociationClassImpl, BagTypeImpl, BehaviorImpl, ClassImpl, CollectionTypeImpl, CollectionTypeServer, DataTypeImpl, DomainInvalidTypeImpl, DomainReflectiveType, DynamicTypeImpl, EcoreExecutorEnumeration, EcoreExecutorInvalidType, EcoreExecutorType, EcoreExecutorVoidType, EcoreReflectiveEnumeration, EcoreReflectiveType, ElementExtensionImpl, EnumerationImpl, EnumerationTypeServer, ExecutorLambdaType, ExecutorSpecializedType, ExecutorTupleType, ExecutorType, ExecutorTypeParameter, ExtensibleTypeServer, ExtensionTypeServer, InvalidTypeImpl, InvalidTypeServer, JavaType, LambdaTypeImpl, MessageTypeImpl, MetaclassImpl, MetaclassServer, OrderedSetTypeImpl, OrphanTypeServer, PrimitiveTypeImpl, PrimitiveTypeServer, ReflectiveType, SelfTypeImpl, SequenceTypeImpl, SetTypeImpl, StateMachineImpl, StereotypeImpl, TemplateableTypeServer, TemplateParameterTypeImpl, TupleTypeImpl, TypeImpl, UnspecifiedTypeImpl, VoidTypeImpl

public interface DomainType
extends DomainNamespace, OCLValue


Method Summary
 boolean conformsTo(DomainStandardLibrary standardLibrary, DomainType thatType)
          Return true if this type conform to thatType within standardLibrary.
 java.lang.Object createInstance()
          Return a new instance of this type from valueFactory.
 java.lang.Object createInstance(java.lang.String value)
          Return a new instance of this data type from valueFactory.
 DomainType getCommonType(IdResolver idResolver, DomainType thatType)
          Return the most derived type com mon to this type and thatType within standardLibrary.
 DomainInheritance getInheritance(DomainStandardLibrary standardLibrary)
          Return the inheritance description for this type within standardLibrary.
 java.util.List<? extends DomainOperation> getLocalOperations()
           
 java.util.List<? extends DomainProperty> getLocalProperties()
           
 java.util.List<? extends DomainType> getLocalSuperTypes()
           
 java.lang.String getMetaTypeName()
          Return the name of the meta-type of this type.
 java.lang.String getName()
          Return the name of this type (without any decorations for specializations).
 DomainType getNormalizedType(DomainStandardLibrary standardLibrary)
          Return the unique executable form of this type within standardLibrary.
 java.util.List<? extends DomainProperty> getOwnedAttribute()
           
 java.util.List<? extends DomainConstraint> getOwnedInvariant()
           
 java.util.List<? extends DomainOperation> getOwnedOperation()
           
 DomainPackage getPackage()
          Return the package containing this type.
 TypeId getTypeId()
          Return a unique StandardLibrary-independent identifier for this type.
 DomainTypeParameters getTypeParameters()
          Return the ordered list of type parameters of this type.
 boolean isEqualTo(DomainStandardLibrary standardLibrary, DomainType thatType)
          Return true if this is the same type as thatType within standardLibrary.
 boolean isEqualToUnspecializedType(DomainStandardLibrary standardLibrary, DomainType type)
           
 boolean isInvalid()
          Return true if this is an invalid type (with an associated error message).
 boolean isOrdered()
          Return true if this type is a Collection type and has ordered elements.
 boolean isUnique()
          Return true if this type is a Collection type and has unique elements.
 LibraryFeature lookupImplementation(DomainStandardLibrary standardLibrary, DomainOperation staticOperation)
          Return the dynamic (overloaded) implementation of the staticOperation applicable to the types managed by the given Standard Library.
 DomainType specializeIn(DomainCallExp expr, DomainType selfType)
           
 
Methods inherited from interface org.eclipse.ocl.examples.domain.elements.DomainNamespace
getOwnedRule
 
Methods inherited from interface org.eclipse.ocl.examples.domain.values.OCLValue
oclEquals, oclHashCode
 

Method Detail

conformsTo

boolean conformsTo(@NonNull
                   DomainStandardLibrary standardLibrary,
                   @NonNull
                   DomainType thatType)
Return true if this type conform to thatType within standardLibrary.


createInstance

@NonNull
java.lang.Object createInstance()
Return a new instance of this type from valueFactory. Properties may be initialised using DomainProperty#initValue(DomainStandardLibrary, ObjectValue, Value) provided no side-effect free OCL functionality is permitted to use the ObjectValue until initialisation has completed.

Parameters:
value -

createInstance

@Nullable
java.lang.Object createInstance(@NonNull
                                         java.lang.String value)
Return a new instance of this data type from valueFactory.

Parameters:
value - string initial value

getCommonType

@NonNull
DomainType getCommonType(@NonNull
                                 IdResolver idResolver,
                                 @NonNull
                                 DomainType thatType)
Return the most derived type com mon to this type and thatType within standardLibrary.


getInheritance

@NonNull
DomainInheritance getInheritance(@NonNull
                                         DomainStandardLibrary standardLibrary)
Return the inheritance description for this type within standardLibrary.


getLocalOperations

@NonNull
java.util.List<? extends DomainOperation> getLocalOperations()

getLocalProperties

@NonNull
java.util.List<? extends DomainProperty> getLocalProperties()

getLocalSuperTypes

@NonNull
java.util.List<? extends DomainType> getLocalSuperTypes()

getMetaTypeName

@NonNull
java.lang.String getMetaTypeName()
Return the name of the meta-type of this type.


getName

java.lang.String getName()
Return the name of this type (without any decorations for specializations).

Specified by:
getName in interface Nameable

getNormalizedType

@NonNull
DomainType getNormalizedType(@NonNull
                                     DomainStandardLibrary standardLibrary)
Return the unique executable form of this type within standardLibrary.


getOwnedAttribute

@NonNull
java.util.List<? extends DomainProperty> getOwnedAttribute()

getOwnedOperation

@NonNull
java.util.List<? extends DomainOperation> getOwnedOperation()

getPackage

DomainPackage getPackage()
Return the package containing this type.


getTypeParameters

@NonNull
DomainTypeParameters getTypeParameters()
Return the ordered list of type parameters of this type.


getTypeId

@NonNull
TypeId getTypeId()
Return a unique StandardLibrary-independent identifier for this type.

Returns:

isEqualTo

boolean isEqualTo(@NonNull
                  DomainStandardLibrary standardLibrary,
                  @NonNull
                  DomainType thatType)
Return true if this is the same type as thatType within standardLibrary.


isEqualToUnspecializedType

boolean isEqualToUnspecializedType(@NonNull
                                   DomainStandardLibrary standardLibrary,
                                   @NonNull
                                   DomainType type)

isInvalid

boolean isInvalid()
Return true if this is an invalid type (with an associated error message).


isOrdered

boolean isOrdered()
Return true if this type is a Collection type and has ordered elements.


isUnique

boolean isUnique()
Return true if this type is a Collection type and has unique elements.


lookupImplementation

@NonNull
LibraryFeature lookupImplementation(@NonNull
                                            DomainStandardLibrary standardLibrary,
                                            @NonNull
                                            DomainOperation staticOperation)
Return the dynamic (overloaded) implementation of the staticOperation applicable to the types managed by the given Standard Library.


specializeIn

DomainType specializeIn(@NonNull
                        DomainCallExp expr,
                        DomainType selfType)

getOwnedInvariant

@NonNull
java.util.List<? extends DomainConstraint> getOwnedInvariant()