org.eclipse.ocl.examples.pivot.evaluation
Class TracingEvaluationVisitor

java.lang.Object
  extended by org.eclipse.ocl.examples.pivot.util.AbstractVisitor<R,C>
      extended by org.eclipse.ocl.examples.pivot.util.AbstractExtendingVisitor<Value,java.lang.Object>
          extended by org.eclipse.ocl.examples.pivot.evaluation.EvaluationVisitorDecorator
              extended by org.eclipse.ocl.examples.pivot.evaluation.TracingEvaluationVisitor
All Implemented Interfaces:
DomainEvaluator, EvaluationVisitor, Visitor<Value>

public class TracingEvaluationVisitor
extends EvaluationVisitorDecorator

A decorator for evaluation visitors that is installed when evaluation tracing is enabled, to trace interim evaluation results to the console.

Author:
Christian W. Damus (cdamus)

Field Summary
 
Fields inherited from class org.eclipse.ocl.examples.pivot.util.AbstractVisitor
context
 
Constructor Summary
TracingEvaluationVisitor(EvaluationVisitor decorated)
          Initializes me with the visitor whose evaluation I trace to the console.
 
Method Summary
 EvaluationVisitor createNestedEvaluator()
          Delegates to my decorated visitor.
 Value evaluate(DomainExpression body)
           
 EvaluationVisitor getEvaluator()
           
 MetaModelManager getMetaModelManager()
           
 DomainStandardLibrary getStandardLibrary()
           
 ValueFactory getValueFactory()
          Return the factory for values and indirectly for types.
 boolean isCanceled()
          Return true if the evaluation has been canceled.
 void setCanceled(boolean isCanceled)
          Request cancelation of the current the evaluation, or reset the request for a new evaluation.
 NullValue throwInvalidEvaluation(InvalidValueException e)
           
 NullValue throwInvalidEvaluation(java.lang.String message)
           
 NullValue throwInvalidEvaluation(java.lang.Throwable e, DomainExpression expression, java.lang.Object value, java.lang.String message, java.lang.Object... bindings)
           
 Value visitAssociationClassCallExp(AssociationClassCallExp callExp)
          Delegates to my decorated visitor.
 Value visitBooleanLiteralExp(BooleanLiteralExp literalExp)
          Delegates to my decorated visitor.
 Value visitCollectionItem(CollectionItem item)
          Delegates to my decorated visitor.
 Value visitCollectionLiteralExp(CollectionLiteralExp literalExp)
          Delegates to my decorated visitor.
 Value visitCollectionRange(CollectionRange range)
          Delegates to my decorated visitor.
 Value visitConstraint(Constraint constraint)
          Delegates to my decorated visitor.
 Value visitConstructorExp(ConstructorExp constraint)
          Delegates to my decorated visitor.
 Value visitEnumLiteralExp(EnumLiteralExp literalExp)
          Delegates to my decorated visitor.
 Value visitExpressionInOCL(ExpressionInOCL expression)
          Delegates to my decorated visitor.
 Value visitIfExp(IfExp ifExp)
          Delegates to my decorated visitor.
 Value visitIntegerLiteralExp(IntegerLiteralExp literalExp)
          Delegates to my decorated visitor.
 Value visitInvalidLiteralExp(InvalidLiteralExp literalExp)
          Delegates to my decorated visitor.
 Value visitLetExp(LetExp letExp)
          Delegates to my decorated visitor.
 Value visitMessageExp(MessageExp messageExp)
          Delegates to my decorated visitor.
 Value visitNullLiteralExp(NullLiteralExp literalExp)
          Delegates to my decorated visitor.
 Value visitOperationCallExp(OperationCallExp callExp)
          Delegates to my decorated visitor.
 Value visitPropertyCallExp(PropertyCallExp callExp)
          Delegates to my decorated visitor.
 Value visitRealLiteralExp(RealLiteralExp literalExp)
          Delegates to my decorated visitor.
 Value visitStateExp(StateExp stateExp)
          Delegates to my decorated visitor.
 Value visitStringLiteralExp(StringLiteralExp literalExp)
          Delegates to my decorated visitor.
 Value visitTupleLiteralExp(TupleLiteralExp literalExp)
          Delegates to my decorated visitor.
 Value visitTupleLiteralPart(TupleLiteralPart part)
          Delegates to my decorated visitor.
 Value visitTypeExp(TypeExp typeExp)
          Delegates to my decorated visitor.
 Value visitUnlimitedNaturalLiteralExp(UnlimitedNaturalLiteralExp literalExp)
          Delegates to my decorated visitor.
 Value visitUnspecifiedValueExp(UnspecifiedValueExp unspecExp)
          Delegates to my decorated visitor.
 Value visitVariable(Variable variable)
          Delegates to my decorated visitor.
 Value visitVariableExp(VariableExp variableExp)
          Delegates to my decorated visitor.
 
Methods inherited from class org.eclipse.ocl.examples.pivot.evaluation.EvaluationVisitorDecorator
getDelegate, getEnvironment, getEvaluationEnvironment, getModelManager, setUndecoratedVisitor, visiting
 
Methods inherited from class org.eclipse.ocl.examples.pivot.util.AbstractExtendingVisitor
visitAnnotation, visitAnyType, visitAssociationClass, visitBagType, visitCallExp, visitCallOperationAction, visitClass, visitClassifierType, visitCollectionLiteralPart, visitCollectionType, visitComment, visitConstructorPart, visitDataType, visitDetail, visitElement, visitEnumeration, visitEnumerationLiteral, visitFeature, visitFeatureCallExp, visitInvalidType, visitIterateExp, visitIteration, visitIteratorExp, visitLambdaType, visitLibrary, visitLiteralExp, visitLoopExp, visitMessageType, visitModel, visitMultiplicityElement, visitNamedElement, visitNamespace, visitNavigationCallExp, visitNumericLiteralExp, visitOCLExpression, visitOpaqueExpression, visitOperation, visitOperationTemplateParameter, visitOrderedSetType, visitPackage, visitPackageableElement, visitParameter, visitParameterableElement, visitPrecedence, visitPrimitiveLiteralExp, visitPrimitiveType, visitProperty, visitSelfType, visitSendSignalAction, visitSequenceType, visitSetType, visitSignal, visitState, visitTemplateableElement, visitTemplateBinding, visitTemplateParameter, visitTemplateParameterSubstitution, visitTemplateParameterType, visitTemplateSignature, visitTupleType, visitType, visitTypedElement, visitTypedMultiplicityElement, visitTypeTemplateParameter, visitUnspecifiedType, visitValueSpecification, visitVariableDeclaration, 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, toString, wait, wait, wait
 
Methods inherited from interface org.eclipse.ocl.examples.pivot.util.Visitor
getAdapter, visitAnnotation, visitAnyType, visitAssociationClass, visitBagType, visitCallExp, visitCallOperationAction, visitClass, visitClassifierType, visitCollectionLiteralPart, visitCollectionType, visitComment, visitConstructorPart, visitDataType, visitDetail, visitElement, visitEnumeration, visitEnumerationLiteral, visitFeature, visitFeatureCallExp, visitInvalidType, visitIterateExp, visitIteration, visitIteratorExp, visitLambdaType, visitLibrary, visitLiteralExp, visitLoopExp, visitMessageType, visitModel, visitMultiplicityElement, visitNamedElement, visitNamespace, visitNavigationCallExp, visitNumericLiteralExp, visitOCLExpression, visitOpaqueExpression, visitOperation, visitOperationTemplateParameter, visitOrderedSetType, visitPackage, visitPackageableElement, visitParameter, visitParameterableElement, visitPrecedence, visitPrimitiveLiteralExp, visitPrimitiveType, visitProperty, visitSelfType, visitSendSignalAction, visitSequenceType, visitSetType, visitSignal, visitState, visitTemplateableElement, visitTemplateBinding, visitTemplateParameter, visitTemplateParameterSubstitution, visitTemplateParameterType, visitTemplateSignature, visitTupleType, visitType, visitTypedElement, visitTypedMultiplicityElement, visitTypeTemplateParameter, visitUnspecifiedType, visitValueSpecification, visitVariableDeclaration, visitVoidType
 

Constructor Detail

TracingEvaluationVisitor

public TracingEvaluationVisitor(EvaluationVisitor decorated)
Initializes me with the visitor whose evaluation I trace to the console.

Parameters:
decorated - a real evaluation visitor
Method Detail

createNestedEvaluator

public EvaluationVisitor createNestedEvaluator()
Description copied from class: EvaluationVisitorDecorator
Delegates to my decorated visitor.

Specified by:
createNestedEvaluator in interface DomainEvaluator
Specified by:
createNestedEvaluator in interface EvaluationVisitor
Overrides:
createNestedEvaluator in class EvaluationVisitorDecorator

evaluate

public Value evaluate(DomainExpression body)

getEvaluator

public EvaluationVisitor getEvaluator()

getMetaModelManager

public MetaModelManager getMetaModelManager()

getStandardLibrary

public DomainStandardLibrary getStandardLibrary()

getValueFactory

public ValueFactory getValueFactory()
Description copied from interface: DomainEvaluator
Return the factory for values and indirectly for types.


isCanceled

public boolean isCanceled()
Description copied from interface: DomainEvaluator
Return true if the evaluation has been canceled.


setCanceled

public void setCanceled(boolean isCanceled)
Description copied from interface: DomainEvaluator
Request cancelation of the current the evaluation, or reset the request for a new evaluation. Cancelation occurs by throwing an EvaluationHaltedException when #getValuefactory() is next invoked.


throwInvalidEvaluation

public NullValue throwInvalidEvaluation(InvalidValueException e)
                                 throws InvalidEvaluationException
Throws:
InvalidEvaluationException

throwInvalidEvaluation

public NullValue throwInvalidEvaluation(java.lang.String message)
                                 throws InvalidEvaluationException
Throws:
InvalidEvaluationException

throwInvalidEvaluation

public NullValue throwInvalidEvaluation(java.lang.Throwable e,
                                        DomainExpression expression,
                                        java.lang.Object value,
                                        java.lang.String message,
                                        java.lang.Object... bindings)

visitAssociationClassCallExp

public Value visitAssociationClassCallExp(AssociationClassCallExp callExp)
Description copied from class: EvaluationVisitorDecorator
Delegates to my decorated visitor.

Specified by:
visitAssociationClassCallExp in interface Visitor<Value>
Overrides:
visitAssociationClassCallExp in class EvaluationVisitorDecorator

visitBooleanLiteralExp

public Value visitBooleanLiteralExp(BooleanLiteralExp literalExp)
Description copied from class: EvaluationVisitorDecorator
Delegates to my decorated visitor.

Specified by:
visitBooleanLiteralExp in interface Visitor<Value>
Overrides:
visitBooleanLiteralExp in class EvaluationVisitorDecorator

visitCollectionItem

public Value visitCollectionItem(CollectionItem item)
Description copied from class: EvaluationVisitorDecorator
Delegates to my decorated visitor.

Specified by:
visitCollectionItem in interface Visitor<Value>
Overrides:
visitCollectionItem in class EvaluationVisitorDecorator

visitCollectionLiteralExp

public Value visitCollectionLiteralExp(CollectionLiteralExp literalExp)
Description copied from class: EvaluationVisitorDecorator
Delegates to my decorated visitor.

Specified by:
visitCollectionLiteralExp in interface Visitor<Value>
Overrides:
visitCollectionLiteralExp in class EvaluationVisitorDecorator

visitCollectionRange

public Value visitCollectionRange(CollectionRange range)
Description copied from class: EvaluationVisitorDecorator
Delegates to my decorated visitor.

Specified by:
visitCollectionRange in interface Visitor<Value>
Overrides:
visitCollectionRange in class EvaluationVisitorDecorator

visitConstraint

public Value visitConstraint(Constraint constraint)
Description copied from class: EvaluationVisitorDecorator
Delegates to my decorated visitor.

Specified by:
visitConstraint in interface Visitor<Value>
Overrides:
visitConstraint in class EvaluationVisitorDecorator

visitConstructorExp

public Value visitConstructorExp(ConstructorExp constraint)
Description copied from class: EvaluationVisitorDecorator
Delegates to my decorated visitor.

Specified by:
visitConstructorExp in interface Visitor<Value>
Overrides:
visitConstructorExp in class EvaluationVisitorDecorator

visitEnumLiteralExp

public Value visitEnumLiteralExp(EnumLiteralExp literalExp)
Description copied from class: EvaluationVisitorDecorator
Delegates to my decorated visitor.

Specified by:
visitEnumLiteralExp in interface Visitor<Value>
Overrides:
visitEnumLiteralExp in class EvaluationVisitorDecorator

visitExpressionInOCL

public Value visitExpressionInOCL(ExpressionInOCL expression)
Description copied from class: EvaluationVisitorDecorator
Delegates to my decorated visitor.

Specified by:
visitExpressionInOCL in interface Visitor<Value>
Overrides:
visitExpressionInOCL in class EvaluationVisitorDecorator

visitIfExp

public Value visitIfExp(IfExp ifExp)
Description copied from class: EvaluationVisitorDecorator
Delegates to my decorated visitor.

Specified by:
visitIfExp in interface Visitor<Value>
Overrides:
visitIfExp in class EvaluationVisitorDecorator

visitIntegerLiteralExp

public Value visitIntegerLiteralExp(IntegerLiteralExp literalExp)
Description copied from class: EvaluationVisitorDecorator
Delegates to my decorated visitor.

Specified by:
visitIntegerLiteralExp in interface Visitor<Value>
Overrides:
visitIntegerLiteralExp in class EvaluationVisitorDecorator

visitInvalidLiteralExp

public Value visitInvalidLiteralExp(InvalidLiteralExp literalExp)
Description copied from class: EvaluationVisitorDecorator
Delegates to my decorated visitor.

Specified by:
visitInvalidLiteralExp in interface Visitor<Value>
Overrides:
visitInvalidLiteralExp in class EvaluationVisitorDecorator

visitLetExp

public Value visitLetExp(LetExp letExp)
Description copied from class: EvaluationVisitorDecorator
Delegates to my decorated visitor.

Specified by:
visitLetExp in interface Visitor<Value>
Overrides:
visitLetExp in class EvaluationVisitorDecorator

visitMessageExp

public Value visitMessageExp(MessageExp messageExp)
Description copied from class: EvaluationVisitorDecorator
Delegates to my decorated visitor.

Specified by:
visitMessageExp in interface Visitor<Value>
Overrides:
visitMessageExp in class EvaluationVisitorDecorator

visitNullLiteralExp

public Value visitNullLiteralExp(NullLiteralExp literalExp)
Description copied from class: EvaluationVisitorDecorator
Delegates to my decorated visitor.

Specified by:
visitNullLiteralExp in interface Visitor<Value>
Overrides:
visitNullLiteralExp in class EvaluationVisitorDecorator

visitOperationCallExp

public Value visitOperationCallExp(OperationCallExp callExp)
Description copied from class: EvaluationVisitorDecorator
Delegates to my decorated visitor.

Specified by:
visitOperationCallExp in interface Visitor<Value>
Overrides:
visitOperationCallExp in class EvaluationVisitorDecorator

visitPropertyCallExp

public Value visitPropertyCallExp(PropertyCallExp callExp)
Description copied from class: EvaluationVisitorDecorator
Delegates to my decorated visitor.

Specified by:
visitPropertyCallExp in interface Visitor<Value>
Overrides:
visitPropertyCallExp in class EvaluationVisitorDecorator

visitRealLiteralExp

public Value visitRealLiteralExp(RealLiteralExp literalExp)
Description copied from class: EvaluationVisitorDecorator
Delegates to my decorated visitor.

Specified by:
visitRealLiteralExp in interface Visitor<Value>
Overrides:
visitRealLiteralExp in class EvaluationVisitorDecorator

visitStateExp

public Value visitStateExp(StateExp stateExp)
Description copied from class: EvaluationVisitorDecorator
Delegates to my decorated visitor.

Specified by:
visitStateExp in interface Visitor<Value>
Overrides:
visitStateExp in class EvaluationVisitorDecorator

visitStringLiteralExp

public Value visitStringLiteralExp(StringLiteralExp literalExp)
Description copied from class: EvaluationVisitorDecorator
Delegates to my decorated visitor.

Specified by:
visitStringLiteralExp in interface Visitor<Value>
Overrides:
visitStringLiteralExp in class EvaluationVisitorDecorator

visitTupleLiteralExp

public Value visitTupleLiteralExp(TupleLiteralExp literalExp)
Description copied from class: EvaluationVisitorDecorator
Delegates to my decorated visitor.

Specified by:
visitTupleLiteralExp in interface Visitor<Value>
Overrides:
visitTupleLiteralExp in class EvaluationVisitorDecorator

visitTupleLiteralPart

public Value visitTupleLiteralPart(TupleLiteralPart part)
Description copied from class: EvaluationVisitorDecorator
Delegates to my decorated visitor.

Specified by:
visitTupleLiteralPart in interface Visitor<Value>
Overrides:
visitTupleLiteralPart in class EvaluationVisitorDecorator

visitTypeExp

public Value visitTypeExp(TypeExp typeExp)
Description copied from class: EvaluationVisitorDecorator
Delegates to my decorated visitor.

Specified by:
visitTypeExp in interface Visitor<Value>
Overrides:
visitTypeExp in class EvaluationVisitorDecorator

visitUnlimitedNaturalLiteralExp

public Value visitUnlimitedNaturalLiteralExp(UnlimitedNaturalLiteralExp literalExp)
Description copied from class: EvaluationVisitorDecorator
Delegates to my decorated visitor.

Specified by:
visitUnlimitedNaturalLiteralExp in interface Visitor<Value>
Overrides:
visitUnlimitedNaturalLiteralExp in class EvaluationVisitorDecorator

visitUnspecifiedValueExp

public Value visitUnspecifiedValueExp(UnspecifiedValueExp unspecExp)
Description copied from class: EvaluationVisitorDecorator
Delegates to my decorated visitor.

Specified by:
visitUnspecifiedValueExp in interface Visitor<Value>
Overrides:
visitUnspecifiedValueExp in class EvaluationVisitorDecorator

visitVariable

public Value visitVariable(Variable variable)
Description copied from class: EvaluationVisitorDecorator
Delegates to my decorated visitor.

Specified by:
visitVariable in interface Visitor<Value>
Overrides:
visitVariable in class EvaluationVisitorDecorator

visitVariableExp

public Value visitVariableExp(VariableExp variableExp)
Description copied from class: EvaluationVisitorDecorator
Delegates to my decorated visitor.

Specified by:
visitVariableExp in interface Visitor<Value>
Overrides:
visitVariableExp in class EvaluationVisitorDecorator