org.exolab.javasource
public abstract class JStructure extends JType implements JAnnotatedElement
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.
Version: $Revision: 6324 $ $Date: 2005-12-13 14:58:48 -0700 (Tue, 13 Dec 2005) $
Constructor Summary | |
---|---|
protected | JStructure(String name)
Creates a new JStructure with the given name.
|
Method Summary | |
---|---|
void | addAnnotation(JAnnotation annotation) |
abstract void | addField(JField jField)
Adds the given JField to this JStructure.
|
void | addImport(String className)
Adds the given import to this JStructure.
|
protected void | addImport(JAnnotation annotation)
Adds appropriate import for this JAnnotation.
|
protected void | addImport(JAnnotation[] annotations)
Adds appropriate imports for each JAnnotation in the given Array.
|
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).
|
void | addInterface(JInterface jInterface)
Adds the given interface to the list of interfaces this JStructure
inherits method declarations from, and either implements (JClass) or
extends (JInterface).
|
abstract void | addMember(JMember jMember)
Adds the given JMember to this JStructure.
|
protected JAnnotatedElementHelper | getAnnotatedElementHelper()
Returns the object managing the annotations for this JStructure. |
JAnnotation | getAnnotation(JAnnotationType annotationType) |
JAnnotation[] | getAnnotations() |
abstract JField | getField(String name)
Returns the field with the given name, or null if no field was found with
that name.
|
abstract JField[] | getFields()
Returns an array of all the JFields of this JStructure.
|
String | getFilename(String destDir)
Returns the name of the file that this JStructure would be printed to,
given a call to JStructure, or given a call to
print if the parameter destDir is null.
|
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.
|
Enumeration | getImports()
Returns an Enumeration of imported package and class names for this
JStructure.
|
protected int | getInterfaceCount()
Return the count of the number of Interfaces that have been added to this
JStructure.
|
Enumeration | getInterfaces()
Returns an Enumeration of interface names that this JStructure inherits
from.
|
JDocComment | getJDocComment()
Returns the JavaDoc comment for this JStructure.
|
JModifiers | getModifiers()
Returns the JModifiers, which allows the qualifiers to be changed.
|
String | getName(boolean stripPackage)
Returns the name of the class represented by this JStructure.
|
protected static String | getPackageFromClassName(String className)
Returns the package name from the given class name.
|
String | getPackageName()
Returns the name of the package that this JStructure is a member of.
|
boolean | hasAnnotations() |
boolean | hasImport(String classname)
Returns true if the given classname exists in the imports of this
JStructure.
|
boolean | isAnnotationPresent(JAnnotationType annotationType) |
static boolean | isValidClassName(String classname)
Test the provided name and return true if it is a valid class name.
|
void | print()
Prints the source code for this JStructure in the current working
directory. |
void | print(String destDir, String lineSeparator)
Prints the source code for this JStructure to the destination directory.
|
abstract void | print(JSourceWriter jsw)
Prints the source code for this JStructure to the given JSourceWriter.
|
void | printHeader(JSourceWriter jsw)
A utility method that prints the header to the given JSourceWriter.
|
void | printImportDeclarations(JSourceWriter jsw)
A utility method that prints the imports to the given JSourceWriter.
|
protected static void | printlnWithPrefix(String prefix, String source, JSourceWriter jsw)
Prints the given source string to the JSourceWriter using the given
prefix at the beginning of each new line.
|
void | printPackageDeclaration(JSourceWriter jsw)
A utility method that prints the packageDeclaration to the given
JSourceWriter.
|
JAnnotation | removeAnnotation(JAnnotationType annotationType) |
boolean | removeImport(String className)
Remove the import of the given class name from this JStucture, returning
true if the import was found and removed.
|
void | setHeader(JComment comment)
Sets the header comment for this JStructure.
|
void | setPackageName(String packageName)
Allows changing the package name of this JStructure.
|
Parameters: name the name of the 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.
Parameters: jField the JField to add
Parameters: className name of the class to import.
Parameters: annotation a JAnnotation for which we want to add an import to this JStructure
Parameters: annotations an Array of JAnnotation; we want to add an import to this JStructure for each JAnnotation in the Array
Parameters: interfaceName the name of the interface to "inherit" method declarations from.
Parameters: jInterface the JInterface to inherit from.
This method is implemented by subclasses and should only accept the proper types for the subclass otherwise an IllegalArgumentException will be thrown.
Parameters: jMember the JMember to add to this JStructure.
Returns: the object managing the annotations for this JStructure.
See Also:
{@inheritDoc }
Parameters: name the name of the field to return.
Returns: the field with the given name, or null if no field was found with the given name.
Returns: an array of all the JFields of this JStructure.
Parameters: destDir the destination directory. This may be null.
Returns: the name of the file that this JInterface would be printed to
Returns: the JComment header or null if none exists.
Returns: the Enumeration of imports. May be empty but will not be null.
Returns: the count of the number of Interfaces that have been added to this JStructure.
Returns: the Enumeration of interface names for this JStructure. May be empty but will not be null.
Returns: the JDocComment for this JStructure.
Returns: the JModifiers for this JStructure.
Parameters: stripPackage a boolean that when true indicates that only the local name (no package) should be returned.
Returns: the name of the class represented by this JStructure, including the full package if stripPackage is false.
Parameters: className an arbitrary class name, optionally including a package
Returns: the package name from the given class name.
Returns: the name of the package that this JStructure is a member of, or null if there is no current package name defined.
See Also:
{@inheritDoc }
Parameters: classname the class name to check for
Returns: true if the given classname exists in the imports list.
Parameters: classname A class name to test.
Returns: true if the provided class name is a valid class name.
Parameters: 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.
Parameters: jsw the JSourceWriter to print to.
Parameters: jsw the JSourceWriter to print to.
Parameters: jsw the JSourceWriter to print to.
Parameters: prefix the prefix for each new line. source the source code to print jsw the JSourceWriter to print to.
Parameters: jsw the JSourceWriter to print to.
Parameters: className Name of the class to remove the import of
Returns: if the import was previously part of this JStructure, false otherwise.
Parameters: comment the comment to display at the top of the source file when printed
Parameters: packageName the package name to use