org.eclipse.ocl.examples.debug.evaluator
Class OCLVMRootEvaluationVisitor

java.lang.Object
  extended by org.eclipse.ocl.examples.pivot.util.AbstractVisitor<R,C>
      extended by org.eclipse.ocl.examples.pivot.util.AbstractWrappingVisitor<java.lang.Object,java.lang.Object,IOCLVMEvaluationVisitor,Element>
          extended by org.eclipse.ocl.examples.debug.evaluator.OCLVMEvaluationVisitor
              extended by org.eclipse.ocl.examples.debug.evaluator.OCLVMRootEvaluationVisitor
All Implemented Interfaces:
IOCLVMEvaluationVisitor, IVMEvaluationVisitor<ExpressionInOCL>, IVMRootEvaluationVisitor<ExpressionInOCL>, DomainEvaluator, EvaluationVisitor, Visitor<java.lang.Object>

public class OCLVMRootEvaluationVisitor
extends OCLVMEvaluationVisitor
implements IVMRootEvaluationVisitor<ExpressionInOCL>


Field Summary
 
Fields inherited from class org.eclipse.ocl.examples.pivot.util.AbstractWrappingVisitor
delegate
 
Fields inherited from class org.eclipse.ocl.examples.pivot.util.AbstractVisitor
context
 
Constructor Summary
OCLVMRootEvaluationVisitor(OCLVMEnvironment env, IOCLVMEvaluationEnvironment evalEnv, IVMDebuggerShell shell)
           
 
Method Summary
protected  java.lang.Object badVisit(IVMEvaluationEnvironment<?> evalEnv, Element element, java.lang.Object preState, java.lang.Throwable e)
           
 void dispose()
           
 UnitLocation getCurrentLocation()
           
 int getDepth()
           
 IOCLVMEvaluationEnvironment getEvaluationEnvironment()
          Obtains the evaluation environment that keeps track of variable values and knows how to call operations, navigate properties, etc.
 java.util.List<UnitLocation> getLocationStack()
           
 OCLVMRootEvaluationVisitor getRootEvaluationVisitor()
           
 IStepperVisitor getStepperVisitor()
           
protected  void handleLocationChanged(Element element, UnitLocation location, boolean isElementEnd)
           
protected  boolean isLargerStackDepth(UnitLocation location)
          Return true if a call (stack push) has occurred on location wrt the last displayed location.
protected  boolean isNewLine(UnitLocation location)
          Return true if a line change has occurred on location wrt the last displayed location.
protected  boolean isNewLocation(UnitLocation location)
          Return true if a position change has occurred on location wrrt the last displayed location.
protected  boolean isSmallerStackDepth(UnitLocation location)
          Return true if a return (stack pop) has occurred on location wrt the last displayed location.
 void popVisitor(OCLVMNestedEvaluationVisitor evaluationVisitor)
           
 void postIterate(LoopExp loopExp)
           
protected  void postVisit(IVMEvaluationEnvironment<?> evalEnv, Element element, java.lang.Object result)
           
 void preIterate(LoopExp loopExp)
           
protected  Element preVisit(IVMEvaluationEnvironment<?> evalEnv, Element element)
           
 void pushVisitor(OCLVMEvaluationVisitor evaluationVisitor)
           
 void start(boolean suspendOnStartup)
           
 
Methods inherited from class org.eclipse.ocl.examples.debug.evaluator.OCLVMEvaluationVisitor
badVisit, createNestedEvaluator, evaluate, evaluate, getClonedEvaluator, getEnvironment, getEvaluator, getIdResolver, getLogger, getMetaModelManager, getModelManager, getMonitor, getPluginId, getRegexPattern, getStandardLibrary, getStaticTypeOf, getStaticTypeOf, getStaticTypeOf, isCanceled, postVisit, preVisit, processDeferredTasks, setCanceled, setCurrentEnvInstructionPointer, setLogger, setMonitor, setUndecoratedVisitor, superProcessDeferredTasks, toString, visitVariable
 
Methods inherited from class org.eclipse.ocl.examples.pivot.util.AbstractWrappingVisitor
getDelegate, visitAnnotation, visitAnyType, visitAssociationClass, visitAssociationClassCallExp, visitBagType, visitBehavior, visitBooleanLiteralExp, visitCallExp, visitCallOperationAction, visitClass, visitCollectionItem, visitCollectionLiteralExp, visitCollectionLiteralPart, visitCollectionRange, visitCollectionType, visitComment, visitConnectionPointReference, visitConstraint, visitConstructorExp, visitConstructorPart, visitDataType, visitDetail, visitDynamicElement, visitDynamicProperty, visitDynamicType, visitElement, visitElementExtension, visitEnumeration, visitEnumerationLiteral, visitEnumLiteralExp, visitExpressionInOCL, visitFeature, visitFeatureCallExp, visitFinalState, visitIfExp, visitImport, visiting, visitIntegerLiteralExp, visitInvalidLiteralExp, visitInvalidType, visitIterateExp, visitIteration, visitIteratorExp, visitLambdaType, visitLetExp, visitLibrary, visitLiteralExp, visitLoopExp, visitMessageExp, visitMessageType, visitMetaclass, visitNamedElement, visitNamespace, visitNavigationCallExp, visitNullLiteralExp, visitNumericLiteralExp, visitOCLExpression, visitOpaqueExpression, visitOperation, visitOperationCallExp, visitOperationTemplateParameter, visitOppositePropertyCallExp, visitOrderedSetType, visitPackage, visitPackageableElement, visitParameter, visitParameterableElement, visitPrecedence, visitPrimitiveLiteralExp, visitPrimitiveType, visitProfile, visitProfileApplication, visitProperty, visitPropertyCallExp, visitPseudostate, visitRealLiteralExp, visitRegion, visitRoot, visitSelfType, visitSendSignalAction, visitSequenceType, visitSetType, visitSignal, visitState, visitStateExp, visitStateMachine, visitStereotype, visitStringLiteralExp, visitTemplateableElement, visitTemplateBinding, visitTemplateParameter, visitTemplateParameterSubstitution, visitTemplateParameterType, visitTemplateSignature, visitTransition, visitTrigger, visitTupleLiteralExp, visitTupleLiteralPart, visitTupleType, visitType, visitTypedElement, visitTypedMultiplicityElement, visitTypeExp, visitTypeExtension, visitTypeTemplateParameter, visitUnlimitedNaturalLiteralExp, visitUnspecifiedType, visitUnspecifiedValueExp, visitValueSpecification, visitVariableDeclaration, visitVariableExp, visitVertex, visitVoidType
 
Methods inherited from class org.eclipse.ocl.examples.pivot.util.AbstractVisitor
getAdapter, safeVisit, visit
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.eclipse.ocl.examples.debug.vm.evaluator.IVMEvaluationVisitor
getClonedEvaluator, getPluginId
 
Methods inherited from interface org.eclipse.ocl.examples.pivot.evaluation.EvaluationVisitor
createNestedEvaluator, evaluate, evaluate, getEnvironment, getEvaluator, getMetaModelManager, getModelManager, getMonitor, getStandardLibrary, isCanceled, setCanceled, setMonitor, setUndecoratedVisitor
 
Methods inherited from interface org.eclipse.ocl.examples.pivot.util.Visitor
getAdapter, visitAnnotation, visitAnyType, visitAssociationClass, visitAssociationClassCallExp, visitBagType, visitBehavior, visitBooleanLiteralExp, visitCallExp, visitCallOperationAction, visitClass, visitCollectionItem, visitCollectionLiteralExp, visitCollectionLiteralPart, visitCollectionRange, visitCollectionType, visitComment, visitConnectionPointReference, visitConstraint, visitConstructorExp, visitConstructorPart, visitDataType, visitDetail, visitDynamicElement, visitDynamicProperty, visitDynamicType, visitElement, visitElementExtension, visitEnumeration, visitEnumerationLiteral, visitEnumLiteralExp, visitExpressionInOCL, visitFeature, visitFeatureCallExp, visitFinalState, visitIfExp, visitImport, visiting, visitIntegerLiteralExp, visitInvalidLiteralExp, visitInvalidType, visitIterateExp, visitIteration, visitIteratorExp, visitLambdaType, visitLetExp, visitLibrary, visitLiteralExp, visitLoopExp, visitMessageExp, visitMessageType, visitMetaclass, visitNamedElement, visitNamespace, visitNavigationCallExp, visitNullLiteralExp, visitNumericLiteralExp, visitOCLExpression, visitOpaqueExpression, visitOperation, visitOperationCallExp, visitOperationTemplateParameter, visitOppositePropertyCallExp, visitOrderedSetType, visitPackage, visitPackageableElement, visitParameter, visitParameterableElement, visitPrecedence, visitPrimitiveLiteralExp, visitPrimitiveType, visitProfile, visitProfileApplication, visitProperty, visitPropertyCallExp, visitPseudostate, visitRealLiteralExp, visitRegion, visitRoot, visitSelfType, visitSendSignalAction, visitSequenceType, visitSetType, visitSignal, visitState, visitStateExp, visitStateMachine, visitStereotype, visitStringLiteralExp, visitTemplateableElement, visitTemplateBinding, visitTemplateParameter, visitTemplateParameterSubstitution, visitTemplateParameterType, visitTemplateSignature, visitTransition, visitTrigger, visitTupleLiteralExp, visitTupleLiteralPart, visitTupleType, visitType, visitTypedElement, visitTypedMultiplicityElement, visitTypeExp, visitTypeExtension, visitTypeTemplateParameter, visitUnlimitedNaturalLiteralExp, visitUnspecifiedType, visitUnspecifiedValueExp, visitValueSpecification, visitVariable, visitVariableDeclaration, visitVariableExp, visitVertex, visitVoidType
 
Methods inherited from interface org.eclipse.ocl.examples.domain.evaluation.DomainEvaluator
getIdResolver, getLogger, getRegexPattern, getStaticTypeOf, getStaticTypeOf, getStaticTypeOf, setLogger
 
Methods inherited from interface org.eclipse.ocl.examples.debug.evaluator.IOCLVMEvaluationVisitor
safeVisit
 

Constructor Detail

OCLVMRootEvaluationVisitor

public OCLVMRootEvaluationVisitor(@NonNull
                                  OCLVMEnvironment env,
                                  @NonNull
                                  IOCLVMEvaluationEnvironment evalEnv,
                                  @NonNull
                                  IVMDebuggerShell shell)
Method Detail

badVisit

@Nullable
protected java.lang.Object badVisit(@NonNull
                                             IVMEvaluationEnvironment<?> evalEnv,
                                             @NonNull
                                             Element element,
                                             java.lang.Object preState,
                                             @NonNull
                                             java.lang.Throwable e)
Specified by:
badVisit in class OCLVMEvaluationVisitor

dispose

public void dispose()
Specified by:
dispose in interface IOCLVMEvaluationVisitor
Specified by:
dispose in interface DomainEvaluator

getCurrentLocation

@NonNull
public UnitLocation getCurrentLocation()
Specified by:
getCurrentLocation in interface IVMRootEvaluationVisitor<ExpressionInOCL>

getDepth

public int getDepth()
Specified by:
getDepth in class OCLVMEvaluationVisitor

getEvaluationEnvironment

@NonNull
public IOCLVMEvaluationEnvironment getEvaluationEnvironment()
Description copied from interface: EvaluationVisitor
Obtains the evaluation environment that keeps track of variable values and knows how to call operations, navigate properties, etc.

Specified by:
getEvaluationEnvironment in interface IVMRootEvaluationVisitor<ExpressionInOCL>
Specified by:
getEvaluationEnvironment in interface DomainEvaluator
Specified by:
getEvaluationEnvironment in interface EvaluationVisitor
Overrides:
getEvaluationEnvironment in class OCLVMEvaluationVisitor
Returns:
the evaluation environment

getLocationStack

@NonNull
public java.util.List<UnitLocation> getLocationStack()
Specified by:
getLocationStack in interface IVMRootEvaluationVisitor<ExpressionInOCL>

getRootEvaluationVisitor

@NonNull
public OCLVMRootEvaluationVisitor getRootEvaluationVisitor()
Specified by:
getRootEvaluationVisitor in class OCLVMEvaluationVisitor

getStepperVisitor

@NonNull
public IStepperVisitor getStepperVisitor()
Specified by:
getStepperVisitor in interface IVMRootEvaluationVisitor<ExpressionInOCL>

handleLocationChanged

protected void handleLocationChanged(@NonNull
                                     Element element,
                                     @NonNull
                                     UnitLocation location,
                                     boolean isElementEnd)

isLargerStackDepth

protected boolean isLargerStackDepth(@NonNull
                                     UnitLocation location)
Return true if a call (stack push) has occurred on location wrt the last displayed location.


isNewLine

protected boolean isNewLine(@NonNull
                            UnitLocation location)
Return true if a line change has occurred on location wrt the last displayed location.


isNewLocation

protected boolean isNewLocation(@NonNull
                                UnitLocation location)
Return true if a position change has occurred on location wrrt the last displayed location.


isSmallerStackDepth

protected boolean isSmallerStackDepth(@NonNull
                                      UnitLocation location)
Return true if a return (stack pop) has occurred on location wrt the last displayed location.


popVisitor

public void popVisitor(@NonNull
                       OCLVMNestedEvaluationVisitor evaluationVisitor)

postIterate

public void postIterate(@NonNull
                        LoopExp loopExp)
Specified by:
postIterate in interface IVMRootEvaluationVisitor<ExpressionInOCL>

postVisit

protected void postVisit(@NonNull
                         IVMEvaluationEnvironment<?> evalEnv,
                         @NonNull
                         Element element,
                         @Nullable
                         java.lang.Object result)
Specified by:
postVisit in class OCLVMEvaluationVisitor

preIterate

public void preIterate(@NonNull
                       LoopExp loopExp)
Specified by:
preIterate in interface IVMRootEvaluationVisitor<ExpressionInOCL>

preVisit

@Nullable
protected Element preVisit(@NonNull
                                    IVMEvaluationEnvironment<?> evalEnv,
                                    @NonNull
                                    Element element)
Specified by:
preVisit in class OCLVMEvaluationVisitor

pushVisitor

public void pushVisitor(@NonNull
                        OCLVMEvaluationVisitor evaluationVisitor)

start

public void start(boolean suspendOnStartup)