org.codehaus.modello.generator.java.javasource

Class JClass


public class JClass
extends org.codehaus.modello.generator.java.javasource.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: 510 $ $Date: 2005-12-09 05:03:20 +0000 (Fri, 09 Dec 2005) $
Authors:
Keith Visco
Martin Skopp

Field Summary

Fields inherited from class org.codehaus.modello.generator.java.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
addMember(org.codehaus.modello.generator.java.javasource.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
void
addSourceCode(String sourceCode)
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 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.
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
String
getSuperClass()
Gets 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.
void
setSuperClass(String superClass)
Sets the super Class that this class extends

Methods inherited from class org.codehaus.modello.generator.java.javasource.JStructure

addField, addImport, addInterface, addInterface, addMember, getField, getFields, getFilename, getHeader, getImports, getInterfaceCount, getInterfaces, getJDocComment, getModifiers, getName, getPackageFromClassName, getPackageName, hasImport, isValidClassName, print, print, print, printHeader, printImportDeclarations, printPackageDeclaration, printlnWithPrefix, removeImport, setHeader, setPackageName

Methods inherited from class org.codehaus.modello.generator.java.javasource.JType

changePackage, createArray, getComponentType, getLocalName, getName, isArray, isPrimitive, toString

Constructor Details

JClass

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

Method Details

addConstructor

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

addField

public void addField(JField jField)
            throws IllegalArgumentException
Adds the given JField to this JClass
Overrides:
addField in interface org.codehaus.modello.generator.java.javasource.JStructure
Parameters:

addMember

public void addMember(org.codehaus.modello.generator.java.javasource.JMember jMember)
            throws IllegalArgumentException
Adds the given JMember to this JClass
Overrides:
addMember in interface org.codehaus.modello.generator.java.javasource.JStructure
Parameters:

addMethod

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

addMethod

public void addMethod(JMethod jMethod,
                      boolean importReturnType)
            throws IllegalArgumentException
Adds the given JMethod to this JClass
Parameters:
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 void addMethods(JMethod[] jMethods)
            throws IllegalArgumentException
Adds the given array of JMethods to this JClass
Parameters:

addSourceCode

public void addSourceCode(String sourceCode)

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
Overrides:
getField in interface org.codehaus.modello.generator.java.javasource.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 JField[] getFields()
Returns an array of all the JFields of this JClass
Overrides:
getFields in interface org.codehaus.modello.generator.java.javasource.JStructure
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
Overrides:
print in interface org.codehaus.modello.generator.java.javasource.JStructure
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:

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.

setSuperClass

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