org.eclipse.ocl.examples.pivot.scoping
Class EnvironmentView

java.lang.Object
  extended by org.eclipse.ocl.examples.pivot.scoping.EnvironmentView

public class EnvironmentView
extends java.lang.Object

An EnvironmentView provides a selective view of the environment visible at some CS node. The selection corresponds to an Environment lookup method as defined by the OCL specification computed in accordance with the the Inherited Attributes. The selective view is normally for just the single name required by the lookUp, but may be for all names when a Completion Assist is required. The EnvironmentView is computed on demand, rather than cached, since only small parts of the overall environment are needed and caches may not remain valid for long given the rapid recreation of CS nodes that occurs while editing.


Field Summary
protected  MetaModelManager metaModelManager
           
protected  java.lang.String name
           
protected  org.eclipse.emf.ecore.EStructuralFeature reference
           
 
Constructor Summary
EnvironmentView(MetaModelManager metaModelManager, org.eclipse.emf.ecore.EStructuralFeature reference, java.lang.String name)
           
 
Method Summary
 boolean accepts(org.eclipse.emf.ecore.EClass eClass)
           
 void addAllElements(Type type, ScopeView scopeView)
           
 void addAllEnumerationLiterals(Enumeration pivot)
           
 void addAllOperations(Type type, FeatureFilter featureFilter)
           
 void addAllPackages(Package pkge)
           
 void addAllPackages(Root root)
           
 void addAllParameters(Operation pivot)
           
 void addAllPrecedences(Library pivot)
           
 void addAllProperties(Type type, FeatureFilter featureFilter)
           
 void addAllStates(Type type)
           
 void addAllTemplateParameters(TemplateableElement pivot)
           
 void addAllTypes(Package pkge)
           
 void addAllTypeTemplateParameterables(TemplateableElement pivot)
           
static
<T> void
addDisambiguator(java.lang.Class<T> targetClass, java.util.Comparator<T> disambiguator)
           
 void addElement(java.lang.String elementName, DomainElement element)
           
 void addElement(java.lang.String elementName, java.lang.Object element)
          Add an element with an elementName to the view
 void addElements(java.lang.Iterable<? extends java.lang.Object> elements)
           
 void addElements(java.util.Map<java.lang.String,?> elements)
           
 void addElementsOfScope(Element element, ScopeView scopeView)
           
 void addFilter(ScopeFilter filter)
           
 void addImportedElement(org.eclipse.emf.common.util.URI baseURI)
           
 void addLibContents(Type libType, ScopeView scopeView)
           
 void addNamedElement(DomainNamedElement namedElement)
           
 void addNamedElement(Nameable namedElement)
           
 void addNamedElements(java.lang.Iterable<? extends Nameable> namedElements)
           
 void addRootPackages()
           
 int computeLookups(Element target, Element child)
           
 int computeLookups(ScopeView scopeView)
           
 void computeQualifiedLookups(Element target)
           
 org.eclipse.emf.ecore.EObject getContent()
           
static java.lang.Iterable<java.lang.Class<?>> getDisambiguatorKeys()
           
static java.util.List<java.util.Comparator<java.lang.Object>> getDisambiguators(java.lang.Class<?> key)
           
 java.util.Set<java.util.Map.Entry<java.lang.String,java.lang.Object>> getEntries()
           
 MetaModelManager getMetaModelManager()
           
 java.lang.String getName()
           
 org.eclipse.emf.ecore.EStructuralFeature getReference()
           
 org.eclipse.emf.ecore.EClassifier getRequiredType()
           
 int getSize()
           
 boolean hasFinalResult()
          Return true once the EnvironmentView has accumulated sufficient results to satisfy the lookup criterion for which it was created.
 boolean isQualifier()
           
 void removeFilter(ScopeFilter filter)
           
 int resolveDuplicates()
           
 void setBindings(java.lang.Object object, java.util.Map<TemplateParameter,ParameterableElement> bindings)
           
 void setIsQualifier(boolean isQualifier)
           
 void setRequiredType(org.eclipse.emf.ecore.EClassifier requiredType)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

metaModelManager

@NonNull
protected final MetaModelManager metaModelManager

reference

@NonNull
protected final org.eclipse.emf.ecore.EStructuralFeature reference

name

@Nullable
protected final java.lang.String name
Constructor Detail

EnvironmentView

public EnvironmentView(@NonNull
                       MetaModelManager metaModelManager,
                       @NonNull
                       org.eclipse.emf.ecore.EStructuralFeature reference,
                       @Nullable
                       java.lang.String name)
Method Detail

addDisambiguator

public static <T> void addDisambiguator(@NonNull
                                        java.lang.Class<T> targetClass,
                                        @NonNull
                                        java.util.Comparator<T> disambiguator)

getDisambiguatorKeys

@NonNull
public static java.lang.Iterable<java.lang.Class<?>> getDisambiguatorKeys()

getDisambiguators

@Nullable
public static java.util.List<java.util.Comparator<java.lang.Object>> getDisambiguators(@NonNull
                                                                                                java.lang.Class<?> key)

accepts

public boolean accepts(org.eclipse.emf.ecore.EClass eClass)

addAllElements

public void addAllElements(@NonNull
                           Type type,
                           @NonNull
                           ScopeView scopeView)

addAllEnumerationLiterals

public void addAllEnumerationLiterals(Enumeration pivot)

addAllOperations

public void addAllOperations(@NonNull
                             Type type,
                             @Nullable
                             FeatureFilter featureFilter)

addAllPackages

public void addAllPackages(@NonNull
                           Package pkge)

addAllPackages

public void addAllPackages(@NonNull
                           Root root)

addAllParameters

public void addAllParameters(@NonNull
                             Operation pivot)

addAllPrecedences

public void addAllPrecedences(@NonNull
                              Library pivot)

addAllProperties

public void addAllProperties(@NonNull
                             Type type,
                             @Nullable
                             FeatureFilter featureFilter)

addAllStates

public void addAllStates(@NonNull
                         Type type)

addAllTemplateParameters

public void addAllTemplateParameters(@NonNull
                                     TemplateableElement pivot)

addAllTypeTemplateParameterables

public void addAllTypeTemplateParameterables(@NonNull
                                             TemplateableElement pivot)

addAllTypes

public void addAllTypes(@NonNull
                        Package pkge)

addElement

public void addElement(java.lang.String elementName,
                       java.lang.Object element)
Add an element with an elementName to the view

Parameters:
elementName - name of element
element - the element

addElement

public void addElement(java.lang.String elementName,
                       DomainElement element)

addElements

public void addElements(@NonNull
                        java.util.Map<java.lang.String,?> elements)

addElements

public void addElements(@Nullable
                        java.lang.Iterable<? extends java.lang.Object> elements)

addElementsOfScope

public void addElementsOfScope(@Nullable
                               Element element,
                               @NonNull
                               ScopeView scopeView)

addFilter

public void addFilter(@NonNull
                      ScopeFilter filter)

addImportedElement

public void addImportedElement(@NonNull
                               org.eclipse.emf.common.util.URI baseURI)

addLibContents

public void addLibContents(@NonNull
                           Type libType,
                           @NonNull
                           ScopeView scopeView)

addNamedElement

public void addNamedElement(Nameable namedElement)

addNamedElement

public void addNamedElement(DomainNamedElement namedElement)

addNamedElements

public void addNamedElements(java.lang.Iterable<? extends Nameable> namedElements)

addRootPackages

public void addRootPackages()

computeLookups

public int computeLookups(@NonNull
                          Element target,
                          @Nullable
                          Element child)

computeLookups

public int computeLookups(@NonNull
                          ScopeView scopeView)

computeQualifiedLookups

public void computeQualifiedLookups(@NonNull
                                    Element target)

getContent

@Nullable
public org.eclipse.emf.ecore.EObject getContent()

getEntries

@NonNull
public java.util.Set<java.util.Map.Entry<java.lang.String,java.lang.Object>> getEntries()

getName

@Nullable
public java.lang.String getName()

getReference

@NonNull
public org.eclipse.emf.ecore.EStructuralFeature getReference()

getRequiredType

@Nullable
public org.eclipse.emf.ecore.EClassifier getRequiredType()

getSize

public int getSize()

getMetaModelManager

@NonNull
public MetaModelManager getMetaModelManager()

hasFinalResult

public boolean hasFinalResult()
Return true once the EnvironmentView has accumulated sufficient results to satisfy the lookup criterion for which it was created. i.e. any result for a non-null name, all results for a null name.


isQualifier

public boolean isQualifier()

removeFilter

public void removeFilter(@NonNull
                         ScopeFilter filter)

resolveDuplicates

public int resolveDuplicates()

setBindings

public void setBindings(@NonNull
                        java.lang.Object object,
                        @Nullable
                        java.util.Map<TemplateParameter,ParameterableElement> bindings)

setIsQualifier

public void setIsQualifier(boolean isQualifier)

setRequiredType

public void setRequiredType(@Nullable
                            org.eclipse.emf.ecore.EClassifier requiredType)

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object