org.glassfish.pfl.dynamic.codegen.impl
Class SourceExpressionVisitor

java.lang.Object
  extended by org.glassfish.pfl.dynamic.codegen.impl.TreeWalker
      extended by org.glassfish.pfl.dynamic.codegen.impl.SourceExpressionVisitor
All Implemented Interfaces:
Visitor

public class SourceExpressionVisitor
extends TreeWalker

A Visitor that generates Java source for an expression. All expression are converted into a simple Java String. This visitor operates only on ExpressionInternal nodes. It ignores all Statements as well as the top level generators.

This visitor compile complex expressions by applying another instance of this visitor to the subexpressions recursively using TreeWalker. Note that the mark facility of the TreeWalkerContext is needed here to handle arguments lists for various types of calls.


Field Summary
 
Fields inherited from class org.glassfish.pfl.dynamic.codegen.impl.TreeWalker
context
 
Constructor Summary
SourceExpressionVisitor(TreeWalkerContext context, ImportList imports)
           
 
Method Summary
 void arrayIndexExpressionBeforeExpr(ExpressionFactory.ArrayIndexExpression arg)
           
 void binaryOperatorExpressionBeforeRight(ExpressionFactory.BinaryOperatorExpression arg)
           
 void newArrExpressionBeforeExpression(ExpressionFactory.NewArrExpression arg)
           
 void newObjExpressionBeforeArg(ExpressionFactory.NewObjExpression arg)
           
 void nonStaticCallExpressionBeforeArg(ExpressionFactory.NonStaticCallExpression arg)
           
 void postArrayIndexExpression(ExpressionFactory.ArrayIndexExpression arg)
           
 void postArrayLengthExpression(ExpressionFactory.ArrayLengthExpression arg)
           
 void postBinaryOperatorExpression(ExpressionFactory.BinaryOperatorExpression arg)
           
 void postCastExpression(ExpressionFactory.CastExpression arg)
           
 void postInstofExpression(ExpressionFactory.InstofExpression arg)
           
 void postNewArrExpression(ExpressionFactory.NewArrExpression arg)
           
 void postNewObjExpression(ExpressionFactory.NewObjExpression arg)
           
 void postNonStaticCallExpression(ExpressionFactory.NonStaticCallExpression arg)
           
 void postNonStaticFieldAccessExpression(ExpressionFactory.NonStaticFieldAccessExpression arg)
           
 void postStaticCallExpression(ExpressionFactory.StaticCallExpression arg)
           
 void postStaticFieldAccessExpression(ExpressionFactory.StaticFieldAccessExpression arg)
           
 void postSuperCallExpression(ExpressionFactory.SuperCallExpression arg)
           
 void postSuperObjExpression(ExpressionFactory.SuperObjExpression arg)
           
 void postThisObjExpression(ExpressionFactory.ThisObjExpression arg)
           
 void postUnaryOperatorExpression(ExpressionFactory.UnaryOperatorExpression arg)
           
 void postVariable(Variable arg)
           
 boolean preArrayIndexExpression(ExpressionFactory.ArrayIndexExpression arg)
           
 boolean preArrayLengthExpression(ExpressionFactory.ArrayLengthExpression arg)
           
 boolean preBinaryOperatorExpression(ExpressionFactory.BinaryOperatorExpression arg)
           
 boolean preCastExpression(ExpressionFactory.CastExpression arg)
           
 boolean preConstantExpression(ExpressionFactory.ConstantExpression arg)
           
 boolean preInstofExpression(ExpressionFactory.InstofExpression arg)
           
 boolean preNewArrExpression(ExpressionFactory.NewArrExpression arg)
           
 boolean preNewObjExpression(ExpressionFactory.NewObjExpression arg)
           
 boolean preNode(Node arg)
           
 boolean preNonStaticCallExpression(ExpressionFactory.NonStaticCallExpression arg)
           
 boolean preNonStaticFieldAccessExpression(ExpressionFactory.NonStaticFieldAccessExpression arg)
           
 boolean preStaticCallExpression(ExpressionFactory.StaticCallExpression arg)
           
 boolean preStaticFieldAccessExpression(ExpressionFactory.StaticFieldAccessExpression arg)
           
 boolean preSuperCallExpression(ExpressionFactory.SuperCallExpression arg)
           
 boolean preSuperObjExpression(ExpressionFactory.SuperObjExpression arg)
           
 boolean preThisExpression(ExpressionFactory.ThisExpression arg)
           
 boolean preThisObjExpression(ExpressionFactory.ThisObjExpression arg)
           
 boolean preUnaryOperatorExpression(ExpressionFactory.UnaryOperatorExpression arg)
           
 boolean preVariable(Variable arg)
           
 boolean preVoidExpression(ExpressionFactory.VoidExpression arg)
           
 void staticCallExpressionBeforeArg(ExpressionFactory.StaticCallExpression arg)
           
 void superCallExpressionBeforeArg(ExpressionFactory.SuperCallExpression arg)
           
 void superObjExpressionBeforeArg(ExpressionFactory.SuperObjExpression arg)
           
 void thisObjExpressionBeforeArg(ExpressionFactory.ThisObjExpression arg)
           
 String value()
           
 
Methods inherited from class org.glassfish.pfl.dynamic.codegen.impl.TreeWalker
assignmentStatementBeforeLeftSide, blockStatementBeforeBodyStatement, caseBranchBeforeBodyStatement, classGeneratorBeforeConstructor, classGeneratorBeforeFields, classGeneratorBeforeInitializer, classGeneratorBeforeMethod, definitionStatementBeforeExpr, ifExpressionBeforeFalsePart, ifExpressionBeforeTruePart, ifStatementBeforeFalsePart, ifStatementBeforeTruePart, methodGeneratorAfterArguments, methodGeneratorBeforeArguments, newArrExpressionAfterExpression, newArrExpressionAfterSize, postAssignmentStatement, postBlockStatement, postBreakStatement, postCaseBranch, postClassGenerator, postConstantExpression, postDefinitionStatement, postExpression, postFieldGenerator, postIfExpression, postIfStatement, postMethodGenerator, postNode, postReturnStatement, postStatement, postSwitchStatement, postThisExpression, postThrowStatement, postTryStatement, postVoidExpression, postWhileStatement, preAssignmentStatement, preBlockStatement, preBreakStatement, preCaseBranch, preClassGenerator, preDefinitionStatement, preExpression, preFieldGenerator, preIfExpression, preIfStatement, preMethodGenerator, preReturnStatement, preStatement, preSwitchStatement, preThrowStatement, preTryStatement, preWhileStatement, switchStatementBeforeCaseBranches, switchStatementBeforeDefault, tryStatementBeforeBlock, tryStatementBeforeFinalPart, visitArrayIndexExpression, visitArrayLengthExpression, visitAssignmentStatement, visitBinaryOperatorExpression, visitBlockStatement, visitBreakStatement, visitCaseBranch, visitCastExpression, visitClassGenerator, visitConstantExpression, visitDefinitionStatement, visitExpression, visitFieldGenerator, visitIfExpression, visitIfStatement, visitInstofExpression, visitMethodGenerator, visitNewArrExpression, visitNewObjExpression, visitNode, visitNonStaticCallExpression, visitNonStaticFieldAccessExpression, visitReturnStatement, visitStatement, visitStaticCallExpression, visitStaticFieldAccessExpression, visitSuperCallExpression, visitSuperObjExpression, visitSwitchStatement, visitThisExpression, visitThisObjExpression, visitThrowStatement, visitTryStatement, visitUnaryOperatorExpression, visitVariable, visitVoidExpression, visitWhileStatement, whileStatementBeforeBody
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SourceExpressionVisitor

public SourceExpressionVisitor(TreeWalkerContext context,
                               ImportList imports)
Method Detail

value

public String value()

preNode

public boolean preNode(Node arg)
Overrides:
preNode in class TreeWalker

preVariable

public boolean preVariable(Variable arg)
Overrides:
preVariable in class TreeWalker

postVariable

public void postVariable(Variable arg)
Overrides:
postVariable in class TreeWalker

preConstantExpression

public boolean preConstantExpression(ExpressionFactory.ConstantExpression arg)
Overrides:
preConstantExpression in class TreeWalker

preVoidExpression

public boolean preVoidExpression(ExpressionFactory.VoidExpression arg)
Overrides:
preVoidExpression in class TreeWalker

preThisExpression

public boolean preThisExpression(ExpressionFactory.ThisExpression arg)
Overrides:
preThisExpression in class TreeWalker

preUnaryOperatorExpression

public boolean preUnaryOperatorExpression(ExpressionFactory.UnaryOperatorExpression arg)
Overrides:
preUnaryOperatorExpression in class TreeWalker

postUnaryOperatorExpression

public void postUnaryOperatorExpression(ExpressionFactory.UnaryOperatorExpression arg)
Overrides:
postUnaryOperatorExpression in class TreeWalker

preBinaryOperatorExpression

public boolean preBinaryOperatorExpression(ExpressionFactory.BinaryOperatorExpression arg)
Overrides:
preBinaryOperatorExpression in class TreeWalker

binaryOperatorExpressionBeforeRight

public void binaryOperatorExpressionBeforeRight(ExpressionFactory.BinaryOperatorExpression arg)
Overrides:
binaryOperatorExpressionBeforeRight in class TreeWalker

postBinaryOperatorExpression

public void postBinaryOperatorExpression(ExpressionFactory.BinaryOperatorExpression arg)
Overrides:
postBinaryOperatorExpression in class TreeWalker

preCastExpression

public boolean preCastExpression(ExpressionFactory.CastExpression arg)
Overrides:
preCastExpression in class TreeWalker

postCastExpression

public void postCastExpression(ExpressionFactory.CastExpression arg)
Overrides:
postCastExpression in class TreeWalker

preInstofExpression

public boolean preInstofExpression(ExpressionFactory.InstofExpression arg)
Overrides:
preInstofExpression in class TreeWalker

postInstofExpression

public void postInstofExpression(ExpressionFactory.InstofExpression arg)
Overrides:
postInstofExpression in class TreeWalker

preNonStaticCallExpression

public boolean preNonStaticCallExpression(ExpressionFactory.NonStaticCallExpression arg)
Overrides:
preNonStaticCallExpression in class TreeWalker

nonStaticCallExpressionBeforeArg

public void nonStaticCallExpressionBeforeArg(ExpressionFactory.NonStaticCallExpression arg)
Overrides:
nonStaticCallExpressionBeforeArg in class TreeWalker

postNonStaticCallExpression

public void postNonStaticCallExpression(ExpressionFactory.NonStaticCallExpression arg)
Overrides:
postNonStaticCallExpression in class TreeWalker

preStaticCallExpression

public boolean preStaticCallExpression(ExpressionFactory.StaticCallExpression arg)
Overrides:
preStaticCallExpression in class TreeWalker

staticCallExpressionBeforeArg

public void staticCallExpressionBeforeArg(ExpressionFactory.StaticCallExpression arg)
Overrides:
staticCallExpressionBeforeArg in class TreeWalker

postStaticCallExpression

public void postStaticCallExpression(ExpressionFactory.StaticCallExpression arg)
Overrides:
postStaticCallExpression in class TreeWalker

preNewObjExpression

public boolean preNewObjExpression(ExpressionFactory.NewObjExpression arg)
Overrides:
preNewObjExpression in class TreeWalker

newObjExpressionBeforeArg

public void newObjExpressionBeforeArg(ExpressionFactory.NewObjExpression arg)
Overrides:
newObjExpressionBeforeArg in class TreeWalker

postNewObjExpression

public void postNewObjExpression(ExpressionFactory.NewObjExpression arg)
Overrides:
postNewObjExpression in class TreeWalker

preNewArrExpression

public boolean preNewArrExpression(ExpressionFactory.NewArrExpression arg)
Overrides:
preNewArrExpression in class TreeWalker

newArrExpressionBeforeExpression

public void newArrExpressionBeforeExpression(ExpressionFactory.NewArrExpression arg)
Overrides:
newArrExpressionBeforeExpression in class TreeWalker

postNewArrExpression

public void postNewArrExpression(ExpressionFactory.NewArrExpression arg)
Overrides:
postNewArrExpression in class TreeWalker

preSuperCallExpression

public boolean preSuperCallExpression(ExpressionFactory.SuperCallExpression arg)
Overrides:
preSuperCallExpression in class TreeWalker

superCallExpressionBeforeArg

public void superCallExpressionBeforeArg(ExpressionFactory.SuperCallExpression arg)
Overrides:
superCallExpressionBeforeArg in class TreeWalker

postSuperCallExpression

public void postSuperCallExpression(ExpressionFactory.SuperCallExpression arg)
Overrides:
postSuperCallExpression in class TreeWalker

preSuperObjExpression

public boolean preSuperObjExpression(ExpressionFactory.SuperObjExpression arg)
Overrides:
preSuperObjExpression in class TreeWalker

superObjExpressionBeforeArg

public void superObjExpressionBeforeArg(ExpressionFactory.SuperObjExpression arg)
Overrides:
superObjExpressionBeforeArg in class TreeWalker

postSuperObjExpression

public void postSuperObjExpression(ExpressionFactory.SuperObjExpression arg)
Overrides:
postSuperObjExpression in class TreeWalker

preThisObjExpression

public boolean preThisObjExpression(ExpressionFactory.ThisObjExpression arg)
Overrides:
preThisObjExpression in class TreeWalker

thisObjExpressionBeforeArg

public void thisObjExpressionBeforeArg(ExpressionFactory.ThisObjExpression arg)
Overrides:
thisObjExpressionBeforeArg in class TreeWalker

postThisObjExpression

public void postThisObjExpression(ExpressionFactory.ThisObjExpression arg)
Overrides:
postThisObjExpression in class TreeWalker

preNonStaticFieldAccessExpression

public boolean preNonStaticFieldAccessExpression(ExpressionFactory.NonStaticFieldAccessExpression arg)
Overrides:
preNonStaticFieldAccessExpression in class TreeWalker

postNonStaticFieldAccessExpression

public void postNonStaticFieldAccessExpression(ExpressionFactory.NonStaticFieldAccessExpression arg)
Overrides:
postNonStaticFieldAccessExpression in class TreeWalker

preStaticFieldAccessExpression

public boolean preStaticFieldAccessExpression(ExpressionFactory.StaticFieldAccessExpression arg)
Overrides:
preStaticFieldAccessExpression in class TreeWalker

postStaticFieldAccessExpression

public void postStaticFieldAccessExpression(ExpressionFactory.StaticFieldAccessExpression arg)
Overrides:
postStaticFieldAccessExpression in class TreeWalker

preArrayIndexExpression

public boolean preArrayIndexExpression(ExpressionFactory.ArrayIndexExpression arg)
Overrides:
preArrayIndexExpression in class TreeWalker

arrayIndexExpressionBeforeExpr

public void arrayIndexExpressionBeforeExpr(ExpressionFactory.ArrayIndexExpression arg)
Overrides:
arrayIndexExpressionBeforeExpr in class TreeWalker

postArrayIndexExpression

public void postArrayIndexExpression(ExpressionFactory.ArrayIndexExpression arg)
Overrides:
postArrayIndexExpression in class TreeWalker

preArrayLengthExpression

public boolean preArrayLengthExpression(ExpressionFactory.ArrayLengthExpression arg)
Overrides:
preArrayLengthExpression in class TreeWalker

postArrayLengthExpression

public void postArrayLengthExpression(ExpressionFactory.ArrayLengthExpression arg)
Overrides:
postArrayLengthExpression in class TreeWalker


Copyright © 2013 Oracle. All Rights Reserved.