Package org.codehaus.groovy.classgen
Class AsmClassGenerator
java.lang.Object
org.codehaus.groovy.ast.CodeVisitorSupport
org.codehaus.groovy.ast.ClassCodeVisitorSupport
org.codehaus.groovy.classgen.ClassGenerator
org.codehaus.groovy.classgen.AsmClassGenerator
- All Implemented Interfaces:
- GroovyClassVisitor,- GroovyCodeVisitor,- ErrorCollecting
Generates Java class versions of Groovy classes using ASM.
- 
Field SummaryFieldsModifier and TypeFieldDescriptionstatic final booleanstatic final booleanstatic final booleanstatic final MethodCallerMultiAdapterstatic final MethodCallerMultiAdapterstatic final Stringstatic final MethodCallerMultiAdapterstatic final MethodCallerMultiAdapterstatic final MethodCallerMultiAdapterFields inherited from class org.codehaus.groovy.classgen.ClassGeneratorinnerClasses
- 
Constructor SummaryConstructorsConstructorDescriptionAsmClassGenerator(SourceUnit source, GeneratorContext context, org.objectweb.asm.ClassVisitor classVisitor, String sourceFile) 
- 
Method SummaryModifier and TypeMethodDescriptionbooleanaddInnerClass(ClassNode innerClass) static intargumentSize(Expression arguments) static booleancontainsSpreadExpression(Expression arguments) protected voidprotected voidvoiddespreadList(List<Expression> expressions, boolean wrap) static FieldNodegetDeclaredFieldOfCurrentClassOrAccessibleFieldOfSuper(ClassNode accessingNode, ClassNode current, String fieldName, boolean skipCurrent) static booleanisFieldDirectlyAccessible(FieldNode field, ClassNode clazz) Determines if the given class can directly access the given field (viaGETFIELD,GETSTATIC, etc.static booleanisNullConstant(Expression expression) Deprecated.static booleanisSuperExpression(Expression expression) Deprecated.static booleanisThisExpression(Expression expression) Deprecated.static booleanisValidFieldNodeForByteCodeAccess(FieldNode field, ClassNode accessingClass) Deprecated.voidloadInstanceField(FieldExpression expression) RHS instance field.voidloadStaticField(FieldExpression expression) protected voidLoads either this object or if we're inside a closure then load the top level ownervoidloadWrapper(Expression argument) voidonLineNumber(ASTNode node, String message) voidthrowException(String message) voidvoidvoidvisitArrayExpression(ArrayExpression expression) voidvisitAssertStatement(AssertStatement statement) voidvisitAttributeExpression(AttributeExpression expression) voidvisitBinaryExpression(BinaryExpression expression) voidvoidvisitBlockStatement(BlockStatement statement) voidvisitBooleanExpression(BooleanExpression expression) voidvisitBreakStatement(BreakStatement statement) voidvisitBytecodeExpression(BytecodeExpression expression) voidvisitBytecodeSequence(BytecodeSequence bytecodeSequence) voidvisitCaseStatement(CaseStatement statement) voidvisitCastExpression(CastExpression castExpression) voidvisitCatchStatement(CatchStatement statement) voidvisitClass(ClassNode classNode) Visit a ClassNode.voidvisitClassExpression(ClassExpression expression) voidvisitClosureExpression(ClosureExpression expression) voidvisitClosureListExpression(ClosureListExpression expression) voidvisitConstantExpression(ConstantExpression expression) Generates byte code for constants.voidVisit a ConstructorNode.voidprotected voidvisitConstructorOrMethod(MethodNode node, boolean isConstructor) voidvisitContinueStatement(ContinueStatement statement) voidvisitDeclarationExpression(DeclarationExpression expression) voidvisitDoWhileLoop(DoWhileStatement statement) voidvisitExpressionStatement(ExpressionStatement statement) voidvisitField(FieldNode fieldNode) Visit a FieldNode.voidvisitFieldExpression(FieldExpression expression) voidvisitForLoop(ForStatement statement) voidvisitGStringExpression(GStringExpression expression) voidvisitIfElse(IfStatement statement) voidvisitLambdaExpression(LambdaExpression expression) voidvisitListExpression(ListExpression expression) voidvisitMapEntryExpression(MapEntryExpression expression) voidvisitMapExpression(MapExpression expression) voidvisitMethod(MethodNode node) Visit a MethodNode.voidvoidvisitMethodPointerExpression(MethodPointerExpression expression) voidvoidvisitNotExpression(NotExpression expression) voidvisitPostfixExpression(PostfixExpression expression) voidvisitPrefixExpression(PrefixExpression expression) voidvisitProperty(PropertyNode statement) Visit a PropertyNode.voidvisitPropertyExpression(PropertyExpression expression) voidvisitRangeExpression(RangeExpression expression) voidvisitReturnStatement(ReturnStatement statement) voidvisitSpreadExpression(SpreadExpression expression) voidvisitSpreadMapExpression(SpreadMapExpression expression) protected voidvisitStatement(Statement statement) voidvoidvisitSwitch(SwitchStatement statement) voidvisitSynchronizedStatement(SynchronizedStatement statement) voidvisitTernaryExpression(TernaryExpression expression) voidvisitThrowStatement(ThrowStatement statement) voidvisitTryCatchFinally(TryCatchStatement statement) voidvisitTupleExpression(TupleExpression expression) voidvisitUnaryMinusExpression(UnaryMinusExpression expression) voidvisitUnaryPlusExpression(UnaryPlusExpression expression) voidvisitVariableExpression(VariableExpression expression) voidvisitWhileLoop(WhileStatement statement) Methods inherited from class org.codehaus.groovy.classgen.ClassGeneratorgetInnerClassesMethods inherited from class org.codehaus.groovy.ast.ClassCodeVisitorSupportaddError, visitAnnotation, visitAnnotations, visitClassCodeContainer, visitImports, visitObjectInitializerStatements, visitPackageMethods inherited from class org.codehaus.groovy.ast.CodeVisitorSupportafterSwitchConditionExpressionVisited, visitEmptyStatement, visitShortTernaryExpressionMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.codehaus.groovy.ast.GroovyCodeVisitorvisit, visit, visitEmptyExpression, visitListOfExpressions
- 
Field Details- 
setField
- 
getField
- 
setGroovyObjectField
- 
getGroovyObjectField
- 
setProperty
- 
CREATE_DEBUG_INFOpublic static final boolean CREATE_DEBUG_INFO- See Also:
 
- 
CREATE_LINE_NUMBER_INFOpublic static final boolean CREATE_LINE_NUMBER_INFO- See Also:
 
- 
ASM_DEBUGpublic static final boolean ASM_DEBUG- See Also:
 
- 
MINIMUM_BYTECODE_VERSION- See Also:
 
 
- 
- 
Constructor Details- 
AsmClassGeneratorpublic AsmClassGenerator(SourceUnit source, GeneratorContext context, org.objectweb.asm.ClassVisitor classVisitor, String sourceFile) 
 
- 
- 
Method Details- 
getSourceUnit- Overrides:
- getSourceUnitin class- ClassGenerator
 
- 
getController
- 
visitClassDescription copied from interface:GroovyClassVisitorVisit a ClassNode.- Specified by:
- visitClassin interface- GroovyClassVisitor
- Overrides:
- visitClassin class- ClassCodeVisitorSupport
 
- 
visitConstructorOrMethod- Overrides:
- visitConstructorOrMethodin class- ClassCodeVisitorSupport
 
- 
visitConstructorDescription copied from interface:GroovyClassVisitorVisit a ConstructorNode.- Specified by:
- visitConstructorin interface- GroovyClassVisitor
- Overrides:
- visitConstructorin class- ClassCodeVisitorSupport
 
- 
visitMethodDescription copied from interface:GroovyClassVisitorVisit a MethodNode.- Specified by:
- visitMethodin interface- GroovyClassVisitor
- Overrides:
- visitMethodin class- ClassCodeVisitorSupport
 
- 
visitFieldDescription copied from interface:GroovyClassVisitorVisit a FieldNode.- Specified by:
- visitFieldin interface- GroovyClassVisitor
- Overrides:
- visitFieldin class- ClassCodeVisitorSupport
 
- 
visitPropertyDescription copied from interface:GroovyClassVisitorVisit a PropertyNode.- Specified by:
- visitPropertyin interface- GroovyClassVisitor
- Overrides:
- visitPropertyin class- ClassCodeVisitorSupport
 
- 
visitStatement- Overrides:
- visitStatementin class- ClassCodeVisitorSupport
 
- 
visitBlockStatement- Specified by:
- visitBlockStatementin interface- GroovyCodeVisitor
- Overrides:
- visitBlockStatementin class- ClassCodeVisitorSupport
 
- 
visitForLoop- Specified by:
- visitForLoopin interface- GroovyCodeVisitor
- Overrides:
- visitForLoopin class- ClassCodeVisitorSupport
 
- 
visitWhileLoop- Specified by:
- visitWhileLoopin interface- GroovyCodeVisitor
- Overrides:
- visitWhileLoopin class- ClassCodeVisitorSupport
 
- 
visitDoWhileLoop- Specified by:
- visitDoWhileLoopin interface- GroovyCodeVisitor
- Overrides:
- visitDoWhileLoopin class- ClassCodeVisitorSupport
 
- 
visitIfElse- Specified by:
- visitIfElsein interface- GroovyCodeVisitor
- Overrides:
- visitIfElsein class- ClassCodeVisitorSupport
 
- 
visitAssertStatement- Specified by:
- visitAssertStatementin interface- GroovyCodeVisitor
- Overrides:
- visitAssertStatementin class- ClassCodeVisitorSupport
 
- 
visitTryCatchFinally- Specified by:
- visitTryCatchFinallyin interface- GroovyCodeVisitor
- Overrides:
- visitTryCatchFinallyin class- ClassCodeVisitorSupport
 
- 
visitCatchStatement- Specified by:
- visitCatchStatementin interface- GroovyCodeVisitor
- Overrides:
- visitCatchStatementin class- ClassCodeVisitorSupport
 
- 
visitSwitch- Specified by:
- visitSwitchin interface- GroovyCodeVisitor
- Overrides:
- visitSwitchin class- ClassCodeVisitorSupport
 
- 
visitCaseStatement- Specified by:
- visitCaseStatementin interface- GroovyCodeVisitor
- Overrides:
- visitCaseStatementin class- ClassCodeVisitorSupport
 
- 
visitBreakStatement- Specified by:
- visitBreakStatementin interface- GroovyCodeVisitor
- Overrides:
- visitBreakStatementin class- ClassCodeVisitorSupport
 
- 
visitContinueStatement- Specified by:
- visitContinueStatementin interface- GroovyCodeVisitor
- Overrides:
- visitContinueStatementin class- ClassCodeVisitorSupport
 
- 
visitSynchronizedStatement- Specified by:
- visitSynchronizedStatementin interface- GroovyCodeVisitor
- Overrides:
- visitSynchronizedStatementin class- ClassCodeVisitorSupport
 
- 
visitThrowStatement- Specified by:
- visitThrowStatementin interface- GroovyCodeVisitor
- Overrides:
- visitThrowStatementin class- ClassCodeVisitorSupport
 
- 
visitReturnStatement- Specified by:
- visitReturnStatementin interface- GroovyCodeVisitor
- Overrides:
- visitReturnStatementin class- ClassCodeVisitorSupport
 
- 
visitExpressionStatement- Specified by:
- visitExpressionStatementin interface- GroovyCodeVisitor
- Overrides:
- visitExpressionStatementin class- ClassCodeVisitorSupport
 
- 
visitTernaryExpression- Specified by:
- visitTernaryExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitTernaryExpressionin class- CodeVisitorSupport
 
- 
visitDeclarationExpression- Specified by:
- visitDeclarationExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitDeclarationExpressionin class- ClassCodeVisitorSupport
 
- 
visitBinaryExpression- Specified by:
- visitBinaryExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitBinaryExpressionin class- CodeVisitorSupport
 
- 
visitPostfixExpression- Specified by:
- visitPostfixExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitPostfixExpressionin class- CodeVisitorSupport
 
- 
visitPrefixExpression- Specified by:
- visitPrefixExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitPrefixExpressionin class- CodeVisitorSupport
 
- 
visitClosureExpression- Specified by:
- visitClosureExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitClosureExpressionin class- CodeVisitorSupport
 
- 
visitLambdaExpression- Specified by:
- visitLambdaExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitLambdaExpressionin class- CodeVisitorSupport
 
- 
loadThisOrOwnerprotected void loadThisOrOwner()Loads either this object or if we're inside a closure then load the top level owner
- 
visitConstantExpressionGenerates byte code for constants.- Specified by:
- visitConstantExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitConstantExpressionin class- CodeVisitorSupport
- See Also:
 
- 
visitSpreadExpression- Specified by:
- visitSpreadExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitSpreadExpressionin class- CodeVisitorSupport
 
- 
visitSpreadMapExpression- Specified by:
- visitSpreadMapExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitSpreadMapExpressionin class- CodeVisitorSupport
 
- 
visitMethodPointerExpression- Specified by:
- visitMethodPointerExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitMethodPointerExpressionin class- CodeVisitorSupport
 
- 
visitMethodReferenceExpression- Specified by:
- visitMethodReferenceExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitMethodReferenceExpressionin class- CodeVisitorSupport
 
- 
visitUnaryMinusExpression- Specified by:
- visitUnaryMinusExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitUnaryMinusExpressionin class- CodeVisitorSupport
 
- 
visitUnaryPlusExpression- Specified by:
- visitUnaryPlusExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitUnaryPlusExpressionin class- CodeVisitorSupport
 
- 
visitBitwiseNegationExpression- Specified by:
- visitBitwiseNegationExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitBitwiseNegationExpressionin class- CodeVisitorSupport
 
- 
visitCastExpression- Specified by:
- visitCastExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitCastExpressionin class- CodeVisitorSupport
 
- 
visitNotExpression- Specified by:
- visitNotExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitNotExpressionin class- CodeVisitorSupport
 
- 
visitBooleanExpression- Specified by:
- visitBooleanExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitBooleanExpressionin class- CodeVisitorSupport
 
- 
visitMethodCallExpression- Specified by:
- visitMethodCallExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitMethodCallExpressionin class- CodeVisitorSupport
 
- 
visitStaticMethodCallExpression- Specified by:
- visitStaticMethodCallExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitStaticMethodCallExpressionin class- CodeVisitorSupport
 
- 
visitConstructorCallExpression- Specified by:
- visitConstructorCallExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitConstructorCallExpressionin class- CodeVisitorSupport
 
- 
isValidFieldNodeForByteCodeAccess@Deprecated public static boolean isValidFieldNodeForByteCodeAccess(FieldNode field, ClassNode accessingClass) Deprecated.useisFieldDirectlyAccessible(FieldNode, ClassNode)instead.
- 
isFieldDirectlyAccessibleDetermines if the given class can directly access the given field (viaGETFIELD,GETSTATIC, etc. bytecode instructions).
- 
getDeclaredFieldOfCurrentClassOrAccessibleFieldOfSuper
- 
visitPropertyExpression- Specified by:
- visitPropertyExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitPropertyExpressionin class- CodeVisitorSupport
 
- 
visitAttributeExpression- Specified by:
- visitAttributeExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitAttributeExpressionin class- CodeVisitorSupport
 
- 
visitFieldExpression- Specified by:
- visitFieldExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitFieldExpressionin class- CodeVisitorSupport
 
- 
loadStaticField
- 
loadInstanceFieldRHS instance field. should move most of the code in the BytecodeHelper
- 
visitVariableExpression- Specified by:
- visitVariableExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitVariableExpressionin class- CodeVisitorSupport
 
- 
createInterfaceSyntheticStaticFieldsprotected void createInterfaceSyntheticStaticFields()
- 
createSyntheticStaticFieldsprotected void createSyntheticStaticFields()
- 
visitClassExpression- Specified by:
- visitClassExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitClassExpressionin class- CodeVisitorSupport
 
- 
visitRangeExpression- Specified by:
- visitRangeExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitRangeExpressionin class- CodeVisitorSupport
 
- 
visitMapEntryExpression- Specified by:
- visitMapEntryExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitMapEntryExpressionin class- CodeVisitorSupport
 
- 
visitMapExpression- Specified by:
- visitMapExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitMapExpressionin class- CodeVisitorSupport
 
- 
visitArgumentlistExpression- Specified by:
- visitArgumentlistExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitArgumentlistExpressionin class- CodeVisitorSupport
 
- 
visitTupleExpression- Specified by:
- visitTupleExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitTupleExpressionin class- CodeVisitorSupport
 
- 
visitArrayExpression- Specified by:
- visitArrayExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitArrayExpressionin class- CodeVisitorSupport
 
- 
visitClosureListExpression- Specified by:
- visitClosureListExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitClosureListExpressionin class- CodeVisitorSupport
 
- 
visitBytecodeExpression- Specified by:
- visitBytecodeExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitBytecodeExpressionin class- CodeVisitorSupport
 
- 
visitBytecodeSequence- Overrides:
- visitBytecodeSequencein class- ClassGenerator
 
- 
visitListExpression- Specified by:
- visitListExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitListExpressionin class- CodeVisitorSupport
 
- 
visitGStringExpression- Specified by:
- visitGStringExpressionin interface- GroovyCodeVisitor
- Overrides:
- visitGStringExpressionin class- CodeVisitorSupport
 
- 
visitAnnotations- Overrides:
- visitAnnotationsin class- ClassCodeVisitorSupport
 
- 
addInnerClass
- 
argumentSize
- 
containsSpreadExpression
- 
despreadList
- 
isThisExpressionDeprecated.
- 
isSuperExpressionDeprecated.
- 
isNullConstantDeprecated.
- 
loadWrapper
- 
onLineNumber
- 
throwException
 
- 
isFieldDirectlyAccessible(FieldNode, ClassNode)instead.