org.exolab.javasource

Class JClass

Implemented Interfaces:
JAnnotatedElement
Known Direct Subclasses:
DescriptorJClass, JClass.JInnerClass, JEnum

public class JClass
extends JStructure

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.
Version:
$Revision: 6324 $ $Date: 2005-05-08 12:32:06 -0600 (Sun, 08 May 2005) $
Authors:
Keith Visco
Martin Skopp

Nested Class Summary

(package private) class
JClass.JInnerClass

Field Summary

protected Vector
_constructors
The list of constructors for this JClass.
protected JNamedMap
_fields
The list of member variables (fields) of this JClass.
protected Vector
_innerClasses
A collection of inner classes for this JClass.
protected Vector
_methods
The list of methods of this JClass.
protected JSourceCode
_staticInitializer
The source code for static initialization.

Fields inherited from class org.exolab.javasource.JType

BOOLEAN, BYTE, CHAR, DOUBLE, FLOAT, INT, LONG, SHORT

Constructor Summary

JClass(String name)
Creates a new JClass with the given name.

Method Summary

void
addConstructor(JConstructor constructor)
Adds the given Constructor to this classes list of constructors.
void
addField(JField jField)
Adds the given JField to this JClass.
void
addImport(String name)
void
addMember(JMember jMember)
Adds the given JMember to this JClass.
void
addMethod(JMethod jMethod)
Adds the given JMethod to this JClass.
void
addMethod(JMethod jMethod, boolean importReturnType)
Adds the given JMethod to this JClass.
void
addMethods(JMethod[] jMethods)
Adds the given array of JMethods to this JClass.
JConstructor
createConstructor()
Creates a new JConstructor and adds it to this JClass.
JConstructor
createConstructor(JParameter[] params)
Creates a new JConstructor and adds it to this JClass.
JClass
createInnerClass(String localname)
Creates and returns an inner-class for this JClass.
JConstructor
getConstructor(int index)
Returns the constructor at the specified index.
JConstructor[]
getConstructors()
Returns the an array of the JConstructors contained within this JClass.
JField
getField(String name)
Returns the member with the given name, or null if no member is found with the given name.
JField[]
getFields()
Returns an array of all the JFields of this JClass.
JClass[]
getInnerClasses()
Returns an array of JClass (the inner classes) contained within this JClass.
JMethod
getMethod(String name, int startIndex)
Returns the first occurance of the method with the given name, starting from the specified index.
JMethod
getMethod(int index)
Returns the JMethod located at the specified index.
JMethod[]
getMethods()
Returns an array of all the JMethods of this JClass.
JSourceCode
getStaticInitializationCode()
Returns the JSourceCode for the static initializer of this JClass.
JTypeName
getSuperClass()
Returns the super class that this class extends.
String
getSuperClassQualifiedName()
Returns the qualified name of the super class that this class extends.
static void
main(String[] args)
Test drive method...to be removed or commented out.
void
print(JSourceWriter jsw)
Prints the source code for this JClass to the given JSourceWriter.
void
print(JSourceWriter jsw, boolean classOnly)
Prints the source code for this JClass to the given JSourceWriter.
boolean
removeConstructor(JConstructor constructor)
Removes the given constructor from this JClass.
JField
removeField(String name)
Removes the field with the given name from this JClass.
boolean
removeField(JField jField)
Removes the given JField from this JClass.
boolean
removeInnerClass(JClass jClass)
Removes the given inner-class (JClass) from this JClass.
boolean
removeMethod(JMethod method)
Removes the given method from this JClass.
void
setSuperClass(String superClass)
Sets the super Class that this class extends.

Methods inherited from class org.exolab.javasource.JStructure

addAnnotation, addField, addImport, addImport, addImport, addInterface, addInterface, addMember, getAnnotatedElementHelper, getAnnotation, getAnnotations, getField, getFields, getFilename, getHeader, getImports, getInterfaceCount, getInterfaces, getJDocComment, getModifiers, getName, getPackageFromClassName, getPackageName, hasAnnotations, hasImport, isAnnotationPresent, isValidClassName, print, print, print, printHeader, printImportDeclarations, printPackageDeclaration, printlnWithPrefix, removeAnnotation, removeImport, setHeader, setPackageName

Methods inherited from class org.exolab.javasource.JType

changePackage, getLocalName, getName, getWrapperName, isArray, isPrimitive, toString

Field Details

_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.

Constructor Details

JClass

public JClass(String name)
Creates a new JClass with the given name.
Parameters:
name - the name of the JClass to create

Method Details

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.
Parameters:
constructor - the constructor to add

addField

public final void addField(JField jField)
Adds the given JField to this JClass.
Overrides:
addField in interface JStructure
Parameters:
jField - the JField to add

addImport

public final void addImport(String name)
Overrides:
addImport in interface JStructure
See Also:
{@inheritDoc}

addMember

public void addMember(JMember jMember)
Adds the given JMember to this JClass.
Overrides:
addMember in interface JStructure
Parameters:
jMember - the JMember to add

addMethod

public final void addMethod(JMethod jMethod)
Adds the given JMethod to this JClass.
Parameters:
jMethod - the JMethod to add

addMethod

public final void addMethod(JMethod jMethod,
                            boolean importReturnType)
Adds the given JMethod to this JClass.
Parameters:
jMethod - the JMethod to add
importReturnType - 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.
Parameters:
jMethods - the JMethod[] to add

createConstructor

public final JConstructor createConstructor()
Creates a new JConstructor and adds it to this JClass.
Returns:
the newly created constructor

createConstructor

public final JConstructor createConstructor(JParameter[] params)
Creates a new JConstructor and adds it to this JClass.
Parameters:
params - a list of parameters for this constructor
Returns:
the newly created constructor

createInnerClass

public final JClass createInnerClass(String localname)
Creates and returns an inner-class for this JClass.
Parameters:
localname - the name of the class (no package name)
Returns:
the new JClass.

getConstructor

public final JConstructor getConstructor(int index)
Returns the constructor at the specified index.
Parameters:
index - the index of the constructor to return
Returns:
the JConstructor at the specified index.

getConstructors

public final JConstructor[] getConstructors()
Returns the an array of the JConstructors contained within this JClass.
Returns:
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.
Overrides:
getField in interface JStructure
Parameters:
name - the name of the member to return
Returns:
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.
Overrides:
getFields in interface JStructure
Returns:
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.
Returns:
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.
Parameters:
name - the name of the method to look for
startIndex - the starting index to begin the search
Returns:
the method if found, otherwise null.

getMethod

public final JMethod getMethod(int index)
Returns the JMethod located at the specified index.
Parameters:
index - the index of the JMethod to return.
Returns:
the JMethod

getMethods

public final JMethod[] getMethods()
Returns an array of all the JMethods of this JClass.
Returns:
an array of all the JMethods of this JClass.

getStaticInitializationCode

public final JSourceCode getStaticInitializationCode()
Returns the JSourceCode for the static initializer of this JClass.
Returns:
the JSourceCode for the static initializer of this JClass.

getSuperClass

public final JTypeName getSuperClass()
Returns the super class that this class extends.
Returns:
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.
Returns:
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.
Parameters:
args - ignored

print

public void print(JSourceWriter jsw)
Prints the source code for this JClass to the given JSourceWriter.
Overrides:
print in interface JStructure
Parameters:
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.
Parameters:
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.
Parameters:
constructor - the JConstructor to remove
Returns:
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.
Parameters:
name - the name of the field to remove
Returns:
the JField if it was found and removed.

removeField

public final boolean removeField(JField jField)
Removes the given JField from this JClass.
Parameters:
jField - the JField to remove
Returns:
true if the field was found and removed.

removeInnerClass

public final boolean removeInnerClass(JClass jClass)
Removes the given inner-class (JClass) from this JClass.
Parameters:
jClass - the JClass (inner-class) to remove
Returns:
true if the JClass was removed, otherwise false.

removeMethod

public final boolean removeMethod(JMethod method)
Removes the given method from this JClass.
Parameters:
method - the JMethod to remove
Returns:
true if the method was removed, otherwise false.

setSuperClass

public void setSuperClass(String superClass)
Sets the super Class that this class extends.
Parameters:
superClass - the super Class that this Class extends

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