|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.exolab.javasource.JType
org.exolab.javasource.JStructure
org.exolab.javasource.JClass
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.
Nested Class Summary | |
(package private) class |
JClass.JInnerClass
|
Field Summary | |
protected java.util.Vector |
_constructors
The list of constructors for this JClass |
protected JNamedMap |
_fields
The list of member variables (fields) of this JClass |
protected java.util.Vector |
_innerClasses
|
protected java.util.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 |
(package private) static java.lang.String |
DEFAULT_HEADER
The Id for Source control systems I needed to separate this line to prevent CVS from expanding it here! ;-) |
(package private) static java.lang.String |
version
The source control version for listed in the JavaDoc I needed to separate this line to prevent CVS from expanding it here! ;-) |
Fields inherited from class org.exolab.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 |
addAnnotation(JAnnotation annotation)
Adds a JAnnotation to this source element. |
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 |
protected void |
addImport(JAnnotation annotation)
Adds approprite import for this JAnnotation |
protected void |
addImport(JAnnotation[] annotations)
Adds approprite imports for these JAnnotation's |
void |
addImport(java.lang.String name)
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(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(java.lang.String localname)
Creates and returns an inner-class for this JClass |
protected JAnnotatedElementHelper |
getAnnotatedElementHelper()
Returns the object managing the annotations for this JStructure |
JAnnotation |
getAnnotation(JAnnotationType annotationType)
Retrieves a JAnnotation for the given JAnnotationType, returns null if no annotation has been set. |
JAnnotation[] |
getAnnotations()
Returns a list of JAnnotation's already set on this source element |
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 |
hasAnnotations()
Returns true if annotations have been added to this source element |
boolean |
hasImport(java.lang.String classname)
Returns true if the given classname exists in the imports of this JStructure |
boolean |
isAnnotationPresent(JAnnotationType annotationType)
Returns true if a JAnnotation exists for the given JAnnotationType |
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 |
JAnnotation |
removeAnnotation(JAnnotationType annotationType)
Removes the JAnnotation from this source element for the given JAnnotationType, throws a IllegalArgumentException if no JAnnotation has been added. |
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. |
boolean |
removeMethod(JMethod method)
Removes the given method 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.exolab.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 |
Field Detail |
protected java.util.Vector _constructors
protected JNamedMap _fields
protected java.util.Vector _innerClasses
protected java.util.Vector _methods
protected JTypeName _superClass
protected JSourceCode _staticInitializer
static final java.lang.String DEFAULT_HEADER
static final java.lang.String version
Constructor Detail |
public JClass(java.lang.String name) throws java.lang.IllegalArgumentException
name
- the name of the JClass to create
java.lang.IllegalArgumentException
- when the given name
is not a valid Class nameMethod Detail |
public void addConstructor(JConstructor constructor) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentException
public void addField(JField jField) throws java.lang.IllegalArgumentException
addField
in class JStructure
java.lang.IllegalArgumentException
- when the given
JField has a name of an existing JFieldpublic void addImport(java.lang.String name)
JStructure
addImport
in class JStructure
name
- name of the class to import.public void addMember(JMember jMember) throws java.lang.IllegalArgumentException
addMember
in class JStructure
jMember
- the JMember to add to this JStructure.
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.public void addMethod(JMethod jMethod)
java.lang.IllegalArgumentException
- when the given
JMethod has the same name of an existing JMethod.public void addMethod(JMethod jMethod, boolean importReturnType) throws java.lang.IllegalArgumentException
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.
java.lang.IllegalArgumentException
- when the given
JMethod has the same name of an existing JMethod.public void addMethods(JMethod[] jMethods) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentException
- when any of the given
JMethods has the same name of an existing JMethod.public JConstructor createConstructor()
public JConstructor createConstructor(JParameter[] params)
public JClass createInnerClass(java.lang.String localname)
localname
- the name of the class (no package name)
public JConstructor getConstructor(int index)
index
- the index of the constructor to return
public JConstructor[] getConstructors()
public JField getField(java.lang.String name)
getField
in class JStructure
name
- the name of the member to return
public JField[] getFields()
getFields
in class JStructure
public JClass[] getInnerClasses()
public JMethod[] getMethods()
public JMethod getMethod(java.lang.String name, int startIndex)
name
- the name of the method to look forstartIndex
- the starting index to begin the search
public JMethod getMethod(int index)
index
- the index of the JMethod to return.
public JSourceCode getStaticInitializationCode()
public java.lang.String getSuperClass()
public void print(JSourceWriter jsw)
print
in class JStructure
jsw
- the JSourceWriter to print to. [May not be null]public void print(JSourceWriter jsw, boolean classOnly)
jsw
- the JSourceWriter to print to. [May not be null]public boolean removeConstructor(JConstructor constructor)
constructor
- the JConstructor to remove
public boolean removeMethod(JMethod method)
method
- the JMethod to remove
public JField removeField(java.lang.String name)
name
- the name of the field to removepublic boolean removeField(JField jField)
public boolean removeInnerClass(JClass jClass)
jClass
- the JClass (inner-class) to remove.
public void setSuperClass(java.lang.String superClass)
superClass
- the super Class that this Class extendspublic static void main(java.lang.String[] args)
protected void addImport(JAnnotation annotation)
annotation
- protected void addImport(JAnnotation[] annotations)
annotations
- public void addInterface(java.lang.String interfaceName)
interfaceName
- the name of the interface to "inherit"
method declarations from.public void addInterface(JInterface jInterface)
jInterface
- the JInterface to inherit from.public java.lang.String getFilename(java.lang.String destDir)
destDir
- the destination directory. This may be null.
public JComment getHeader()
public java.util.Enumeration getImports()
public java.util.Enumeration getInterfaces()
public JDocComment getJDocComment()
protected JAnnotatedElementHelper getAnnotatedElementHelper()
public JModifiers getModifiers()
public java.lang.String getPackageName()
public java.lang.String getName(boolean stripPackage)
stripPackage
- a boolean that when true indicates that only
the local name (no package) should be returned.
public boolean hasImport(java.lang.String classname)
classname
- the class name to check for
public boolean removeImport(java.lang.String className)
public static boolean isValidClassName(java.lang.String name)
public void print()
public void print(java.lang.String destDir, java.lang.String lineSeparator)
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.public void printHeader(JSourceWriter jsw)
jsw
- the JSourceWriter to print to.public void printImportDeclarations(JSourceWriter jsw)
jsw
- the JSourceWriter to print to.public void printPackageDeclaration(JSourceWriter jsw)
jsw
- the JSourceWriter to print to.public void setHeader(JComment comment)
comment
- the comment to display at the top of the source file
when printedpublic void setPackageName(java.lang.String packageName)
packageName
- the package name to usepublic void addAnnotation(JAnnotation annotation)
JAnnotatedElement
addAnnotation
in interface JAnnotatedElement
annotation
- public JAnnotation getAnnotation(JAnnotationType annotationType)
JAnnotatedElement
getAnnotation
in interface JAnnotatedElement
annotationType
-
public JAnnotation[] getAnnotations()
JAnnotatedElement
getAnnotations
in interface JAnnotatedElement
public boolean isAnnotationPresent(JAnnotationType annotationType)
JAnnotatedElement
isAnnotationPresent
in interface JAnnotatedElement
annotationType
-
public JAnnotation removeAnnotation(JAnnotationType annotationType)
JAnnotatedElement
removeAnnotation
in interface JAnnotatedElement
annotationType
-
public boolean hasAnnotations()
JAnnotatedElement
hasAnnotations
in interface JAnnotatedElement
protected int getInterfaceCount()
protected static void printlnWithPrefix(java.lang.String prefix, java.lang.String source, JSourceWriter jsw)
prefix
- the prefix for each new line.source
- the source code to printjsw
- the JSourceWriter to print to.protected static java.lang.String getPackageFromClassName(java.lang.String className)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |