org.eclipse.ocl.examples.codegen.analyzer
Class DependencyVisitor

java.lang.Object
  extended by org.eclipse.ocl.examples.codegen.cgmodel.util.AbstractCGModelVisitor<R,C>
      extended by org.eclipse.ocl.examples.codegen.cgmodel.util.AbstractExtendingCGModelVisitor<java.lang.Object,CodeGenAnalyzer>
          extended by org.eclipse.ocl.examples.codegen.analyzer.DependencyVisitor
All Implemented Interfaces:
CGModelVisitor<java.lang.Object>
Direct Known Subclasses:
JavaDependencyVisitor

public class DependencyVisitor
extends AbstractExtendingCGModelVisitor<java.lang.Object,CodeGenAnalyzer>

Traverses the AST adding any internode dependencies to ensure correct declaration ordering.


Nested Class Summary
 class DependencyVisitor.Id2DependencyVisitor
           
 
Field Summary
protected  DependencyVisitor.Id2DependencyVisitor id2DependencyVisitor
           
protected static int NOT_AVAILABLE
           
 
Fields inherited from class org.eclipse.ocl.examples.codegen.cgmodel.util.AbstractCGModelVisitor
context
 
Constructor Summary
DependencyVisitor(CodeGenAnalyzer analyzer)
           
 
Method Summary
protected  void addDependency(CGValuedElement cgElement, CGValuedElement dependsOn)
           
 int getRootDepth(CGValuedElement cgElement)
           
 java.lang.Iterable<CGValuedElement> getSortedDependencies()
           
 void visit(CGNamedElement cgElement)
           
 void visitAll(java.lang.Iterable<? extends CGNamedElement> cgElements)
           
 java.lang.Object visitCGCollectionExp(CGCollectionExp cgCollectionExp)
           
 java.lang.Object visitCGCollectionPart(CGCollectionPart cgCollectionPart)
           
 java.lang.Object visitCGConstantExp(CGConstantExp visitCGConstantExp)
           
 java.lang.Object visitCGConstructorPart(CGConstructorPart cgConstructorPart)
           
 java.lang.Object visitCGElement(CGElement cgElement)
           
 java.lang.Object visitCGElementId(CGElementId cgElementId)
           
 java.lang.Object visitCGTupleExp(CGTupleExp cgTupleExp)
           
 java.lang.Object visitCGTuplePart(CGTuplePart cgTuplePart)
           
 java.lang.Object visitCGVariable(CGVariable cgVariable)
           
 java.lang.Object visitCGVariableExp(CGVariableExp cgVariableExp)
           
 java.lang.Object visiting(CGElement visitable)
          Return the result of visiting a visitable for which no more specific pivot type method is available.
 
Methods inherited from class org.eclipse.ocl.examples.codegen.cgmodel.util.AbstractExtendingCGModelVisitor
visitCGBoolean, visitCGBoxExp, visitCGBuiltInIterationCallExp, visitCGCallExp, visitCGCastParameter, visitCGCatchExp, visitCGClass, visitCGConstant, visitCGConstraint, visitCGConstructorExp, visitCGEcoreClassConstructorExp, visitCGEcoreDataTypeConstructorExp, visitCGEcoreOperationCallExp, visitCGEcorePropertyCallExp, visitCGEqualsExp, visitCGExecutorCompositionProperty, visitCGExecutorConstructorPart, visitCGExecutorNavigationProperty, visitCGExecutorOperation, visitCGExecutorOperationCallExp, visitCGExecutorOppositeProperty, visitCGExecutorProperty, visitCGExecutorPropertyCallExp, visitCGExecutorType, visitCGFinalVariable, visitCGGuardExp, visitCGIfExp, visitCGInfinity, visitCGInteger, visitCGInvalid, visitCGIsInvalidExp, visitCGIsUndefinedExp, visitCGIterationCallExp, visitCGIterator, visitCGLetExp, visitCGLibraryIterateCallExp, visitCGLibraryIterationCallExp, visitCGLibraryOperationCallExp, visitCGLibraryPropertyCallExp, visitCGLocalVariable, visitCGModel, visitCGNamedElement, visitCGNull, visitCGOperation, visitCGOperationCallExp, visitCGPackage, visitCGParameter, visitCGProperty, visitCGPropertyCallExp, visitCGReal, visitCGSettableVariable, visitCGString, visitCGText, visitCGTextParameter, visitCGThrowExp, visitCGTuplePartCallExp, visitCGTypedElement, visitCGTypeExp, visitCGTypeId, visitCGUnboxExp, visitCGValuedElement
 
Methods inherited from class org.eclipse.ocl.examples.codegen.cgmodel.util.AbstractCGModelVisitor
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.codegen.cgmodel.util.CGModelVisitor
getAdapter
 

Field Detail

NOT_AVAILABLE

protected static final int NOT_AVAILABLE
See Also:
Constant Field Values

id2DependencyVisitor

@NonNull
protected DependencyVisitor.Id2DependencyVisitor id2DependencyVisitor
Constructor Detail

DependencyVisitor

public DependencyVisitor(@NonNull
                         CodeGenAnalyzer analyzer)
Method Detail

visit

public void visit(@NonNull
                  CGNamedElement cgElement)

visitAll

public void visitAll(@Nullable
                     java.lang.Iterable<? extends CGNamedElement> cgElements)

addDependency

protected void addDependency(@Nullable
                             CGValuedElement cgElement,
                             @Nullable
                             CGValuedElement dependsOn)

getRootDepth

public int getRootDepth(@NonNull
                        CGValuedElement cgElement)

getSortedDependencies

@NonNull
public java.lang.Iterable<CGValuedElement> getSortedDependencies()

visitCGCollectionExp

@Nullable
public java.lang.Object visitCGCollectionExp(@NonNull
                                                      CGCollectionExp cgCollectionExp)
Specified by:
visitCGCollectionExp in interface CGModelVisitor<java.lang.Object>
Overrides:
visitCGCollectionExp in class AbstractExtendingCGModelVisitor<java.lang.Object,CodeGenAnalyzer>

visitCGConstructorPart

@Nullable
public java.lang.Object visitCGConstructorPart(@NonNull
                                                        CGConstructorPart cgConstructorPart)
Specified by:
visitCGConstructorPart in interface CGModelVisitor<java.lang.Object>
Overrides:
visitCGConstructorPart in class AbstractExtendingCGModelVisitor<java.lang.Object,CodeGenAnalyzer>

visitCGCollectionPart

@Nullable
public java.lang.Object visitCGCollectionPart(@NonNull
                                                       CGCollectionPart cgCollectionPart)
Specified by:
visitCGCollectionPart in interface CGModelVisitor<java.lang.Object>
Overrides:
visitCGCollectionPart in class AbstractExtendingCGModelVisitor<java.lang.Object,CodeGenAnalyzer>

visitCGConstantExp

@Nullable
public java.lang.Object visitCGConstantExp(@NonNull
                                                    CGConstantExp visitCGConstantExp)
Specified by:
visitCGConstantExp in interface CGModelVisitor<java.lang.Object>
Overrides:
visitCGConstantExp in class AbstractExtendingCGModelVisitor<java.lang.Object,CodeGenAnalyzer>

visitCGElement

@Nullable
public java.lang.Object visitCGElement(@NonNull
                                                CGElement cgElement)
Specified by:
visitCGElement in interface CGModelVisitor<java.lang.Object>
Overrides:
visitCGElement in class AbstractExtendingCGModelVisitor<java.lang.Object,CodeGenAnalyzer>

visitCGElementId

@Nullable
public java.lang.Object visitCGElementId(@NonNull
                                                  CGElementId cgElementId)
Specified by:
visitCGElementId in interface CGModelVisitor<java.lang.Object>
Overrides:
visitCGElementId in class AbstractExtendingCGModelVisitor<java.lang.Object,CodeGenAnalyzer>

visitCGTuplePart

@Nullable
public java.lang.Object visitCGTuplePart(@NonNull
                                                  CGTuplePart cgTuplePart)
Specified by:
visitCGTuplePart in interface CGModelVisitor<java.lang.Object>
Overrides:
visitCGTuplePart in class AbstractExtendingCGModelVisitor<java.lang.Object,CodeGenAnalyzer>

visitCGTupleExp

@Nullable
public java.lang.Object visitCGTupleExp(@NonNull
                                                 CGTupleExp cgTupleExp)
Specified by:
visitCGTupleExp in interface CGModelVisitor<java.lang.Object>
Overrides:
visitCGTupleExp in class AbstractExtendingCGModelVisitor<java.lang.Object,CodeGenAnalyzer>

visitCGVariable

@Nullable
public java.lang.Object visitCGVariable(@NonNull
                                                 CGVariable cgVariable)
Specified by:
visitCGVariable in interface CGModelVisitor<java.lang.Object>
Overrides:
visitCGVariable in class AbstractExtendingCGModelVisitor<java.lang.Object,CodeGenAnalyzer>

visitCGVariableExp

@Nullable
public java.lang.Object visitCGVariableExp(@NonNull
                                                    CGVariableExp cgVariableExp)
Specified by:
visitCGVariableExp in interface CGModelVisitor<java.lang.Object>
Overrides:
visitCGVariableExp in class AbstractExtendingCGModelVisitor<java.lang.Object,CodeGenAnalyzer>

visiting

@Nullable
public java.lang.Object visiting(@NonNull
                                          CGElement visitable)
Description copied from interface: CGModelVisitor
Return the result of visiting a visitable for which no more specific pivot type method is available.