Class JCompUnit
java.lang.Object
org.codehaus.modello.plugin.java.javasource.JCompUnit
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$ $Date$
- Author:
- Gary Shea
-
Constructor Summary
ConstructorDescriptionCreates a new JCompUnitCreates 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 Package and file name are taken from jInterface. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds a JClass which should be printed in this file.void
addInterface
(JInterface jInterface) Adds a JInterface which should be printed in this file.void
addStructure
(JStructure jStructure) Adds the given JStructure (either a JInterface or a JClass) to this JCompUnit.getFilename
(String destDir) Returns the name of the file that this JCompUnit would be printed as, given a call to #print.returns a array of String containing all import classes/packages, also imports within the same package of this object.protected static String
getPackageFromClassName
(String className) Returns the name of the package that this JCompUnit is a member ofvoid
print()
Prints the source code for this JClass in the current directory with the default line seperator of the the runtime platform.void
Prints the source code for this JClass with the default line seperator of the the runtime platform.void
Prints the source code for this JCompUnit.void
print
(JSourceWriter jsw) Prints the source code for this JClass.final void
printStructures
(JSourceWriter jsw, boolean printPublic) Print the source code for the contained JClass objects.void
Sets the header comment for this JCompUnit
-
Constructor Details
-
JCompUnit
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 in which this JCompUnit will be stored
-
JCompUnit
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
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 Details
-
addStructure
Adds the given JStructure (either a JInterface or a JClass) to this JCompUnit.- Parameters:
jStructure
- the JStructure to add- Throws:
IllegalArgumentException
- when the given JStructure has the same name of an existing JStructure or if the class of jStructure is unknown.
-
addClass
Adds a JClass which should be printed in this file.- Parameters:
jClass
- the JClass to add
-
addInterface
Adds a JInterface which should be printed in this file.- Parameters:
jInterface
- the JInterface to add
-
getImports
returns a array of String containing all import 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
Returns the name of the file that this JCompUnit would be printed as, given 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 as, given a call to #print.
-
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
-
getPackageFromClassName
-
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
Prints the source code for this JClass with the default line seperator of the the runtime platform.- Parameters:
destDir
- the destination directory to generate the file.- See Also:
-
print
Prints the source code for this JCompUnit.- Parameters:
destDir
- the destination directory to generate the file.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
Prints the source code for this JClass.- Parameters:
jsw
- the JSourceWriter to print to.
-
printStructures
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.
-
setHeader
Sets the header comment for this JCompUnit- Parameters:
comment
- the comment to display at the top of the source file when printed
-