public abstract class JStructure extends JType
Modifier and Type | Field and Description |
---|---|
private JAnnotations |
annotations |
(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! ;-)
|
private JComment |
header
The source header
|
private java.util.List<java.lang.String> |
imports
List of imported classes and packages
|
private java.util.List<java.lang.String> |
interfaces
The set of interfaces implemented/extended by this JStructure
|
private JDocComment |
jdc
The Javadoc for this JStructure
|
private JModifiers |
modifiers
The JModifiers for this JStructure, which allows us to
change the resulting qualifiers
|
private java.lang.String |
packageName
The package to which this JStructure belongs
|
(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! ;-)
|
Modifier | Constructor and Description |
---|---|
protected |
JStructure(java.lang.String name)
Creates a new JStructure with the given name.
|
Modifier and Type | Method and Description |
---|---|
abstract 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).
|
abstract void |
addMember(JMember jMember)
Adds the given JMember to this JStructure.
|
void |
appendAnnotation(java.lang.String annotation) |
JAnnotations |
getAnnotations() |
abstract JField |
getField(java.lang.String name)
Returns the field with the given name, or null if no field
was found with the given name.
|
abstract 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<java.lang.String> |
getImports()
Returns an Enumeration of imported package and
class names for this JStructure.
|
protected int |
getInterfaceCount() |
java.util.Enumeration<java.lang.String> |
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 |
hasImport(java.lang.String classname)
Returns true if the given classname exists in the imports
of this JStructure
|
boolean |
isAbstract() |
static boolean |
isValidClassName(java.lang.String name) |
void |
print()
Prints the source code for this JStructure in the current
working directory.
|
abstract void |
print(JSourceWriter jsw)
Prints the source code for this JStructure 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 |
setAnnotations(JAnnotations annotations) |
void |
setHeader(JComment comment)
Sets the header comment for this JStructure
|
void |
setPackageName(java.lang.String packageName)
Deprecated.
removed in future version of javasource
|
changePackage, createArray, getComponentType, getLocalName, getName, isArray, isPrimitive, toString
static final java.lang.String DEFAULT_HEADER
static final java.lang.String version
private JComment header
private java.util.List<java.lang.String> imports
private java.util.List<java.lang.String> interfaces
private JDocComment jdc
private JModifiers modifiers
private java.lang.String packageName
private JAnnotations annotations
protected JStructure(java.lang.String name) throws java.lang.IllegalArgumentException
name
- the name of the JStructure.java.lang.IllegalArgumentException
- when the given name
is not a valid Class name.public abstract void addField(JField jField) throws java.lang.IllegalArgumentException
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.
jField,
- the JField to addjava.lang.IllegalArgumentException
- when the given
JField has a name of an existing JFieldpublic abstract void addMember(JMember jMember) throws java.lang.IllegalArgumentException
This method is implemented by subclasses and should only accept the proper types for the subclass otherwise an IllegalArgumentException will be thrown.
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.public void addImport(java.lang.String className)
className
- the className of the class to import.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 abstract JField getField(java.lang.String name)
name
- the name of the field to return.public abstract JField[] getFields()
public java.lang.String getFilename(java.lang.String destDir)
destDir
- the destination directory. This may be null.public JComment getHeader()
public java.util.Enumeration<java.lang.String> getImports()
public java.util.Enumeration<java.lang.String> getInterfaces()
public JDocComment getJDocComment()
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 forpublic boolean removeImport(java.lang.String className)
public boolean isAbstract()
public static boolean isValidClassName(java.lang.String name)
public void print()
public void print(java.lang.String destDir, java.lang.String lineSeparator)
destDir
- the destination directorylineSeparator
- 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 abstract void print(JSourceWriter jsw)
jsw
- the JSourceWriter to print to.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 useprotected 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)
className
- the classNamenull
public JAnnotations getAnnotations()
public void appendAnnotation(java.lang.String annotation)
annotation
- the annotation to appendpublic void setAnnotations(JAnnotations annotations)
annotations
- the annotations to set