Top Description Fields Constructors Methods
org.codehaus.groovy.classgen

public Class AsmClassGenerator

extends ClassGenerator
Class Inheritance
Imports
groovy.lang.GroovyRuntimeException, org.apache.groovy.ast.tools.ExpressionUtils, org.apache.groovy.io.StringBuilderWriter, org.codehaus.groovy.GroovyBugError, org.codehaus.groovy.ast.ASTNode, .AnnotatedNode, .AnnotationNode, .ClassHelper, .ClassNode, .ConstructorNode, .FieldNode, .InnerClassNode, .InterfaceHelperClassNode, .MethodNode, .ModuleNode, .PackageNode, .Parameter, .PropertyNode, org.codehaus.groovy.ast.expr.AnnotationConstantExpression, .ArgumentListExpression, .ArrayExpression, .AttributeExpression, .BinaryExpression, .BitwiseNegationExpression, .BooleanExpression, .CastExpression, .ClassExpression, .ClosureExpression, .ClosureListExpression, .ConstantExpression, .ConstructorCallExpression, .DeclarationExpression, .EmptyExpression, .Expression, .FieldExpression, .GStringExpression, .LambdaExpression, .ListExpression, .MapEntryExpression, .MapExpression, .MethodCallExpression, .MethodPointerExpression, .MethodReferenceExpression, .NotExpression, .PostfixExpression, .PrefixExpression, .PropertyExpression, .RangeExpression, .SpreadExpression, .SpreadMapExpression, .StaticMethodCallExpression, .TernaryExpression, .TupleExpression, .UnaryMinusExpression, .UnaryPlusExpression, .VariableExpression, org.codehaus.groovy.ast.stmt.AssertStatement, .BlockStatement, .BreakStatement, .CaseStatement, .CatchStatement, .ContinueStatement, .DoWhileStatement, .ExpressionStatement, .ForStatement, .IfStatement, .ReturnStatement, .Statement, .SwitchStatement, .SynchronizedStatement, .ThrowStatement, .TryCatchStatement, .WhileStatement, org.codehaus.groovy.ast.tools.WideningCategories, org.codehaus.groovy.classgen.asm.BytecodeHelper, .BytecodeVariable, .MethodCaller, .MethodCallerMultiAdapter, .MopWriter, .OperandStack, .OptimizingStatementWriter, .WriterController, .WriterControllerFactory, org.codehaus.groovy.control.SourceUnit, org.codehaus.groovy.runtime.ScriptBytecodeAdapter, org.codehaus.groovy.syntax.RuntimeParserException, org.objectweb.asm.AnnotationVisitor, .ClassVisitor, .FieldVisitor, .Label, .MethodVisitor, .Type, org.objectweb.asm.util.TraceMethodVisitor, java.io.PrintWriter, .Writer, java.util.ArrayList, .Arrays, .Collections, .HashMap, .Iterator, .LinkedList, .List, .Map, .Objects, .Optional

Generates Java class versions of Groovy classes using ASM.

Field Summary

Modifier and TypeField and Description
public static final boolean
private ClassVisitor
private final GeneratorContext
private WriterController
public static final boolean
public static final boolean
private static final MethodCaller
private static final MethodCaller
private static final MethodCaller
private static final MethodCaller
private static final MethodCaller
private ASTNode
private static final MethodCaller
public static final MethodCallerMultiAdapter
private static final MethodCallerMultiAdapter
public static final MethodCallerMultiAdapter
private static final MethodCallerMultiAdapter
private static final MethodCallerMultiAdapter
public static final String
private boolean
private final Map<String, ClassNode>
public static final MethodCallerMultiAdapter
private static final MethodCallerMultiAdapter
public static final MethodCallerMultiAdapter
private static final MethodCallerMultiAdapter
public static final MethodCallerMultiAdapter
private final SourceUnit
private final String
private static final MethodCaller
Inherited from org.codehaus.groovy.classgen.ClassGenerator:
innerClasses

Constructor Summary

AccessConstructor and Description
public
AsmClassGenerator(final SourceUnit source, final GeneratorContext context, final ClassVisitor classVisitor, final String sourceFile)

Method Summary

Modifier and TypeMethod and Description
public boolean
addInnerClass(final ClassNode innerClass)

private static int
private static int
public static int
argumentSize(final Expression arguments)

private static String[]
buildExceptions(final ClassNode[] exceptions)

private boolean
private boolean
checkStaticOuterField(final PropertyExpression pexp, final String propertyName)

private static boolean
public static boolean
protected void
protected void
public void
despreadList(final List<Expression> expressions, final boolean wrap)

private static int
private static int
fixInnerClassModifiers(final ClassNode classNode, int modifiers)

private static int
fixInterfaceModifiers(final ClassNode classNode, int modifiers)

private AnnotationVisitor
getAnnotationVisitor(final AnnotatedNode targetNode, final AnnotationNode an, final Object visitor)

public WriterController
public static FieldNode
getDeclaredFieldOfCurrentClassOrAccessibleFieldOfSuper(final ClassNode accessingNode, final ClassNode current, final String name, final boolean skipCurrent)

private String
public SourceUnit
private static String
private static boolean
private boolean
isGroovyObject(final Expression objectExpression)

private boolean
public static boolean
isNullConstant(final Expression expression)

Deprecated
public static boolean
isSuperExpression(final Expression expression)

Deprecated
public static boolean
isThisExpression(final Expression expression)

Deprecated
public static boolean
isValidFieldNodeForByteCodeAccess(final FieldNode field, final ClassNode accessingClass)

Determines if the given class can directly access the given field (via GETFIELD, GETSTATIC, etc. bytecode instructions).

private static boolean
isVargs(final Parameter[] parameters)

public void
loadInstanceField(final FieldExpression expression)

RHS instance field.

public void
loadStaticField(final FieldExpression expression)

private void
loadThis(final VariableExpression thisOrSuper)

protected void
loadThisOrOwner()

Loads either this object or if we're inside a closure then load the top level owner

public void
loadWrapper(final Expression argument)

private static String
private void
public void
onLineNumber(final ASTNode statement, final String message)

private void
private void
public void
throwException(final String message)

private boolean
tryPropertyOfSuperClass(final PropertyExpression pexp, final String propertyName)

private void
visitAnnotationArrayElement(final Expression expr, final int arrayElementType, final AnnotationVisitor av)

private void
visitAnnotationAttributes(final AnnotationNode
the node with an annotation
an
,
final AnnotationVisitor
the visitor to use
av
)

Generates the annotation attributes.

private void
private void
public void
private void
visitAnnotations(final AnnotatedNode targetNode, final Object visitor)

private void
visitAnnotations(final AnnotatedNode targetNode, final AnnotatedNode sourceNode, final Object visitor)

public void
private void
public void
public void
public void
private void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
protected void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
private void
visitParameterAnnotations(final Parameter parameter, final int paramNumber, final MethodVisitor mv)

public void
public void
public void
public void
public void
public void
public void
public void
protected void
public void
private void
visitStdMethod(final MethodNode node, final boolean isConstructor, final Parameter[] parameters, final Statement code)

public void
public void
public void
public void
public void
public void
pack-priv void
visitTupleExpression(final TupleExpression expression, final boolean useWrapper)

public void
public void
public void
public void
Inherited from org.codehaus.groovy.classgen.ClassGenerator:
getInnerClasses