Interface JavaClassWriter
-
- All Known Implementing Classes:
IOJavaClassWriter
public interface JavaClassWriter
This interface can be used to describe a java class -- either top level or inner. The resulting class definition can be viewed by callingObject.toString()
, but the entire source definition is only available when used with a JavaFileWriter.The order of the generated code is up to the implementation. For example, one implementation may accept fields and methods in any order and generate all fields together and all methods together, but maintain the order within the list of fields and methods. Another implementation may take the same input and generate fields and methods interspersed among each other in exactly the order they were added. Still another implementation may make no guarantee as to the order of members at all.
- Author:
- raccah
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
addClass(JavaClassWriter classWriter)
Adds an inner class to this class.void
addConstructor(String name, int modifiers, String[] parameterNames, String[] parameterTypes, String[] exceptions, String[] body, String[] comments)
Adds a constructor to this class.void
addField(String name, int modifiers, String type, String initialValue, String[] comments)
Adds a field to the list of those declared by this class.void
addInitializer(boolean isStatic, String[] body, String[] comments)
Adds an initializer to this class.void
addInterface(String name)
Adds an interface to the list of those implemented by this class.void
addMethod(String name, int modifiers, String returnType, String[] parameterNames, String[] parameterTypes, String[] exceptions, String[] body, String[] comments)
Adds a method to this class.void
setClassDeclaration(int modifiers, String className, String[] comments)
Sets the information for the class declaration including modifiers, name, and comments.void
setSuperclass(String name)
Sets the superclass of this class.
-
-
-
Method Detail
-
setClassDeclaration
void setClassDeclaration(int modifiers, String className, String[] comments) throws IOException
Sets the information for the class declaration including modifiers, name, and comments. Note that the name must not be fully qualified.- Parameters:
modifiers
- The modifier flags for this class.className
- The (non-qualified) name of this class.comments
- The comments shown just above the class declaration. The comments are passed as an array so the line separators can be added by the implementation. Note that not all implementations will choose to make use of this comment.- Throws:
IOException
- If the class declaration information cannot be set.- See Also:
Modifier
-
setSuperclass
void setSuperclass(String name) throws IOException
Sets the superclass of this class. Note that the name format must be package style (that is - it can contain . but not / or $).- Parameters:
name
- The name of the superclass.- Throws:
IOException
- If the superclass cannot be set.
-
addInterface
void addInterface(String name) throws IOException
Adds an interface to the list of those implemented by this class.- Parameters:
name
- The name of the interface.- Throws:
IOException
- If the interface cannot be added.
-
addField
void addField(String name, int modifiers, String type, String initialValue, String[] comments) throws IOException
Adds a field to the list of those declared by this class. Note that the type format must be package style (that is - it can contain . but not / or $).- Parameters:
name
- The name of the field.modifiers
- The modifier flags for this field.type
- A string representing the type of this field.initialValue
- A string representing the initial value of this field.comments
- The comments shown just above the declaration of this field. The comments are passed as an array so the line separators can be added by the implementation. Note that not all implementations will choose to make use of this comment.- Throws:
IOException
- If the field information cannot be added.- See Also:
Modifier
-
addInitializer
void addInitializer(boolean isStatic, String[] body, String[] comments) throws IOException
Adds an initializer to this class.- Parameters:
isStatic
- True if this is a static initializer, false otherwise.body
- The implementation block of the initializer. The body of the implementation is passed as an array so the line separators can be added by the implementation.comments
- The comments shown just above the initializer block. The comments are passed as an array so the line separators can be added by the implementation. Note that not all implementations will choose to make use of this comment.- Throws:
IOException
- If the initializer information cannot be added.
-
addConstructor
void addConstructor(String name, int modifiers, String[] parameterNames, String[] parameterTypes, String[] exceptions, String[] body, String[] comments) throws IOException
Adds a constructor to this class. Note that the type format in the parameter type strings must be package style (that is - it can contain . but not / or $).- Parameters:
name
- The name of the constructor - should be the same as the name of the class.modifiers
- The modifier flags for this constructor.parameterNames
- A list of parameter names.parameterTypes
- A list of parameter types.exceptions
- A list of exceptions.body
- The implementation block of the constructor. The body of the implementation is passed as an array so the line separators can be added by the implementation.comments
- The comments shown just above the constructor. The comments are passed as an array so the line separators can be added by the implementation. Note that not all implementations will choose to make use of this comment.- Throws:
IOException
- If the constructor information cannot be added.- See Also:
Modifier
-
addMethod
void addMethod(String name, int modifiers, String returnType, String[] parameterNames, String[] parameterTypes, String[] exceptions, String[] body, String[] comments) throws IOException
Adds a method to this class. Note that the type format in the return type and parameter type strings must be package style (that is - it can contain . but not / or $).- Parameters:
name
- The name of the method.modifiers
- The modifier flags for this method.returnType
- A string representing the return type of this method.parameterNames
- A list of parameter names.parameterTypes
- A list of parameter types.exceptions
- A list of exceptions.body
- The implementation block of the method. The body of the implementation is passed as an array so the line separators can be added by the implementation.comments
- The comments shown just above the method. The comments are passed as an array so the line separators can be added by the implementation. Note that not all implementations will choose to make use of this comment.- Throws:
IOException
- If the method information cannot be added.- See Also:
Modifier
-
addClass
void addClass(JavaClassWriter classWriter) throws IOException
Adds an inner class to this class.- Parameters:
classWriter
- The definition of the inner class.- Throws:
IOException
- If the class information cannot be added.
-
-