public class EvaluationVisitorImpl extends AbstractEvaluationVisitor
environment, evaluationEnvironment, metaModelManager, modelManager
context
Constructor and Description |
---|
EvaluationVisitorImpl(Environment env,
EvaluationEnvironment evalEnv,
DomainModelManager modelManager)
Constructor
|
Modifier and Type | Method and Description |
---|---|
EvaluationVisitor |
createNestedEvaluator() |
java.lang.Object |
evaluate(DomainExpression body) |
java.lang.Object |
evaluate(ExpressionInOCL expressionInOCL) |
EvaluationVisitor |
getEvaluator() |
static boolean |
isSimpleRange(CollectionLiteralExp cl) |
LibraryFeature |
lookupImplementation(DomainType dynamicType,
DomainOperation staticOperation) |
java.lang.Object |
safeVisit(Visitable v)
A null-safe visitation of the specified visitable.
|
java.lang.Object |
visitAssociationClassCallExp(AssociationClassCallExp ae)
Callback for an AssociationClassCallExp visit.
|
java.lang.Object |
visitBooleanLiteralExp(BooleanLiteralExp booleanLiteralExp)
Callback for a BooleanLiteralExp visit.
|
java.lang.Object |
visitCollectionItem(CollectionItem item) |
java.lang.Object |
visitCollectionLiteralExp(CollectionLiteralExp cl)
Callback for a CollectionLiteralExp visit.
|
java.lang.Object |
visitCollectionRange(CollectionRange range) |
java.lang.Object |
visitConstructorExp(ConstructorExp ce) |
java.lang.Object |
visitEnumLiteralExp(EnumLiteralExp el)
Callback for an EnumLiteralExp visit.
|
java.lang.Object |
visitExpressionInOCL(ExpressionInOCL expression) |
java.lang.Object |
visitIfExp(IfExp ifExp)
Callback for an IfExp visit.
|
java.lang.Object |
visiting(Visitable visitable)
Return the result of visiting a visitable for which no more specific pivot type method
is available.
|
java.lang.Object |
visitIntegerLiteralExp(IntegerLiteralExp integerLiteralExp)
Callback for an IntegerLiteralExp visit.
|
java.lang.Object |
visitInvalidLiteralExp(InvalidLiteralExp invalidLiteralExp) |
java.lang.Object |
visitIterateExp(IterateExp iterateExp)
Callback for an IterateExp visit.
|
java.lang.Object |
visitIteratorExp(IteratorExp iteratorExp)
Callback for an IteratorExp visit.
|
java.lang.Object |
visitLetExp(LetExp letExp)
Callback for LetExp visit.
|
java.lang.Object |
visitMessageExp(MessageExp m) |
java.lang.Object |
visitNullLiteralExp(NullLiteralExp nullLiteralExp) |
java.lang.Object |
visitOperationCallExp(OperationCallExp operationCallExp)
Callback for an OperationCallExp visit.
|
java.lang.Object |
visitPropertyCallExp(PropertyCallExp propertyCallExp)
Callback for a PropertyCallExp visit.
|
java.lang.Object |
visitRealLiteralExp(RealLiteralExp realLiteralExp)
Callback for a RealLiteralExp visit.
|
java.lang.Object |
visitStateExp(StateExp s) |
java.lang.Object |
visitStringLiteralExp(StringLiteralExp stringLiteralExp)
Callback for a StringLiteralExp visit.
|
java.lang.Object |
visitTupleLiteralExp(TupleLiteralExp tl)
Callback for a TupleLiteralExp visit.
|
java.lang.Object |
visitTupleLiteralPart(TupleLiteralPart tp) |
java.lang.Object |
visitTypeExp(TypeExp t)
Callback for a TypeExp visit.
|
java.lang.Object |
visitUnlimitedNaturalLiteralExp(UnlimitedNaturalLiteralExp unlimitedNaturalLiteralExp)
Callback for an UnlimitedNaturalLiteralExp visit.
|
java.lang.Object |
visitUnspecifiedValueExp(UnspecifiedValueExp uv)
Callback for an UnspecifiedValueExp visit.
|
java.lang.Object |
visitVariable(Variable variable)
Callback for a Variable visit.
|
java.lang.Object |
visitVariableExp(VariableExp variableExp)
Callback for a VariableExp visit.
|
getEnvironment, getEvaluationEnvironment, getIdResolver, getLogger, getMetaModelManager, getModelManager, getStandardLibrary, getStaticTypeOf, getStaticTypeOf, getStaticTypeOf, getUndecoratedVisitor, getVisitor, isCanceled, setCanceled, setLogger, setUndecoratedVisitor, toString, visitConstraint
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, visitIteration, visitLambdaType, visitLibrary, visitLiteralExp, visitLoopExp, visitMessageType, visitMetaclass, visitNamedElement, visitNamespace, visitNavigationCallExp, visitNumericLiteralExp, visitOCLExpression, visitOpaqueExpression, visitOperation, visitOperationTemplateParameter, visitOrderedSetType, visitPackage, visitPackageableElement, visitParameter, visitParameterableElement, visitPrecedence, visitPrimitiveLiteralExp, visitPrimitiveType, visitProfile, visitProperty, visitPseudostate, visitRegion, visitRoot, visitSelfType, visitSendSignalAction, visitSequenceType, visitSetType, visitSignal, visitState, visitStateMachine, visitStereotype, visitTemplateableElement, visitTemplateBinding, visitTemplateParameter, visitTemplateParameterSubstitution, visitTemplateParameterType, visitTemplateSignature, visitTransition, visitTrigger, visitTupleType, visitType, visitTypedElement, visitTypedMultiplicityElement, visitTypeTemplateParameter, visitUnspecifiedType, visitValueSpecification, visitVariableDeclaration, visitVertex, visitVoidType
getAdapter, visit
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getAdapter, 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, visitIteration, visitLambdaType, visitLibrary, visitLiteralExp, visitLoopExp, visitMessageType, visitMetaclass, visitNamedElement, visitNamespace, visitNavigationCallExp, visitNumericLiteralExp, visitOCLExpression, visitOpaqueExpression, visitOperation, visitOperationTemplateParameter, visitOrderedSetType, visitPackage, visitPackageableElement, visitParameter, visitParameterableElement, visitPrecedence, visitPrimitiveLiteralExp, visitPrimitiveType, visitProfile, visitProperty, visitPseudostate, visitRegion, visitRoot, visitSelfType, visitSendSignalAction, visitSequenceType, visitSetType, visitSignal, visitState, visitStateMachine, visitStereotype, visitTemplateableElement, visitTemplateBinding, visitTemplateParameter, visitTemplateParameterSubstitution, visitTemplateParameterType, visitTemplateSignature, visitTransition, visitTrigger, visitTupleType, visitType, visitTypedElement, visitTypedMultiplicityElement, visitTypeTemplateParameter, visitUnspecifiedType, visitValueSpecification, visitVariableDeclaration, visitVertex, visitVoidType
public EvaluationVisitorImpl(@NonNull Environment env, @NonNull EvaluationEnvironment evalEnv, @NonNull DomainModelManager modelManager)
env
- an evaluation environment (map of variable names to values)modelManager
- a map of classes to their instance listspublic static boolean isSimpleRange(@NonNull CollectionLiteralExp cl)
@NonNull public EvaluationVisitor createNestedEvaluator()
@Nullable public java.lang.Object evaluate(@NonNull DomainExpression body)
@Nullable public java.lang.Object evaluate(@NonNull ExpressionInOCL expressionInOCL)
@NonNull public EvaluationVisitor getEvaluator()
@NonNull public LibraryFeature lookupImplementation(@NonNull DomainType dynamicType, @NonNull DomainOperation staticOperation)
public java.lang.Object safeVisit(@Nullable Visitable v)
AbstractVisitor
safeVisit
in class AbstractVisitor<java.lang.Object,java.lang.Object>
v
- a visitable, or null
null
if the visitable is null
;
otherwise, the result of visiting itpublic java.lang.Object visitAssociationClassCallExp(@NonNull AssociationClassCallExp ae)
visitAssociationClassCallExp
in interface Visitor<java.lang.Object>
visitAssociationClassCallExp
in class AbstractExtendingVisitor<java.lang.Object,java.lang.Object>
public java.lang.Object visitBooleanLiteralExp(@NonNull BooleanLiteralExp booleanLiteralExp)
visitBooleanLiteralExp
in interface Visitor<java.lang.Object>
visitBooleanLiteralExp
in class AbstractExtendingVisitor<java.lang.Object,java.lang.Object>
public java.lang.Object visitCollectionItem(@NonNull CollectionItem item)
visitCollectionItem
in interface Visitor<java.lang.Object>
visitCollectionItem
in class AbstractExtendingVisitor<java.lang.Object,java.lang.Object>
public java.lang.Object visitCollectionLiteralExp(@NonNull CollectionLiteralExp cl)
visitCollectionLiteralExp
in interface Visitor<java.lang.Object>
visitCollectionLiteralExp
in class AbstractExtendingVisitor<java.lang.Object,java.lang.Object>
public java.lang.Object visitCollectionRange(@NonNull CollectionRange range)
visitCollectionRange
in interface Visitor<java.lang.Object>
visitCollectionRange
in class AbstractExtendingVisitor<java.lang.Object,java.lang.Object>
public java.lang.Object visitConstructorExp(@NonNull ConstructorExp ce)
visitConstructorExp
in interface Visitor<java.lang.Object>
visitConstructorExp
in class AbstractExtendingVisitor<java.lang.Object,java.lang.Object>
public java.lang.Object visitEnumLiteralExp(@NonNull EnumLiteralExp el)
visitEnumLiteralExp
in interface Visitor<java.lang.Object>
visitEnumLiteralExp
in class AbstractExtendingVisitor<java.lang.Object,java.lang.Object>
el
- the enumeration literal expresionpublic java.lang.Object visitExpressionInOCL(@NonNull ExpressionInOCL expression)
visitExpressionInOCL
in interface Visitor<java.lang.Object>
visitExpressionInOCL
in class AbstractExtendingVisitor<java.lang.Object,java.lang.Object>
public java.lang.Object visitIfExp(@NonNull IfExp ifExp)
visitIfExp
in interface Visitor<java.lang.Object>
visitIfExp
in class AbstractExtendingVisitor<java.lang.Object,java.lang.Object>
public java.lang.Object visitIntegerLiteralExp(@NonNull IntegerLiteralExp integerLiteralExp)
visitIntegerLiteralExp
in interface Visitor<java.lang.Object>
visitIntegerLiteralExp
in class AbstractExtendingVisitor<java.lang.Object,java.lang.Object>
public java.lang.Object visitInvalidLiteralExp(@NonNull InvalidLiteralExp invalidLiteralExp)
visitInvalidLiteralExp
in interface Visitor<java.lang.Object>
visitInvalidLiteralExp
in class AbstractExtendingVisitor<java.lang.Object,java.lang.Object>
public java.lang.Object visitIterateExp(@NonNull IterateExp iterateExp)
visitIterateExp
in interface Visitor<java.lang.Object>
visitIterateExp
in class AbstractExtendingVisitor<java.lang.Object,java.lang.Object>
public java.lang.Object visitIteratorExp(@NonNull IteratorExp iteratorExp)
visitIteratorExp
in interface Visitor<java.lang.Object>
visitIteratorExp
in class AbstractExtendingVisitor<java.lang.Object,java.lang.Object>
public java.lang.Object visitLetExp(@NonNull LetExp letExp)
visitLetExp
in interface Visitor<java.lang.Object>
visitLetExp
in class AbstractExtendingVisitor<java.lang.Object,java.lang.Object>
public java.lang.Object visitMessageExp(@NonNull MessageExp m)
visitMessageExp
in interface Visitor<java.lang.Object>
visitMessageExp
in class AbstractExtendingVisitor<java.lang.Object,java.lang.Object>
public java.lang.Object visitNullLiteralExp(@NonNull NullLiteralExp nullLiteralExp)
visitNullLiteralExp
in interface Visitor<java.lang.Object>
visitNullLiteralExp
in class AbstractExtendingVisitor<java.lang.Object,java.lang.Object>
public java.lang.Object visitOperationCallExp(@NonNull OperationCallExp operationCallExp)
visitOperationCallExp
in interface Visitor<java.lang.Object>
visitOperationCallExp
in class AbstractExtendingVisitor<java.lang.Object,java.lang.Object>
public java.lang.Object visitPropertyCallExp(@NonNull PropertyCallExp propertyCallExp)
visitPropertyCallExp
in interface Visitor<java.lang.Object>
visitPropertyCallExp
in class AbstractExtendingVisitor<java.lang.Object,java.lang.Object>
public java.lang.Object visitRealLiteralExp(@NonNull RealLiteralExp realLiteralExp)
visitRealLiteralExp
in interface Visitor<java.lang.Object>
visitRealLiteralExp
in class AbstractExtendingVisitor<java.lang.Object,java.lang.Object>
public java.lang.Object visitStateExp(@NonNull StateExp s)
visitStateExp
in interface Visitor<java.lang.Object>
visitStateExp
in class AbstractExtendingVisitor<java.lang.Object,java.lang.Object>
public java.lang.Object visitStringLiteralExp(@NonNull StringLiteralExp stringLiteralExp)
visitStringLiteralExp
in interface Visitor<java.lang.Object>
visitStringLiteralExp
in class AbstractExtendingVisitor<java.lang.Object,java.lang.Object>
public java.lang.Object visitTupleLiteralExp(@NonNull TupleLiteralExp tl)
visitTupleLiteralExp
in interface Visitor<java.lang.Object>
visitTupleLiteralExp
in class AbstractExtendingVisitor<java.lang.Object,java.lang.Object>
tl
- tuple literal expressionpublic java.lang.Object visitTupleLiteralPart(@NonNull TupleLiteralPart tp)
visitTupleLiteralPart
in interface Visitor<java.lang.Object>
visitTupleLiteralPart
in class AbstractExtendingVisitor<java.lang.Object,java.lang.Object>
public java.lang.Object visitTypeExp(@NonNull TypeExp t)
visitTypeExp
in interface Visitor<java.lang.Object>
visitTypeExp
in class AbstractExtendingVisitor<java.lang.Object,java.lang.Object>
public java.lang.Object visitUnlimitedNaturalLiteralExp(@NonNull UnlimitedNaturalLiteralExp unlimitedNaturalLiteralExp)
visitUnlimitedNaturalLiteralExp
in interface Visitor<java.lang.Object>
visitUnlimitedNaturalLiteralExp
in class AbstractExtendingVisitor<java.lang.Object,java.lang.Object>
public java.lang.Object visitUnspecifiedValueExp(@NonNull UnspecifiedValueExp uv)
visitUnspecifiedValueExp
in interface Visitor<java.lang.Object>
visitUnspecifiedValueExp
in class AbstractExtendingVisitor<java.lang.Object,java.lang.Object>
public java.lang.Object visitVariable(@NonNull Variable variable)
visitVariable
in interface Visitor<java.lang.Object>
visitVariable
in class AbstractExtendingVisitor<java.lang.Object,java.lang.Object>
public java.lang.Object visitVariableExp(@NonNull VariableExp variableExp)
visitVariableExp
in interface Visitor<java.lang.Object>
visitVariableExp
in class AbstractExtendingVisitor<java.lang.Object,java.lang.Object>
v
- the variable expression