Top Description Inners Fields Constructors Methods
org.glassfish.pfl.dynamic.codegen.impl

public Class ASMSetupVisitor

extends TreeWalker
Class Inheritance
Imports
java.lang.reflect.Modifier, java.util.ArrayList, .List, org.glassfish.pfl.dynamic.codegen.spi.Type, .Variable

Visitor that can prepare an AST for bytecode generation, or verify that an AST has been correctly prepared.

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static class
ASMSetupVisitor.ErrorReport

Class used to represnt an AST verification error

public static enum
pack-priv static class
private static enum
ASMSetupVisitor.VariableContext

Defines the context in which a variable occurs.

Field Summary

Modifier and TypeField and Description
private List<ASMSetupVisitor.ErrorReport>
private ASMSetupVisitor.Mode
private ASMSetupVisitor.SlotAllocator
private ASMSetupVisitor.VariableContext
Inherited from org.glassfish.pfl.dynamic.codegen.impl.TreeWalker:
context

Constructor Summary

AccessConstructor and Description
public
public

Method Summary

Modifier and TypeMethod and Description
private void
public void
public void
public void
public boolean
public void
public void
private void
compareEmitter(String nodeType, Node arg, EmitterFactory.Emitter expected, EmitterFactory.Emitter actual)
References Deprecated EmitterFactory.Emitter is deprecated or references (maybe indirectly) at least one deprecated element.

private void
public boolean
private void
public List<ASMSetupVisitor.ErrorReport>
private void
handleEmitter(Node arg, EmitterFactory.Emitter em)
References Deprecated EmitterFactory.Emitter is deprecated or references (maybe indirectly) at least one deprecated element.

private void
private void
private void
private void
public void
public boolean
public void
public void
public void
public void
public void
public boolean
public boolean
public boolean
public boolean
public boolean
public boolean
public boolean
public boolean
private boolean
public boolean
public boolean
public boolean
public void
public boolean
private void
Inherited from org.glassfish.pfl.dynamic.codegen.impl.TreeWalker:
arrayIndexExpressionBeforeExprassignmentStatementBeforeLeftSidecaseBranchBeforeBodyStatementifExpressionBeforeFalsePartifExpressionBeforeTruePartifStatementBeforeFalsePartifStatementBeforeTruePartnewArrExpressionAfterExpressionnewArrExpressionAfterSizenewArrExpressionBeforeExpressionnewObjExpressionBeforeArgnonStaticCallExpressionBeforeArgpostArrayIndexExpressionpostArrayLengthExpressionpostAssignmentStatementpostBreakStatementpostCaseBranchpostCastExpressionpostConstantExpressionpostDefinitionStatementpostExpressionpostFieldGeneratorpostIfExpressionpostIfStatementpostInstofExpressionpostNewArrExpressionpostNewObjExpressionpostNodepostNonStaticCallExpressionpostNonStaticFieldAccessExpressionpostReturnStatementpostStatementpostStaticCallExpressionpostStaticFieldAccessExpressionpostSuperCallExpressionpostSuperObjExpressionpostSwitchStatementpostThisExpressionpostThisObjExpressionpostThrowStatementpostUnaryOperatorExpressionpostVariablepostVoidExpressionpostWhileStatementpreArrayLengthExpressionpreBreakStatementpreCaseBranchpreCastExpressionpreConstantExpressionpreExpressionpreFieldGeneratorpreIfExpressionpreIfStatementpreInstofExpressionpreNewArrExpressionpreNewObjExpressionpreNodepreNonStaticCallExpressionpreReturnStatementpreStatementpreStaticCallExpressionpreSuperCallExpressionpreSuperObjExpressionpreSwitchStatementpreThisExpressionpreThisObjExpressionpreThrowStatementpreUnaryOperatorExpressionpreVoidExpressionpreWhileStatementstaticCallExpressionBeforeArgsuperCallExpressionBeforeArgsuperObjExpressionBeforeArgswitchStatementBeforeCaseBranchesswitchStatementBeforeDefaultthisObjExpressionBeforeArgvisitArrayIndexExpressionvisitArrayLengthExpressionvisitAssignmentStatementvisitBinaryOperatorExpressionvisitBlockStatementvisitBreakStatementvisitCaseBranchvisitCastExpressionvisitClassGeneratorvisitConstantExpressionvisitDefinitionStatementvisitExpressionvisitFieldGeneratorvisitIfExpressionvisitIfStatementvisitInstofExpressionvisitMethodGeneratorvisitNewArrExpressionvisitNewObjExpressionvisitNodevisitNonStaticCallExpressionvisitNonStaticFieldAccessExpressionvisitReturnStatementvisitStatementvisitStaticCallExpressionvisitStaticFieldAccessExpressionvisitSuperCallExpressionvisitSuperObjExpressionvisitSwitchStatementvisitThisExpressionvisitThisObjExpressionvisitThrowStatementvisitTryStatementvisitUnaryOperatorExpressionvisitVariablevisitVoidExpressionvisitWhileStatementwhileStatementBeforeBody

Field Detail

errorsback to summary
private List<ASMSetupVisitor.ErrorReport> errors
modeback to summary
private ASMSetupVisitor.Mode mode
slotAllocatorback to summary
private ASMSetupVisitor.SlotAllocator slotAllocator
variableDefiningContextback to summary
private ASMSetupVisitor.VariableContext variableDefiningContext

Constructor Detail

ASMSetupVisitorback to summary
public ASMSetupVisitor(TreeWalkerContext context)
ASMSetupVisitorback to summary
public ASMSetupVisitor(TreeWalkerContext context, ASMSetupVisitor.Mode mode)

Method Detail

allocateLocalVariableback to summary
private void allocateLocalVariable(Variable param)
binaryOperatorExpressionBeforeRightback to summary
public void binaryOperatorExpressionBeforeRight(ExpressionFactory.BinaryOperatorExpression arg)

Overrides org.glassfish.pfl.dynamic.codegen.impl.TreeWalker.binaryOperatorExpressionBeforeRight.

Annotations
@Override
blockStatementBeforeBodyStatementback to summary
public void blockStatementBeforeBodyStatement(BlockStatement arg, Statement stmt)

Overrides org.glassfish.pfl.dynamic.codegen.impl.TreeWalker.blockStatementBeforeBodyStatement.

Annotations
@Override
classGeneratorBeforeConstructorback to summary
public void classGeneratorBeforeConstructor(ClassGeneratorImpl arg)

Overrides org.glassfish.pfl.dynamic.codegen.impl.TreeWalker.classGeneratorBeforeConstructor.

Annotations
@Override
classGeneratorBeforeFieldsback to summary
public boolean classGeneratorBeforeFields(ClassGeneratorImpl arg)

Overrides org.glassfish.pfl.dynamic.codegen.impl.TreeWalker.classGeneratorBeforeFields.

Annotations
@Override
classGeneratorBeforeInitializerback to summary
public void classGeneratorBeforeInitializer(ClassGeneratorImpl arg)

Overrides org.glassfish.pfl.dynamic.codegen.impl.TreeWalker.classGeneratorBeforeInitializer.

Annotations
@Override
classGeneratorBeforeMethodback to summary
public void classGeneratorBeforeMethod(ClassGeneratorImpl arg)

Overrides org.glassfish.pfl.dynamic.codegen.impl.TreeWalker.classGeneratorBeforeMethod.

Annotations
@Override
compareEmitterback to summary
private void compareEmitter(String nodeType, Node arg, EmitterFactory.Emitter expected, EmitterFactory.Emitter actual)

References Deprecated

EmitterFactory.Emitter is deprecated or references (maybe indirectly) at least one deprecated element.

See corresponding docs for further information.

defineLocalVariableback to summary
private void defineLocalVariable(Variable arg)
definitionStatementBeforeExprback to summary
public boolean definitionStatementBeforeExpr(DefinitionStatement arg)

Overrides org.glassfish.pfl.dynamic.codegen.impl.TreeWalker.definitionStatementBeforeExpr.

Annotations
@Override
finishVariableDefinitionback to summary
private void finishVariableDefinition(Variable param)
getVerificationErrorsback to summary
public List<ASMSetupVisitor.ErrorReport> getVerificationErrors()
handleEmitterback to summary
private void handleEmitter(Node arg, EmitterFactory.Emitter em)

References Deprecated

EmitterFactory.Emitter is deprecated or references (maybe indirectly) at least one deprecated element.

See corresponding docs for further information.

initializeEmitterback to summary
private void initializeEmitter(ExpressionFactory.NonStaticFieldAccessExpression arg)
initializeEmitterback to summary
private void initializeEmitter(ExpressionFactory.StaticFieldAccessExpression arg)
initializeEmitterback to summary
private void initializeEmitter(ExpressionFactory.ArrayIndexExpression arg)
initializeVariableEmitterback to summary
private void initializeVariableEmitter(Variable param)
methodGeneratorAfterArgumentsback to summary
public void methodGeneratorAfterArguments(MethodGenerator arg)

Overrides org.glassfish.pfl.dynamic.codegen.impl.TreeWalker.methodGeneratorAfterArguments.

Annotations
@Override
methodGeneratorBeforeArgumentsback to summary
public boolean methodGeneratorBeforeArguments(MethodGenerator arg)

Overrides org.glassfish.pfl.dynamic.codegen.impl.TreeWalker.methodGeneratorBeforeArguments.

Annotations
@Override
postBinaryOperatorExpressionback to summary
public void postBinaryOperatorExpression(ExpressionFactory.BinaryOperatorExpression arg)

Overrides org.glassfish.pfl.dynamic.codegen.impl.TreeWalker.postBinaryOperatorExpression.

Annotations
@Override
postBlockStatementback to summary
public void postBlockStatement(BlockStatement arg)

Overrides org.glassfish.pfl.dynamic.codegen.impl.TreeWalker.postBlockStatement.

Annotations
@Override
postClassGeneratorback to summary
public void postClassGenerator(ClassGeneratorImpl arg)

Overrides org.glassfish.pfl.dynamic.codegen.impl.TreeWalker.postClassGenerator.

Annotations
@Override
postMethodGeneratorback to summary
public void postMethodGenerator(MethodGenerator arg)

Overrides org.glassfish.pfl.dynamic.codegen.impl.TreeWalker.postMethodGenerator.

Annotations
@Override
postTryStatementback to summary
public void postTryStatement(TryStatement arg)

Overrides org.glassfish.pfl.dynamic.codegen.impl.TreeWalker.postTryStatement.

Annotations
@Override
preArrayIndexExpressionback to summary
public boolean preArrayIndexExpression(ExpressionFactory.ArrayIndexExpression arg)

Overrides org.glassfish.pfl.dynamic.codegen.impl.TreeWalker.preArrayIndexExpression.

Annotations
@Override
preAssignmentStatementback to summary
public boolean preAssignmentStatement(AssignmentStatement arg)

Overrides org.glassfish.pfl.dynamic.codegen.impl.TreeWalker.preAssignmentStatement.

Annotations
@Override
preBinaryOperatorExpressionback to summary
public boolean preBinaryOperatorExpression(ExpressionFactory.BinaryOperatorExpression arg)

Overrides org.glassfish.pfl.dynamic.codegen.impl.TreeWalker.preBinaryOperatorExpression.

Annotations
@Override
preBlockStatementback to summary
public boolean preBlockStatement(BlockStatement arg)

Overrides org.glassfish.pfl.dynamic.codegen.impl.TreeWalker.preBlockStatement.

Annotations
@Override
preClassGeneratorback to summary
public boolean preClassGenerator(ClassGeneratorImpl arg)

Overrides org.glassfish.pfl.dynamic.codegen.impl.TreeWalker.preClassGenerator.

Annotations
@Override
preDefinitionStatementback to summary
public boolean preDefinitionStatement(DefinitionStatement arg)

Overrides org.glassfish.pfl.dynamic.codegen.impl.TreeWalker.preDefinitionStatement.

Annotations
@Override
preMethodGeneratorback to summary
public boolean preMethodGenerator(MethodGenerator arg)

Overrides org.glassfish.pfl.dynamic.codegen.impl.TreeWalker.preMethodGenerator.

Annotations
@Override
preNonStaticFieldAccessExpressionback to summary
public boolean preNonStaticFieldAccessExpression(ExpressionFactory.NonStaticFieldAccessExpression arg)

Overrides org.glassfish.pfl.dynamic.codegen.impl.TreeWalker.preNonStaticFieldAccessExpression.

Annotations
@Override
preparingback to summary
private boolean preparing()
preStaticFieldAccessExpressionback to summary
public boolean preStaticFieldAccessExpression(ExpressionFactory.StaticFieldAccessExpression arg)

Overrides org.glassfish.pfl.dynamic.codegen.impl.TreeWalker.preStaticFieldAccessExpression.

Annotations
@Override
preTryStatementback to summary
public boolean preTryStatement(TryStatement arg)

Overrides org.glassfish.pfl.dynamic.codegen.impl.TreeWalker.preTryStatement.

Annotations
@Override
preVariableback to summary
public boolean preVariable(Variable arg)

Overrides org.glassfish.pfl.dynamic.codegen.impl.TreeWalker.preVariable.

Annotations
@Override
tryStatementBeforeBlockback to summary
public void tryStatementBeforeBlock(TryStatement arg, Type type, Variable var, BlockStatement block)

Overrides org.glassfish.pfl.dynamic.codegen.impl.TreeWalker.tryStatementBeforeBlock.

Annotations
@Override
tryStatementBeforeFinalPartback to summary
public boolean tryStatementBeforeFinalPart(TryStatement arg)

Overrides org.glassfish.pfl.dynamic.codegen.impl.TreeWalker.tryStatementBeforeFinalPart.

Annotations
@Override
verificationErrorback to summary
private void verificationError(Node node, String msg)
org.glassfish.pfl.dynamic.codegen.impl back to summary

public Class ASMSetupVisitor.ErrorReport

extends Object
Class Inheritance
  • java.lang.Object
  • org.glassfish.pfl.dynamic.codegen.impl.ASMSetupVisitor.ErrorReport

Class used to represnt an AST verification error

Field Summary

Modifier and TypeField and Description
public String
public Node

Constructor Summary

AccessConstructor and Description
public

Method Summary

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

msgback to summary
public String msg
nodeback to summary
public Node node

Constructor Detail

ErrorReportback to summary
public ErrorReport()
org.glassfish.pfl.dynamic.codegen.impl back to summary

public final Enum ASMSetupVisitor.Mode

extends Enum<ASMSetupVisitor.Mode>
Class Inheritance

Field Summary

Modifier and TypeField and Description
public static final ASMSetupVisitor.Mode
public static final ASMSetupVisitor.Mode

Constructor Summary

AccessConstructor and Description
private
Mode()

Method Summary

Modifier and TypeMethod and Description
public static ASMSetupVisitor.Mode
public static ASMSetupVisitor.Mode[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinaltoStringvalueOf

Field Detail

PREPAREback to summary
public static final ASMSetupVisitor.Mode PREPARE
VERIFYback to summary
public static final ASMSetupVisitor.Mode VERIFY

Constructor Detail

Modeback to summary
private Mode()

Method Detail

valueOfback to summary
public static ASMSetupVisitor.Mode valueOf(String name)
valuesback to summary
public static ASMSetupVisitor.Mode[] values()
org.glassfish.pfl.dynamic.codegen.impl back to summary

pack-priv Class ASMSetupVisitor.SlotAllocator

extends Object
Class Inheritance
  • java.lang.Object
  • org.glassfish.pfl.dynamic.codegen.impl.ASMSetupVisitor.SlotAllocator

Field Summary

Modifier and TypeField and Description
private int
private static int
private int

Constructor Summary

AccessConstructor and Description
pack-priv

Method Summary

Modifier and TypeMethod and Description
public int
getSlot(Type type)

public String
toString()

Overrides java.lang.Object.toString.

Returns a string representation of the object.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAllwaitwaitwait

Field Detail

currentback to summary
private int current
idback to summary
private static int id
myIdback to summary
private int myId

Constructor Detail

SlotAllocatorback to summary
pack-priv SlotAllocator()

Method Detail

getSlotback to summary
public int getSlot(Type type)
toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Doc from java.lang.Object.toString.

Returns a string representation of the object. Satisfying this method's contract implies a non-null result must be returned.

Annotations
@Override
org.glassfish.pfl.dynamic.codegen.impl back to summary

private final Enum ASMSetupVisitor.VariableContext

extends Enum<ASMSetupVisitor.VariableContext>
Class Inheritance

Defines the context in which a variable occurs. This information is used to properly annotate the Variable so that the correct code can be generated.

Field Summary

Modifier and TypeField and Description
public static final ASMSetupVisitor.VariableContext
public static final ASMSetupVisitor.VariableContext
public static final ASMSetupVisitor.VariableContext

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public static ASMSetupVisitor.VariableContext
public static ASMSetupVisitor.VariableContext[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinaltoStringvalueOf

Field Detail

DEFINE_LOCALback to summary
public static final ASMSetupVisitor.VariableContext DEFINE_LOCAL
DEFINE_LOCAL_DEFINITIONback to summary
public static final ASMSetupVisitor.VariableContext DEFINE_LOCAL_DEFINITION
REFERENCEback to summary
public static final ASMSetupVisitor.VariableContext REFERENCE

Constructor Detail

VariableContextback to summary
private VariableContext()

Method Detail

valueOfback to summary
public static ASMSetupVisitor.VariableContext valueOf(String name)
valuesback to summary
public static ASMSetupVisitor.VariableContext[] values()