org.codehaus.modello.plugin.java.javasource
Class JClass

java.lang.Object
  extended by org.codehaus.modello.plugin.java.javasource.JType
      extended by org.codehaus.modello.plugin.java.javasource.JClass

public class JClass
extends JType

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: 807 $ $Date: 2007-02-19 19:25:39 -0500 (Mon, 19 Feb 2007) $
Author:
Keith Visco, Martin Skopp

Field Summary
 
Fields inherited from class org.codehaus.modello.plugin.java.javasource.JType
Boolean, Byte, Char, Double, Float, Int, Long, Short
 
Constructor Summary
JClass(java.lang.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(java.lang.String className)
          Adds the given import to this JStructure
 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).
 void addInterface(java.lang.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 addMember(org.codehaus.modello.plugin.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(java.lang.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(java.lang.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(java.lang.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
 java.lang.String getFilename(java.lang.String destDir)
          Returns the name of the file that this JStructure would be printed to, given a call to #print.
 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.
 java.util.Enumeration getImports()
          Returns an Enumeration of imported package and class names for this JStructure.
 JClass[] getInnerClasses()
          Returns an array of JClass (the inner classes) contained within this JClass.
protected  int getInterfaceCount()
           
 java.util.Enumeration getInterfaces()
          Returns an Enumeration of interface names that this JStructure inherits from.
 JDocComment getJDocComment()
          Returns the Java Doc comment for this JStructure
 JMethod getMethod(int index)
          Returns the JMethod located at the specified index
 JMethod getMethod(java.lang.String name, int startIndex)
          Returns the first occurance of the method with the given name, starting from the specified index.
 JMethod[] getMethods()
          Returns an array of all the JMethods of this JClass
 JModifiers getModifiers()
          Returns the JModifiers which allows the qualifiers to be changed.
 java.lang.String getName(boolean stripPackage)
          Returns the name of the interface.
protected static java.lang.String getPackageFromClassName(java.lang.String className)
          Returns the package name from the given class name
 java.lang.String getPackageName()
          Returns the name of the package that this JStructure is a member of.
 JSourceCode getStaticInitializationCode()
          Returns the JSourceCode for the static initializer of this JClass
 java.lang.String getSuperClass()
          Gets the super Class that this class extends
 boolean hasImport(java.lang.String classname)
          Returns true if the given classname exists in the imports of this JStructure
static boolean isValidClassName(java.lang.String name)
           
static void main(java.lang.String[] args)
          Test drive method...to be removed or commented out
 void print()
          Prints the source code for this JStructure in the current working directory.
 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
 void print(java.lang.String destDir, java.lang.String lineSeparator)
          Prints the source code for this JStructure to the destination directory.
 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(java.lang.String prefix, java.lang.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
 boolean removeConstructor(JConstructor constructor)
          Removes the given constructor from this JClass
 boolean removeField(JField jField)
          Removes the given JField from this JClass
 JField removeField(java.lang.String name)
          Removes the field with the given name from this JClass
 boolean removeImport(java.lang.String className)
           
 boolean removeInnerClass(JClass jClass)
          Removes the given inner-class (JClass) from this JClass.
 void setHeader(JComment comment)
          Sets the header comment for this JStructure
 void setPackageName(java.lang.String packageName)
          Allows changing the package name of this JStructure
 void setSuperClass(java.lang.String superClass)
          Sets the super Class that this class extends
 
Methods inherited from class org.codehaus.modello.plugin.java.javasource.JType
changePackage, createArray, getComponentType, getLocalName, getName, isArray, isPrimitive, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

JClass

public JClass(java.lang.String name)
       throws java.lang.IllegalArgumentException
Creates a new JClass with the given name

Parameters:
name - the name of the JClass to create
Throws:
java.lang.IllegalArgumentException - when the given name is not a valid Class name
Method Detail

addConstructor

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

Throws:
java.lang.IllegalArgumentException

addField

public void addField(JField jField)
              throws java.lang.IllegalArgumentException
Adds the given JField to this JClass

Parameters:
jField, - the JField to add
Throws:
java.lang.IllegalArgumentException - when the given JField has a name of an existing JField

addMember

public void addMember(org.codehaus.modello.plugin.java.javasource.JMember jMember)
               throws java.lang.IllegalArgumentException
Adds the given JMember to this JClass

Parameters:
jMember, - the JMember to add
Throws:
java.lang.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
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:
java.lang.IllegalArgumentException - when the given JMethod has the same name of an existing JMethod.

addMethod

public void addMethod(JMethod jMethod,
                      boolean importReturnType)
               throws java.lang.IllegalArgumentException
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:
java.lang.IllegalArgumentException - when the given JMethod has the same name of an existing JMethod.

addMethods

public void addMethods(JMethod[] jMethods)
                throws java.lang.IllegalArgumentException
Adds the given array of JMethods to this JClass

Parameters:
jMethods, - the JMethod[] to add
Throws:
java.lang.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(java.lang.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(java.lang.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

getMethods

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

Returns:
an array of all the JMethods of this JClass

getMethod

public JMethod getMethod(java.lang.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

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 java.lang.String getSuperClass()
Gets the super Class that this class extends

Returns:
superClass the super Class that this Class extends

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]

addSourceCode

public void addSourceCode(java.lang.String sourceCode)

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(java.lang.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.

setSuperClass

public void setSuperClass(java.lang.String superClass)
Sets the super Class that this class extends

Parameters:
superClass - the super Class that this Class extends

main

public static void main(java.lang.String[] args)
Test drive method...to be removed or commented out


addImport

public void addImport(java.lang.String className)
Adds the given import to this JStructure

Parameters:
the - className of the class to import.

addInterface

public void addInterface(java.lang.String interfaceName)
Adds the given interface to the list of interfaces this JStructure inherits method declarations from, and either implements (JClass) or extends (JInterface).

Parameters:
interfaceName - the name of the interface to "inherit" method declarations from.

addInterface

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

Parameters:
jInterface - the JInterface to inherit from.

getFilename

public java.lang.String getFilename(java.lang.String destDir)
Returns the name of the file that this JStructure would be printed to, given a call to #print.

Parameters:
destDir - the destination directory. This may be null.
Returns:
the name of the file that this JInterface would be printed as, given a call to #print.

getHeader

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

Returns:
the JComment header or null if none exists.

getImports

public java.util.Enumeration getImports()
Returns an Enumeration of imported package and class names for this JStructure.

Returns:
the Enumeration of imports. May be empty.

getInterfaces

public java.util.Enumeration getInterfaces()
Returns an Enumeration of interface names that this JStructure inherits from.

Returns:
the Enumeration of interface names for this JStructure. May be empty.

getJDocComment

public JDocComment getJDocComment()
Returns the Java Doc comment for this JStructure

Returns:
the JDocComment for this JStructure

getModifiers

public JModifiers getModifiers()
Returns the JModifiers which allows the qualifiers to be changed.

Returns:
the JModifiers for this JStructure.

getPackageName

public java.lang.String getPackageName()
Returns the name of the package that this JStructure is a member of.

Returns:
the name of the package that this JStructure is a member of, or null if there is no current package name defined.

getName

public java.lang.String getName(boolean stripPackage)
Returns the name of the interface.

Parameters:
stripPackage - a boolean that when true indicates that only the local name (no package) should be returned.
Returns:
the name of the class.

hasImport

public boolean hasImport(java.lang.String classname)
Returns true if the given classname exists in the imports of this JStructure

Parameters:
classname - the class name to check for
Returns:
true if the given classname exists in the imports list

removeImport

public boolean removeImport(java.lang.String className)

isValidClassName

public static boolean isValidClassName(java.lang.String name)

print

public void print()
Prints the source code for this JStructure in the current working directory. Sub-directories will be created if necessary for the package.


print

public void print(java.lang.String destDir,
                  java.lang.String lineSeparator)
Prints the source code for this JStructure to the destination directory. Sub-directories will be created if necessary for the package.

Parameters:
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.

printHeader

public void printHeader(JSourceWriter jsw)
A utility method that prints the header to the given JSourceWriter

Parameters:
jsw - the JSourceWriter to print to.

printImportDeclarations

public void printImportDeclarations(JSourceWriter jsw)
A utility method that prints the imports to the given JSourceWriter

Parameters:
jsw - the JSourceWriter to print to.

printPackageDeclaration

public void printPackageDeclaration(JSourceWriter jsw)
A utility method that prints the packageDeclaration to the given JSourceWriter

Parameters:
jsw - the JSourceWriter to print to.

setHeader

public void setHeader(JComment comment)
Sets the header comment for this JStructure

Parameters:
comment - the comment to display at the top of the source file when printed

setPackageName

public void setPackageName(java.lang.String packageName)
Allows changing the package name of this JStructure

Parameters:
packageName - the package name to use

getInterfaceCount

protected int getInterfaceCount()

printlnWithPrefix

protected static void printlnWithPrefix(java.lang.String prefix,
                                        java.lang.String source,
                                        JSourceWriter jsw)
Prints the given source string to the JSourceWriter using the given prefix at the beginning of each new line.

Parameters:
prefix - the prefix for each new line.
source - the source code to print
jsw - the JSourceWriter to print to.

getPackageFromClassName

protected static java.lang.String getPackageFromClassName(java.lang.String className)
Returns the package name from the given class name



Copyright © 2001-2011 Codehaus. All Rights Reserved.