org.eclipse.ocl.examples.xtext.essentialocl.cs2pivot
Class EssentialOCLPostOrderVisitor

java.lang.Object
  extended by org.eclipse.ocl.examples.xtext.base.util.AbstractBaseCSVisitor<R,C>
      extended by org.eclipse.ocl.examples.xtext.base.util.AbstractExtendingBaseCSVisitor<Continuation<?>,CS2PivotConversion>
          extended by org.eclipse.ocl.examples.xtext.base.cs2pivot.BasePostOrderVisitor
              extended by org.eclipse.ocl.examples.xtext.essentialocl.cs2pivot.AbstractEssentialOCLPostOrderVisitor
                  extended by org.eclipse.ocl.examples.xtext.essentialocl.cs2pivot.EssentialOCLPostOrderVisitor
All Implemented Interfaces:
BaseCSVisitor<Continuation<?>>, EssentialOCLCSVisitor<Continuation<?>>
Direct Known Subclasses:
AbstractCompleteOCLPostOrderVisitor, AbstractOCLinEcorePostOrderVisitor, AbstractOCLstdlibPostOrderVisitor

public class EssentialOCLPostOrderVisitor
extends AbstractEssentialOCLPostOrderVisitor


Nested Class Summary
protected static class EssentialOCLPostOrderVisitor.ContextCSCompletion
           
 
Nested classes/interfaces inherited from class org.eclipse.ocl.examples.xtext.base.cs2pivot.BasePostOrderVisitor
BasePostOrderVisitor.ListCompletion<CST extends ModelElementCS,P extends NamedElement>, BasePostOrderVisitor.SpecificationCSCompletion
 
Field Summary
protected  MetaModelManager metaModelManager
           
 
Fields inherited from class org.eclipse.ocl.examples.xtext.base.util.AbstractBaseCSVisitor
context
 
Constructor Summary
EssentialOCLPostOrderVisitor(CS2PivotConversion context)
           
 
Method Summary
protected  void createInfixOperatorTree(InfixExpCS csInfix)
          Establish the parent-{source,argument} relationships between all infix operators in accordance with the precedence and associativity configuration.
protected  java.util.Map<Precedence,java.util.List<java.lang.Integer>> createInfixPrecedenceToOperatorIndexesMap(InfixExpCS csInfix)
          Return a map of operator indexes for each used precedence.
protected  void initializePrefixOperators(PrefixExpCS prefixExpCS, OperatorCS csParent)
           
protected  void interleavePrefixes(InfixExpCS csElement)
           
protected  void interleaveUnaryOperator(UnaryOperatorCS csOperator)
           
 Continuation<?> visitCollectionTypeCS(CollectionTypeCS csCollectionType)
           
 Continuation<?> visitContextCS(ContextCS csContext)
           
 Continuation<?> visitExpCS(ExpCS csExp)
           
 Continuation<?> visitInfixExpCS(InfixExpCS csInfixExp)
           
 Continuation<?> visitInvocationExpCS(InvocationExpCS csNavigatingExp)
           
 Continuation<?> visitOperatorCS(OperatorCS csOperator)
           
 Continuation<?> visitPrefixExpCS(PrefixExpCS csPrefixExp)
           
 Continuation<?> visitSpecificationCS(SpecificationCS csSpecification)
           
 Continuation<?> visitTypeNameExpCS(TypeNameExpCS object)
           
 Continuation<?> visitVariableCS(VariableCS csVariable)
           
 
Methods inherited from class org.eclipse.ocl.examples.xtext.essentialocl.cs2pivot.AbstractEssentialOCLPostOrderVisitor
visitBinaryOperatorCS, visitBooleanLiteralExpCS, visitCollectionLiteralExpCS, visitCollectionLiteralPartCS, visitConstructorExpCS, visitConstructorPartCS, visitExpSpecificationCS, visitIfExpCS, visitIndexExpCS, visitInvalidLiteralExpCS, visitLetExpCS, visitLetVariableCS, visitLiteralExpCS, visitNamedExpCS, visitNameExpCS, visitNavigatingArgCS, visitNavigationOperatorCS, visitNestedExpCS, visitNullLiteralExpCS, visitNumberLiteralExpCS, visitPrimitiveLiteralExpCS, visitSelfExpCS, visitStringLiteralExpCS, visitTupleLiteralExpCS, visitTupleLiteralPartCS, visitTypeLiteralExpCS, visitUnaryOperatorCS, visitUnlimitedNaturalLiteralExpCS
 
Methods inherited from class org.eclipse.ocl.examples.xtext.base.cs2pivot.BasePostOrderVisitor
getTemplateableElementContainer, refreshList, visitAnnotationCS, visitAnnotationElementCS, visitClassifierCS, visitConstraintCS, visitDetailCS, visitDocumentationCS, visitElementCS, visitImportCS, visiting, visitLambdaTypeCS, visitLibraryCS, visitModelElementCS, visitModelElementRefCS, visitMultiplicityBoundsCS, visitMultiplicityStringCS, visitNamedElementCS, visitOperationCS, visitPackageCS, visitPathElementCS, visitPathNameCS, visitPrimitiveTypeRefCS, visitReferenceCS, visitRootPackageCS, visitTemplateBindingCS, visitTemplateParameterCS, visitTemplateParameterSubstitutionCS, visitTemplateSignatureCS, visitTuplePartCS, visitTupleTypeCS, visitTypedElementCS, visitTypedTypeRefCS, visitWildcardTypeRefCS
 
Methods inherited from class org.eclipse.ocl.examples.xtext.base.util.AbstractExtendingBaseCSVisitor
visitAttributeCS, visitClassCS, visitDataTypeCS, visitElementRefCS, visitEnumerationCS, visitEnumerationLiteralCS, visitParameterCS, visitPathElementWithURICS, visitPivotableElementCS, visitStructuralFeatureCS, visitTypedRefCS, visitTypeParameterCS, visitTypeRefCS
 
Methods inherited from class org.eclipse.ocl.examples.xtext.base.util.AbstractBaseCSVisitor
getAdapter, safeVisit, visit
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.eclipse.ocl.examples.xtext.base.util.BaseCSVisitor
getAdapter, visitAnnotationCS, visitAnnotationElementCS, visitAttributeCS, visitClassCS, visitClassifierCS, visitConstraintCS, visitDataTypeCS, visitDetailCS, visitDocumentationCS, visitElementCS, visitElementRefCS, visitEnumerationCS, visitEnumerationLiteralCS, visitImportCS, visiting, visitLambdaTypeCS, visitLibraryCS, visitModelElementCS, visitModelElementRefCS, visitMultiplicityBoundsCS, visitMultiplicityStringCS, visitNamedElementCS, visitOperationCS, visitPackageCS, visitParameterCS, visitPathElementCS, visitPathElementWithURICS, visitPathNameCS, visitPivotableElementCS, visitPrimitiveTypeRefCS, visitReferenceCS, visitRootPackageCS, visitStructuralFeatureCS, visitTemplateBindingCS, visitTemplateParameterCS, visitTemplateParameterSubstitutionCS, visitTemplateSignatureCS, visitTuplePartCS, visitTupleTypeCS, visitTypedElementCS, visitTypedRefCS, visitTypedTypeRefCS, visitTypeParameterCS, visitTypeRefCS, visitWildcardTypeRefCS
 

Field Detail

metaModelManager

@NonNull
protected final MetaModelManager metaModelManager
Constructor Detail

EssentialOCLPostOrderVisitor

public EssentialOCLPostOrderVisitor(@NonNull
                                    CS2PivotConversion context)
Method Detail

createInfixOperatorTree

protected void createInfixOperatorTree(InfixExpCS csInfix)
Establish the parent-{source,argument} relationships between all infix operators in accordance with the precedence and associativity configuration.


createInfixPrecedenceToOperatorIndexesMap

protected java.util.Map<Precedence,java.util.List<java.lang.Integer>> createInfixPrecedenceToOperatorIndexesMap(InfixExpCS csInfix)
Return a map of operator indexes for each used precedence.


initializePrefixOperators

protected void initializePrefixOperators(PrefixExpCS prefixExpCS,
                                         OperatorCS csParent)

interleavePrefixes

protected void interleavePrefixes(InfixExpCS csElement)

interleaveUnaryOperator

protected void interleaveUnaryOperator(UnaryOperatorCS csOperator)

visitCollectionTypeCS

public Continuation<?> visitCollectionTypeCS(@NonNull
                                             CollectionTypeCS csCollectionType)
Specified by:
visitCollectionTypeCS in interface EssentialOCLCSVisitor<Continuation<?>>
Overrides:
visitCollectionTypeCS in class AbstractEssentialOCLPostOrderVisitor

visitContextCS

public Continuation<?> visitContextCS(@NonNull
                                      ContextCS csContext)
Specified by:
visitContextCS in interface EssentialOCLCSVisitor<Continuation<?>>
Overrides:
visitContextCS in class AbstractEssentialOCLPostOrderVisitor

visitExpCS

public Continuation<?> visitExpCS(@NonNull
                                  ExpCS csExp)
Specified by:
visitExpCS in interface EssentialOCLCSVisitor<Continuation<?>>
Overrides:
visitExpCS in class AbstractEssentialOCLPostOrderVisitor

visitInfixExpCS

public Continuation<?> visitInfixExpCS(@NonNull
                                       InfixExpCS csInfixExp)
Specified by:
visitInfixExpCS in interface EssentialOCLCSVisitor<Continuation<?>>
Overrides:
visitInfixExpCS in class AbstractEssentialOCLPostOrderVisitor

visitInvocationExpCS

public Continuation<?> visitInvocationExpCS(@NonNull
                                            InvocationExpCS csNavigatingExp)
Specified by:
visitInvocationExpCS in interface EssentialOCLCSVisitor<Continuation<?>>
Overrides:
visitInvocationExpCS in class AbstractEssentialOCLPostOrderVisitor

visitOperatorCS

public Continuation<?> visitOperatorCS(@NonNull
                                       OperatorCS csOperator)
Specified by:
visitOperatorCS in interface EssentialOCLCSVisitor<Continuation<?>>
Overrides:
visitOperatorCS in class AbstractEssentialOCLPostOrderVisitor

visitPrefixExpCS

public Continuation<?> visitPrefixExpCS(@NonNull
                                        PrefixExpCS csPrefixExp)
Specified by:
visitPrefixExpCS in interface EssentialOCLCSVisitor<Continuation<?>>
Overrides:
visitPrefixExpCS in class AbstractEssentialOCLPostOrderVisitor

visitSpecificationCS

public Continuation<?> visitSpecificationCS(@NonNull
                                            SpecificationCS csSpecification)
Specified by:
visitSpecificationCS in interface BaseCSVisitor<Continuation<?>>
Overrides:
visitSpecificationCS in class BasePostOrderVisitor

visitTypeNameExpCS

public Continuation<?> visitTypeNameExpCS(@NonNull
                                          TypeNameExpCS object)
Specified by:
visitTypeNameExpCS in interface EssentialOCLCSVisitor<Continuation<?>>
Overrides:
visitTypeNameExpCS in class AbstractEssentialOCLPostOrderVisitor

visitVariableCS

public Continuation<?> visitVariableCS(@NonNull
                                       VariableCS csVariable)
Specified by:
visitVariableCS in interface EssentialOCLCSVisitor<Continuation<?>>
Overrides:
visitVariableCS in class AbstractEssentialOCLPostOrderVisitor