org.eclipse.ocl.examples.impactanalyzer.instanceScope.unusedEvaluation
Class PartialEcoreEnvironmentFactoryNoAllInstances

java.lang.Object
  extended by org.eclipse.ocl.AbstractEnvironmentFactory<org.eclipse.emf.ecore.EPackage,org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EEnumLiteral,org.eclipse.emf.ecore.EParameter,org.eclipse.emf.ecore.EObject,CallOperationAction,SendSignalAction,Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject>
      extended by org.eclipse.ocl.ecore.EcoreEnvironmentFactory
          extended by org.eclipse.ocl.ecore.opposites.EcoreEnvironmentFactoryWithHiddenOpposites
              extended by org.eclipse.ocl.examples.impactanalyzer.util.EcoreEnvironmentFactoryWithScopedExtentMap
                  extended by org.eclipse.ocl.examples.impactanalyzer.deltaPropagation.PartialEcoreEnvironmentFactory
                      extended by org.eclipse.ocl.examples.impactanalyzer.instanceScope.unusedEvaluation.PartialEcoreEnvironmentFactoryNoAllInstances
All Implemented Interfaces:
EnvironmentFactory<org.eclipse.emf.ecore.EPackage,org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EEnumLiteral,org.eclipse.emf.ecore.EParameter,org.eclipse.emf.ecore.EObject,CallOperationAction,SendSignalAction,Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject>, Adaptable

public class PartialEcoreEnvironmentFactoryNoAllInstances
extends PartialEcoreEnvironmentFactory

Uses PartialEvaluationVisitorImplNoAllInstances as evaluation visitor which throws a NoAllInstancesDuringEvaluationForUnusedCheck exception in case allInstances() is to be evaluated.

Author:
Axel Uhl (D043530)

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.eclipse.ocl.EnvironmentFactory
EnvironmentFactory.Lookup<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
 
Field Summary
 
Fields inherited from class org.eclipse.ocl.ecore.opposites.EcoreEnvironmentFactoryWithHiddenOpposites
INSTANCE
 
Constructor Summary
PartialEcoreEnvironmentFactoryNoAllInstances()
          Uses a DefaultOppositeEndFinder for querying hidden opposites
PartialEcoreEnvironmentFactoryNoAllInstances(org.eclipse.emf.common.notify.Notification atPre)
          Taking a Notification object such that an evaluation performed with the EvaluationVisitor returned by this factory's createEvaluationVisitor(Environment, EvaluationEnvironment, Map) operation will be based on the state before the notification.
PartialEcoreEnvironmentFactoryNoAllInstances(org.eclipse.emf.common.notify.Notification atPre, OppositeEndFinder oppositeEndFinder)
           
 
Method Summary
 PartialEvaluationVisitorImplNoAllInstances createEvaluationVisitor(Environment<org.eclipse.emf.ecore.EPackage,org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EEnumLiteral,org.eclipse.emf.ecore.EParameter,org.eclipse.emf.ecore.EObject,CallOperationAction,SendSignalAction,Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject> env, EvaluationEnvironment<org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject> evalEnv, java.util.Map<? extends org.eclipse.emf.ecore.EClass,? extends java.util.Set<? extends org.eclipse.emf.ecore.EObject>> extentMap)
          Creates a visitor.
 
Methods inherited from class org.eclipse.ocl.examples.impactanalyzer.deltaPropagation.PartialEcoreEnvironmentFactory
createEvaluationEnvironment, createEvaluationEnvironment, getAtPre, getSourceExpression, getValueOfSourceExpression, setExpressionValue, setSourceExpression, setValueOfSourceExpression
 
Methods inherited from class org.eclipse.ocl.ecore.opposites.EcoreEnvironmentFactoryWithHiddenOpposites
createOppositeEndFinder
 
Methods inherited from class org.eclipse.ocl.ecore.EcoreEnvironmentFactory
createEnvironment, createEnvironment, createOCLAnalyzer, createOCLAnalyzer, createOCLFactoryWithHistory, createOCLSyntaxHelper, createValidationVisitor, getClassifier, getEPackageRegistry, getOppositeEndFinder, loadEnvironment, lookupPackage
 
Methods inherited from class org.eclipse.ocl.AbstractEnvironmentFactory
createAttributeContext, createClassifierContext, createInstanceContext, createOperationContext, createPackageContext, createPackageContext, getAdapter, isEvaluationTracingEnabled, setEvaluationTracingEnabled
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PartialEcoreEnvironmentFactoryNoAllInstances

public PartialEcoreEnvironmentFactoryNoAllInstances()
Uses a DefaultOppositeEndFinder for querying hidden opposites


PartialEcoreEnvironmentFactoryNoAllInstances

public PartialEcoreEnvironmentFactoryNoAllInstances(org.eclipse.emf.common.notify.Notification atPre)
Taking a Notification object such that an evaluation performed with the EvaluationVisitor returned by this factory's createEvaluationVisitor(Environment, EvaluationEnvironment, Map) operation will be based on the state before the notification. For example, if the notification indicates the removal of a reference from an element e1 to an element e2 across reference r then when during partial evaluation r is traversed starting from e1 then e2 will show in the results although in the current version of the model it would not.

Uses a DefaultOppositeEndFinder for navigating hidden opposites.


PartialEcoreEnvironmentFactoryNoAllInstances

public PartialEcoreEnvironmentFactoryNoAllInstances(org.eclipse.emf.common.notify.Notification atPre,
                                                    OppositeEndFinder oppositeEndFinder)
Method Detail

createEvaluationVisitor

public PartialEvaluationVisitorImplNoAllInstances createEvaluationVisitor(Environment<org.eclipse.emf.ecore.EPackage,org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EEnumLiteral,org.eclipse.emf.ecore.EParameter,org.eclipse.emf.ecore.EObject,CallOperationAction,SendSignalAction,Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject> env,
                                                                          EvaluationEnvironment<org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject> evalEnv,
                                                                          java.util.Map<? extends org.eclipse.emf.ecore.EClass,? extends java.util.Set<? extends org.eclipse.emf.ecore.EObject>> extentMap)
Creates a visitor. The AbstractEnvironmentFactory.isEvaluationTracingEnabled() result is ignored here. Unfortunately, the TracingEvaluationVisitor class is not visible here. The PartialEcoreEnvironmentFactory.sourceExpression and PartialEcoreEnvironmentFactory.valueOfSourceExpression are passed to the PartialEvaluationVisitorImplNoAllInstances constructor and are nulled out before the constructor is called. As a consequence of this, subsequent requests to this factory to create a visitor will result in visitors that don't treat the source expression special anymore. This prevents incorrect use of the cached value during recursions.

Specified by:
createEvaluationVisitor in interface EnvironmentFactory<org.eclipse.emf.ecore.EPackage,org.eclipse.emf.ecore.EClassifier,org.eclipse.emf.ecore.EOperation,org.eclipse.emf.ecore.EStructuralFeature,org.eclipse.emf.ecore.EEnumLiteral,org.eclipse.emf.ecore.EParameter,org.eclipse.emf.ecore.EObject,CallOperationAction,SendSignalAction,Constraint,org.eclipse.emf.ecore.EClass,org.eclipse.emf.ecore.EObject>
Overrides:
createEvaluationVisitor in class PartialEcoreEnvironmentFactory
Parameters:
env - the environment in which the expression was originally parsed (or some compatible environment)
evalEnv - the evaluation environment that the visitor is to use for tracking variables, navigating properties, etc.
extentMap - the map of Classes to their extends
Returns:
the new evaluation visitor