org.exolab.javasource

Class JClass

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: 1.7 $ $Date: 2005/05/08 18:32:06 $

Author: Keith Visco Martin Skopp

Nested Class Summary
classJClass.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
protected Vector_methods
The list of methods of this JClass
protected JSourceCode_staticInitializer
The source code for static initialization
protected JTypeName_superClass
The superclass for this JClass
Constructor Summary
JClass(String name)
Creates a new JClass with the given name
Method Summary
voidaddConstructor(JConstructor constructor)
Adds the given Constructor to this classes list of constructors.
voidaddField(JField jField)
Adds the given JField to this JClass
voidaddImport(String name)
voidaddMember(JMember jMember)
Adds the given JMember to this JClass
voidaddMethod(JMethod jMethod)
Adds the given JMethod to this JClass
voidaddMethod(JMethod jMethod, boolean importReturnType)
Adds the given JMethod to this JClass
voidaddMethods(JMethod[] jMethods)
Adds the given array of JMethods to this JClass
JConstructorcreateConstructor()
Creates a new JConstructor and adds it to this JClass.
JConstructorcreateConstructor(JParameter[] params)
Creates a new JConstructor and adds it to this JClass.
JClasscreateInnerClass(String localname)
Creates and returns an inner-class for this JClass
JConstructorgetConstructor(int index)
Returns the constructor at the specified index.
JConstructor[]getConstructors()
Returns the an array of the JConstructors contained within this JClass
JFieldgetField(String name)
Returns the member with the given name, or null if no member was 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.
JMethodgetMethod(String name, int startIndex)
Returns the first occurance of the method with the given name, starting from the specified index.
JMethodgetMethod(int index)
Returns the JMethod located at the specified index
JMethod[]getMethods()
Returns an array of all the JMethods of this JClass
JSourceCodegetStaticInitializationCode()
Returns the JSourceCode for the static initializer of this JClass
StringgetSuperClass()
Gets the super Class that this class extends
static voidmain(String[] args)
Test drive method...to be removed or commented out
voidprint(JSourceWriter jsw)
Prints the source code for this JClass to the given JSourceWriter
voidprint(JSourceWriter jsw, boolean classOnly)
Prints the source code for this JClass to the given JSourceWriter
booleanremoveConstructor(JConstructor constructor)
Removes the given constructor from this JClass
JFieldremoveField(String name)
Removes the field with the given name from this JClass
booleanremoveField(JField jField)
Removes the given JField from this JClass
booleanremoveInnerClass(JClass jClass)
Removes the given inner-class (JClass) from this JClass.
booleanremoveMethod(JMethod method)
Removes the given method from this JClass
voidsetSuperClass(String superClass)
Sets the super Class that this class extends

Field Detail

_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

_methods

protected Vector _methods
The list of methods of this JClass

_staticInitializer

protected JSourceCode _staticInitializer
The source code for static initialization

_superClass

protected JTypeName _superClass
The superclass for this JClass

Constructor Detail

JClass

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

Parameters: name the name of the JClass to create

Throws: IllegalArgumentException when the given name is not a valid Class name

Method Detail

addConstructor

public void addConstructor(JConstructor constructor)
Adds the given Constructor to this classes list of constructors. The constructor must have been created with this JClass' createConstructor.

Throws: IllegalArgumentException

addField

public void addField(JField jField)
Adds the given JField to this JClass

Parameters: jField, the JField to add

Throws: IllegalArgumentException when the given JField has a name of an existing JField

addImport

public void addImport(String name)

addMember

public void addMember(JMember jMember)
Adds the given JMember to this JClass

Parameters: jMember, the JMember to add

Throws: IllegalArgumentException when the given JMember has the same name of an existing JField or JMethod respectively, or if the JMember is of an unrecognized class.

addMethod

public void addMethod(JMethod jMethod)
Adds the given JMethod to this JClass

Parameters: jMethod, the JMethod to add

Throws: IllegalArgumentException when the given JMethod has the same name of an existing JMethod.

addMethod

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

Throws: IllegalArgumentException when the given JMethod has the same name of an existing JMethod.

addMethods

public void addMethods(JMethod[] jMethods)
Adds the given array of JMethods to this JClass

Parameters: jMethods, the JMethod[] to add

Throws: IllegalArgumentException when any of the given JMethods has the same name of an existing JMethod.

createConstructor

public JConstructor createConstructor()
Creates a new JConstructor and adds it to this JClass.

Returns: the newly created constructor

createConstructor

public JConstructor createConstructor(JParameter[] params)
Creates a new JConstructor and adds it to this JClass.

Returns: the newly created constructor

createInnerClass

public 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 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 JConstructor[] getConstructors()
Returns the an array of the JConstructors contained within this JClass

Returns: an array of JConstructor

getField

public JField getField(String name)
Returns the member with the given name, or null if no member was found with the given name

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 JField[] getFields()
Returns an array of all the JFields of this JClass

Returns: an array of all the JFields of this JClass

getInnerClasses

public 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 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 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 JMethod[] getMethods()
Returns an array of all the JMethods of this JClass

Returns: an array of all the JMethods of this JClass

getStaticInitializationCode

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

Returns: the JSourceCode for the static initializer of this JClass

getSuperClass

public String getSuperClass()
Gets the super Class that this class extends

Returns: superClass 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

Parameters: jsw the JSourceWriter to print to. [May not be null]

print

public void print(JSourceWriter jsw, boolean classOnly)
Prints the source code for this JClass to the given JSourceWriter

Parameters: jsw the JSourceWriter to print to. [May not be null]

removeConstructor

public 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 JField removeField(String name)
Removes the field with the given name from this JClass

Parameters: name the name of the field to remove

removeField

public boolean removeField(JField jField)
Removes the given JField from this JClass

Parameters: jField, the JField to remove

removeInnerClass

public 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 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-2004. All rights reserved http://www.intalio.com