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

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

public class BranchingNavigationStep
extends CompositeNavigationStep

A navigation step that branches in several paths and combines the results into one.


Constructor Summary
BranchingNavigationStep(org.eclipse.emf.ecore.EClass sourceType, org.eclipse.emf.ecore.EClass targetType, OCLExpression debugInfo, boolean requireExactMatchForSourceType, NavigationStep... parallelSteps)
           
 
Method Summary
 java.lang.String contentToString(java.util.Map<NavigationStep,java.lang.Integer> visited, int indent)
           
protected  boolean doesSourceTypeMatch(AnnotatedEObject fromObject)
           
 SemanticIdentity getSemanticIdentity()
           
 SemanticIdentity getSemanticIdentityOfSuperSuper()
           
 boolean isAbsolute()
          If there are no branches, the step always returns an empty result and therefore is absolute, regardless its inputs.
protected  java.util.Set<AnnotatedEObject> navigate(AnnotatedEObject fromObject, TracebackCache cache, org.eclipse.emf.common.notify.Notification changeEvent)
           
 
Methods inherited from class org.eclipse.ocl.examples.impactanalyzer.instanceScope.CompositeNavigationStep
afterHashCodeChange, beforeHashCodeChange, distinctSize, getInstanceScopeAnalysis, getSemanticIdentityOfAbstractNavigationStep, getSteps, size
 
Methods inherited from class org.eclipse.ocl.examples.impactanalyzer.instanceScope.AbstractNavigationStep
addAlwaysEmptyChangeListener, addEnteringScopes, addExpressionForWhichThisIsNavigationStep, addHashCodeChangeListener, addLeavingScopes, addSourceTypeChangeListener, addTargetTypeChangeListener, annotateEObject, distinctSize, fireAfterHashCodeChange, fireBeforeHashCodeChange, getDebugInfo, getEnteringScopes, getId, getLeavingScopes, getNavigateCounter, getResultObjectsCounter, getSourceType, getTargetType, haveIntersectingSubclassTree, incrementNavigateCounter, isAlwaysEmpty, navigate, newTokenForFiringHashCodeChangeEvent, setAlwaysEmpty, size, toString, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

BranchingNavigationStep

public BranchingNavigationStep(org.eclipse.emf.ecore.EClass sourceType,
                               org.eclipse.emf.ecore.EClass targetType,
                               OCLExpression debugInfo,
                               boolean requireExactMatchForSourceType,
                               NavigationStep... parallelSteps)
Method Detail

doesSourceTypeMatch

protected boolean doesSourceTypeMatch(AnnotatedEObject fromObject)
Overrides:
doesSourceTypeMatch in class AbstractNavigationStep

getSemanticIdentityOfSuperSuper

public SemanticIdentity getSemanticIdentityOfSuperSuper()

isAbsolute

public boolean isAbsolute()
If there are no branches, the step always returns an empty result and therefore is absolute, regardless its inputs.

Specified by:
isAbsolute in interface NavigationStep
Overrides:
isAbsolute in class AbstractNavigationStep
Returns:
always false

navigate

protected java.util.Set<AnnotatedEObject> navigate(AnnotatedEObject fromObject,
                                                   TracebackCache cache,
                                                   org.eclipse.emf.common.notify.Notification changeEvent)
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 CompositeNavigationStep