org.exolab.javasource

Class JCompUnit

public final class JCompUnit extends 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: 6324 $ $Date: 2005-03-05 06:42:06 -0700 (Sat, 05 Mar 2005) $

Author: Gary Shea

Constructor Summary
JCompUnit(String packageName, 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
voidaddClass(JClass jClass)
Adds a JClass to be printed in this file.
voidaddInterface(JInterface jInterface)
Adds a JInterface to be printed in this file.
voidaddStructure(JStructure jStructure)
Adds the given JStructure (either a JInterface or a JClass) to this JCompUnit.
StringgetFilename(String destDir)
Returns the name of the file that this JCompUnit would be printed to, given a call to JCompUnit, or if destDir is null, a call to print.
SortedSetgetImports()
Returns a array of String containing all imported classes/packages, also imports within the same package of this object.
protected static StringgetPackageFromClassName(String className)
Returns the package name of the provided class name.
StringgetPackageName()
Returns the name of the package that this JCompUnit is a member of.
voidprint()
Prints the source code for this JClass in the current directory with the default line seperator of the the runtime platform.
voidprint(String destDir)
Prints the source code for this JClass with the default line seperator of the the runtime platform.
voidprint(String destDir, String lineSeparator)
Prints the source code for this JCompUnit using the provided root directory and line separator.
voidprint(JSourceWriter jsw)
Prints the source code for this JClass to the provided JSourceWriter.
voidprintStructures(JSourceWriter jsw, boolean printPublic)
Print the source code for the contained JClass objects.
voidsetHeader(JComment comment)
Sets the header comment for this JCompUnit.

Constructor Detail

JCompUnit

public JCompUnit(String packageName, 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

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

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

getFilename

public String getFilename(String destDir)
Returns the name of the file that this JCompUnit would be printed to, given a call to JCompUnit, 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

getImports

public SortedSet 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

getPackageFromClassName

protected static String getPackageFromClassName(String className)
Returns the package name of the provided class name.

Parameters: className name from which to extract the package

Returns: the package name of the provided class name.

getPackageName

public 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: JCompUnit

print

public void print(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: JCompUnit

print

public void print(String destDir, 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.

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

Intalio Inc. (C) 1999-2006. All rights reserved http://www.intalio.com