[Java] Class AsmClassGenerator
- org.codehaus.groovy.classgen.AsmClassGenerator
Generates Java class versions of Groovy classes using ASM.
Field Summary
Modifiers | Name | Description |
---|---|---|
static boolean | ASM_DEBUG | |
static boolean | CREATE_DEBUG_INFO | |
static boolean | CREATE_LINE_NUMBER_INFO | |
static MethodCallerMultiAdapter | getField | |
static MethodCallerMultiAdapter | getGroovyObjectField | |
static MethodCallerMultiAdapter | setField | |
static MethodCallerMultiAdapter | setGroovyObjectField | |
static MethodCallerMultiAdapter | setProperty |
Fields inherited from class | Fields |
---|---|
class ClassGenerator | innerClasses |
Constructor Summary
Constructor and description |
---|
AsmClassGenerator
(SourceUnit source, GeneratorContext context, org.objectweb.asm.ClassVisitor classVisitor, String sourceFile) |
Methods Summary
Inherited Methods Summary
Field Detail
public static final boolean ASM_DEBUG
public static final boolean CREATE_DEBUG_INFO
public static final boolean CREATE_LINE_NUMBER_INFO
public static final MethodCallerMultiAdapter getField
public static final MethodCallerMultiAdapter getGroovyObjectField
public static final MethodCallerMultiAdapter setField
public static final MethodCallerMultiAdapter setGroovyObjectField
public static final MethodCallerMultiAdapter setProperty
Constructor Detail
public AsmClassGenerator(SourceUnit source, GeneratorContext context, org.objectweb.asm.ClassVisitor classVisitor, String sourceFile)
Method Detail
public boolean addInnerClass(ClassNode innerClass)
public static int argumentSize(Expression arguments)
public static boolean containsSpreadExpression(Expression arguments)
protected void createInterfaceSyntheticStaticFields()
protected void createSyntheticStaticFields()
public void despreadList(List expressions, boolean wrap)
protected boolean emptyArguments(Expression arguments)
protected CompileUnit getCompileUnit()
public WriterController getController()
public static FieldNode getDeclaredFieldOfCurrentClassOrAccessibleFieldOfSuper(ClassNode accessingNode, ClassNode current, String name, boolean skipCurrent)
public SourceUnit getSourceUnit()
public static boolean isNullConstant(Expression expr)
public static boolean isThisExpression(Expression expression)
public void loadInstanceField(FieldExpression fldExp)
RHS instance field. should move most of the code in the BytecodeHelper
- Parameters:
- fldExp
public void loadStaticField(FieldExpression fldExp)
- Parameters:
- fldExp
protected void loadThisOrOwner()
Loads either this object or if we're inside a closure then load the top level owner
public void loadWrapper(Expression argument)
public void onLineNumber(ASTNode statement, String message)
public static boolean samePackages(String pkg1, String pkg2)
public void throwException(String s)
public void visitAnnotations(AnnotatedNode node)
Note: ignore it. Annotation generation needs the current visitor.
public void visitArgumentlistExpression(ArgumentListExpression ale)
public void visitArrayExpression(ArrayExpression expression)
public void visitAssertStatement(AssertStatement statement)
public void visitAttributeExpression(AttributeExpression expression)
public void visitBinaryExpression(BinaryExpression expression)
public void visitBitwiseNegationExpression(BitwiseNegationExpression expression)
public void visitBlockStatement(BlockStatement block)
public void visitBooleanExpression(BooleanExpression expression)
return a primitive boolean value of the BooleanExpression.
- Parameters:
- expression
public void visitBreakStatement(BreakStatement statement)
public void visitBytecodeExpression(BytecodeExpression cle)
public void visitBytecodeSequence(BytecodeSequence bytecodeSequence)
public void visitCaseStatement(CaseStatement statement)
public void visitCastExpression(CastExpression castExpression)
@Override public void visitCatchStatement(CatchStatement statement)
public void visitClass(ClassNode classNode)
public void visitClassExpression(ClassExpression expression)
load class object on stack
public void visitClosureExpression(ClosureExpression expression)
public void visitClosureListExpression(ClosureListExpression expression)
public void visitConstantExpression(ConstantExpression expression)
Generate byte code for constants
- See Also:
- Class field types
public void visitConstructor(ConstructorNode node)
public void visitConstructorCallExpression(ConstructorCallExpression call)
protected void visitConstructorOrMethod(MethodNode node, boolean isConstructor)
public void visitContinueStatement(ContinueStatement statement)
public void visitDeclarationExpression(DeclarationExpression expression)
public void visitDoWhileLoop(DoWhileStatement loop)
public void visitExpressionStatement(ExpressionStatement statement)
public void visitField(FieldNode fieldNode)
public void visitFieldExpression(FieldExpression expression)
public void visitForLoop(ForStatement loop)
public void visitGStringExpression(GStringExpression expression)
public void visitGenericType(GenericsType genericsType)
public void visitIfElse(IfStatement ifElse)
public void visitListExpression(ListExpression expression)
public void visitMapEntryExpression(MapEntryExpression expression)
public void visitMapExpression(MapExpression expression)
public void visitMethod(MethodNode node)
public void visitMethodCallExpression(MethodCallExpression call)
public void visitMethodPointerExpression(MethodPointerExpression expression)
public void visitNotExpression(NotExpression expression)
public void visitPostfixExpression(PostfixExpression expression)
public void visitPrefixExpression(PrefixExpression expression)
public void visitProperty(PropertyNode statement)
public void visitPropertyExpression(PropertyExpression expression)
public void visitRangeExpression(RangeExpression expression)
public void visitReturnStatement(ReturnStatement statement)
public void visitSpreadExpression(SpreadExpression expression)
public void visitSpreadMapExpression(SpreadMapExpression expression)
protected void visitStatement(Statement statement)
public void visitStaticMethodCallExpression(StaticMethodCallExpression call)
public void visitSwitch(SwitchStatement statement)
public void visitSynchronizedStatement(SynchronizedStatement statement)
public void visitTernaryExpression(TernaryExpression expression)
public void visitThrowStatement(ThrowStatement statement)
public void visitTryCatchFinally(TryCatchStatement statement)
public void visitTupleExpression(TupleExpression expression)
public void visitUnaryMinusExpression(UnaryMinusExpression expression)
public void visitUnaryPlusExpression(UnaryPlusExpression expression)
public void visitVariableExpression(VariableExpression expression)
Visits a bare (unqualified) variable expression.
public void visitWhileLoop(WhileStatement loop)
© 2003-2020 The Apache Software Foundation
Licensed under the Apache license.
https://docs.groovy-lang.org/2.4.21/html/gapi/org/codehaus/groovy/classgen/AsmClassGenerator.html