org.eclipse.ocl.examples.library.executor
Class ReflectiveType

java.lang.Object
  extended by org.eclipse.ocl.examples.domain.types.AbstractInheritance
      extended by org.eclipse.ocl.examples.library.executor.ReflectiveType
All Implemented Interfaces:
DomainElement, DomainInheritance, DomainType
Direct Known Subclasses:
DomainReflectiveType, EcoreReflectiveType, PivotReflectiveType

public abstract class ReflectiveType
extends AbstractInheritance


Nested Class Summary
 
Nested classes/interfaces inherited from class org.eclipse.ocl.examples.domain.types.AbstractInheritance
AbstractInheritance.FragmentIterable
 
Field Summary
 
Fields inherited from class org.eclipse.ocl.examples.domain.types.AbstractInheritance
evaluationPackage, flags, name, ORDERED, UNIQUE
 
Constructor Summary
ReflectiveType(java.lang.String name, ExecutorPackage evaluationPackage, int flags, ExecutorTypeParameter... typeParameters)
           
 
Method Summary
 void addSubInheritance(ReflectiveType subInheritance)
           
protected static int computeFlags(DomainType type)
           
protected abstract  AbstractFragment createFragment(DomainInheritance baseInheritance)
           
 void dispose()
           
 void gatherUninstalledInheritances(java.util.List<ReflectiveType> inheritances)
          Add this Inheritance and all un-installed super-Inheritances to inheritances.
 AbstractInheritance.FragmentIterable getAllSuperFragments()
          Return a depth ordered, OclAny-first, OclSelf-last, Iterable of all the super-adapters including this one.
 int getDepth()
          Return the inheritance depth of the target type: OclAny is at depth 0.
 DomainFragment getFragment(int fragmentNumber)
           
protected  DomainFragment[] getFragments()
           
 int getIndex(int fragmentNumber)
           
 int getIndexes()
           
protected abstract  java.lang.Iterable<? extends DomainInheritance> getInitialSuperInheritances()
          Return the immediate superinheritances without reference to the fragments.
 DomainFragment getSelfFragment()
           
 AbstractInheritance.FragmentIterable getSuperFragments(int depth)
          Return an Iterable of all the super-inheritances at a specified depth, between 0 and getDepth() inclusive.
 DomainType getType()
           
protected  void initialize()
           
 boolean install()
          Install this Inheritance establishing its superClass tables and registering it to be notified of any changes.
protected  void installOclAny()
          Install the root OclAny Inheritance.
 boolean isInstallable()
          Return true if this is installed or able to be installed.
 boolean isInstalled()
          Return true if this is installed.
 void removeSubInheritance(ReflectiveType subInheritance)
           
 void uninstall()
           
 
Methods inherited from class org.eclipse.ocl.examples.domain.types.AbstractInheritance
conformsTo, createInstance, createInstance, getCommonInheritance, getCommonType, getFragment, getInheritance, getName, getNormalizedType, getOclAnyInheritance, getPackage, isEqualTo, isEqualToUnspecializedType, isOrdered, isSubInheritanceOf, isSuperInheritanceOf, isUndefined, isUnique, lookupImplementation, lookupLocalOperation, 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.domain.elements.DomainInheritance
getStandardLibrary
 
Methods inherited from interface org.eclipse.ocl.examples.domain.elements.DomainType
getLocalOperations, getLocalProperties, getLocalSuperTypes, getMetaTypeName
 

Constructor Detail

ReflectiveType

public ReflectiveType(java.lang.String name,
                      ExecutorPackage evaluationPackage,
                      int flags,
                      ExecutorTypeParameter... typeParameters)
Method Detail

computeFlags

protected static int computeFlags(DomainType type)

addSubInheritance

public void addSubInheritance(ReflectiveType subInheritance)

createFragment

protected abstract AbstractFragment createFragment(DomainInheritance baseInheritance)

dispose

public void dispose()

gatherUninstalledInheritances

public void gatherUninstalledInheritances(java.util.List<ReflectiveType> inheritances)
Add this Inheritance and all un-installed super-Inheritances to inheritances.


getAllSuperFragments

public final AbstractInheritance.FragmentIterable getAllSuperFragments()
Description copied from interface: DomainInheritance
Return a depth ordered, OclAny-first, OclSelf-last, Iterable of all the super-adapters including this one.


getDepth

public final int getDepth()
Description copied from interface: DomainInheritance
Return the inheritance depth of the target type: OclAny is at depth 0.


getFragment

public DomainFragment getFragment(int fragmentNumber)

getFragments

protected DomainFragment[] getFragments()

getIndex

public int getIndex(int fragmentNumber)

getIndexes

public int getIndexes()

getInitialSuperInheritances

protected abstract java.lang.Iterable<? extends DomainInheritance> getInitialSuperInheritances()
Return the immediate superinheritances without reference to the fragments.


getSelfFragment

public DomainFragment getSelfFragment()

getSuperFragments

public final AbstractInheritance.FragmentIterable getSuperFragments(int depth)
Description copied from interface: DomainInheritance
Return an Iterable of all the super-inheritances at a specified depth, between 0 and getDepth() inclusive.


getType

public DomainType getType()

initialize

protected void initialize()

install

public boolean install()
Install this Inheritance establishing its superClass tables and registering it to be notified of any changes.

Returns:
true if installed, false if some superClass uninstallable

installOclAny

protected final void installOclAny()
Install the root OclAny Inheritance.


isInstallable

public boolean isInstallable()
Return true if this is installed or able to be installed. Returns false if some superclass must be installed first.


isInstalled

public boolean isInstalled()
Return true if this is installed.


removeSubInheritance

public void removeSubInheritance(ReflectiveType subInheritance)

uninstall

public void uninstall()