org.exolab.javasource
Class JAnnotationType

java.lang.Object
  extended byorg.exolab.javasource.JType
      extended byorg.exolab.javasource.JStructure
          extended byorg.exolab.javasource.JAnnotationType
All Implemented Interfaces:
JAnnotatedElement

public class JAnnotationType
extends JStructure

Class describes the definition of a annotation type class JAnnotationType annotationType = new JAnnotationType("RequestForEnhancement"); annotationType.addElement(new JAnnotationTypeElement("id", JType.Int)); annotationType.addElement(new JAnnotationTypeElement("synopsis", new JType("String"))); JAnnotationTypeElement enginer = new JAnnotationTypeElement("enginer", new JType("String")); enginer.setDefaultString("\"[unassigned]\""); annotationType.addElement(enginer); JAnnotationTypeElement date = new JAnnotationTypeElement("date", new JType("String")); date.setDefaultString("\"[unimplemented]\""); annotationType.addElement(date); Outputs public @interface RequestForEnhancement { int id(); String synopsis(); String enginer() default "[unassigned]"; String date() default "[unimplemented]"; }

Author:
Andrew Fawcett

Field Summary
(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
JAnnotationType(java.lang.String name)
          Creates a JAnnotationType of the given name
 
Method Summary
 void addAnnotation(JAnnotation annotation)
          Adds a JAnnotation to this source element.
 void addElement(JAnnotationTypeElement jElement)
          Adds the given JAnnotationTypeElement to this JAnnotationType
 void addField(JField jField)
          Not implemented.
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 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(JMember jMember)
          Adds the given JMember to this JAnnotationType
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
 JAnnotationTypeElement getElement(java.lang.String name)
          Returns the member with the given name, or null if no member was found with the given name
 JAnnotationTypeElement[] getElements()
          Returns an array of all the JAnnotationTypeElements of this JClass
 JField getField(java.lang.String name)
          Not implemnted.
 JField[] getFields()
          Not implemented
 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.
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
 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.
 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
 void print()
          Prints the source code for this JStructure in the current working directory.
 void print(JSourceWriter jsw)
          Prints the source code for this JAnnotationType 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 removeImport(java.lang.String className)
           
 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
 
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

DEFAULT_HEADER

static final java.lang.String DEFAULT_HEADER
The Id for Source control systems I needed to separate this line to prevent CVS from expanding it here! ;-)

See Also:
Constant Field Values

version

static final 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! ;-)

See Also:
Constant Field Values
Constructor Detail

JAnnotationType

public JAnnotationType(java.lang.String name)
                throws java.lang.IllegalArgumentException
Creates a JAnnotationType of the given name

Parameters:
name -
Throws:
java.lang.IllegalArgumentException
Method Detail

addMember

public void addMember(JMember jMember)
               throws java.lang.IllegalArgumentException
Adds the given JMember to this JAnnotationType

Specified by:
addMember in class JStructure
Parameters:
jMember - the JMember to add to this JStructure.
Throws:
java.lang.IllegalArgumentException - when the given JMember has the same name of an existing JAnnotationTypeElement or if the JMember is of an unrecognized class.

addElement

public void addElement(JAnnotationTypeElement jElement)
                throws java.lang.IllegalArgumentException
Adds the given JAnnotationTypeElement to this JAnnotationType

Throws:
java.lang.IllegalArgumentException - when the given JAnnotationTypeElement has the same name of an existing JAnnotationTypeElement.

getElement

public JAnnotationTypeElement getElement(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

getElements

public JAnnotationTypeElement[] getElements()
Returns an array of all the JAnnotationTypeElements of this JClass

Returns:
an array of all the JAnnotationTypeElements of this JClass

addField

public void addField(JField jField)
              throws java.lang.IllegalArgumentException
Not implemented.

Specified by:
addField in class JStructure
Parameters:
jField -
Throws:
java.lang.IllegalArgumentException - when the given JField has a name of an existing JField

getField

public JField getField(java.lang.String name)
Not implemnted.

Specified by:
getField in class JStructure
Parameters:
name -
Returns:
JField

getFields

public JField[] getFields()
Not implemented

Specified by:
getFields in class JStructure
Returns:
JField[]

print

public void print(JSourceWriter jsw)
Prints the source code for this JAnnotationType to the given JSourceWriter

Specified by:
print in class JStructure
Parameters:
jsw - the JSourceWriter to print to. [May not be null]

main

public static void main(java.lang.String[] args)
Test

Parameters:
args -

addImport

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

Parameters:
className - name of the class to import.

addImport

protected void addImport(JAnnotation annotation)
Adds approprite import for this JAnnotation

Parameters:
annotation -

addImport

protected void addImport(JAnnotation[] annotations)
Adds approprite imports for these JAnnotation's

Parameters:
annotations -

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

getAnnotatedElementHelper

protected JAnnotatedElementHelper getAnnotatedElementHelper()
Returns the object managing the annotations 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

addAnnotation

public void addAnnotation(JAnnotation annotation)
Description copied from interface: JAnnotatedElement
Adds a JAnnotation to this source element. An IllegalArgumentException is thrown if one already exists for the associated JAnnotationType.

Specified by:
addAnnotation in interface JAnnotatedElement
Parameters:
annotation -

getAnnotation

public JAnnotation getAnnotation(JAnnotationType annotationType)
Description copied from interface: JAnnotatedElement
Retrieves a JAnnotation for the given JAnnotationType, returns null if no annotation has been set.

Specified by:
getAnnotation in interface JAnnotatedElement
Parameters:
annotationType -
Returns:
A JAnnotation for the given JAnnotationType

getAnnotations

public JAnnotation[] getAnnotations()
Description copied from interface: JAnnotatedElement
Returns a list of JAnnotation's already set on this source element

Specified by:
getAnnotations in interface JAnnotatedElement
Returns:
A list of all JAnnotations associated with this source element

isAnnotationPresent

public boolean isAnnotationPresent(JAnnotationType annotationType)
Description copied from interface: JAnnotatedElement
Returns true if a JAnnotation exists for the given JAnnotationType

Specified by:
isAnnotationPresent in interface JAnnotatedElement
Parameters:
annotationType -
Returns:
True if a JAnnotation has been added for the given JAnnotationType

removeAnnotation

public JAnnotation removeAnnotation(JAnnotationType annotationType)
Description copied from interface: JAnnotatedElement
Removes the JAnnotation from this source element for the given JAnnotationType, throws a IllegalArgumentException if no JAnnotation has been added.

Specified by:
removeAnnotation in interface JAnnotatedElement
Parameters:
annotationType -
Returns:
The JAnnotation that was associated with this source element

hasAnnotations

public boolean hasAnnotations()
Description copied from interface: JAnnotatedElement
Returns true if annotations have been added to this source element

Specified by:
hasAnnotations in interface JAnnotatedElement
Returns:
Returns true if annotations have been added to this source element

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



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