public abstract class AbstractEvaluationVisitor extends AbstractExtendingVisitor<java.lang.Object,java.lang.Object> implements EvaluationVisitor
Note that this class is not intended to be used or extended by
clients. Use the EvaluationVisitor
interface, instead.
Modifier and Type | Field and Description |
---|---|
protected CompleteEnvironmentInternal |
completeEnvironment |
protected EnvironmentFactoryInternal |
environmentFactory |
protected EvaluationEnvironment |
evaluationEnvironment |
protected PivotMetamodelManager |
metamodelManager |
protected ModelManager |
modelManager |
protected org.eclipse.emf.common.util.Monitor |
monitor
Set non-null by
setMonitor(org.eclipse.emf.common.util.Monitor) to terminate execution at next iteration/operation call. |
protected StandardLibraryInternal |
standardLibrary |
protected EvaluationVisitor |
undecoratedVisitor |
context
Modifier | Constructor and Description |
---|---|
protected |
AbstractEvaluationVisitor(EvaluationEnvironment evalEnv)
Initializes me.
|
Modifier and Type | Method and Description |
---|---|
protected java.util.Map<java.lang.String,java.util.regex.Pattern> |
createRegexCache()
Creates (on demand) the regular-expression matcher cache.
|
CompleteEnvironment |
getCompleteEnvironment() |
int |
getDiagnosticSeverity(int severityPreference,
java.lang.Object resultValue)
Return the org.eclipse.emf.common.util.Diagnostic severity to be reported for a non-true
validation resultValue given a severityPreference defined by a StatusCodes value.
|
EnvironmentFactory |
getEnvironmentFactory()
Obtains the environment factory that created me.
|
EvaluationEnvironment |
getEvaluationEnvironment()
Obtains the evaluation environment that keeps track of variable values
and knows how to call operations, navigate properties, etc.
|
IdResolver |
getIdResolver() |
EvaluationLogger |
getLogger()
Return the logger handling oclLog() invocations or null for none.
|
PivotMetamodelManager |
getMetamodelManager() |
ModelManager |
getModelManager()
Obtains the mapping of model classes to their extents.
|
org.eclipse.emf.common.util.Monitor |
getMonitor() |
java.util.regex.Pattern |
getRegexPattern(java.lang.String regex)
Return a cached matcher for a give regular expression.
|
int |
getSeverity(java.lang.Object validationKey)
Return the StatusCodes severity with which the validation identified by validationKey is reported.
|
StandardLibrary |
getStandardLibrary() |
Class |
getStaticTypeOf(java.lang.Object value) |
Class |
getStaticTypeOf(java.lang.Object value,
java.lang.Iterable<?> values) |
Class |
getStaticTypeOf(java.lang.Object value,
java.lang.Object... values) |
protected EvaluationVisitor |
getUndecoratedVisitor()
Obtains the visitor on which I perform nested
Visitable.accept(Visitor) calls. |
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.
|
void |
setLogger(EvaluationLogger logger)
Specify the logger to handle oclLog() invocations or null for none.
|
void |
setMonitor(org.eclipse.emf.common.util.Monitor monitor) |
void |
setUndecoratedVisitor(EvaluationVisitor evaluationVisitor)
Sets the visitor on which I perform nested
Visitable.accept(Visitor) calls. |
java.lang.String |
toString() |
java.lang.Object |
visitConstraint(Constraint constraint)
This default implementation asserts that the constraint is
boolean-valued if it is an invariant, pre-condition, or post-condition
constraint and returns the value of its body expression by delegation to
Visitable.accept(Visitor) . |
visitAnnotation, visitAnyType, visitAssociationClass, visitAssociationClassCallExp, visitBagType, visitBehavior, visitBooleanLiteralExp, visitCallExp, visitCallOperationAction, visitClass, visitCollectionItem, visitCollectionLiteralExp, visitCollectionLiteralPart, visitCollectionRange, visitCollectionType, visitComment, visitCompleteClass, visitCompleteEnvironment, visitCompleteModel, visitCompletePackage, visitConnectionPointReference, visitDataType, visitDetail, visitDynamicBehavior, visitDynamicElement, visitDynamicProperty, visitDynamicType, visitDynamicValueSpecification, visitElement, visitElementExtension, visitEnumeration, visitEnumerationLiteral, visitEnumLiteralExp, visitExpressionInOCL, visitFeature, visitFeatureCallExp, visitFinalState, visitIfExp, visitImport, visitInstanceSpecification, visitIntegerLiteralExp, visitInvalidLiteralExp, visitInvalidType, visitIterateExp, visitIteration, visitIteratorExp, visitLambdaType, visitLanguageExpression, visitLetExp, visitLibrary, visitLiteralExp, visitLoopExp, visitMapLiteralExp, visitMapLiteralPart, visitMapType, visitMessageExp, visitMessageType, visitModel, visitNamedElement, visitNamespace, visitNavigationCallExp, visitNullLiteralExp, visitNumericLiteralExp, visitOCLExpression, visitOperation, visitOperationCallExp, visitOppositePropertyCallExp, visitOrderedSetType, visitOrphanCompletePackage, visitPackage, visitParameter, visitPrecedence, visitPrimitiveCompletePackage, visitPrimitiveLiteralExp, visitPrimitiveType, visitProfile, visitProfileApplication, visitProperty, visitPropertyCallExp, visitPseudostate, visitRealLiteralExp, visitRegion, visitSelfType, visitSendSignalAction, visitSequenceType, visitSetType, visitShadowExp, visitShadowPart, visitSignal, visitSlot, visitStandardLibrary, visitState, visitStateExp, visitStateMachine, visitStereotype, visitStereotypeExtender, visitStringLiteralExp, visitTemplateableElement, visitTemplateBinding, visitTemplateParameter, visitTemplateParameterSubstitution, visitTemplateSignature, visitTransition, visitTrigger, visitTupleLiteralExp, visitTupleLiteralPart, visitTupleType, visitType, visitTypedElement, visitTypeExp, visitUnlimitedNaturalLiteralExp, visitUnspecifiedValueExp, visitValueSpecification, visitVariable, visitVariableDeclaration, visitVariableExp, visitVertex, visitVoidType, visitWildcardType
getAdapter, safeVisit, visit
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
createNestedEvaluator, evaluate, getEvaluator
getAdapter, visitAnnotation, visitAnyType, visitAssociationClass, visitAssociationClassCallExp, visitBagType, visitBehavior, visitBooleanLiteralExp, visitCallExp, visitCallOperationAction, visitClass, visitCollectionItem, visitCollectionLiteralExp, visitCollectionLiteralPart, visitCollectionRange, visitCollectionType, visitComment, visitCompleteClass, visitCompleteEnvironment, visitCompleteModel, visitCompletePackage, visitConnectionPointReference, visitDataType, visitDetail, visitDynamicBehavior, visitDynamicElement, visitDynamicProperty, visitDynamicType, visitDynamicValueSpecification, visitElement, visitElementExtension, visitEnumeration, visitEnumerationLiteral, visitEnumLiteralExp, visitExpressionInOCL, visitFeature, visitFeatureCallExp, visitFinalState, visitIfExp, visitImport, visiting, visitInstanceSpecification, visitIntegerLiteralExp, visitInvalidLiteralExp, visitInvalidType, visitIterateExp, visitIteration, visitIteratorExp, visitLambdaType, visitLanguageExpression, visitLetExp, visitLibrary, visitLiteralExp, visitLoopExp, visitMapLiteralExp, visitMapLiteralPart, visitMapType, visitMessageExp, visitMessageType, visitModel, visitNamedElement, visitNamespace, visitNavigationCallExp, visitNullLiteralExp, visitNumericLiteralExp, visitOCLExpression, visitOperation, visitOperationCallExp, visitOppositePropertyCallExp, visitOrderedSetType, visitOrphanCompletePackage, visitPackage, visitParameter, visitPrecedence, visitPrimitiveCompletePackage, visitPrimitiveLiteralExp, visitPrimitiveType, visitProfile, visitProfileApplication, visitProperty, visitPropertyCallExp, visitPseudostate, visitRealLiteralExp, visitRegion, visitSelfType, visitSendSignalAction, visitSequenceType, visitSetType, visitShadowExp, visitShadowPart, visitSignal, visitSlot, visitStandardLibrary, visitState, visitStateExp, visitStateMachine, visitStereotype, visitStereotypeExtender, visitStringLiteralExp, visitTemplateableElement, visitTemplateBinding, visitTemplateParameter, visitTemplateParameterSubstitution, visitTemplateSignature, visitTransition, visitTrigger, visitTupleLiteralExp, visitTupleLiteralPart, visitTupleType, visitType, visitTypedElement, visitTypeExp, visitUnlimitedNaturalLiteralExp, visitUnspecifiedValueExp, visitValueSpecification, visitVariable, visitVariableDeclaration, visitVariableExp, visitVertex, visitVoidType, visitWildcardType
@NonNull protected final EnvironmentFactoryInternal environmentFactory
@NonNull protected final EvaluationEnvironment evaluationEnvironment
@NonNull protected final PivotMetamodelManager metamodelManager
@NonNull protected final CompleteEnvironmentInternal completeEnvironment
@NonNull protected final StandardLibraryInternal standardLibrary
@NonNull protected final ModelManager modelManager
@NonNull protected EvaluationVisitor undecoratedVisitor
@Nullable protected org.eclipse.emf.common.util.Monitor monitor
setMonitor(org.eclipse.emf.common.util.Monitor)
to terminate execution at next iteration/operation call.protected AbstractEvaluationVisitor(@NonNull EvaluationEnvironment evalEnv)
evalEnv
- an evaluation environment (map of variable names to values)@NonNull protected java.util.Map<java.lang.String,java.util.regex.Pattern> createRegexCache()
getRegexPattern(String)
@NonNull public CompleteEnvironment getCompleteEnvironment()
getCompleteEnvironment
in interface Evaluator
@NonNull public EnvironmentFactory getEnvironmentFactory()
EvaluationVisitor
getEnvironmentFactory
in interface EvaluationVisitor
@NonNull public EvaluationEnvironment getEvaluationEnvironment()
EvaluationVisitor
getEvaluationEnvironment
in interface EvaluationVisitor
getEvaluationEnvironment
in interface Evaluator
@NonNull public IdResolver getIdResolver()
getIdResolver
in interface Evaluator
@Nullable public EvaluationLogger getLogger()
Evaluator
@NonNull public PivotMetamodelManager getMetamodelManager()
getMetamodelManager
in interface EvaluationVisitor
@NonNull public ModelManager getModelManager()
EvaluationVisitor
getModelManager
in interface EvaluationVisitor
getModelManager
in interface Evaluator
@Nullable public org.eclipse.emf.common.util.Monitor getMonitor()
getMonitor
in interface EvaluationVisitor
@NonNull public java.util.regex.Pattern getRegexPattern(@NonNull java.lang.String regex)
getRegexPattern
in interface Evaluator
public int getDiagnosticSeverity(int severityPreference, @Nullable java.lang.Object resultValue)
Evaluator
getDiagnosticSeverity
in interface Evaluator
public int getSeverity(@Nullable java.lang.Object validationKey)
Evaluator
StatusCodes.OK severity suppresses the validation altogether.
StatusCodes.Warning is returned for any null or unknown key.
getSeverity
in interface Evaluator
@NonNull public StandardLibrary getStandardLibrary()
getStandardLibrary
in interface EvaluationVisitor
getStandardLibrary
in interface Evaluator
@NonNull public Class getStaticTypeOf(@Nullable java.lang.Object value)
getStaticTypeOf
in interface Evaluator
@NonNull public Class getStaticTypeOf(@Nullable java.lang.Object value, @NonNull java.lang.Object... values)
getStaticTypeOf
in interface Evaluator
@NonNull public Class getStaticTypeOf(@Nullable java.lang.Object value, @NonNull java.lang.Iterable<?> values)
getStaticTypeOf
in interface Evaluator
@NonNull protected final EvaluationVisitor getUndecoratedVisitor()
Visitable.accept(Visitor)
calls. This
handles the case in which I am decorated by another visitor that must
intercept every visitXxx() method. If I internally just
recursively visit myself, then this decorator is cut out of the picture.public boolean isCanceled()
Evaluator
isCanceled
in interface EvaluationVisitor
isCanceled
in interface Evaluator
public void setCanceled(boolean isCanceled)
Evaluator
EvaluationHaltedException
when an expression,
operation or iteration is next invoked.setCanceled
in interface EvaluationVisitor
setCanceled
in interface Evaluator
public void setLogger(@Nullable EvaluationLogger logger)
Evaluator
public void setMonitor(@Nullable org.eclipse.emf.common.util.Monitor monitor)
setMonitor
in interface EvaluationVisitor
public void setUndecoratedVisitor(@NonNull EvaluationVisitor evaluationVisitor)
Visitable.accept(Visitor)
calls.setUndecoratedVisitor
in interface EvaluationVisitor
evaluationVisitor
- my delegate visitorgetUndecoratedVisitor()
public java.lang.String toString()
toString
in class java.lang.Object
public java.lang.Object visitConstraint(@NonNull Constraint constraint)
Visitable.accept(Visitor)
.visitConstraint
in interface Visitor<java.lang.Object>
visitConstraint
in class AbstractExtendingVisitor<java.lang.Object,java.lang.Object>