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

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

public final class JInterface
extends JType

A representation of the Java Source code for a Java Interface. This is a useful utility when creating in memory source code. The code in this package was modelled after the Java Reflection API as much as possible to reduce the learning curve.

Version:
$Revision: 555 $ $Date: 2006-01-29 16:38:08 -0500 (Sun, 29 Jan 2006) $
Author:
Martin Skopp, Keith Visco

Field Summary
 
Fields inherited from class org.codehaus.modello.plugin.java.javasource.JType
Boolean, Byte, Char, Double, Float, Int, Long, Short
 
Constructor Summary
JInterface(java.lang.String name)
          Creates a new JInterface with the given name.
 
Method Summary
 void addField(JField jField)
          Adds the given JField to this JStructure.
 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 JStructure.
 void addMethod(JMethodSignature jMethodSig)
          Adds the given JMethodSignature to this JClass
 JField getField(java.lang.String name)
          Returns the field with the given name, or null if no field was found with the given name.
 JField[] getFields()
          Returns an array of all the JFields of this JStructure
 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
 JMethodSignature getMethod(int index)
          Returns the JMethodSignature at the given index.
 JMethodSignature getMethod(java.lang.String name, int startIndex)
          Returns the JMethodSignature with the given name, and occuring at or after the given starting index.
 JMethodSignature[] getMethods()
          Returns an array of all the JMethodSignatures of this JInterface.
 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 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)
           
 void print()
          Prints the source code for this JStructure in the current working directory.
 void print(JSourceWriter jsw)
          Prints the source code for this JInterface to the given JSourceWriter
 void print(JSourceWriter jsw, boolean classOnly)
          Prints the source code for this JInterface 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 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.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

JInterface

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

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

addField

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

This method is implemented by subclasses and should only accept the proper fields for the subclass otherwise an IllegalArgumentException will be thrown. For example a JInterface will only accept static fields.

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

This method is implemented by subclasses and should only accept the proper types for the subclass otherwise an IllegalArgumentException will be thrown.

Parameters:
jMember - the JMember to add to this JStructure.
Throws:
java.lang.IllegalArgumentException - when the given JMember has the same name of an existing JField or JMethod respectively.

addMethod

public void addMethod(JMethodSignature jMethodSig)
               throws java.lang.IllegalArgumentException
Adds the given JMethodSignature to this JClass

Parameters:
jMethodSig - the JMethodSignature to add.
Throws:
java.lang.IllegalArgumentException - when the given JMethodSignature conflicts with an existing method signature.

getField

public JField getField(java.lang.String name)
Returns the field with the given name, or null if no field was found with the given name.

Parameters:
name - the name of the field to return.
Returns:
the field with the given name, or null if no field was found with the given name.

getFields

public JField[] getFields()
Returns an array of all the JFields of this JStructure

Returns:
an array of all the JFields of this JStructure

getMethods

public JMethodSignature[] getMethods()
Returns an array of all the JMethodSignatures of this JInterface.

Returns:
an array of all the JMethodSignatures of this JInterface.

getMethod

public JMethodSignature getMethod(java.lang.String name,
                                  int startIndex)
Returns the JMethodSignature with the given name, and occuring at or after the given starting index.

Parameters:
name - the name of the JMethodSignature to return.
startIndex - the starting index to begin searching from.
Returns:
the JMethodSignature, or null if not found.

getMethod

public JMethodSignature getMethod(int index)
Returns the JMethodSignature at the given index.

Parameters:
index - the index of the JMethodSignature to return.
Returns:
the JMethodSignature at the given index.

print

public void print(JSourceWriter jsw)
Prints the source code for this JInterface 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 JInterface to the given JSourceWriter

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

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.