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

java.lang.Object
  extended by org.eclipse.ocl.examples.library.executor.ExecutorPackage
      extended by org.eclipse.ocl.examples.library.executor.ReflectivePackage
All Implemented Interfaces:
DomainElement, DomainNamedElement, DomainNamespace, DomainPackage, Nameable
Direct Known Subclasses:
DomainReflectivePackage, PackageServer

public abstract class ReflectivePackage
extends ExecutorPackage

A ReflectivePackage builds a dispatch table representative of a model package at run-time using a minimal reflective API.


Field Summary
protected  java.util.Map<DomainType,DomainInheritance> types
           
 
Fields inherited from class org.eclipse.ocl.examples.library.executor.ExecutorPackage
name, nsPrefix, nsURI, packageId
 
Constructor Summary
ReflectivePackage(java.lang.String name, java.lang.String nsPrefix, java.lang.String nsURI, PackageId packageId)
           
 
Method Summary
protected  java.util.Map<DomainType,DomainInheritance> computeClasses()
           
protected abstract  DomainInheritance createExecutorType(DomainType domainType)
           
protected abstract  java.lang.Iterable<? extends DomainType> getDomainTypes()
           
 DomainInheritance getInheritance(DomainType type)
           
 java.util.List<? extends DomainType> getOwnedType()
           
protected abstract  DomainStandardLibrary getStandardLibrary()
           
 
Methods inherited from class org.eclipse.ocl.examples.library.executor.ExecutorPackage
getElementId, getEPackage, getName, getNsPrefix, getNsURI, getOwnedRule, getPackageId, getType, 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.DomainPackage
getNestedPackage, getNestingPackage
 

Field Detail

types

@Nullable
protected java.util.Map<DomainType,DomainInheritance> types
Constructor Detail

ReflectivePackage

public ReflectivePackage(@NonNull
                         java.lang.String name,
                         @Nullable
                         java.lang.String nsPrefix,
                         @Nullable
                         java.lang.String nsURI,
                         @NonNull
                         PackageId packageId)
Method Detail

computeClasses

@NonNull
protected java.util.Map<DomainType,DomainInheritance> computeClasses()

createExecutorType

@NonNull
protected abstract DomainInheritance createExecutorType(@NonNull
                                                                DomainType domainType)

getDomainTypes

@NonNull
protected abstract java.lang.Iterable<? extends DomainType> getDomainTypes()

getInheritance

@NonNull
public DomainInheritance getInheritance(@NonNull
                                                DomainType type)

getOwnedType

@NonNull
public java.util.List<? extends DomainType> getOwnedType()
Specified by:
getOwnedType in interface DomainPackage
Specified by:
getOwnedType in class ExecutorPackage

getStandardLibrary

@NonNull
protected abstract DomainStandardLibrary getStandardLibrary()