org.eclipse.ocl.examples.pivot.scoping
Interface Attribution

Type Parameters:
T -
All Known Subinterfaces:
RootCSAttribution
All Known Implementing Classes:
AbstractAttribution, AbstractRootCSAttribution, ClassAttribution, ClassCSAttribution, ClassifierContextCSAttribution, CompleteOCLDocumentCSAttribution, ConstraintCSAttribution, ConstructorPartCSAttribution, ContextCSAttribution, DataTypeAttribution, DataTypeCSAttribution, DefaultAttribution, EmptyAttribution, EnumerationAttribution, ExpressionInOCLAttribution, ExpSpecificationCSAttribution, ExtensionTypeAttribution, ImportCSAttribution, IncludeCSAttribution, InvocationExpCSAttribution, IterateExpAttribution, IteratorExpAttribution, LambdaTypeCSAttribution, LetExpAttribution, LetExpCSAttribution, LetVariableCSAttribution, LibOperationCSAttribution, LibPackageCSAttribution, LibraryAttribution, LibraryCSAttribution, NavigatingArgCSAttribution, NavigationOperatorCSAttribution, NullAttribution, OperationAttribution, OperationCallExpAttribution, OperationContextCSAttribution, OperationCSAttribution, PackageAttribution, PackageCSAttribution, PackageDeclarationCSAttribution, PathElementCSAttribution, PivotCSAttribution, PropertyContextCSAttribution, ReferenceCSAttribution, RootAttribution, RootPackageCSAttribution, SpecificationCSAttribution, TemplateParameterSubstitutionCSAttribution, TemplateSignatureCSAttribution, TypedTypeRefCSAttribution, UnspecifiedTypeAttribution, VariableAttribution, VoidTypeAttribution

public interface Attribution

An Attribution provides a helper to assist in evaluating the inheriteed or synthesized attributes of a type. All helpers are static and stateless, although some may maintain state using an Adapter on the target element. The REGISTRY maintains the helpsers for each type. Missing entries may be lazily populated by following the primary superclasses until an entry is found.


Field Summary
static java.util.Map<org.eclipse.emf.ecore.EClassifier,Attribution> REGISTRY
          The per-classifier registry of attributions.
 
Method Summary
 ScopeView computeLookup(org.eclipse.emf.ecore.EObject target, EnvironmentView environmentView, ScopeView scopeView)
          Add the local lookup contributions to a view of an Environment.
 

Field Detail

REGISTRY

static final java.util.Map<org.eclipse.emf.ecore.EClassifier,Attribution> REGISTRY
The per-classifier registry of attributions.

Method Detail

computeLookup

@Nullable
ScopeView computeLookup(@NonNull
                                 org.eclipse.emf.ecore.EObject target,
                                 @NonNull
                                 EnvironmentView environmentView,
                                 @NonNull
                                 ScopeView scopeView)
Add the local lookup contributions to a view of an Environment.

The EnvironmentView contains the lookup matching criteria such as a specific name and accumulates candidate results.

The input ScopeView identifies the CST node and the containment of the CST child from which the lookup is made allowing derived implementations to present the alternative environments specified as the Inherited Attributes in the OCL Specification.

The returned ScopeView identifies an outer scope in which the lookup may be continued if the local candidate results are not suitable.

Parameters:
environmentView - the EnvironmentView to compute
scopeView - the access selectivity to be applied by the lookup
Returns:
an outer ScopeView in which to continue the lookup, or null if none