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

java.lang.Object
  extended by org.eclipse.ocl.examples.pivot.util.AbstractVisitor<R,C>
      extended by org.eclipse.ocl.examples.pivot.util.AbstractExtendingVisitor<java.lang.Object,java.lang.Object>
          extended by org.eclipse.ocl.examples.pivot.evaluation.AbstractEvaluationVisitorDecorator<IOCLVMEvaluationVisitor>
              extended by org.eclipse.ocl.examples.debug.evaluator.OCLVMEvaluationVisitorDecorator
                  extended by org.eclipse.ocl.examples.debug.evaluator.OCLAbstractTracingEvaluationVisitor
All Implemented Interfaces:
IOCLVMEvaluationVisitor, IVMEvaluationVisitor<ExpressionInOCL>, DomainEvaluator, EvaluationVisitor, Visitor<java.lang.Object>
Direct Known Subclasses:
OCLTracingEvaluationVisitor

public abstract class OCLAbstractTracingEvaluationVisitor
extends OCLVMEvaluationVisitorDecorator

The Class OCLAbstractTracingEvaluationVisitor is a decorator visitor that prints AST, variable values and other information useful for debugging.

Author:
Horacio Hoyos

Field Summary
protected static java.lang.String DEFAULT_INDENT
          The Constant DEFAULT_INDENT.
protected static org.apache.log4j.Logger logger
           
protected static int verboseLevel
          The verbose level.
 
Fields inherited from class org.eclipse.ocl.examples.pivot.evaluation.AbstractEvaluationVisitorDecorator
delegate
 
Fields inherited from class org.eclipse.ocl.examples.pivot.util.AbstractVisitor
context
 
Constructor Summary
  OCLAbstractTracingEvaluationVisitor(IOCLVMEvaluationVisitor decorated)
          Instantiates a new OCL tracing evaluation visitor.
protected OCLAbstractTracingEvaluationVisitor(IOCLVMEvaluationVisitor decorated, int indentLevel)
          Instantiates a new OCL tracing evaluation visitor.
 
Method Summary
protected  java.lang.String getIndent()
          Gets the indent.
 java.util.regex.Pattern getRegexPattern(java.lang.String regex)
          Return a cached matcher for a give regular expression.
 int getVerboseLevel()
          Gets the verbose level.
protected  java.lang.String prettyPrint(java.lang.Object object)
          Pretty print Objects.
protected  java.lang.String prettyPrintUnident(java.lang.Object object)
           
protected  java.lang.String safePrint(Element element)
          Safe print.
 void setVerboseLevel(int verboseLevel)
          Sets the verbose level.
 
Methods inherited from class org.eclipse.ocl.examples.debug.evaluator.OCLVMEvaluationVisitorDecorator
createNestedEvaluator, dispose, evaluate, evaluate, getClonedEvaluator, getEvaluator, getIdResolver, getLogger, getMetaModelManager, getMonitor, getPluginId, getStandardLibrary, getStaticTypeOf, getStaticTypeOf, getStaticTypeOf, isCanceled, safeVisit, setCanceled, setLogger, setMonitor, visiting
 
Methods inherited from class org.eclipse.ocl.examples.pivot.evaluation.AbstractEvaluationVisitorDecorator
getDelegate, getEnvironment, getEvaluationEnvironment, getModelManager, setUndecoratedVisitor, visitAssociationClassCallExp, visitBooleanLiteralExp, visitCollectionItem, visitCollectionLiteralExp, visitCollectionRange, visitConstraint, visitConstructorExp, visitEnumLiteralExp, visitExpressionInOCL, visitIfExp, visitIntegerLiteralExp, visitInvalidLiteralExp, visitLetExp, visitMessageExp, visitNullLiteralExp, visitOperationCallExp, visitOppositePropertyCallExp, visitPropertyCallExp, visitRealLiteralExp, visitStateExp, visitStringLiteralExp, visitTupleLiteralExp, visitTupleLiteralPart, visitTypeExp, visitUnlimitedNaturalLiteralExp, visitUnspecifiedValueExp, visitVariable, visitVariableExp
 
Methods inherited from class org.eclipse.ocl.examples.pivot.util.AbstractExtendingVisitor
visitAnnotation, visitAnyType, visitAssociationClass, visitBagType, visitBehavior, visitCallExp, visitCallOperationAction, visitClass, visitCollectionLiteralPart, visitCollectionType, visitComment, visitConnectionPointReference, visitConstructorPart, visitDataType, visitDetail, visitDynamicElement, visitDynamicProperty, visitDynamicType, visitElement, visitElementExtension, visitEnumeration, visitEnumerationLiteral, visitFeature, visitFeatureCallExp, visitFinalState, visitImport, visitInvalidType, visitIterateExp, visitIteration, visitIteratorExp, visitLambdaType, visitLibrary, visitLiteralExp, visitLoopExp, visitMessageType, visitMetaclass, visitNamedElement, visitNamespace, visitNavigationCallExp, visitNumericLiteralExp, visitOCLExpression, visitOpaqueExpression, visitOperation, visitOperationTemplateParameter, visitOrderedSetType, visitPackage, visitPackageableElement, visitParameter, visitParameterableElement, visitPrecedence, visitPrimitiveLiteralExp, visitPrimitiveType, visitProfile, visitProfileApplication, visitProperty, visitPseudostate, visitRegion, visitRoot, visitSelfType, visitSendSignalAction, visitSequenceType, visitSetType, visitSignal, visitState, visitStateMachine, visitStereotype, visitTemplateableElement, visitTemplateBinding, visitTemplateParameter, visitTemplateParameterSubstitution, visitTemplateParameterType, visitTemplateSignature, visitTransition, visitTrigger, visitTupleType, visitType, visitTypedElement, visitTypedMultiplicityElement, visitTypeExtension, visitTypeTemplateParameter, visitUnspecifiedType, visitValueSpecification, visitVariableDeclaration, visitVertex, visitVoidType
 
Methods inherited from class org.eclipse.ocl.examples.pivot.util.AbstractVisitor
getAdapter, 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.evaluation.EvaluationVisitor
getEnvironment, getEvaluationEnvironment, getModelManager, 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, 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
 

Field Detail

logger

protected static org.apache.log4j.Logger logger

DEFAULT_INDENT

protected static final java.lang.String DEFAULT_INDENT
The Constant DEFAULT_INDENT.

See Also:
Constant Field Values

verboseLevel

protected static int verboseLevel
The verbose level.

Constructor Detail

OCLAbstractTracingEvaluationVisitor

public OCLAbstractTracingEvaluationVisitor(@NonNull
                                           IOCLVMEvaluationVisitor decorated)
Instantiates a new OCL tracing evaluation visitor.

Parameters:
decorated - the decorated

OCLAbstractTracingEvaluationVisitor

protected OCLAbstractTracingEvaluationVisitor(@NonNull
                                              IOCLVMEvaluationVisitor decorated,
                                              int indentLevel)
Instantiates a new OCL tracing evaluation visitor.

Parameters:
decorated - the decorated
indentLevel - the indent level
Method Detail

getVerboseLevel

public int getVerboseLevel()
Gets the verbose level.

Returns:
the verbose level

setVerboseLevel

public void setVerboseLevel(int verboseLevel)
Sets the verbose level.

Parameters:
verboseLevel - the new verbose level

getIndent

@NonNull
protected java.lang.String getIndent()
Gets the indent.

Returns:
the indent

getRegexPattern

@NonNull
public java.util.regex.Pattern getRegexPattern(@NonNull
                                                       java.lang.String regex)
Description copied from interface: DomainEvaluator
Return a cached matcher for a give regular expression.


safePrint

@NonNull
protected java.lang.String safePrint(@Nullable
                                             Element element)
Safe print.

Parameters:
element - the element
Returns:
the string

prettyPrint

protected java.lang.String prettyPrint(java.lang.Object object)
Pretty print Objects. EObjects are printed at 1 level depth (i.e. no navigation through associations). Other objects are printed as Strings

Parameters:
object - the object
Returns:
the string

prettyPrintUnident

protected java.lang.String prettyPrintUnident(java.lang.Object object)