|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.codehaus.groovy.ast.CodeVisitorSupport
org.codehaus.groovy.ast.ClassCodeVisitorSupport
org.codehaus.groovy.classgen.ClassGenerator
org.codehaus.groovy.classgen.AsmClassGenerator
public class AsmClassGenerator
Generates Java class versions of Groovy classes using ASM.
| Field Summary | |
|---|---|
static boolean |
ASM_DEBUG
|
static boolean |
CREATE_DEBUG_INFO
|
static boolean |
CREATE_LINE_NUMBER_INFO
|
| Fields inherited from class org.codehaus.groovy.classgen.ClassGenerator |
|---|
asmJDKVersion, classLoader, innerClasses |
| Fields inherited from interface org.objectweb.asm.Opcodes |
|---|
AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DOUBLE, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F_APPEND, F_CHOP, F_FULL, F_NEW, F_SAME, F_SAME1, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAT, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, IMUL, INEG, INSTANCEOF, INTEGER, INVOKEDYNAMIC, INVOKEDYNAMIC_OWNER, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISUB, IUSHR, IXOR, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDIV, LLOAD, LMUL, LNEG, LONG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, NULL, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7 |
| Constructor Summary | |
|---|---|
AsmClassGenerator(SourceUnit source,
GeneratorContext context,
org.objectweb.asm.ClassVisitor classVisitor,
ClassLoader classLoader,
String sourceFile)
|
|
| Methods inherited from class org.codehaus.groovy.classgen.ClassGenerator |
|---|
getClassLoader, getInnerClasses |
| Methods inherited from class org.codehaus.groovy.ast.ClassCodeVisitorSupport |
|---|
addError, visitCatchStatement, visitClassCodeContainer, visitImports, visitPackage |
| Methods inherited from class org.codehaus.groovy.ast.CodeVisitorSupport |
|---|
visitEmptyStatement, visitListOfExpressions, visitShortTernaryExpression |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final boolean CREATE_DEBUG_INFO
public static final boolean CREATE_LINE_NUMBER_INFO
public static final boolean ASM_DEBUG
| Constructor Detail |
|---|
public AsmClassGenerator(SourceUnit source,
GeneratorContext context,
org.objectweb.asm.ClassVisitor classVisitor,
ClassLoader classLoader,
String sourceFile)
| Method Detail |
|---|
protected SourceUnit getSourceUnit()
getSourceUnit in class ClassGeneratorpublic void visitClass(ClassNode classNode)
visitClass in interface GroovyClassVisitorvisitClass in class ClassCodeVisitorSupportpublic void visitGenericType(GenericsType genericsType)
public static String getMopMethodName(MethodNode method,
boolean useThis)
method - the method to be called by the mop methoduseThis - if true, then it is a call on "this", "super" else
public static boolean isMopMethod(String methodName)
methodName - name of the method to test
protected void visitConstructorOrMethod(MethodNode node,
boolean isConstructor)
visitConstructorOrMethod in class ClassCodeVisitorSupportpublic void visitConstructor(ConstructorNode node)
visitConstructor in interface GroovyClassVisitorvisitConstructor in class ClassCodeVisitorSupportpublic void visitMethod(MethodNode node)
visitMethod in interface GroovyClassVisitorvisitMethod in class ClassCodeVisitorSupportpublic void visitField(FieldNode fieldNode)
visitField in interface GroovyClassVisitorvisitField in class ClassCodeVisitorSupportpublic void visitProperty(PropertyNode statement)
visitProperty in interface GroovyClassVisitorvisitProperty in class ClassCodeVisitorSupportprotected void visitStatement(Statement statement)
visitStatement in class ClassCodeVisitorSupportpublic void visitBlockStatement(BlockStatement block)
visitBlockStatement in interface GroovyCodeVisitorvisitBlockStatement in class ClassCodeVisitorSupportpublic void visitForLoop(ForStatement loop)
visitForLoop in interface GroovyCodeVisitorvisitForLoop in class ClassCodeVisitorSupportpublic void visitWhileLoop(WhileStatement loop)
visitWhileLoop in interface GroovyCodeVisitorvisitWhileLoop in class ClassCodeVisitorSupportpublic void visitDoWhileLoop(DoWhileStatement loop)
visitDoWhileLoop in interface GroovyCodeVisitorvisitDoWhileLoop in class ClassCodeVisitorSupportpublic void visitIfElse(IfStatement ifElse)
visitIfElse in interface GroovyCodeVisitorvisitIfElse in class ClassCodeVisitorSupportpublic void visitTernaryExpression(TernaryExpression expression)
visitTernaryExpression in interface GroovyCodeVisitorvisitTernaryExpression in class CodeVisitorSupportpublic void visitAssertStatement(AssertStatement statement)
visitAssertStatement in interface GroovyCodeVisitorvisitAssertStatement in class ClassCodeVisitorSupportpublic void visitTryCatchFinally(TryCatchStatement statement)
visitTryCatchFinally in interface GroovyCodeVisitorvisitTryCatchFinally in class ClassCodeVisitorSupportpublic void visitSwitch(SwitchStatement statement)
visitSwitch in interface GroovyCodeVisitorvisitSwitch in class ClassCodeVisitorSupportpublic void visitCaseStatement(CaseStatement statement)
visitCaseStatement in interface GroovyCodeVisitorvisitCaseStatement in class ClassCodeVisitorSupport
public void visitCaseStatement(CaseStatement statement,
int switchVariableIndex,
org.objectweb.asm.Label thisLabel,
org.objectweb.asm.Label nextLabel)
public void visitBreakStatement(BreakStatement statement)
visitBreakStatement in interface GroovyCodeVisitorvisitBreakStatement in class ClassCodeVisitorSupportpublic void visitContinueStatement(ContinueStatement statement)
visitContinueStatement in interface GroovyCodeVisitorvisitContinueStatement in class ClassCodeVisitorSupportpublic void visitSynchronizedStatement(SynchronizedStatement statement)
visitSynchronizedStatement in interface GroovyCodeVisitorvisitSynchronizedStatement in class ClassCodeVisitorSupportpublic void visitThrowStatement(ThrowStatement statement)
visitThrowStatement in interface GroovyCodeVisitorvisitThrowStatement in class ClassCodeVisitorSupportpublic void visitReturnStatement(ReturnStatement statement)
visitReturnStatement in interface GroovyCodeVisitorvisitReturnStatement in class ClassCodeVisitorSupport
protected void doConvertAndCast(ClassNode type,
Expression expression,
boolean ignoreAutoboxing,
boolean forceCast,
boolean coerce)
protected void evaluateExpression(Expression expression)
expression - public void visitExpressionStatement(ExpressionStatement statement)
visitExpressionStatement in interface GroovyCodeVisitorvisitExpressionStatement in class ClassCodeVisitorSupportpublic void visitDeclarationExpression(DeclarationExpression expression)
visitDeclarationExpression in interface GroovyCodeVisitorvisitDeclarationExpression in class CodeVisitorSupportpublic void visitBinaryExpression(BinaryExpression expression)
visitBinaryExpression in interface GroovyCodeVisitorvisitBinaryExpression in class CodeVisitorSupportpublic void visitPostfixExpression(PostfixExpression expression)
visitPostfixExpression in interface GroovyCodeVisitorvisitPostfixExpression in class CodeVisitorSupportpublic void visitPrefixExpression(PrefixExpression expression)
visitPrefixExpression in interface GroovyCodeVisitorvisitPrefixExpression in class CodeVisitorSupportpublic void visitClosureExpression(ClosureExpression expression)
visitClosureExpression in interface GroovyCodeVisitorvisitClosureExpression in class CodeVisitorSupportprotected void loadThisOrOwner()
public void visitRegexExpression(RegexExpression expression)
visitRegexExpression in interface GroovyCodeVisitorvisitRegexExpression in class CodeVisitorSupportpublic void visitConstantExpression(ConstantExpression expression)
visitConstantExpression in interface GroovyCodeVisitorvisitConstantExpression in class CodeVisitorSupportpublic void visitSpreadExpression(SpreadExpression expression)
visitSpreadExpression in interface GroovyCodeVisitorvisitSpreadExpression in class CodeVisitorSupportpublic void visitSpreadMapExpression(SpreadMapExpression expression)
visitSpreadMapExpression in interface GroovyCodeVisitorvisitSpreadMapExpression in class CodeVisitorSupportpublic void visitMethodPointerExpression(MethodPointerExpression expression)
visitMethodPointerExpression in interface GroovyCodeVisitorvisitMethodPointerExpression in class CodeVisitorSupportpublic void visitUnaryMinusExpression(UnaryMinusExpression expression)
visitUnaryMinusExpression in interface GroovyCodeVisitorvisitUnaryMinusExpression in class CodeVisitorSupportpublic void visitUnaryPlusExpression(UnaryPlusExpression expression)
visitUnaryPlusExpression in interface GroovyCodeVisitorvisitUnaryPlusExpression in class CodeVisitorSupportpublic void visitBitwiseNegationExpression(BitwiseNegationExpression expression)
visitBitwiseNegationExpression in interface GroovyCodeVisitorvisitBitwiseNegationExpression in class CodeVisitorSupportpublic void visitCastExpression(CastExpression castExpression)
visitCastExpression in interface GroovyCodeVisitorvisitCastExpression in class CodeVisitorSupportpublic void visitNotExpression(NotExpression expression)
visitNotExpression in interface GroovyCodeVisitorvisitNotExpression in class CodeVisitorSupportpublic void visitBooleanExpression(BooleanExpression expression)
visitBooleanExpression in interface GroovyCodeVisitorvisitBooleanExpression in class CodeVisitorSupportexpression - public void visitMethodCallExpression(MethodCallExpression call)
visitMethodCallExpression in interface GroovyCodeVisitorvisitMethodCallExpression in class CodeVisitorSupportprotected boolean emptyArguments(Expression arguments)
protected static boolean containsSpreadExpression(Expression arguments)
protected static int argumentSize(Expression arguments)
public void visitStaticMethodCallExpression(StaticMethodCallExpression call)
visitStaticMethodCallExpression in interface GroovyCodeVisitorvisitStaticMethodCallExpression in class CodeVisitorSupportpublic void visitConstructorCallExpression(ConstructorCallExpression call)
visitConstructorCallExpression in interface GroovyCodeVisitorvisitConstructorCallExpression in class CodeVisitorSupportpublic void visitPropertyExpression(PropertyExpression expression)
visitPropertyExpression in interface GroovyCodeVisitorvisitPropertyExpression in class CodeVisitorSupportpublic void visitAttributeExpression(AttributeExpression expression)
visitAttributeExpression in interface GroovyCodeVisitorvisitAttributeExpression in class CodeVisitorSupportprotected boolean isGroovyObject(Expression objectExpression)
public void visitFieldExpression(FieldExpression expression)
visitFieldExpression in interface GroovyCodeVisitorvisitFieldExpression in class CodeVisitorSupportpublic void loadStaticField(FieldExpression fldExp)
fldExp - public void loadInstanceField(FieldExpression fldExp)
fldExp - public void storeThisInstanceField(FieldExpression expression)
public void storeStaticField(FieldExpression expression)
protected void visitOuterFieldExpression(FieldExpression expression,
ClassNode outerClassNode,
int steps,
boolean first)
public void visitVariableExpression(VariableExpression expression)
visitVariableExpression in interface GroovyCodeVisitorvisitVariableExpression in class ClassCodeVisitorSupport
protected void processStackVariable(Variable variable,
boolean useReferenceDirectly)
protected void processClassVariable(String name)
protected void processFieldAccess(String name,
FieldNode field,
int steps)
protected boolean isInScriptBody()
protected boolean isPopRequired(Expression expression)
protected void createInterfaceSyntheticStaticFields()
protected void createSyntheticStaticFields()
public void visitClassExpression(ClassExpression expression)
visitClassExpression in interface GroovyCodeVisitorvisitClassExpression in class CodeVisitorSupportpublic void visitRangeExpression(RangeExpression expression)
visitRangeExpression in interface GroovyCodeVisitorvisitRangeExpression in class CodeVisitorSupportpublic void visitMapEntryExpression(MapEntryExpression expression)
visitMapEntryExpression in interface GroovyCodeVisitorvisitMapEntryExpression in class CodeVisitorSupportpublic void visitMapExpression(MapExpression expression)
visitMapExpression in interface GroovyCodeVisitorvisitMapExpression in class CodeVisitorSupportpublic void visitArgumentlistExpression(ArgumentListExpression ale)
visitArgumentlistExpression in interface GroovyCodeVisitorvisitArgumentlistExpression in class CodeVisitorSupportpublic void visitTupleExpression(TupleExpression expression)
visitTupleExpression in interface GroovyCodeVisitorvisitTupleExpression in class CodeVisitorSupportpublic void visitArrayExpression(ArrayExpression expression)
visitArrayExpression in interface GroovyCodeVisitorvisitArrayExpression in class CodeVisitorSupportpublic void visitClosureListExpression(ClosureListExpression expression)
visitClosureListExpression in interface GroovyCodeVisitorvisitClosureListExpression in class CodeVisitorSupportpublic void visitBytecodeSequence(BytecodeSequence bytecodeSequence)
visitBytecodeSequence in class ClassGeneratorpublic void visitListExpression(ListExpression expression)
visitListExpression in interface GroovyCodeVisitorvisitListExpression in class CodeVisitorSupportpublic void visitGStringExpression(GStringExpression expression)
visitGStringExpression in interface GroovyCodeVisitorvisitGStringExpression in class CodeVisitorSupportpublic void visitAnnotations(AnnotatedNode node)
visitAnnotations in class ClassCodeVisitorSupportprotected boolean addInnerClass(ClassNode innerClass)
protected ClassNode createClosureClass(ClosureExpression expression)
protected Parameter[] getClosureSharedVariables(ClosureExpression ce)
protected ClassNode getOutermostClass()
protected void doConvertAndCast(ClassNode type)
protected void doConvertAndCast(ClassNode type,
boolean coerce)
protected void evaluateLogicalOrExpression(BinaryExpression expression)
protected void evaluateLogicalAndExpression(BinaryExpression expression)
protected void evaluateBinaryExpression(String method,
BinaryExpression expression)
protected void evaluateCompareTo(BinaryExpression expression)
protected void evaluateBinaryExpressionWithAssignment(String method,
BinaryExpression expression)
protected void evaluateEqual(BinaryExpression expression,
boolean defineVariable)
protected ClassNode getLHSType(Expression leftExpression)
protected boolean isValidTypeForCast(ClassNode type)
public void visitBytecodeExpression(BytecodeExpression cle)
visitBytecodeExpression in interface GroovyCodeVisitorvisitBytecodeExpression in class CodeVisitorSupportprotected void visitAndAutoboxBoolean(Expression expression)
protected void evaluatePrefixMethod(String method,
Expression expression)
protected void evaluatePostfixMethod(String method,
Expression expression)
protected void evaluateInstanceof(BinaryExpression expression)
protected boolean argumentsUseStack(Expression arguments)
protected Expression createReturnLHSExpression(Expression expression)
protected Expression createReusableExpression(Expression expression)
protected boolean isComparisonExpression(Expression expression)
protected void onLineNumber(ASTNode statement,
String message)
protected boolean isFieldOrVariable(String name)
protected ClassNode getExpressionType(Expression expression)
protected boolean isInClosureConstructor()
protected boolean isInClosure()
protected boolean isNotExplicitThisInClosure(boolean implicitThis)
protected boolean isStaticMethod()
protected CompileUnit getCompileUnit()
public static boolean usesSuper(MethodCallExpression call)
public static boolean usesSuper(PropertyExpression pe)
protected int getBytecodeVersion()
|
Copyright © 2003-2009 The Codehaus. All rights reserved. | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||