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.ConstraintCSCompletion
 
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, 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, visitTemplateBindingCS, visitTemplateParameterCS, visitTemplateParameterSubstitutionCS, visitTemplateSignatureCS, visitTuplePartCS, visitTupleTypeCS, visitTypedElementCS, visitTypedTypeRefCS, visitWildcardTypeRefCS
 
Methods inherited from class org.eclipse.ocl.examples.xtext.base.util.AbstractExtendingBaseCSVisitor
visitAttributeCS, visitClassCS, visitCollectionTypeRefCS, visitDataTypeCS, visitElementRefCS, visitEnumerationCS, visitEnumerationLiteralCS, visitParameterCS, visitPivotableElementCS, visitRootPackageCS, 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, visitCollectionTypeRefCS, visitConstraintCS, visitDataTypeCS, visitDetailCS, visitDocumentationCS, visitElementCS, visitElementRefCS, visitEnumerationCS, visitEnumerationLiteralCS, visitImportCS, visiting, visitLambdaTypeCS, visitLibraryCS, visitModelElementCS, visitModelElementRefCS, visitMultiplicityBoundsCS, visitMultiplicityStringCS, visitNamedElementCS, visitOperationCS, visitPackageCS, visitParameterCS, visitPathElementCS, visitPathNameCS, visitPivotableElementCS, visitPrimitiveTypeRefCS, visitReferenceCS, visitRootPackageCS, visitStructuralFeatureCS, visitTemplateBindingCS, visitTemplateParameterCS, visitTemplateParameterSubstitutionCS, visitTemplateSignatureCS, visitTuplePartCS, visitTupleTypeCS, visitTypedElementCS, visitTypedRefCS, visitTypedTypeRefCS, visitTypeParameterCS, visitTypeRefCS, visitWildcardTypeRefCS
 

Field Detail

metaModelManager

protected final MetaModelManager metaModelManager
Constructor Detail

EssentialOCLPostOrderVisitor

public EssentialOCLPostOrderVisitor(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(CollectionTypeCS csCollectionType)
Specified by:
visitCollectionTypeCS in interface EssentialOCLCSVisitor<Continuation<?>>
Overrides:
visitCollectionTypeCS in class AbstractEssentialOCLPostOrderVisitor

visitContextCS

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

visitExpCS

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

visitInfixExpCS

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

visitInvocationExpCS

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

visitOperatorCS

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

visitPrefixExpCS

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

visitSpecificationCS

public Continuation<?> visitSpecificationCS(SpecificationCS csSpecification)
Specified by:
visitSpecificationCS in interface BaseCSVisitor<Continuation<?>>
Overrides:
visitSpecificationCS in class AbstractExtendingBaseCSVisitor<Continuation<?>,CS2PivotConversion>

visitTypeNameExpCS

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

visitVariableCS

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