[Java] Class AsmClassGenerator
- org.codehaus.groovy.classgen.AsmClassGenerator
public class AsmClassGenerator extends ClassGenerator
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 String | MINIMUM_BYTECODE_VERSION | |
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 String MINIMUM_BYTECODE_VERSION
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<Expression> expressions, boolean wrap)
public WriterController getController()
public static FieldNode getDeclaredFieldOfCurrentClassOrAccessibleFieldOfSuper(ClassNode accessingNode, ClassNode current, String name, boolean skipCurrent)
@Override public SourceUnit getSourceUnit()
@Deprecated public static boolean isNullConstant(Expression expression)
@Deprecated public static boolean isSuperExpression(Expression expression)
@Deprecated public static boolean isThisExpression(Expression expression)
public static boolean isValidFieldNodeForByteCodeAccess(FieldNode field, ClassNode accessingClass)
Determines if the given class can directly access the given field (via GETFIELD
, GETSTATIC
, etc. bytecode instructions).
public void loadInstanceField(FieldExpression expression)
RHS instance field. should move most of the code in the BytecodeHelper
public void loadStaticField(FieldExpression expression)
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 void throwException(String message)
public void visit(org.objectweb.asm.MethodVisitor mv)
public void visit(org.objectweb.asm.MethodVisitor mv)
public void visit(org.objectweb.asm.MethodVisitor mv)
public void visit(org.objectweb.asm.MethodVisitor mv)
public void visit(org.objectweb.asm.MethodVisitor mv)
@Override public void visitAnnotations(AnnotatedNode node)
@Override public void visitArgumentlistExpression(ArgumentListExpression ale)
@Override public void visitArrayExpression(ArrayExpression expression)
@Override public void visitAssertStatement(AssertStatement statement)
@Override public void visitAttributeExpression(AttributeExpression expression)
@Override public void visitBinaryExpression(BinaryExpression expression)
@Override public void visitBitwiseNegationExpression(BitwiseNegationExpression expression)
@Override public void visitBlockStatement(BlockStatement statement)
@Override public void visitBooleanExpression(BooleanExpression expression)
@Override public void visitBreakStatement(BreakStatement statement)
@Override public void visitBytecodeExpression(BytecodeExpression expression)
@Override public void visitBytecodeSequence(BytecodeSequence bytecodeSequence)
@Override public void visitCaseStatement(CaseStatement statement)
@Override public void visitCastExpression(CastExpression castExpression)
@Override public void visitCatchStatement(CatchStatement statement)
@Override public void visitClass(ClassNode classNode)
@Override public void visitClassExpression(ClassExpression expression)
@Override public void visitClosureExpression(ClosureExpression expression)
@Override public void visitClosureListExpression(ClosureListExpression expression)
@Override public void visitConstantExpression(ConstantExpression expression)
Generates byte code for constants.
- See Also:
- Class field types
@Override public void visitConstructor(ConstructorNode node)
@Override public void visitConstructorCallExpression(ConstructorCallExpression call)
@Override protected void visitConstructorOrMethod(MethodNode node, boolean isConstructor)
@Override public void visitContinueStatement(ContinueStatement statement)
@Override public void visitDeclarationExpression(DeclarationExpression expression)
@Override public void visitDoWhileLoop(DoWhileStatement statement)
@Override public void visitExpressionStatement(ExpressionStatement statement)
@Override public void visitField(FieldNode fieldNode)
@Override public void visitFieldExpression(FieldExpression expression)
@Override public void visitForLoop(ForStatement statement)
@Override public void visitGStringExpression(GStringExpression expression)
@Override public void visitIfElse(IfStatement statement)
@Override public void visitLambdaExpression(LambdaExpression expression)
@Override public void visitListExpression(ListExpression expression)
@Override public void visitMapEntryExpression(MapEntryExpression expression)
@Override public void visitMapExpression(MapExpression expression)
@Override public void visitMethod(MethodNode node)
@Override public void visitMethodCallExpression(MethodCallExpression call)
@Override public void visitMethodPointerExpression(MethodPointerExpression expression)
@Override public void visitMethodReferenceExpression(MethodReferenceExpression expression)
@Override public void visitNotExpression(NotExpression expression)
@Override public void visitPostfixExpression(PostfixExpression expression)
@Override public void visitPrefixExpression(PrefixExpression expression)
@Override public void visitProperty(PropertyNode statement)
@Override public void visitPropertyExpression(PropertyExpression expression)
@Override public void visitRangeExpression(RangeExpression expression)
@Override public void visitReturnStatement(ReturnStatement statement)
@Override public void visitSpreadExpression(SpreadExpression expression)
@Override public void visitSpreadMapExpression(SpreadMapExpression expression)
@Override protected void visitStatement(Statement statement)
@Override public void visitStaticMethodCallExpression(StaticMethodCallExpression call)
@Override public void visitSwitch(SwitchStatement statement)
@Override public void visitSynchronizedStatement(SynchronizedStatement statement)
@Override public void visitTernaryExpression(TernaryExpression expression)
@Override public void visitThrowStatement(ThrowStatement statement)
@Override public void visitTryCatchFinally(TryCatchStatement statement)
@Override public void visitTupleExpression(TupleExpression expression)
@Override public void visitUnaryMinusExpression(UnaryMinusExpression expression)
@Override public void visitUnaryPlusExpression(UnaryPlusExpression expression)
@Override public void visitVariableExpression(VariableExpression expression)
@Override public void visitWhileLoop(WhileStatement statement)
© 2003-2020 The Apache Software Foundation
Licensed under the Apache license.
https://docs.groovy-lang.org/3.0.7/html/gapi/org/codehaus/groovy/classgen/AsmClassGenerator.html