public abstract class AbstractOCLVMEvaluationVisitor extends AbstractWrappingVisitor<java.lang.Object,java.lang.Object,IOCLVMEvaluationVisitor,Element> implements IOCLVMEvaluationVisitor
delegate
context
Modifier | Constructor and Description |
---|---|
protected |
AbstractOCLVMEvaluationVisitor(IOCLVMEvaluationVisitor nestedEvaluationVisitor) |
Modifier and Type | Method and Description |
---|---|
protected abstract java.lang.Object |
badVisit(IVMEvaluationEnvironment evalEnv,
Element element,
java.lang.Object preState,
java.lang.Throwable e) |
protected java.lang.Object |
badVisit(Visitable visitable,
Element preState,
java.lang.Throwable e)
Intercept an exception thrown by the delegated visit to perform some post-functionality that may use the visitable object,
the result of preVisit and the thrown exception to determine the overall wrapped result.
|
IOCLVMEvaluationVisitor |
createNestedEvaluator() |
java.lang.Object |
evaluate(OCLExpression body) |
EvaluationVisitor |
getClonedEvaluator() |
CompleteEnvironment |
getCompleteEnvironment() |
abstract int |
getDepth() |
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.
|
EvaluationVisitor |
getEvaluator() |
IdResolver |
getIdResolver() |
EvaluationLogger |
getLogger()
Return the logger handling oclLog() invocations or null for none.
|
MetamodelManager |
getMetamodelManager() |
ModelManager |
getModelManager()
Obtains the mapping of model classes to their extents.
|
org.eclipse.emf.common.util.Monitor |
getMonitor() |
java.lang.String |
getPluginId() |
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) |
IOCLVMEvaluationEnvironment |
getVMEvaluationEnvironment() |
abstract OCLVMRootEvaluationVisitor |
getVMRootEvaluationVisitor() |
boolean |
isCanceled()
Return true if the evaluation has been canceled.
|
protected abstract void |
postVisit(IVMEvaluationEnvironment evalEnv,
Element element,
java.lang.Object result) |
protected java.lang.Object |
postVisit(Visitable visitable,
Element prologue,
java.lang.Object result)
Intercept the result of the delegated visit to perform some post-functionality that may use the visitable object,
the result of preVisit and the result of the delegated visit to determine the overall wrapped result.
|
protected abstract java.lang.Object |
preVisit(IVMEvaluationEnvironment evalEnv,
Element element) |
protected Element |
preVisit(Visitable visitable)
Compute and return some value before performing the delegated visit.
|
protected void |
processDeferredTasks() |
void |
setCanceled(boolean isCanceled)
Request cancelation of the current the evaluation, or reset the request for a new evaluation.
|
protected Element |
setCurrentEnvInstructionPointer(Element element) |
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)
Configures the specified decorated visitor to correctly handle the
invocation of recursive
visitXxx(...) calls. |
protected void |
superProcessDeferredTasks() |
java.lang.String |
toString() |
java.lang.Object |
visitVariable(Variable vd) |
getDelegate, visitAnnotation, visitAnyType, visitAssociationClass, visitAssociationClassCallExp, visitBagType, visitBehavior, visitBooleanLiteralExp, visitCallExp, visitCallOperationAction, visitClass, visitCollectionItem, visitCollectionLiteralExp, visitCollectionLiteralPart, visitCollectionRange, visitCollectionType, visitComment, visitCompleteClass, visitCompleteEnvironment, visitCompleteModel, visitCompletePackage, visitConnectionPointReference, visitConstraint, 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, visitVariableDeclaration, visitVariableExp, visitVertex, visitVoidType, visitWildcardType
getAdapter, safeVisit, visit
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
dispose, safeVisit
getAdapter, visitAnnotation, visitAnyType, visitAssociationClass, visitAssociationClassCallExp, visitBagType, visitBehavior, visitBooleanLiteralExp, visitCallExp, visitCallOperationAction, visitClass, visitCollectionItem, visitCollectionLiteralExp, visitCollectionLiteralPart, visitCollectionRange, visitCollectionType, visitComment, visitCompleteClass, visitCompleteEnvironment, visitCompleteModel, visitCompletePackage, visitConnectionPointReference, visitConstraint, 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, visitVariableDeclaration, visitVariableExp, visitVertex, visitVoidType, visitWildcardType
protected AbstractOCLVMEvaluationVisitor(@NonNull IOCLVMEvaluationVisitor nestedEvaluationVisitor)
@NonNull public EvaluationVisitor getClonedEvaluator()
getClonedEvaluator
in interface IVMEvaluationVisitor
public abstract int getDepth()
public int getDiagnosticSeverity(int severityPreference, @Nullable java.lang.Object resultValue)
Evaluator
getDiagnosticSeverity
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 IOCLVMEvaluationEnvironment getVMEvaluationEnvironment()
@NonNull public java.lang.String getPluginId()
getPluginId
in interface IVMEvaluationVisitor
protected void processDeferredTasks()
@Nullable protected java.lang.Object badVisit(@NonNull Visitable visitable, @Nullable Element preState, @NonNull java.lang.Throwable e) throws java.lang.RuntimeException
AbstractWrappingVisitor
badVisit
in class AbstractWrappingVisitor<java.lang.Object,java.lang.Object,IOCLVMEvaluationVisitor,Element>
java.lang.RuntimeException
@Nullable protected abstract java.lang.Object badVisit(@NonNull IVMEvaluationEnvironment evalEnv, @NonNull Element element, java.lang.Object preState, @NonNull java.lang.Throwable e)
protected void superProcessDeferredTasks()
protected java.lang.Object postVisit(@NonNull Visitable visitable, @Nullable Element prologue, @Nullable java.lang.Object result)
AbstractWrappingVisitor
postVisit
in class AbstractWrappingVisitor<java.lang.Object,java.lang.Object,IOCLVMEvaluationVisitor,Element>
protected abstract void postVisit(@NonNull IVMEvaluationEnvironment evalEnv, @NonNull Element element, @Nullable java.lang.Object result)
@Nullable protected Element preVisit(@NonNull Visitable visitable)
AbstractWrappingVisitor
preVisit
in class AbstractWrappingVisitor<java.lang.Object,java.lang.Object,IOCLVMEvaluationVisitor,Element>
protected abstract java.lang.Object preVisit(@NonNull IVMEvaluationEnvironment evalEnv, @NonNull Element element)
public java.lang.Object visitVariable(@NonNull Variable vd)
visitVariable
in interface Visitor<java.lang.Object>
visitVariable
in class AbstractWrappingVisitor<java.lang.Object,java.lang.Object,IOCLVMEvaluationVisitor,Element>
@NonNull public IOCLVMEvaluationVisitor createNestedEvaluator()
createNestedEvaluator
in interface IOCLVMEvaluationVisitor
createNestedEvaluator
in interface EvaluationVisitor
createNestedEvaluator
in interface Evaluator
@Nullable public java.lang.Object evaluate(@NonNull OCLExpression body)
evaluate
in interface EvaluationVisitor
evaluate
in interface Evaluator
@NonNull public CompleteEnvironment getCompleteEnvironment()
getCompleteEnvironment
in interface Evaluator
@NonNull public EvaluationVisitor getEvaluator()
getEvaluator
in interface EvaluationVisitor
@NonNull public ModelManager getModelManager()
EvaluationVisitor
getModelManager
in interface EvaluationVisitor
getModelManager
in interface Evaluator
@NonNull public MetamodelManager getMetamodelManager()
getMetamodelManager
in interface EvaluationVisitor
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
public void setUndecoratedVisitor(@NonNull EvaluationVisitor evaluationVisitor)
EvaluationVisitor
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.setUndecoratedVisitor
in interface EvaluationVisitor
evaluationVisitor
- the evaluationVisitor that is not decorated/@NonNull public IdResolver getIdResolver()
getIdResolver
in interface Evaluator
@Nullable public EvaluationLogger getLogger()
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)
Evaluator
getRegexPattern
in interface Evaluator
@NonNull public abstract OCLVMRootEvaluationVisitor getVMRootEvaluationVisitor()
@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
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 java.lang.String toString()
toString
in class java.lang.Object