public class TemplateParameterSubstitutionVisitor extends AbstractExtendingVisitor<java.lang.Object,java.util.Map<TemplateParameter,java.util.List<DomainType>>>
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.
context
Constructor and Description |
---|
TemplateParameterSubstitutionVisitor(MetaModelManager metaModelManager,
Type selfType) |
Modifier and Type | Method and Description |
---|---|
DomainType |
specialize(TemplateableElement templateableElement) |
DomainType |
specialize(TemplateParameter templateParameter) |
java.lang.String |
toString() |
protected void |
visit(TypedElement formalElement,
DomainTypedElement actualElement) |
protected void |
visit(Type newFormal,
DomainType newActual) |
protected void |
visit(Type formalType,
DomainTypedElement actualElement) |
protected void |
visitAllTypedElements(java.util.List<? extends TypedElement> formalElements,
java.util.List<? extends DomainTypedElement> actualElements) |
protected void |
visitAllTypes(java.util.List<? extends Type> formalElements,
java.util.List<? extends DomainType> actualElements) |
java.lang.Object |
visitClass(Class object) |
java.lang.Object |
visitCollectionType(CollectionType object) |
java.lang.String |
visiting(Visitable visitable)
Return the result of visiting a visitable for which no more specific pivot type method
is available.
|
java.lang.Object |
visitIterateExp(IterateExp object) |
java.lang.Object |
visitIteratorExp(IteratorExp object) |
java.lang.Object |
visitLambdaType(LambdaType object) |
java.lang.Object |
visitMetaclass(Metaclass object) |
java.lang.Object |
visitOperationCallExp(OperationCallExp object) |
java.lang.Object |
visitPrimitiveType(PrimitiveType object) |
java.lang.Object |
visitPropertyCallExp(PropertyCallExp object) |
java.lang.Object |
visitSelfType(SelfType object) |
java.lang.Object |
visitTemplateParameter(TemplateParameter object) |
java.lang.Object |
visitTupleType(TupleType object) |
java.lang.Object |
visitType(Type object) |
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
getAdapter, safeVisit, visit
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getAdapter
public TemplateParameterSubstitutionVisitor(MetaModelManager metaModelManager, Type selfType)
@Nullable public DomainType specialize(@Nullable TemplateParameter templateParameter)
@NonNull public DomainType specialize(@NonNull TemplateableElement templateableElement)
public java.lang.String toString()
toString
in class java.lang.Object
protected void visit(@Nullable TypedElement formalElement, @Nullable DomainTypedElement actualElement)
protected void visit(@Nullable Type formalType, @Nullable DomainTypedElement actualElement)
protected void visit(@Nullable Type newFormal, @Nullable DomainType newActual)
protected void visitAllTypes(@NonNull java.util.List<? extends Type> formalElements, @NonNull java.util.List<? extends DomainType> actualElements)
protected void visitAllTypedElements(@NonNull java.util.List<? extends TypedElement> formalElements, @Nullable java.util.List<? extends DomainTypedElement> actualElements)
public java.lang.String visiting(@NonNull Visitable visitable)
Visitor
@Nullable public java.lang.Object visitClass(@NonNull Class object)
visitClass
in interface Visitor<java.lang.Object>
visitClass
in class AbstractExtendingVisitor<java.lang.Object,java.util.Map<TemplateParameter,java.util.List<DomainType>>>
@Nullable public java.lang.Object visitCollectionType(@NonNull CollectionType object)
visitCollectionType
in interface Visitor<java.lang.Object>
visitCollectionType
in class AbstractExtendingVisitor<java.lang.Object,java.util.Map<TemplateParameter,java.util.List<DomainType>>>
@Nullable public java.lang.Object visitIterateExp(@NonNull IterateExp object)
visitIterateExp
in interface Visitor<java.lang.Object>
visitIterateExp
in class AbstractExtendingVisitor<java.lang.Object,java.util.Map<TemplateParameter,java.util.List<DomainType>>>
@Nullable public java.lang.Object visitIteratorExp(@NonNull IteratorExp object)
visitIteratorExp
in interface Visitor<java.lang.Object>
visitIteratorExp
in class AbstractExtendingVisitor<java.lang.Object,java.util.Map<TemplateParameter,java.util.List<DomainType>>>
@Nullable public java.lang.Object visitLambdaType(@NonNull LambdaType object)
visitLambdaType
in interface Visitor<java.lang.Object>
visitLambdaType
in class AbstractExtendingVisitor<java.lang.Object,java.util.Map<TemplateParameter,java.util.List<DomainType>>>
@Nullable public java.lang.Object visitMetaclass(@NonNull Metaclass object)
visitMetaclass
in interface Visitor<java.lang.Object>
visitMetaclass
in class AbstractExtendingVisitor<java.lang.Object,java.util.Map<TemplateParameter,java.util.List<DomainType>>>
@Nullable public java.lang.Object visitOperationCallExp(@NonNull OperationCallExp object)
visitOperationCallExp
in interface Visitor<java.lang.Object>
visitOperationCallExp
in class AbstractExtendingVisitor<java.lang.Object,java.util.Map<TemplateParameter,java.util.List<DomainType>>>
@Nullable public java.lang.Object visitPrimitiveType(@NonNull PrimitiveType object)
visitPrimitiveType
in interface Visitor<java.lang.Object>
visitPrimitiveType
in class AbstractExtendingVisitor<java.lang.Object,java.util.Map<TemplateParameter,java.util.List<DomainType>>>
@Nullable public java.lang.Object visitPropertyCallExp(@NonNull PropertyCallExp object)
visitPropertyCallExp
in interface Visitor<java.lang.Object>
visitPropertyCallExp
in class AbstractExtendingVisitor<java.lang.Object,java.util.Map<TemplateParameter,java.util.List<DomainType>>>
@Nullable public java.lang.Object visitSelfType(@NonNull SelfType object)
visitSelfType
in interface Visitor<java.lang.Object>
visitSelfType
in class AbstractExtendingVisitor<java.lang.Object,java.util.Map<TemplateParameter,java.util.List<DomainType>>>
@Nullable public java.lang.Object visitTemplateParameter(@NonNull TemplateParameter object)
visitTemplateParameter
in interface Visitor<java.lang.Object>
visitTemplateParameter
in class AbstractExtendingVisitor<java.lang.Object,java.util.Map<TemplateParameter,java.util.List<DomainType>>>
@Nullable public java.lang.Object visitTupleType(@NonNull TupleType object)
visitTupleType
in interface Visitor<java.lang.Object>
visitTupleType
in class AbstractExtendingVisitor<java.lang.Object,java.util.Map<TemplateParameter,java.util.List<DomainType>>>
@Nullable public java.lang.Object visitType(@NonNull Type object)
visitType
in interface Visitor<java.lang.Object>
visitType
in class AbstractExtendingVisitor<java.lang.Object,java.util.Map<TemplateParameter,java.util.List<DomainType>>>