|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.eclipse.ocl.examples.codegen.cgmodel.util.AbstractCGModelVisitor<R,C>
org.eclipse.ocl.examples.codegen.cgmodel.util.AbstractExtendingCGModelVisitor<java.lang.Object,CodeGenAnalyzer>
org.eclipse.ocl.examples.codegen.analyzer.BoxingAnalyzer
public class BoxingAnalyzer
A BoxingAnalyzer performs a bottom up tree-traversal inserting:
CGBoxExp or CGUnboxExp whereever a conversion from boxed to unboxed or vice-versa is required.
CGCastExp whereever the apparent type is not available (e.g. Parameters passed as Object).
CGGuardExp whereever a non-null value is required.
No attempt at optimisation is made, since this can be performed by Common SubExpression Elimination.
Field Summary | |
---|---|
protected CodeGenerator |
codeGenerator
|
Fields inherited from class org.eclipse.ocl.examples.codegen.cgmodel.util.AbstractCGModelVisitor |
---|
context |
Constructor Summary | |
---|---|
BoxingAnalyzer(CodeGenAnalyzer analyzer)
|
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 |
---|
@NonNull protected final CodeGenerator codeGenerator
Constructor Detail |
---|
public BoxingAnalyzer(@NonNull CodeGenAnalyzer analyzer)
Method Detail |
---|
protected boolean hasOclVoidOperation(@NonNull OperationId operationId)
@Nullable protected CGValuedElement rewriteAsAssertNonNulled(@Nullable CGValuedElement cgChild)
protected CGValuedElement rewriteAsBoxed(@Nullable CGValuedElement cgChild)
@Deprecated @Nullable protected CGValuedElement rewriteAsGuarded(@Nullable CGValuedElement cgChild)
@Nullable protected CGValuedElement rewriteAsGuarded(@Nullable CGValuedElement cgChild, @NonNull java.lang.String message)
protected CGValuedElement rewriteAsCast(@Nullable CGVariableExp cgChild)
protected CGValuedElement rewriteAsUnboxed(@Nullable CGValuedElement cgChild)
@Nullable public java.lang.Object visiting(@NonNull CGElement visitable)
CGModelVisitor
@Nullable public java.lang.Object visitCGBuiltInIterationCallExp(@NonNull CGBuiltInIterationCallExp cgElement)
visitCGBuiltInIterationCallExp
in interface CGModelVisitor<java.lang.Object>
visitCGBuiltInIterationCallExp
in class AbstractExtendingCGModelVisitor<java.lang.Object,CodeGenAnalyzer>
@Nullable public java.lang.Object visitCGConstructorPart(@NonNull CGConstructorPart cgConstructorPart)
visitCGConstructorPart
in interface CGModelVisitor<java.lang.Object>
visitCGConstructorPart
in class AbstractExtendingCGModelVisitor<java.lang.Object,CodeGenAnalyzer>
@Nullable public java.lang.Object visitCGEcoreOperation(@NonNull CGEcoreOperation cgElement)
visitCGEcoreOperation
in interface CGModelVisitor<java.lang.Object>
visitCGEcoreOperation
in class AbstractExtendingCGModelVisitor<java.lang.Object,CodeGenAnalyzer>
@Nullable public java.lang.Object visitCGEcoreOperationCallExp(@NonNull CGEcoreOperationCallExp cgElement)
visitCGEcoreOperationCallExp
in interface CGModelVisitor<java.lang.Object>
visitCGEcoreOperationCallExp
in class AbstractExtendingCGModelVisitor<java.lang.Object,CodeGenAnalyzer>
@Nullable public java.lang.Object visitCGEcoreOppositePropertyCallExp(@NonNull CGEcoreOppositePropertyCallExp cgElement)
visitCGEcoreOppositePropertyCallExp
in interface CGModelVisitor<java.lang.Object>
visitCGEcoreOppositePropertyCallExp
in class AbstractExtendingCGModelVisitor<java.lang.Object,CodeGenAnalyzer>
@Nullable public java.lang.Object visitCGEcorePropertyCallExp(@NonNull CGEcorePropertyCallExp cgElement)
visitCGEcorePropertyCallExp
in interface CGModelVisitor<java.lang.Object>
visitCGEcorePropertyCallExp
in class AbstractExtendingCGModelVisitor<java.lang.Object,CodeGenAnalyzer>
@Nullable public java.lang.Object visitCGExecutorOppositePropertyCallExp(@NonNull CGExecutorOppositePropertyCallExp cgElement)
visitCGExecutorOppositePropertyCallExp
in interface CGModelVisitor<java.lang.Object>
visitCGExecutorOppositePropertyCallExp
in class AbstractExtendingCGModelVisitor<java.lang.Object,CodeGenAnalyzer>
@Nullable public java.lang.Object visitCGExecutorPropertyCallExp(@NonNull CGExecutorPropertyCallExp cgElement)
visitCGExecutorPropertyCallExp
in interface CGModelVisitor<java.lang.Object>
visitCGExecutorPropertyCallExp
in class AbstractExtendingCGModelVisitor<java.lang.Object,CodeGenAnalyzer>
@Nullable public java.lang.Object visitCGElement(@NonNull CGElement cgElement)
visitCGElement
in interface CGModelVisitor<java.lang.Object>
visitCGElement
in class AbstractExtendingCGModelVisitor<java.lang.Object,CodeGenAnalyzer>
@Nullable public java.lang.Object visitCGIfExp(@NonNull CGIfExp cgElement)
visitCGIfExp
in interface CGModelVisitor<java.lang.Object>
visitCGIfExp
in class AbstractExtendingCGModelVisitor<java.lang.Object,CodeGenAnalyzer>
@Nullable public java.lang.Object visitCGIsEqualExp(@NonNull CGIsEqualExp cgElement)
visitCGIsEqualExp
in interface CGModelVisitor<java.lang.Object>
visitCGIsEqualExp
in class AbstractExtendingCGModelVisitor<java.lang.Object,CodeGenAnalyzer>
@Nullable public java.lang.Object visitCGLibraryIterateCallExp(@NonNull CGLibraryIterateCallExp cgElement)
visitCGLibraryIterateCallExp
in interface CGModelVisitor<java.lang.Object>
visitCGLibraryIterateCallExp
in class AbstractExtendingCGModelVisitor<java.lang.Object,CodeGenAnalyzer>
@Nullable public java.lang.Object visitCGLibraryIterationCallExp(@NonNull CGLibraryIterationCallExp cgElement)
visitCGLibraryIterationCallExp
in interface CGModelVisitor<java.lang.Object>
visitCGLibraryIterationCallExp
in class AbstractExtendingCGModelVisitor<java.lang.Object,CodeGenAnalyzer>
@Nullable public java.lang.Object visitCGLibraryOperationCallExp(@NonNull CGLibraryOperationCallExp cgElement)
visitCGLibraryOperationCallExp
in interface CGModelVisitor<java.lang.Object>
visitCGLibraryOperationCallExp
in class AbstractExtendingCGModelVisitor<java.lang.Object,CodeGenAnalyzer>
@Nullable public java.lang.Object visitCGNavigationCallExp(@NonNull CGNavigationCallExp cgElement)
visitCGNavigationCallExp
in interface CGModelVisitor<java.lang.Object>
visitCGNavigationCallExp
in class AbstractExtendingCGModelVisitor<java.lang.Object,CodeGenAnalyzer>
@Nullable public java.lang.Object visitCGOperation(@NonNull CGOperation cgElement)
visitCGOperation
in interface CGModelVisitor<java.lang.Object>
visitCGOperation
in class AbstractExtendingCGModelVisitor<java.lang.Object,CodeGenAnalyzer>
@Nullable public java.lang.Object visitCGProperty(@NonNull CGProperty cgElement)
visitCGProperty
in interface CGModelVisitor<java.lang.Object>
visitCGProperty
in class AbstractExtendingCGModelVisitor<java.lang.Object,CodeGenAnalyzer>
@Nullable public java.lang.Object visitCGVariableExp(@NonNull CGVariableExp cgElement)
visitCGVariableExp
in interface CGModelVisitor<java.lang.Object>
visitCGVariableExp
in class AbstractExtendingCGModelVisitor<java.lang.Object,CodeGenAnalyzer>
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |