Package org.codehaus.groovy.ast
Class ModuleNode
java.lang.Object
org.codehaus.groovy.ast.ASTNode
org.codehaus.groovy.ast.ModuleNode
- All Implemented Interfaces:
NodeMetaDataHandler
,org.objectweb.asm.Opcodes
public class ModuleNode extends ASTNode implements org.objectweb.asm.Opcodes
Represents a module, which consists typically of a class declaration
but could include some imports, some statements and multiple classes
intermixed with statements like scripts in Python or Ruby
-
Field Summary
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_MANDATED, ACC_MODULE, ACC_NATIVE, ACC_OPEN, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_RECORD, ACC_STATIC, ACC_STATIC_PHASE, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_TRANSITIVE, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASM10_EXPERIMENTAL, ASM4, ASM5, ASM6, ASM7, ASM8, ASM9, 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, H_GETFIELD, H_GETSTATIC, H_INVOKEINTERFACE, H_INVOKESPECIAL, H_INVOKESTATIC, H_INVOKEVIRTUAL, H_NEWINVOKESPECIAL, H_PUTFIELD, H_PUTSTATIC, 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, 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, SOURCE_DEPRECATED, SOURCE_MASK, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V_PREVIEW, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7, V1_8, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V9
-
Constructor Summary
Constructors Constructor Description ModuleNode(CompileUnit unit)
ModuleNode(SourceUnit context)
-
Method Summary
Modifier and Type Method Description void
addClass(ClassNode node)
void
addImport(java.lang.String alias, ClassNode type)
void
addImport(java.lang.String alias, ClassNode type, java.util.List<AnnotationNode> annotations)
void
addMethod(MethodNode node)
void
addStarImport(java.lang.String packageName)
void
addStarImport(java.lang.String packageName, java.util.List<AnnotationNode> annotations)
void
addStatement(Statement node)
void
addStaticImport(ClassNode type, java.lang.String fieldName, java.lang.String alias)
void
addStaticImport(ClassNode type, java.lang.String fieldName, java.lang.String alias, java.util.List<AnnotationNode> annotations)
void
addStaticStarImport(java.lang.String name, ClassNode type)
void
addStaticStarImport(java.lang.String name, ClassNode type, java.util.List<AnnotationNode> annotations)
protected ClassNode
createStatementsClass()
protected java.lang.String
extractClassFromFileDescription()
java.util.List<ClassNode>
getClasses()
SourceUnit
getContext()
java.lang.String
getDescription()
ImportNode
getImport(java.lang.String alias)
java.util.List<ImportNode>
getImports()
ClassNode
getImportType(java.lang.String alias)
java.lang.String
getMainClassName()
java.util.List<MethodNode>
getMethods()
PackageNode
getPackage()
java.lang.String
getPackageName()
ClassNode
getScriptClassDummy()
java.util.List<ImportNode>
getStarImports()
BlockStatement
getStatementBlock()
java.util.Map<java.lang.String,ImportNode>
getStaticImports()
java.util.Map<java.lang.String,ImportNode>
getStaticStarImports()
CompileUnit
getUnit()
boolean
hasImportsResolved()
boolean
hasPackage()
boolean
hasPackageName()
boolean
isEmpty()
void
setDescription(java.lang.String description)
void
setImportsResolved(boolean importsResolved)
void
setPackage(PackageNode packageNode)
void
setPackageName(java.lang.String packageName)
void
sortClasses()
void
visit(GroovyCodeVisitor visitor)
Methods inherited from class org.codehaus.groovy.ast.ASTNode
copyNodeMetaData, getColumnNumber, getLastColumnNumber, getLastLineNumber, getLineNumber, getMetaDataMap, getText, setColumnNumber, setLastColumnNumber, setLastLineNumber, setLineNumber, setMetaDataMap, setSourcePosition
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.codehaus.groovy.ast.NodeMetaDataHandler
copyNodeMetaData, getNodeMetaData, getNodeMetaData, getNodeMetaData, putNodeMetaData, removeNodeMetaData, setNodeMetaData
-
Constructor Details
-
ModuleNode
-
ModuleNode
-
-
Method Details
-
getClasses
-
getMethods
- Returns:
- the module's methods
-
getImports
- Returns:
- a copy of the module's imports
-
getStarImports
- Returns:
- the module's star imports
-
getStaticImports
- Returns:
- the module's static imports
-
getStaticStarImports
- Returns:
- the module's static star imports
-
getImportType
- Parameters:
alias
- the name of interest- Returns:
- the import type for the given alias or null if none is available
-
getImport
- Parameters:
alias
- the name of interest- Returns:
- the import node for the given alias or null if none is available
-
addImport
-
addImport
public void addImport(java.lang.String alias, ClassNode type, java.util.List<AnnotationNode> annotations) -
addStarImport
public void addStarImport(java.lang.String packageName) -
addStarImport
public void addStarImport(java.lang.String packageName, java.util.List<AnnotationNode> annotations) -
addStaticImport
-
addStaticImport
public void addStaticImport(ClassNode type, java.lang.String fieldName, java.lang.String alias, java.util.List<AnnotationNode> annotations) -
addStaticStarImport
-
addStaticStarImport
public void addStaticStarImport(java.lang.String name, ClassNode type, java.util.List<AnnotationNode> annotations) -
addStatement
-
addClass
-
addMethod
-
visit
-
getPackageName
public java.lang.String getPackageName() -
getPackage
-
hasPackage
public boolean hasPackage() -
setPackage
-
hasPackageName
public boolean hasPackageName() -
setPackageName
public void setPackageName(java.lang.String packageName) -
getDescription
public java.lang.String getDescription()- Returns:
- the underlying character stream description
-
setDescription
public void setDescription(java.lang.String description) -
getUnit
-
getContext
-
getScriptClassDummy
-
createStatementsClass
-
extractClassFromFileDescription
protected java.lang.String extractClassFromFileDescription() -
isEmpty
public boolean isEmpty() -
sortClasses
public void sortClasses() -
hasImportsResolved
public boolean hasImportsResolved() -
setImportsResolved
public void setImportsResolved(boolean importsResolved) -
getMainClassName
public java.lang.String getMainClassName() -
getStatementBlock
-