A representation of the Java Source code for a Java Class. 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.
_constructors
protected Vector _constructors
The list of constructors for this JClass.
_fields
protected JNamedMap _fields
The list of member variables (fields) of this JClass.
_innerClasses
protected Vector _innerClasses
A collection of inner classes for this JClass.
_methods
protected Vector _methods
The list of methods of this JClass.
_staticInitializer
protected JSourceCode _staticInitializer
The source code for static initialization.
addConstructor
public final void addConstructor(JConstructor constructor)
Adds the given Constructor to this classes list of constructors. The
constructor must have been created with this JClass' createConstructor.
constructor
- the constructor to add
addField
public final void addField(JField jField)
Adds the given JField to this JClass.
- addField in interface JStructure
jField
- the JField to add
addMember
public void addMember(JMember jMember)
Adds the given JMember to this JClass.
- addMember in interface JStructure
jMember
- the JMember to add
addMethod
public final void addMethod(JMethod jMethod)
Adds the given JMethod to this JClass.
jMethod
- the JMethod to add
addMethod
public final void addMethod(JMethod jMethod,
boolean importReturnType)
Adds the given JMethod to this JClass.
jMethod
- the JMethod to addimportReturnType
- true if we add the importReturnType to the class
import lists. It could be useful to set it to false when all
types are fully qualified.
addMethods
public final void addMethods(JMethod[] jMethods)
Adds the given array of JMethods to this JClass.
jMethods
- the JMethod[] to add
createConstructor
public final JConstructor createConstructor()
Creates a new JConstructor and adds it to this JClass.
- the newly created constructor
createConstructor
public final JConstructor createConstructor(JParameter[] params)
Creates a new JConstructor and adds it to this JClass.
params
- a list of parameters for this constructor
- the newly created constructor
createInnerClass
public final JClass createInnerClass(String localname)
Creates and returns an inner-class for this JClass.
localname
- the name of the class (no package name)
getConstructor
public final JConstructor getConstructor(int index)
Returns the constructor at the specified index.
index
- the index of the constructor to return
- the JConstructor at the specified index.
getConstructors
public final JConstructor[] getConstructors()
Returns the an array of the JConstructors contained within this JClass.
- an array of JConstructor.
getField
public final JField getField(String name)
Returns the member with the given name, or null if no member is found
with the given name.
- getField in interface JStructure
name
- the name of the member to return
- the member with the given name, or null if no member was found
with the given name.
getFields
public final JField[] getFields()
Returns an array of all the JFields of this JClass.
- getFields in interface JStructure
- an array of all the JFields of this JClass.
getInnerClasses
public final JClass[] getInnerClasses()
Returns an array of JClass (the inner classes) contained within this
JClass.
- an array of JClass contained within this JClass
getMethod
public final JMethod getMethod(String name,
int startIndex)
Returns the first occurance of the method with the given name, starting
from the specified index.
name
- the name of the method to look forstartIndex
- the starting index to begin the search
- the method if found, otherwise null.
getMethod
public final JMethod getMethod(int index)
Returns the JMethod located at the specified index.
index
- the index of the JMethod to return.
getMethods
public final JMethod[] getMethods()
Returns an array of all the JMethods of this JClass.
- an array of all the JMethods of this JClass.
getStaticInitializationCode
public final JSourceCode getStaticInitializationCode()
Returns the JSourceCode for the static initializer of this JClass.
- the JSourceCode for the static initializer of this JClass.
getSuperClass
public final JTypeName getSuperClass()
Returns the super class that this class extends.
- superClass the super class that this class extends.
getSuperClassQualifiedName
public final String getSuperClassQualifiedName()
Returns the qualified name of the super class that this class extends.
- superClass the qualified name of the super class that this class extends.
main
public static void main(String[] args)
Test drive method...to be removed or commented out.
print
public void print(JSourceWriter jsw)
Prints the source code for this JClass to the given JSourceWriter.
- print in interface JStructure
jsw
- the JSourceWriter to print to. Must not be null.
print
public final void print(JSourceWriter jsw,
boolean classOnly)
Prints the source code for this JClass to the given JSourceWriter.
jsw
- the JSourceWriter to print to. Must not be null.classOnly
- if true, the file header, package declaration, and
imports are not printed
removeConstructor
public final boolean removeConstructor(JConstructor constructor)
Removes the given constructor from this JClass.
constructor
- the JConstructor to remove
- true if the constructor was removed, otherwise false.
removeField
public final JField removeField(String name)
Removes the field with the given name from this JClass.
name
- the name of the field to remove
- the JField if it was found and removed.
removeField
public final boolean removeField(JField jField)
Removes the given JField from this JClass.
jField
- the JField to remove
- true if the field was found and removed.
removeInnerClass
public final boolean removeInnerClass(JClass jClass)
Removes the given inner-class (JClass) from this JClass.
jClass
- the JClass (inner-class) to remove
- true if the JClass was removed, otherwise false.
removeMethod
public final boolean removeMethod(JMethod method)
Removes the given method from this JClass.
method
- the JMethod to remove
- true if the method was removed, otherwise false.
setSuperClass
public void setSuperClass(String superClass)
Sets the super Class that this class extends.
superClass
- the super Class that this Class extends