org.eclipse.ocl.examples.pivot.evaluation
Interface EvaluationVisitor

All Superinterfaces:
DomainEvaluator, Visitor<Value>
All Known Implementing Classes:
AbstractEvaluationVisitor, EvaluationVisitorDecorator, EvaluationVisitorImpl, OCLConsolePage.CancelableEvaluationVisitor, TracingEvaluationVisitor

public interface EvaluationVisitor
extends Visitor<Value>, DomainEvaluator

A specialized visitor that is used for evaluation an OCL expression by walking its AST.

See the Environment class for a description of the generic type parameters of this class.


Method Summary
 EvaluationVisitor createNestedEvaluator()
           
 Value evaluate(DomainExpression body)
           
 Environment getEnvironment()
          Obtains the environment that provides the metamodel semantics for the expression to be evaluated.
 EvaluationEnvironment getEvaluationEnvironment()
          Obtains the evaluation environment that keeps track of variable values and knows how to call operations, navigate properties, etc.
 EvaluationVisitor getEvaluator()
           
 MetaModelManager getMetaModelManager()
           
 DomainModelManager getModelManager()
          Obtains the mapping of model classes to their extents.
 DomainStandardLibrary getStandardLibrary()
           
 ValueFactory getValueFactory()
          Return the factory for values and indirectly for types.
 void setUndecoratedVisitor(EvaluationVisitor evaluationVisitor)
          Configures the specified decorated visitor to correctly handle the invocation of recursive visitXxx(...) calls.
 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)
           
 
Methods inherited from interface org.eclipse.ocl.examples.pivot.util.Visitor
getAdapter, visitAnnotation, visitAnyType, visitAssociationClass, visitAssociationClassCallExp, visitBagType, visitBooleanLiteralExp, visitCallExp, visitCallOperationAction, visitClass, visitClassifierType, visitCollectionItem, visitCollectionLiteralExp, visitCollectionLiteralPart, visitCollectionRange, visitCollectionType, visitComment, visitConstraint, visitConstructorExp, visitConstructorPart, visitDataType, visitDetail, visitElement, visitEnumeration, visitEnumerationLiteral, visitEnumLiteralExp, visitExpressionInOCL, visitFeature, visitFeatureCallExp, visitIfExp, visiting, visitIntegerLiteralExp, visitInvalidLiteralExp, visitInvalidType, visitIterateExp, visitIteration, visitIteratorExp, visitLambdaType, visitLetExp, visitLibrary, visitLiteralExp, visitLoopExp, visitMessageExp, visitMessageType, visitModel, visitMultiplicityElement, visitNamedElement, visitNamespace, visitNavigationCallExp, visitNullLiteralExp, visitNumericLiteralExp, visitOCLExpression, visitOpaqueExpression, visitOperation, visitOperationCallExp, visitOperationTemplateParameter, visitOrderedSetType, visitPackage, visitPackageableElement, visitParameter, visitParameterableElement, visitPrecedence, visitPrimitiveLiteralExp, visitPrimitiveType, visitProperty, visitPropertyCallExp, visitRealLiteralExp, visitSelfType, visitSendSignalAction, visitSequenceType, visitSetType, visitSignal, visitState, visitStateExp, visitStringLiteralExp, visitTemplateableElement, visitTemplateBinding, visitTemplateParameter, visitTemplateParameterSubstitution, visitTemplateParameterType, visitTemplateSignature, visitTupleLiteralExp, visitTupleLiteralPart, visitTupleType, visitType, visitTypedElement, visitTypedMultiplicityElement, visitTypeExp, visitTypeTemplateParameter, visitUnlimitedNaturalLiteralExp, visitUnspecifiedType, visitUnspecifiedValueExp, visitValueSpecification, visitVariable, visitVariableDeclaration, visitVariableExp, visitVoidType
 
Methods inherited from interface org.eclipse.ocl.examples.domain.evaluation.DomainEvaluator
isCanceled, setCanceled
 

Method Detail

createNestedEvaluator

EvaluationVisitor createNestedEvaluator()
Specified by:
createNestedEvaluator in interface DomainEvaluator

evaluate

Value evaluate(DomainExpression body)
Specified by:
evaluate in interface DomainEvaluator

getEnvironment

Environment getEnvironment()
Obtains the environment that provides the metamodel semantics for the expression to be evaluated.

Returns:
the environment

getEvaluationEnvironment

EvaluationEnvironment getEvaluationEnvironment()
Obtains the evaluation environment that keeps track of variable values and knows how to call operations, navigate properties, etc.

Specified by:
getEvaluationEnvironment in interface DomainEvaluator
Returns:
the evaluation environment

getEvaluator

EvaluationVisitor getEvaluator()

getModelManager

DomainModelManager getModelManager()
Obtains the mapping of model classes to their extents.

Specified by:
getModelManager in interface DomainEvaluator
Returns:
the model manager

getMetaModelManager

MetaModelManager getMetaModelManager()

getStandardLibrary

DomainStandardLibrary getStandardLibrary()

getValueFactory

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

Specified by:
getValueFactory in interface DomainEvaluator

setUndecoratedVisitor

void setUndecoratedVisitor(EvaluationVisitor evaluationVisitor)
Configures the specified decorated visitor to correctly handle the invocation of recursive visitXxx(...) calls. In particular, the tail of a chain of decorators is informed (if it is an AbstractEvaluationVisitor of the head decorator of the chain, so that recursive visitation follows the entire decorator chain at every step.

Parameters:
decorator - the decorator that is not decorated/

throwInvalidEvaluation

NullValue throwInvalidEvaluation(InvalidValueException e)
                                 throws InvalidEvaluationException
Specified by:
throwInvalidEvaluation in interface DomainEvaluator
Throws:
InvalidEvaluationException

throwInvalidEvaluation

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

throwInvalidEvaluation

NullValue throwInvalidEvaluation(java.lang.Throwable e,
                                 DomainExpression expression,
                                 java.lang.Object value,
                                 java.lang.String message,
                                 java.lang.Object... bindings)
                                 throws InvalidEvaluationException
Specified by:
throwInvalidEvaluation in interface DomainEvaluator
Throws:
InvalidEvaluationException