org.eclipse.ocl.examples.impactanalyzer.instanceScope
Class PredicateCheckNavigationStep

java.lang.Object
  extended by org.eclipse.ocl.examples.impactanalyzer.instanceScope.AbstractNavigationStep
      extended by org.eclipse.ocl.examples.impactanalyzer.instanceScope.PredicateCheckNavigationStep
All Implemented Interfaces:
NavigationStep, SemanticComparable

public class PredicateCheckNavigationStep
extends AbstractNavigationStep

Evaluates an OCL expression that is expected to be the body expression of an iterator expression. Before the evaluation is triggered, the single iterator variable obtained from LoopExp.getIterator() is set to the RefObject passed to #navigate(CoreConnection, AnnotatedRefObjectImpl, Map, Set) in the fromObject parameter. Depending on the particular type of iterator (select, reject or any), the object is passed on if and only if the OCL expression evaluates to true/false/true, respectively. For any iterators other than select, reject or any the object is passed through right away because the semantics of the iterator are not known.

Author:
Axel Uhl D043530

Constructor Summary
PredicateCheckNavigationStep(org.eclipse.emf.ecore.EClass sourceType, org.eclipse.emf.ecore.EClass targetType, IteratorExp iteratorExp, PathCache pathCache, OCLFactory oclFactory)
           
 
Method Summary
 java.lang.String contentToString(java.util.Map<NavigationStep,java.lang.Integer> visited, int indent)
           
 SemanticIdentity getSemanticIdentity()
           
 SemanticIdentity getSemanticIdentityOfSuper()
           
protected  java.util.Set<AnnotatedEObject> navigate(AnnotatedEObject fromObject, TracebackCache cache, org.eclipse.emf.common.notify.Notification atPre)
           
 
Methods inherited from class org.eclipse.ocl.examples.impactanalyzer.instanceScope.AbstractNavigationStep
addAlwaysEmptyChangeListener, addEnteringScopes, addExpressionForWhichThisIsNavigationStep, addHashCodeChangeListener, addLeavingScopes, addSourceTypeChangeListener, addTargetTypeChangeListener, annotateEObject, distinctSize, distinctSize, doesSourceTypeMatch, fireAfterHashCodeChange, fireBeforeHashCodeChange, getDebugInfo, getEnteringScopes, getId, getLeavingScopes, getNavigateCounter, getResultObjectsCounter, getSourceType, getTargetType, haveIntersectingSubclassTree, incrementNavigateCounter, isAbsolute, isAlwaysEmpty, navigate, newTokenForFiringHashCodeChangeEvent, setAlwaysEmpty, size, size, toString, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

PredicateCheckNavigationStep

public PredicateCheckNavigationStep(org.eclipse.emf.ecore.EClass sourceType,
                                    org.eclipse.emf.ecore.EClass targetType,
                                    IteratorExp iteratorExp,
                                    PathCache pathCache,
                                    OCLFactory oclFactory)
Method Detail

getSemanticIdentityOfSuper

public SemanticIdentity getSemanticIdentityOfSuper()

navigate

protected java.util.Set<AnnotatedEObject> navigate(AnnotatedEObject fromObject,
                                                   TracebackCache cache,
                                                   org.eclipse.emf.common.notify.Notification atPre)
Specified by:
navigate in class AbstractNavigationStep

contentToString

public java.lang.String contentToString(java.util.Map<NavigationStep,java.lang.Integer> visited,
                                        int indent)
Overrides:
contentToString in class AbstractNavigationStep

getSemanticIdentity

public SemanticIdentity getSemanticIdentity()
Specified by:
getSemanticIdentity in interface SemanticComparable
Overrides:
getSemanticIdentity in class AbstractNavigationStep