org.eclipse.ocl.examples.pivot.manager
Class TemplateParameterSubstitutionVisitor
java.lang.Object
org.eclipse.ocl.examples.pivot.util.AbstractVisitor<R,C>
org.eclipse.ocl.examples.pivot.util.AbstractExtendingVisitor<java.lang.Object,java.util.Map<TemplateParameter,java.util.List<DomainType>>>
org.eclipse.ocl.examples.pivot.manager.TemplateParameterSubstitutionVisitor
- All Implemented Interfaces:
- Visitor<java.lang.Object>
public class TemplateParameterSubstitutionVisitor
- extends AbstractExtendingVisitor<java.lang.Object,java.util.Map<TemplateParameter,java.util.List<DomainType>>>
A TemplateParameterSubstitutionVisitor traverses a CallExp to identify the formal/actual TemplateParameterSubstitutions
associated with that CallExp. This creates a mapping from each formal template parameter to a list of actual types that
correspond. This mapping can then be used to crteate new specializations.
The visitor should be constructed with a MetaModelManager in case any synthetic types need contructing, and the identity
of the self type incase one of the substitutions uses OclSelf.
Methods inherited from class org.eclipse.ocl.examples.pivot.util.AbstractExtendingVisitor |
visitAnnotation, visitAnyType, visitAssociationClass, visitAssociationClassCallExp, visitBagType, visitBehavior, visitBooleanLiteralExp, visitCallExp, visitCallOperationAction, visitCollectionItem, visitCollectionLiteralExp, visitCollectionLiteralPart, visitCollectionRange, visitComment, visitConnectionPointReference, visitConstraint, visitConstructorExp, visitConstructorPart, visitDataType, visitDetail, visitDynamicElement, visitDynamicProperty, visitDynamicType, visitElement, visitElementExtension, visitEnumeration, visitEnumerationLiteral, visitEnumLiteralExp, visitExpressionInOCL, visitFeature, visitFeatureCallExp, visitFinalState, visitIfExp, visitImport, visitIntegerLiteralExp, visitInvalidLiteralExp, visitInvalidType, visitIteration, visitLetExp, visitLibrary, visitLiteralExp, visitLoopExp, visitMessageExp, visitMessageType, visitNamedElement, visitNamespace, visitNavigationCallExp, visitNullLiteralExp, visitNumericLiteralExp, visitOCLExpression, visitOpaqueExpression, visitOperation, visitOperationTemplateParameter, visitOrderedSetType, visitPackage, visitPackageableElement, visitParameter, visitParameterableElement, visitPrecedence, visitPrimitiveLiteralExp, visitProfile, visitProperty, visitPseudostate, visitRealLiteralExp, visitRegion, visitRoot, visitSendSignalAction, visitSequenceType, visitSetType, visitSignal, visitState, visitStateExp, visitStateMachine, visitStereotype, visitStringLiteralExp, visitTemplateableElement, visitTemplateBinding, visitTemplateParameterSubstitution, visitTemplateParameterType, visitTemplateSignature, visitTransition, visitTrigger, visitTupleLiteralExp, visitTupleLiteralPart, visitTypedElement, visitTypedMultiplicityElement, visitTypeExp, visitTypeTemplateParameter, visitUnlimitedNaturalLiteralExp, visitUnspecifiedType, visitUnspecifiedValueExp, visitValueSpecification, visitVariable, visitVariableDeclaration, visitVariableExp, visitVertex, visitVoidType |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface org.eclipse.ocl.examples.pivot.util.Visitor |
getAdapter |
TemplateParameterSubstitutionVisitor
public TemplateParameterSubstitutionVisitor(MetaModelManager metaModelManager,
Type selfType)
specialize
@Nullable
public DomainType specialize(@Nullable
TemplateParameter templateParameter)
specialize
@NonNull
public DomainType specialize(@NonNull
TemplateableElement templateableElement)
toString
public java.lang.String toString()
- Overrides:
toString
in class java.lang.Object
visit
protected void visit(@Nullable
TypedElement formalElement,
@Nullable
DomainTypedElement actualElement)
visit
protected void visit(@Nullable
Type formalType,
@Nullable
DomainTypedElement actualElement)
visit
protected void visit(@Nullable
Type newFormal,
@Nullable
DomainType newActual)
visitAllTypes
protected void visitAllTypes(@NonNull
java.util.List<? extends Type> formalElements,
@NonNull
java.util.List<? extends DomainType> actualElements)
visitAllTypedElements
protected void visitAllTypedElements(@NonNull
java.util.List<? extends TypedElement> formalElements,
@Nullable
java.util.List<? extends DomainTypedElement> actualElements)
visiting
public java.lang.String visiting(@NonNull
Visitable visitable)
- Description copied from interface:
Visitor
- Return the result of visiting a visitable for which no more specific pivot type method
is available.
visitClass
@Nullable
public java.lang.Object visitClass(@NonNull
Class object)
- Specified by:
visitClass
in interface Visitor<java.lang.Object>
- Overrides:
visitClass
in class AbstractExtendingVisitor<java.lang.Object,java.util.Map<TemplateParameter,java.util.List<DomainType>>>
visitCollectionType
@Nullable
public java.lang.Object visitCollectionType(@NonNull
CollectionType object)
- Specified by:
visitCollectionType
in interface Visitor<java.lang.Object>
- Overrides:
visitCollectionType
in class AbstractExtendingVisitor<java.lang.Object,java.util.Map<TemplateParameter,java.util.List<DomainType>>>
visitIterateExp
@Nullable
public java.lang.Object visitIterateExp(@NonNull
IterateExp object)
- Specified by:
visitIterateExp
in interface Visitor<java.lang.Object>
- Overrides:
visitIterateExp
in class AbstractExtendingVisitor<java.lang.Object,java.util.Map<TemplateParameter,java.util.List<DomainType>>>
visitIteratorExp
@Nullable
public java.lang.Object visitIteratorExp(@NonNull
IteratorExp object)
- Specified by:
visitIteratorExp
in interface Visitor<java.lang.Object>
- Overrides:
visitIteratorExp
in class AbstractExtendingVisitor<java.lang.Object,java.util.Map<TemplateParameter,java.util.List<DomainType>>>
visitLambdaType
@Nullable
public java.lang.Object visitLambdaType(@NonNull
LambdaType object)
- Specified by:
visitLambdaType
in interface Visitor<java.lang.Object>
- Overrides:
visitLambdaType
in class AbstractExtendingVisitor<java.lang.Object,java.util.Map<TemplateParameter,java.util.List<DomainType>>>
visitMetaclass
@Nullable
public java.lang.Object visitMetaclass(@NonNull
Metaclass object)
- Specified by:
visitMetaclass
in interface Visitor<java.lang.Object>
- Overrides:
visitMetaclass
in class AbstractExtendingVisitor<java.lang.Object,java.util.Map<TemplateParameter,java.util.List<DomainType>>>
visitOperationCallExp
@Nullable
public java.lang.Object visitOperationCallExp(@NonNull
OperationCallExp object)
- Specified by:
visitOperationCallExp
in interface Visitor<java.lang.Object>
- Overrides:
visitOperationCallExp
in class AbstractExtendingVisitor<java.lang.Object,java.util.Map<TemplateParameter,java.util.List<DomainType>>>
visitPrimitiveType
@Nullable
public java.lang.Object visitPrimitiveType(@NonNull
PrimitiveType object)
- Specified by:
visitPrimitiveType
in interface Visitor<java.lang.Object>
- Overrides:
visitPrimitiveType
in class AbstractExtendingVisitor<java.lang.Object,java.util.Map<TemplateParameter,java.util.List<DomainType>>>
visitPropertyCallExp
@Nullable
public java.lang.Object visitPropertyCallExp(@NonNull
PropertyCallExp object)
- Specified by:
visitPropertyCallExp
in interface Visitor<java.lang.Object>
- Overrides:
visitPropertyCallExp
in class AbstractExtendingVisitor<java.lang.Object,java.util.Map<TemplateParameter,java.util.List<DomainType>>>
visitSelfType
@Nullable
public java.lang.Object visitSelfType(@NonNull
SelfType object)
- Specified by:
visitSelfType
in interface Visitor<java.lang.Object>
- Overrides:
visitSelfType
in class AbstractExtendingVisitor<java.lang.Object,java.util.Map<TemplateParameter,java.util.List<DomainType>>>
visitTemplateParameter
@Nullable
public java.lang.Object visitTemplateParameter(@NonNull
TemplateParameter object)
- Specified by:
visitTemplateParameter
in interface Visitor<java.lang.Object>
- Overrides:
visitTemplateParameter
in class AbstractExtendingVisitor<java.lang.Object,java.util.Map<TemplateParameter,java.util.List<DomainType>>>
visitTupleType
@Nullable
public java.lang.Object visitTupleType(@NonNull
TupleType object)
- Specified by:
visitTupleType
in interface Visitor<java.lang.Object>
- Overrides:
visitTupleType
in class AbstractExtendingVisitor<java.lang.Object,java.util.Map<TemplateParameter,java.util.List<DomainType>>>
visitType
@Nullable
public java.lang.Object visitType(@NonNull
Type object)
- Specified by:
visitType
in interface Visitor<java.lang.Object>
- Overrides:
visitType
in class AbstractExtendingVisitor<java.lang.Object,java.util.Map<TemplateParameter,java.util.List<DomainType>>>