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

All Superinterfaces:
DomainElement, DomainNamedElement, DomainNamespace, DomainType, Nameable, OCLValue
All Known Subinterfaces:
TypeServer
All Known Implementing Classes:
AbstractInheritance, AbstractTypeServer, AnyTypeServer, CollectionTypeServer, DomainReflectiveType, EcoreExecutorEnumeration, EcoreExecutorInvalidType, EcoreExecutorType, EcoreExecutorVoidType, EcoreReflectiveEnumeration, EcoreReflectiveType, EnumerationTypeServer, ExecutorType, ExtensibleTypeServer, ExtensionTypeServer, InvalidTypeServer, MetaclassServer, OrphanTypeServer, PrimitiveTypeServer, ReflectiveType, TemplateableTypeServer

public interface DomainInheritance
extends DomainType

An Inheritance provides access to the transitive inheritance relationships of a type with respect to a particular type regime, noting that the complexities of CompleteOCL allow for different inheritance for different applications. The allSuperInheritances relationship is computed lazily and invalidated whenever a superclass changes. KnownSubInheritances are also notified of invalidation avoiding the need for an adapting Inheritance to adapt more than its own target class.


Field Summary
static DomainInheritance[] EMPTY_ARRAY
           
 
Method Summary
 java.lang.Iterable<? extends DomainOperation> getAllOperations(boolean selectStatic)
           
 java.lang.Iterable<? extends DomainProperty> getAllProperties(boolean selectStatic)
           
 java.lang.Iterable<DomainFragment> getAllSuperFragments()
          Return a depth ordered, OclAny-first, OclSelf-last, Iterable of all the super-adapters including this one.
 DomainInheritance getCommonInheritance(DomainInheritance inheritance)
           
 int getDepth()
          Return the inheritance depth of the target type: OclAny is at depth 0.
 DomainFragment getFragment(DomainInheritance thatInheritance)
           
 DomainFragment getFragment(int fragmentNumber)
           
 int getIndex(int fragmentNumber)
           
 int getIndexes()
           
 DomainOperation getMemberOperation(OperationId id)
           
 DomainProperty getMemberProperty(java.lang.String name)
           
 DomainFragment getSelfFragment()
           
 DomainStandardLibrary getStandardLibrary()
          Return the Standard Library managing the dispatch tables.
 IndexableIterable<DomainFragment> getSuperFragments(int depth)
          Return an Iterable of all the super-inheritances at a specified depth, between 0 and getDepth() inclusive.
 boolean isSubInheritanceOf(DomainInheritance inheritance)
           
 boolean isSuperInheritanceOf(DomainStandardLibrary standardLibrary, DomainInheritance inheritance)
           
 boolean isUndefined()
           
 DomainOperation lookupLocalOperation(DomainStandardLibrary standardLibrary, java.lang.String operationName, DomainInheritance... argumentTypes)
           
 
Methods inherited from interface org.eclipse.ocl.examples.domain.elements.DomainType
conformsTo, createInstance, createInstance, getCommonType, getInheritance, getLocalOperations, getLocalProperties, getLocalSuperTypes, getMetaTypeName, getName, getNormalizedType, getOwnedAttribute, getOwnedInvariant, getOwnedOperation, getPackage, getTypeId, getTypeParameters, 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

EMPTY_ARRAY

static final DomainInheritance[] EMPTY_ARRAY
Method Detail

getAllOperations

@NonNull
java.lang.Iterable<? extends DomainOperation> getAllOperations(boolean selectStatic)

getAllProperties

@NonNull
java.lang.Iterable<? extends DomainProperty> getAllProperties(boolean selectStatic)

getAllSuperFragments

@NonNull
java.lang.Iterable<DomainFragment> getAllSuperFragments()
Return a depth ordered, OclAny-first, OclSelf-last, Iterable of all the super-adapters including this one.


getCommonInheritance

@NonNull
DomainInheritance getCommonInheritance(@NonNull
                                               DomainInheritance inheritance)

getDepth

int getDepth()
Return the inheritance depth of the target type: OclAny is at depth 0.


getFragment

@Nullable
DomainFragment getFragment(@NonNull
                                    DomainInheritance thatInheritance)

getFragment

DomainFragment getFragment(int fragmentNumber)

getIndex

int getIndex(int fragmentNumber)

getIndexes

int getIndexes()

getMemberOperation

@Nullable
DomainOperation getMemberOperation(@NonNull
                                            OperationId id)

getMemberProperty

@Nullable
DomainProperty getMemberProperty(@NonNull
                                          java.lang.String name)

getSelfFragment

@NonNull
DomainFragment getSelfFragment()

getStandardLibrary

@NonNull
DomainStandardLibrary getStandardLibrary()
Return the Standard Library managing the dispatch tables.


getSuperFragments

@NonNull
IndexableIterable<DomainFragment> getSuperFragments(int depth)
Return an Iterable of all the super-inheritances at a specified depth, between 0 and getDepth() inclusive.


isSubInheritanceOf

boolean isSubInheritanceOf(@NonNull
                           DomainInheritance inheritance)

isSuperInheritanceOf

boolean isSuperInheritanceOf(@NonNull
                             DomainStandardLibrary standardLibrary,
                             @NonNull
                             DomainInheritance inheritance)

isUndefined

boolean isUndefined()

lookupLocalOperation

@Nullable
DomainOperation lookupLocalOperation(@NonNull
                                              DomainStandardLibrary standardLibrary,
                                              @NonNull
                                              java.lang.String operationName,
                                              DomainInheritance... argumentTypes)