Class JCompUnit


  • public final class JCompUnit
    extends java.lang.Object
    A representation of the Java Source code for a Java compilation unit. This is a useful utility when creating in memory source code. This package was modelled after the Java Reflection API as much as possible to reduce the learning curve.
    Version:
    $Revision: 7996 $ $Date: 2005-03-05 06:42:06 -0700 (Sat, 05 Mar 2005) $
    Author:
    Gary Shea
    • Constructor Summary

      Constructors 
      Constructor Description
      JCompUnit​(java.lang.String packageName, java.lang.String fileName)
      Creates a new JCompUnit.
      JCompUnit​(JClass jClass)
      Creates a new JCompUnit with the given JClass (which must have been created with either a full class name or package/local name) as the public class.
      JCompUnit​(JInterface jInterface)
      Creates a new JCompUnit with the given JInterface as public interface.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addClass​(JClass jClass)
      Adds a JClass to be printed in this file.
      void addInterface​(JInterface jInterface)
      Adds a JInterface to be printed in this file.
      void addStructure​(JStructure jStructure)
      Adds the given JStructure (either a JInterface or a JClass) to this JCompUnit.
      java.lang.String getFilename​(java.lang.String destDir)
      Returns the name of the file that this JCompUnit would be printed to, given a call to print(String, String), or if destDir is null, a call to print().
      java.util.SortedSet<java.lang.String> getImports()
      Returns a array of String containing all imported classes/packages, also imports within the same package of this object.
      java.lang.String getPackageName()
      Returns the name of the package that this JCompUnit is a member of.
      void print()
      Prints the source code for this JClass in the current directory with the default line seperator of the the runtime platform.
      void print​(java.lang.String destDir)
      Prints the source code for this JClass with the default line seperator of the the runtime platform.
      void print​(java.lang.String destDir, java.lang.String lineSeparator)
      Prints the source code for this JCompUnit using the provided root directory and line separator.
      void print​(JSourceWriter jsw)
      Prints the source code for this JClass to the provided JSourceWriter.
      void printStructures​(JSourceWriter jsw, boolean printPublic)
      Print the source code for the contained JClass objects.
      void setHeader​(JComment comment)
      Sets the header comment for this JCompUnit.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • JCompUnit

        public JCompUnit​(java.lang.String packageName,
                         java.lang.String fileName)
        Creates a new JCompUnit.
        Parameters:
        packageName - The name of the package for this JCompUnit. If packageName is null or empty, no 'package' line will be generated.
        fileName - The name of the file to which this JCompUnit will be written.
      • JCompUnit

        public JCompUnit​(JClass jClass)
        Creates a new JCompUnit with the given JClass (which must have been created with either a full class name or package/local name) as the public class. Package and file name are taken from jClass.
        Parameters:
        jClass - The public class for this JCompUnit.
      • JCompUnit

        public JCompUnit​(JInterface jInterface)
        Creates a new JCompUnit with the given JInterface as public interface. Package and file name are taken from jInterface.
        Parameters:
        jInterface - The public interface for this JCompUnit.
    • Method Detail

      • setHeader

        public void setHeader​(JComment comment)
        Sets the header comment for this JCompUnit.
        Parameters:
        comment - The comment to display at the top of the source file when printed.
      • addStructure

        public void addStructure​(JStructure jStructure)
        Adds the given JStructure (either a JInterface or a JClass) to this JCompUnit.
        Parameters:
        jStructure - The JStructure to add.
      • addClass

        public void addClass​(JClass jClass)
        Adds a JClass to be printed in this file.
        Parameters:
        jClass - The JClass to be printed in this file.
      • addInterface

        public void addInterface​(JInterface jInterface)
        Adds a JInterface to be printed in this file.
        Parameters:
        jInterface - The JInterface to be printed in this file.
      • getImports

        public java.util.SortedSet<java.lang.String> getImports()
        Returns a array of String containing all imported classes/packages, also imports within the same package of this object.
        Returns:
        A array of String containing all import classes/packages, also imports within the same package of this object.
      • getFilename

        public java.lang.String getFilename​(java.lang.String destDir)
        Returns the name of the file that this JCompUnit would be printed to, given a call to print(String, String), or if destDir is null, a call to print().
        Parameters:
        destDir - The destination directory. This may be null.
        Returns:
        The name of the file that this JCompUnit would be printed to.
      • getPackageName

        public java.lang.String getPackageName()
        Returns the name of the package that this JCompUnit is a member of.
        Returns:
        The name of the package that this JCompUnit is a member of, or null if there is no current package name defined.
      • print

        public void print()
        Prints the source code for this JClass in the current directory with the default line seperator of the the runtime platform.
        See Also:
        print(String, String)
      • print

        public void print​(java.lang.String destDir)
        Prints the source code for this JClass with the default line seperator of the the runtime platform.
        Parameters:
        destDir - The destination directory to use as the root directory for source generation.
        See Also:
        print(String, String)
      • print

        public void print​(java.lang.String destDir,
                          java.lang.String lineSeparator)
        Prints the source code for this JCompUnit using the provided root directory and line separator.
        Parameters:
        destDir - The destination directory to use as the root directory for source generation.
        lineSeparator - The line separator to use at the end of each line. If null, then the default line separator for the runtime platform will be used.
      • print

        public void print​(JSourceWriter jsw)
        Prints the source code for this JClass to the provided JSourceWriter.
        Parameters:
        jsw - The JSourceWriter to print to.
      • printStructures

        public void printStructures​(JSourceWriter jsw,
                                    boolean printPublic)
        Print the source code for the contained JClass objects.
        Parameters:
        jsw - The JSourceWriter to print to.
        printPublic - If true, print only public classes; if false, print only non-public classes.