org.eclipse.ocl.examples.pivot.manager
Class AbstractTypeServer

java.lang.Object
  extended by org.eclipse.ocl.examples.domain.types.AbstractInheritance
      extended by org.eclipse.ocl.examples.library.executor.ReflectiveType
          extended by org.eclipse.ocl.examples.pivot.manager.AbstractTypeServer
All Implemented Interfaces:
DomainElement, DomainInheritance, DomainNamedElement, DomainNamespace, DomainType, Nameable, OCLValue, TypeServer
Direct Known Subclasses:
ExtensibleTypeServer, OrphanTypeServer

public abstract class AbstractTypeServer
extends ReflectiveType
implements TypeServer

An AbstractTypeServer provides the co-ordinated operation, property and superclass lookup caches for one or more merged types.


Nested Class Summary
static class AbstractTypeServer.BestOperation
           
static class AbstractTypeServer.MapValues
           
 class AbstractTypeServer.PartialProperties
           
protected static class AbstractTypeServer.QualifiedName2DomainInheritance
           
 
Nested classes/interfaces inherited from class org.eclipse.ocl.examples.domain.types.AbstractInheritance
AbstractInheritance.FragmentIterable
 
Field Summary
static TracingOption ADD_BASE_PROPERTY
           
static TracingOption ADD_EXTENSION_PROPERTY
           
static AbstractTypeServer.BestOperation bestOperation
           
protected  DomainType domainType
           
static TracingOption INIT_MEMBER_OPERATIONS
           
static TracingOption INIT_MEMBER_PROPERTIES
           
static AbstractTypeServer.MapValues MAP_VALUES
           
protected  PackageManager packageManager
           
protected  PackageServer packageServer
           
protected  TypeId typeId
           
 
Fields inherited from class org.eclipse.ocl.examples.domain.types.AbstractInheritance
evaluationPackage, flags, name, operationMap, ORDERED, propertyMap, UNIQUE
 
Fields inherited from interface org.eclipse.ocl.examples.domain.elements.DomainInheritance
EMPTY_ARRAY
 
Constructor Summary
protected AbstractTypeServer(PackageServer packageServer, DomainType domainType)
           
 
Method Summary
protected  Property createExtensionProperty(ElementExtension stereotypeInstance, Type baseType)
           
protected  AbstractFragment createFragment(DomainInheritance baseInheritance)
           
static TemplateParameterSubstitution createTemplateParameterSubstitution(TemplateParameter formalParameter, ParameterableElement type)
           
 void dispose()
           
 java.lang.Iterable<? extends DomainOperation> getAllOperations(FeatureFilter featureFilter)
           
 java.lang.Iterable<? extends DomainOperation> getAllOperations(FeatureFilter featureFilter, java.lang.String name)
           
 java.lang.Iterable<? extends DomainProperty> getAllProperties(FeatureFilter featureFilter)
           
 java.lang.Iterable<? extends DomainProperty> getAllProperties(FeatureFilter featureFilter, java.lang.String name)
           
 java.lang.Iterable<? extends State> getAllStates()
           
 java.lang.Iterable<? extends State> getAllStates(java.lang.String name)
           
 java.lang.Iterable<? extends DomainInheritance> getAllSuperClasses()
           
 java.lang.Iterable<? extends DomainInheritance> getAllSuperClasses(java.lang.String className)
           
 java.lang.Iterable<? extends DomainInheritance> getInitialSuperInheritances()
          Return the immediate superinheritances without reference to the fragments.
 java.util.List<? extends DomainOperation> getLocalOperations()
           
 java.util.List<? extends DomainProperty> getLocalProperties()
           
 java.util.List<? extends DomainType> getLocalSuperTypes()
           
 DomainOperation getMemberOperation(DomainOperation pivotOperation)
           
 DomainOperation getMemberOperation(OperationId operationId)
           
 java.lang.Iterable<DomainOperation> getMemberOperations(DomainOperation pivotOperation)
           
 java.lang.Iterable<DomainProperty> getMemberProperties(DomainProperty pivotProperty)
           
 java.util.Iterator<DomainProperty> getMemberProperties(java.lang.String propertyName)
           
 DomainProperty getMemberProperty(java.lang.String propertyName)
           
 java.lang.String getMetaTypeName()
          Return the name of the meta-type of this type.
 java.util.List<? extends DomainProperty> getOwnedAttribute()
           
 java.util.List<? extends DomainOperation> getOwnedOperation()
           
 PackageManager getPackageManager()
           
 PackageServer getPackageServer()
           
 MetaModelManager getStandardLibrary()
          Return the Standard Library managing the dispatch tables.
 TypeId getTypeId()
          Return a unique StandardLibrary-independent identifier for this type.
 DomainTypeParameters getTypeParameters()
          Return the ordered list of type parameters of this type.
protected  void initExtensionPropertiesFrom(Type baseType, Stereotype stereotype)
           
protected  void initMemberFeaturesFrom(DomainType pivotType)
           
protected  void initMemberOperationsPostProcess(java.lang.String name, java.util.List<DomainOperation> operations)
           
protected  java.util.Map<java.lang.String,AbstractTypeServer.PartialProperties> initMemberProperties()
           
protected  void initMemberPropertiesFrom(DomainType asType)
           
protected  void initMemberPropertiesPostProcess(java.lang.String name, AbstractTypeServer.PartialProperties properties)
           
protected  java.util.Map<java.lang.String,State> initStates()
           
protected  void initStatesForRegions(java.util.Map<java.lang.String,State> name2states, java.util.List<Region> regions)
           
protected  java.util.Map<java.lang.String,DomainInheritance> initSuperClasses()
           
protected  java.util.Map<java.lang.String,java.util.List<java.lang.String>> initSuperClassesWithAmbiguousNames(java.util.Map<java.lang.String,DomainInheritance> name2superclasses2, java.util.Map<java.lang.String,java.util.List<java.lang.String>> name2qualifiedNames2)
           
 void uninstall()
           
 
Methods inherited from class org.eclipse.ocl.examples.library.executor.ReflectiveType
addSubInheritance, computeFlags, createInstance, createInstance, gatherUninstalledInheritances, getAllSuperFragments, getDepth, getFragment, getFragments, getIndex, getIndexes, getSelfFragment, getSuperFragments, getType, initialize, install, installOclAny, isInstallable, isInstalled, removeSubInheritance
 
Methods inherited from class org.eclipse.ocl.examples.domain.types.AbstractInheritance
conformsTo, getCommonInheritance, getCommonType, getFragment, getInheritance, getName, getNormalizedType, getOclAnyInheritance, getOwnedInvariant, getOwnedRule, getPackage, initStatics, isEqualTo, isEqualToUnspecializedType, isInvalid, isOrdered, isSubInheritanceOf, isSuperInheritanceOf, isUndefined, isUnique, lookupImplementation, lookupLocalOperation, oclEquals, oclHashCode, specializeIn, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.eclipse.ocl.examples.pivot.manager.TypeServer
getPartialTypes, getPivotType
 
Methods inherited from interface org.eclipse.ocl.examples.domain.elements.DomainInheritance
getAllSuperFragments, getCommonInheritance, getDepth, getFragment, getFragment, getIndex, getIndexes, getSelfFragment, getSuperFragments, isSubInheritanceOf, isSuperInheritanceOf, isUndefined, lookupLocalOperation
 
Methods inherited from interface org.eclipse.ocl.examples.domain.elements.DomainType
conformsTo, createInstance, createInstance, getCommonType, getInheritance, getName, getNormalizedType, getOwnedInvariant, getPackage, isEqualTo, isEqualToUnspecializedType, isInvalid, isOrdered, isUnique, lookupImplementation, specializeIn
 
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
 

Field Detail

ADD_BASE_PROPERTY

@NonNull
public static final TracingOption ADD_BASE_PROPERTY

ADD_EXTENSION_PROPERTY

@NonNull
public static final TracingOption ADD_EXTENSION_PROPERTY

INIT_MEMBER_OPERATIONS

@NonNull
public static final TracingOption INIT_MEMBER_OPERATIONS

INIT_MEMBER_PROPERTIES

@NonNull
public static final TracingOption INIT_MEMBER_PROPERTIES

bestOperation

@NonNull
public static final AbstractTypeServer.BestOperation bestOperation

MAP_VALUES

@NonNull
public static final AbstractTypeServer.MapValues MAP_VALUES

packageServer

@NonNull
protected final PackageServer packageServer

packageManager

@NonNull
protected final PackageManager packageManager

domainType

@NonNull
protected final DomainType domainType

typeId

@Nullable
protected TypeId typeId
Constructor Detail

AbstractTypeServer

protected AbstractTypeServer(@NonNull
                             PackageServer packageServer,
                             @NonNull
                             DomainType domainType)
Method Detail

createTemplateParameterSubstitution

@NonNull
public static TemplateParameterSubstitution createTemplateParameterSubstitution(@NonNull
                                                                                        TemplateParameter formalParameter,
                                                                                        @NonNull
                                                                                        ParameterableElement type)

createFragment

@NonNull
protected AbstractFragment createFragment(@NonNull
                                                  DomainInheritance baseInheritance)
Specified by:
createFragment in class ReflectiveType

dispose

public void dispose()
Specified by:
dispose in interface TypeServer
Overrides:
dispose in class ReflectiveType

getAllOperations

@NonNull
public java.lang.Iterable<? extends DomainOperation> getAllOperations(@Nullable
                                                                              FeatureFilter featureFilter)
Specified by:
getAllOperations in interface DomainInheritance
Specified by:
getAllOperations in interface TypeServer

getAllOperations

@NonNull
public java.lang.Iterable<? extends DomainOperation> getAllOperations(@Nullable
                                                                              FeatureFilter featureFilter,
                                                                              @NonNull
                                                                              java.lang.String name)
Specified by:
getAllOperations in interface TypeServer

getAllProperties

@NonNull
public java.lang.Iterable<? extends DomainProperty> getAllProperties(@Nullable
                                                                             FeatureFilter featureFilter)
Specified by:
getAllProperties in interface DomainInheritance
Specified by:
getAllProperties in interface TypeServer

getAllProperties

@NonNull
public java.lang.Iterable<? extends DomainProperty> getAllProperties(@Nullable
                                                                             FeatureFilter featureFilter,
                                                                             @NonNull
                                                                             java.lang.String name)
Specified by:
getAllProperties in interface TypeServer

getAllStates

@NonNull
public java.lang.Iterable<? extends State> getAllStates()
Specified by:
getAllStates in interface TypeServer

getAllStates

@NonNull
public java.lang.Iterable<? extends State> getAllStates(@NonNull
                                                                java.lang.String name)
Specified by:
getAllStates in interface TypeServer

getAllSuperClasses

@NonNull
public java.lang.Iterable<? extends DomainInheritance> getAllSuperClasses()
Specified by:
getAllSuperClasses in interface TypeServer

getAllSuperClasses

@NonNull
public java.lang.Iterable<? extends DomainInheritance> getAllSuperClasses(@NonNull
                                                                                  java.lang.String className)
Specified by:
getAllSuperClasses in interface TypeServer

initStates

@NonNull
protected java.util.Map<java.lang.String,State> initStates()

initStatesForRegions

protected void initStatesForRegions(@NonNull
                                    java.util.Map<java.lang.String,State> name2states,
                                    @NonNull
                                    java.util.List<Region> regions)

getInitialSuperInheritances

@NonNull
public java.lang.Iterable<? extends DomainInheritance> getInitialSuperInheritances()
Description copied from class: ReflectiveType
Return the immediate superinheritances without reference to the fragments.

Specified by:
getInitialSuperInheritances in class ReflectiveType

getLocalOperations

@NonNull
public java.util.List<? extends DomainOperation> getLocalOperations()
Specified by:
getLocalOperations in interface DomainType

getLocalProperties

@NonNull
public java.util.List<? extends DomainProperty> getLocalProperties()
Specified by:
getLocalProperties in interface DomainType

getLocalSuperTypes

@NonNull
public java.util.List<? extends DomainType> getLocalSuperTypes()
Specified by:
getLocalSuperTypes in interface DomainType

getMemberOperation

@Nullable
public DomainOperation getMemberOperation(@NonNull
                                                   OperationId operationId)
Specified by:
getMemberOperation in interface DomainInheritance
Overrides:
getMemberOperation in class AbstractInheritance

getMemberOperation

@Nullable
public DomainOperation getMemberOperation(@NonNull
                                                   DomainOperation pivotOperation)
Specified by:
getMemberOperation in interface TypeServer

getMemberOperations

@Nullable
public java.lang.Iterable<DomainOperation> getMemberOperations(@NonNull
                                                                        DomainOperation pivotOperation)
Specified by:
getMemberOperations in interface TypeServer

getMemberProperties

@Nullable
public java.lang.Iterable<DomainProperty> getMemberProperties(@NonNull
                                                                       DomainProperty pivotProperty)
Specified by:
getMemberProperties in interface TypeServer

getMemberProperties

@Nullable
public java.util.Iterator<DomainProperty> getMemberProperties(@NonNull
                                                                       java.lang.String propertyName)
Specified by:
getMemberProperties in interface TypeServer

getMemberProperty

@Nullable
public DomainProperty getMemberProperty(@NonNull
                                                 java.lang.String propertyName)
Specified by:
getMemberProperty in interface DomainInheritance
Specified by:
getMemberProperty in interface TypeServer

getMetaTypeName

@NonNull
public java.lang.String getMetaTypeName()
Description copied from interface: DomainType
Return the name of the meta-type of this type.

Specified by:
getMetaTypeName in interface DomainType

getOwnedAttribute

@NonNull
public java.util.List<? extends DomainProperty> getOwnedAttribute()
Specified by:
getOwnedAttribute in interface DomainType

getOwnedOperation

@NonNull
public java.util.List<? extends DomainOperation> getOwnedOperation()
Specified by:
getOwnedOperation in interface DomainType

getPackageManager

@NonNull
public final PackageManager getPackageManager()

getPackageServer

public PackageServer getPackageServer()

getStandardLibrary

@NonNull
public final MetaModelManager getStandardLibrary()
Description copied from interface: DomainInheritance
Return the Standard Library managing the dispatch tables.

Specified by:
getStandardLibrary in interface DomainInheritance

getTypeId

@NonNull
public final TypeId getTypeId()
Description copied from interface: DomainType
Return a unique StandardLibrary-independent identifier for this type.

Specified by:
getTypeId in interface DomainType
Overrides:
getTypeId in class ReflectiveType

getTypeParameters

@NonNull
public DomainTypeParameters getTypeParameters()
Description copied from interface: DomainType
Return the ordered list of type parameters of this type.

Specified by:
getTypeParameters in interface DomainType

initMemberFeaturesFrom

protected void initMemberFeaturesFrom(@NonNull
                                      DomainType pivotType)

initMemberOperationsPostProcess

protected void initMemberOperationsPostProcess(@NonNull
                                               java.lang.String name,
                                               @NonNull
                                               java.util.List<DomainOperation> operations)

initMemberProperties

@NonNull
protected java.util.Map<java.lang.String,AbstractTypeServer.PartialProperties> initMemberProperties()

initMemberPropertiesFrom

protected void initMemberPropertiesFrom(@NonNull
                                        DomainType asType)

initMemberPropertiesPostProcess

protected void initMemberPropertiesPostProcess(@NonNull
                                               java.lang.String name,
                                               @NonNull
                                               AbstractTypeServer.PartialProperties properties)

createExtensionProperty

@NonNull
protected Property createExtensionProperty(@NonNull
                                                   ElementExtension stereotypeInstance,
                                                   @NonNull
                                                   Type baseType)

initExtensionPropertiesFrom

protected void initExtensionPropertiesFrom(@NonNull
                                           Type baseType,
                                           @NonNull
                                           Stereotype stereotype)

initSuperClasses

@NonNull
protected java.util.Map<java.lang.String,DomainInheritance> initSuperClasses()

initSuperClassesWithAmbiguousNames

protected java.util.Map<java.lang.String,java.util.List<java.lang.String>> initSuperClassesWithAmbiguousNames(java.util.Map<java.lang.String,DomainInheritance> name2superclasses2,
                                                                                                              java.util.Map<java.lang.String,java.util.List<java.lang.String>> name2qualifiedNames2)

uninstall

public void uninstall()
Overrides:
uninstall in class ReflectiveType