public class EvaluationVisitorDecorator<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E> extends java.lang.Object implements EvaluationVisitor<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
EvaluationVisitor
, to intercept
invocations of the visitXxx(...)
methods. By default, every
visitation is simply delegated to the decorated visitor. Subclasses may
extend these delegations with any additional behaviour that is required,
even replacing calls to the delegate where necessary.
This class works together with the AbstractEvaluationVisitor
to
ensure that recursive visitXxx()
calls are correctly intercepted
by me (and not just implemented within the decorated visitor). Moreover,
this works with decorators nested to any depth.
Modifier | Constructor and Description |
---|---|
protected |
EvaluationVisitorDecorator(EvaluationVisitor<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E> decorated) |
Modifier and Type | Method and Description |
---|---|
protected EvaluationVisitor<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E> |
getDelegate()
Obtains the visitor that I decorate.
|
Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E> |
getEnvironment()
Obtains my delegate's environment.
|
EvaluationEnvironment<C,O,P,CLS,E> |
getEvaluationEnvironment()
Obtains my delegate's evaluation environment.
|
java.util.Map<? extends CLS,? extends java.util.Set<? extends E>> |
getExtentMap()
Obtains my delegate's extent map.
|
java.lang.Object |
visitAssociationClassCallExp(AssociationClassCallExp<C,P> callExp)
Delegates to my decorated visitor.
|
java.lang.Object |
visitBooleanLiteralExp(BooleanLiteralExp<C> literalExp)
Delegates to my decorated visitor.
|
java.lang.Object |
visitCollectionItem(CollectionItem<C> item)
Delegates to my decorated visitor.
|
java.lang.Object |
visitCollectionLiteralExp(CollectionLiteralExp<C> literalExp)
Delegates to my decorated visitor.
|
java.lang.Object |
visitCollectionRange(CollectionRange<C> range)
Delegates to my decorated visitor.
|
java.lang.Object |
visitConstraint(CT constraint)
Delegates to my decorated visitor.
|
java.lang.Object |
visitEnumLiteralExp(EnumLiteralExp<C,EL> literalExp)
Delegates to my decorated visitor.
|
java.lang.Object |
visitExpression(OCLExpression<C> expression)
Delegates to my decorated visitor.
|
java.lang.Object |
visitExpressionInOCL(ExpressionInOCL<C,PM> expression)
Delegates to my decorated visitor.
|
java.lang.Object |
visitIfExp(IfExp<C> ifExp)
Delegates to my decorated visitor.
|
java.lang.Object |
visitIntegerLiteralExp(IntegerLiteralExp<C> literalExp)
Delegates to my decorated visitor.
|
java.lang.Object |
visitInvalidLiteralExp(InvalidLiteralExp<C> literalExp)
Delegates to my decorated visitor.
|
java.lang.Object |
visitIterateExp(IterateExp<C,PM> callExp)
Delegates to my decorated visitor.
|
java.lang.Object |
visitIteratorExp(IteratorExp<C,PM> callExp)
Delegates to my decorated visitor.
|
java.lang.Object |
visitLetExp(LetExp<C,PM> letExp)
Delegates to my decorated visitor.
|
java.lang.Object |
visitMessageExp(MessageExp<C,COA,SSA> messageExp)
Delegates to my decorated visitor.
|
java.lang.Object |
visitNullLiteralExp(NullLiteralExp<C> literalExp)
Delegates to my decorated visitor.
|
java.lang.Object |
visitOperationCallExp(OperationCallExp<C,O> callExp)
Delegates to my decorated visitor.
|
java.lang.Object |
visitPropertyCallExp(PropertyCallExp<C,P> callExp)
Delegates to my decorated visitor.
|
java.lang.Object |
visitRealLiteralExp(RealLiteralExp<C> literalExp)
Delegates to my decorated visitor.
|
java.lang.Object |
visitStateExp(StateExp<C,S> stateExp)
Delegates to my decorated visitor.
|
java.lang.Object |
visitStringLiteralExp(StringLiteralExp<C> literalExp)
Delegates to my decorated visitor.
|
java.lang.Object |
visitTupleLiteralExp(TupleLiteralExp<C,P> literalExp)
Delegates to my decorated visitor.
|
java.lang.Object |
visitTupleLiteralPart(TupleLiteralPart<C,P> part)
Delegates to my decorated visitor.
|
java.lang.Object |
visitTypeExp(TypeExp<C> typeExp)
Delegates to my decorated visitor.
|
java.lang.Object |
visitUnlimitedNaturalLiteralExp(UnlimitedNaturalLiteralExp<C> literalExp)
Delegates to my decorated visitor.
|
java.lang.Object |
visitUnspecifiedValueExp(UnspecifiedValueExp<C> unspecExp)
Delegates to my decorated visitor.
|
java.lang.Object |
visitVariable(Variable<C,PM> variable)
Delegates to my decorated visitor.
|
java.lang.Object |
visitVariableExp(VariableExp<C,PM> variableExp)
Delegates to my decorated visitor.
|
protected final EvaluationVisitor<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E> getDelegate()
public Environment<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E> getEnvironment()
public EvaluationEnvironment<C,O,P,CLS,E> getEvaluationEnvironment()
public java.util.Map<? extends CLS,? extends java.util.Set<? extends E>> getExtentMap()
public java.lang.Object visitConstraint(CT constraint)
visitConstraint
in interface EvaluationVisitor<PK,C,O,P,EL,PM,S,COA,SSA,CT,CLS,E>
visitConstraint
in interface Visitor<java.lang.Object,C,O,P,EL,PM,S,COA,SSA,CT>
public java.lang.Object visitExpression(OCLExpression<C> expression)
public java.lang.Object visitAssociationClassCallExp(AssociationClassCallExp<C,P> callExp)
public java.lang.Object visitBooleanLiteralExp(BooleanLiteralExp<C> literalExp)
public java.lang.Object visitCollectionItem(CollectionItem<C> item)
public java.lang.Object visitCollectionLiteralExp(CollectionLiteralExp<C> literalExp)
public java.lang.Object visitCollectionRange(CollectionRange<C> range)
public java.lang.Object visitEnumLiteralExp(EnumLiteralExp<C,EL> literalExp)
public java.lang.Object visitExpressionInOCL(ExpressionInOCL<C,PM> expression)
public java.lang.Object visitIntegerLiteralExp(IntegerLiteralExp<C> literalExp)
public java.lang.Object visitInvalidLiteralExp(InvalidLiteralExp<C> literalExp)
public java.lang.Object visitIterateExp(IterateExp<C,PM> callExp)
public java.lang.Object visitIteratorExp(IteratorExp<C,PM> callExp)
public java.lang.Object visitLetExp(LetExp<C,PM> letExp)
public java.lang.Object visitMessageExp(MessageExp<C,COA,SSA> messageExp)
public java.lang.Object visitNullLiteralExp(NullLiteralExp<C> literalExp)
public java.lang.Object visitOperationCallExp(OperationCallExp<C,O> callExp)
public java.lang.Object visitPropertyCallExp(PropertyCallExp<C,P> callExp)
public java.lang.Object visitRealLiteralExp(RealLiteralExp<C> literalExp)
public java.lang.Object visitStateExp(StateExp<C,S> stateExp)
public java.lang.Object visitStringLiteralExp(StringLiteralExp<C> literalExp)
public java.lang.Object visitTupleLiteralExp(TupleLiteralExp<C,P> literalExp)
public java.lang.Object visitTupleLiteralPart(TupleLiteralPart<C,P> part)
public java.lang.Object visitTypeExp(TypeExp<C> typeExp)
public java.lang.Object visitUnlimitedNaturalLiteralExp(UnlimitedNaturalLiteralExp<C> literalExp)
public java.lang.Object visitUnspecifiedValueExp(UnspecifiedValueExp<C> unspecExp)
public java.lang.Object visitVariable(Variable<C,PM> variable)