This class represents the basic Java "structure" for a Java source file. This
is the base class for JClass and JInterface.
This is a useful utility when creating in memory source code. The code in
this package was modelled after the Java Reflection API as much as possible
to reduce the learning curve.
addField
public abstract void addField(JField jField)
Adds the given JField to this JStructure.
This method is implemented by subclasses and should only accept the
proper fields for the subclass otherwise an IllegalArgumentException will
be thrown. For example a JInterface will only accept static fields.
jField
- The JField to add.
addImport
public abstract void addImport(String className)
Adds the given import to this JStructure. Note: You cannot import
from the "default package," so imports with no package are ignored.
className
- Name of the class to import.
addImport
protected final void addImport(JAnnotation annotation)
Adds appropriate import for this JAnnotation.
annotation
- A JAnnotation for which we want to add an import to
this JStructure.
addImport
protected final void addImport(JAnnotation[] annotations)
Adds appropriate imports for each JAnnotation in the given Array.
annotations
- An Array of JAnnotation; we want to add an import to
this JStructure for each JAnnotation in the Array.
addImportInternal
protected final void addImportInternal(String className)
Adds the given import to this JStructure. Given class name should not be null or empty.
Note: You cannot import from the "default package," so imports with no package are ignored.
className
- Name of the class to import.
addInterface
public final void addInterface(String interfaceName)
Adds the given interface to the list of interfaces this JStructure
inherits method declarations from, and either implements (JClass) or
extends (JInterface).
interfaceName
- The name of the interface to "inherit" method
declarations from.
addMember
public abstract void addMember(JMember jMember)
Adds the given JMember to this JStructure.
This method is implemented by subclasses and should only accept the
proper types for the subclass otherwise an IllegalArgumentException will
be thrown.
jMember
- The JMember to add to this JStructure.
getAnnotatedElementHelper
protected final JAnnotatedElementHelper getAnnotatedElementHelper()
Returns the object managing the annotations for this JStructure.
- The object managing the annotations for this JStructure.
getField
public abstract JField getField(String name)
Returns the field with the given name, or null if no field was found with
that name.
name
- The name of the field to return.
- The field with the given name, or null if no field was found with
the given name.
getFields
public abstract JField[] getFields()
Returns an array of all the JFields of this JStructure.
- An array of all the JFields of this JStructure.
getFilename
public final String getFilename(String destDir)
Returns the name of the file that this JStructure would be printed to,
given a call to
print(String,String)
.
destDir
- the destination directory. This may be null.
- the name of the file that this JInterface would be printed to
getHeader
public final JComment getHeader()
Returns the JComment header to display at the top of the source file for
this JStructure, or null if no header was set.
- The JComment header or null if none exists.
getImportCount
public final int getImportCount()
Returns the amount of imports.
getImports
public final Enumeration getImports()
Returns an Enumeration of imported package and class names for this
JStructure.
- The Enumeration of imports. May be empty but will not be null.
getInterfaceCount
public final int getInterfaceCount()
Return the count of the number of Interfaces that have been added to this
JStructure.
- The count of the number of Interfaces that have been added to
this JStructure.
getInterfaces
public final Enumeration getInterfaces()
Returns an Enumeration of interface names that this JStructure inherits
from.
- The Enumeration of interface names for this JStructure. May be
empty but will not be null.
getJDocComment
public final JDocComment getJDocComment()
Returns the JavaDoc comment for this JStructure.
- The JDocComment for this JStructure.
getModifiers
public final JModifiers getModifiers()
Returns the JModifiers, which allows the qualifiers to be changed.
- The JModifiers for this JStructure.
getPackageName
public final String getPackageName()
Returns the name of the package that this JStructure is a member of.
- The name of the package that this JStructure is a member of, or
null if there is no current package name defined.
hasImport
public final boolean hasImport(String classname)
Returns true if the given classname exists in the imports of this
JStructure.
classname
- The class name to check for
- True if the given classname exists in the imports list.
print
public final void print(String destDir,
String lineSeparator)
Prints the source code for this JStructure to the destination directory.
Subdirectories will be created if necessary for the package.
destDir
- Directory name to use as the root directory for all output.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 abstract void print(JSourceWriter jsw)
Prints the source code for this JStructure to the given JSourceWriter.
jsw
- The JSourceWriter to print to.
printHeader
public final void printHeader(JSourceWriter jsw)
A utility method that prints the header to the given JSourceWriter.
jsw
- The JSourceWriter to print to.
printImportDeclarations
protected final void printImportDeclarations(JSourceWriter jsw)
A utility method that prints the imports to the given JSourceWriter.
jsw
- The JSourceWriter to print to.
printPackageDeclaration
public final void printPackageDeclaration(JSourceWriter jsw)
A utility method that prints the packageDeclaration to the given
JSourceWriter.
jsw
- The JSourceWriter to print to.
removeImport
public final boolean removeImport(String className)
Remove the import of the given class name from this JStucture, returning
true if the import was found and removed.
className
- Name of the class to remove the import of.
- If the import was previously part of this JStructure, false
otherwise.
setHeader
public final void setHeader(JComment comment)
Sets the header comment for this JStructure.
comment
- The comment to display at the top of the source file when printed.
toString
public final String toString()
Returns the String representation of this JType.