org.codehaus.groovy.ast
Class ModuleNode

java.lang.Object
  extended by org.codehaus.groovy.ast.ASTNode
      extended by org.codehaus.groovy.ast.ModuleNode
All Implemented Interfaces:
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

Version:
$Revision: 9033 $
Author:
Jochen Theodorou, James Strachan

Field Summary
(package private)  java.util.List classes
           
private  SourceUnit context
           
private  boolean createClassForStatements
           
private  java.lang.String description
           
private static java.lang.String[] EMPTY_STRING_ARRAY
           
private  java.util.Map importIndex
           
private  java.util.List importPackages
           
private  java.util.List imports
           
private  boolean importsResolved
           
private  java.util.List methods
           
private  java.lang.String packageName
           
private  BlockStatement statementBlock
           
private  java.util.Map staticImportAliases
           
private  java.util.Map staticImportClasses
           
private  java.util.Map staticImportFields
           
private  CompileUnit unit
           
 
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, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, 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, 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, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, 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, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6
 
Constructor Summary
ModuleNode(CompileUnit unit)
           
ModuleNode(SourceUnit context)
           
 
Method Summary
 void addClass(ClassNode node)
           
 void addImport(java.lang.String alias, ClassNode type)
           
 java.lang.String[] addImportPackage(java.lang.String packageName)
           
 void addMethod(MethodNode node)
           
 void addStatement(Statement node)
           
 void addStaticImportClass(java.lang.String name, ClassNode type)
           
 void addStaticMethodOrField(ClassNode type, java.lang.String fieldName, java.lang.String alias)
           
private  void addToCompileUnit(ClassNode node)
           
protected  ClassNode createStatementsClass()
           
protected  java.lang.String extractClassFromFileDescription()
           
 java.util.List getClasses()
           
 SourceUnit getContext()
           
 java.lang.String getDescription()
           
 ClassNode getImport(java.lang.String alias)
           
 java.util.List getImportPackages()
           
 java.util.List getImports()
           
 java.util.List getMethods()
           
 java.lang.String getPackageName()
           
 BlockStatement getStatementBlock()
           
 java.util.Map getStaticImportAliases()
           
 java.util.Map getStaticImportClasses()
           
 java.util.Map getStaticImportFields()
           
 CompileUnit getUnit()
           
 boolean hasImportsResolved()
           
 boolean hasPackageName()
           
 boolean isEmpty()
           
 void setDescription(java.lang.String description)
           
 void setImportsResolved(boolean importsResolved)
           
 void setPackageName(java.lang.String packageName)
           
(package private)  void setUnit(CompileUnit unit)
           
 void sortClasses()
           
 void visit(GroovyCodeVisitor visitor)
           
 
Methods inherited from class org.codehaus.groovy.ast.ASTNode
getColumnNumber, getLastColumnNumber, getLastLineNumber, getLineNumber, getText, setColumnNumber, setLastColumnNumber, setLastLineNumber, setLineNumber, setSourcePosition
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

statementBlock

private BlockStatement statementBlock

classes

java.util.List classes

methods

private java.util.List methods

imports

private java.util.List imports

importPackages

private java.util.List importPackages

importIndex

private java.util.Map importIndex

staticImportAliases

private java.util.Map staticImportAliases

staticImportFields

private java.util.Map staticImportFields

staticImportClasses

private java.util.Map staticImportClasses

unit

private CompileUnit unit

packageName

private java.lang.String packageName

description

private java.lang.String description

createClassForStatements

private boolean createClassForStatements

context

private transient SourceUnit context

importsResolved

private boolean importsResolved

EMPTY_STRING_ARRAY

private static final java.lang.String[] EMPTY_STRING_ARRAY
Constructor Detail

ModuleNode

public ModuleNode(SourceUnit context)

ModuleNode

public ModuleNode(CompileUnit unit)
Method Detail

getStatementBlock

public BlockStatement getStatementBlock()

getMethods

public java.util.List getMethods()

getClasses

public java.util.List getClasses()

getImports

public java.util.List getImports()

getImportPackages

public java.util.List getImportPackages()

getImport

public ClassNode getImport(java.lang.String alias)
Returns:
the class name for the given alias or null if none is available

addImport

public void addImport(java.lang.String alias,
                      ClassNode type)

addImportPackage

public java.lang.String[] addImportPackage(java.lang.String packageName)

addStatement

public void addStatement(Statement node)

addClass

public void addClass(ClassNode node)

addToCompileUnit

private void addToCompileUnit(ClassNode node)
Parameters:
node -

addMethod

public void addMethod(MethodNode node)

visit

public void visit(GroovyCodeVisitor visitor)
Overrides:
visit in class ASTNode

getPackageName

public java.lang.String getPackageName()

setPackageName

public void setPackageName(java.lang.String packageName)

hasPackageName

public boolean hasPackageName()

getContext

public SourceUnit getContext()

getDescription

public java.lang.String getDescription()
Returns:
the underlying character stream description

setDescription

public void setDescription(java.lang.String description)

getUnit

public CompileUnit getUnit()

setUnit

void setUnit(CompileUnit unit)

createStatementsClass

protected ClassNode 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)

getStaticImportAliases

public java.util.Map getStaticImportAliases()

getStaticImportClasses

public java.util.Map getStaticImportClasses()

getStaticImportFields

public java.util.Map getStaticImportFields()

addStaticMethodOrField

public void addStaticMethodOrField(ClassNode type,
                                   java.lang.String fieldName,
                                   java.lang.String alias)

addStaticImportClass

public void addStaticImportClass(java.lang.String name,
                                 ClassNode type)


Copyright © ${year} The Codehaus. All Rights Reserved.