Class CompileUnit


  • public class CompileUnit
    extends Object
    Represents the entire contents of a compilation step which consists of one or more ModuleNode instances. There's one instance of this that's shared by all modules and classes compiled during a single invocation of the compiler.

    It's attached to MethodNodes and ClassNodes and is used to find fully qualified names of classes, resolve imports, and that sort of thing.

    Author:
    James Strachan
    • Method Detail

      • addModule

        public void addModule​(ModuleNode node)
      • getClass

        public ClassNode getClass​(String name)
        Returns:
        the ClassNode for the given qualified name or returns null if the name does not exist in the current compilation unit (ignoring the .class files on the classpath)
      • getClasses

        public List getClasses()
        Returns:
        a list of all the classes in each module in the compilation unit
      • getCodeSource

        public CodeSource getCodeSource()
      • addClass

        public void addClass​(ClassNode node)
        Adds a class to the unit.
      • addClassNodeToCompile

        public void addClassNodeToCompile​(ClassNode node,
                                          SourceUnit location)
        this method actually does not compile a class. It's only a marker that this type has to be compiled by the CompilationUnit at the end of a parse step no node should be be left.
      • getScriptSourceLocation

        public SourceUnit getScriptSourceLocation​(String className)
      • hasClassNodeToCompile

        public boolean hasClassNodeToCompile()
      • iterateClassNodeToCompile

        public Iterator<String> iterateClassNodeToCompile()
      • addGeneratedInnerClass

        public void addGeneratedInnerClass​(InnerClassNode icn)