public class ClassBuilder
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private org.eclipse.jdt.core.dom.ASTNode |
m_class
Type declaration for class.
|
private java.util.ArrayList |
m_fields
Fields added to class.
|
private java.util.ArrayList |
m_innerBuilders
Builders for inner classes of this class.
|
private java.util.ArrayList |
m_innerClasses
Directly-added inner classes of this class.
|
private java.util.ArrayList |
m_methods
Methods added to class.
|
private SourceBuilder |
m_source
Source file containing this class.
|
Constructor and Description |
---|
ClassBuilder(org.eclipse.jdt.core.dom.AbstractTypeDeclaration clas,
ClassBuilder outer)
Constructor for an inner class.
|
ClassBuilder(org.eclipse.jdt.core.dom.AbstractTypeDeclaration clas,
SourceBuilder source)
Constructor.
|
ClassBuilder(org.eclipse.jdt.core.dom.AnonymousClassDeclaration clas,
ClassBuilder outer)
Constructor for an anonymous inner class.
|
Modifier and Type | Method and Description |
---|---|
MethodBuilder |
addConstructor(java.lang.String name)
Add constructor declaration.
|
void |
addEnumConstant(java.lang.String value,
java.lang.String doc)
Add a constant to a Java 5 enum definition.
|
void |
addEnumConstant(java.lang.String name,
java.lang.String doc,
java.lang.String value)
Add a constant to a Java 5 enum definition.
|
void |
addField(org.eclipse.jdt.core.dom.FieldDeclaration field)
Add separately-constructed field declaration.
|
FieldBuilder |
addField(java.lang.String name,
java.lang.String type)
Add field declaration.
|
FieldBuilder |
addField(java.lang.String name,
org.eclipse.jdt.core.dom.Type type)
Add field declaration.
|
void |
addInterface(java.lang.String type)
Add an interface to this class definition.
|
FieldBuilder |
addIntField(java.lang.String name,
java.lang.String value)
Add
int field declaration with constant initialization. |
void |
addJavaDoc(java.lang.String doc,
org.eclipse.jdt.core.dom.BodyDeclaration decl)
Add JavaDoc to a declaration.
|
void |
addMethod(org.eclipse.jdt.core.dom.MethodDeclaration method)
Add separately-constructed method declaration.
|
MethodBuilder |
addMethod(java.lang.String name,
java.lang.String type)
Add method declaration.
|
MethodBuilder |
addMethod(java.lang.String name,
org.eclipse.jdt.core.dom.Type type)
Add method declaration.
|
void |
addSourceComment(java.lang.String text)
Set source comment for this class.
|
void |
addType(org.eclipse.jdt.core.dom.TypeDeclaration type)
Add separately-constructed inner class declaration.
|
ArrayAccessBuilder |
buildArrayIndexAccess(java.lang.String aname,
java.lang.String iname)
Build array access expression for a named array variable and named index variable.
|
CastBuilder |
buildCast(java.lang.String type)
Build a cast expression.
|
CastBuilder |
buildCast(org.eclipse.jdt.core.dom.Type type)
Build a cast expression.
|
InfixExpressionBuilder |
buildInfix(org.eclipse.jdt.core.dom.InfixExpression.Operator op)
Build general infix expression.
|
InfixExpressionBuilder |
buildNameOp(java.lang.String name,
org.eclipse.jdt.core.dom.InfixExpression.Operator op)
Build infix expression involving a local variable or field name as the left operand.
|
PrefixExpressionBuilder |
buildPreincrement(java.lang.String name)
Build a preincrement expression using a local variable or field name as the operand.
|
InfixExpressionBuilder |
buildStringConcatenation(java.lang.String text)
Build a string concatenation expression starting from from a string literal.
|
org.eclipse.jdt.core.dom.ASTNode |
clone(org.eclipse.jdt.core.dom.ASTNode node)
Clone an AST node.
|
InvocationBuilder |
createExpressionMethodCall(ExpressionBuilderBase expr,
java.lang.String mname)
Create method call builder on the reference result of an expression.
|
InvocationBuilder |
createLocalStaticMethodCall(java.lang.String mname)
Create internal static method call builder.
|
InvocationBuilder |
createMemberMethodCall(java.lang.String mname)
Create internal member method call builder.
|
InvocationBuilder |
createNormalMethodCall(java.lang.String name,
java.lang.String mname)
Create method call builder on a local variable or field value.
|
org.eclipse.jdt.core.dom.Type |
createParameterizedType(java.lang.String type,
java.lang.String param)
Create a parameterized type.
|
org.eclipse.jdt.core.dom.Type |
createParameterizedType(java.lang.String type,
org.eclipse.jdt.core.dom.Type param)
Create a parameterized type.
|
InvocationBuilder |
createStaticMethodCall(java.lang.String fname)
Create a static method call builder.
|
InvocationBuilder |
createStaticMethodCall(java.lang.String cname,
java.lang.String mname)
Create a static method call builder.
|
org.eclipse.jdt.core.dom.Type |
createType(java.lang.String type)
Create type definition.
|
(package private) org.eclipse.jdt.core.dom.Name |
createTypeName(java.lang.String type)
Create type name.
|
void |
finish()
Finish building the source file data structures.
|
(package private) org.eclipse.jdt.core.dom.AST |
getAST()
AST access for related classes.
|
org.eclipse.jdt.core.dom.FieldDeclaration[] |
getFields()
Get the fields defined in this class.
|
java.lang.String[] |
getInterfaces()
Get the interfaces implemented by this class.
|
org.eclipse.jdt.core.dom.MethodDeclaration[] |
getMethods()
Get the methods defined in this class.
|
StringPair[] |
getSortedFields()
Get a sorted array of the field names and types defined in this class.
|
NewArrayBuilder |
newArrayBuilder(java.lang.String type)
Create new instance of array type.
|
BlockBuilder |
newBlock()
Create a new block.
|
NewInstanceBuilder |
newInstance(java.lang.String type)
Build new instance creator of type using a no-argument constructor.
|
NewInstanceBuilder |
newInstance(org.eclipse.jdt.core.dom.Type type)
Build new instance creator of type using a no-argument constructor.
|
NewInstanceBuilder |
newInstanceFromString(java.lang.String type,
java.lang.String value)
Build new instance creator of a simple type using a constructor that takes a single string value.
|
NewInstanceBuilder |
newInstanceFromStrings(java.lang.String type,
java.lang.String value1,
java.lang.String value2)
Build new instance creator of a simple type using a constructor that takes a pair of string values.
|
void |
setAbstract()
Set the abstract flag for this class.
|
void |
setSuperclass(java.lang.String name)
Set the superclass for this class.
|
private final SourceBuilder m_source
private final org.eclipse.jdt.core.dom.ASTNode m_class
private final java.util.ArrayList m_fields
private final java.util.ArrayList m_methods
private final java.util.ArrayList m_innerBuilders
private final java.util.ArrayList m_innerClasses
ClassBuilder(org.eclipse.jdt.core.dom.AbstractTypeDeclaration clas, SourceBuilder source)
clas
- source
- ClassBuilder(org.eclipse.jdt.core.dom.AbstractTypeDeclaration clas, ClassBuilder outer)
clas
- outer
- public ClassBuilder(org.eclipse.jdt.core.dom.AnonymousClassDeclaration clas, ClassBuilder outer)
clas
- outer
- org.eclipse.jdt.core.dom.AST getAST()
public void addField(org.eclipse.jdt.core.dom.FieldDeclaration field)
field
- public void addMethod(org.eclipse.jdt.core.dom.MethodDeclaration method)
method
- public void addType(org.eclipse.jdt.core.dom.TypeDeclaration type)
type
- public void setSuperclass(java.lang.String name)
name
- org.eclipse.jdt.core.dom.Name createTypeName(java.lang.String type)
type
- fully qualified type namepublic org.eclipse.jdt.core.dom.ASTNode clone(org.eclipse.jdt.core.dom.ASTNode node)
node
- public org.eclipse.jdt.core.dom.Type createType(java.lang.String type)
type
- fully qualified type name, or primitive type namepublic org.eclipse.jdt.core.dom.Type createParameterizedType(java.lang.String type, java.lang.String param)
type
- fully qualified type nameparam
- fully qualified parameter type namepublic org.eclipse.jdt.core.dom.Type createParameterizedType(java.lang.String type, org.eclipse.jdt.core.dom.Type param)
type
- fully qualified type nameparam
- type parameterpublic void addSourceComment(java.lang.String text)
text
- comment textpublic void setAbstract()
public java.lang.String[] getInterfaces()
public org.eclipse.jdt.core.dom.FieldDeclaration[] getFields()
public org.eclipse.jdt.core.dom.MethodDeclaration[] getMethods()
public void addInterface(java.lang.String type)
type
- interface typepublic void addJavaDoc(java.lang.String doc, org.eclipse.jdt.core.dom.BodyDeclaration decl)
doc
- documentation text, or null
if nonedecl
- public void addEnumConstant(java.lang.String value, java.lang.String doc)
value
- doc
- documentation text, or null
if nonepublic void addEnumConstant(java.lang.String name, java.lang.String doc, java.lang.String value)
name
- doc
- documentation text, or null
if nonevalue
- public NewArrayBuilder newArrayBuilder(java.lang.String type)
type
- base type namepublic NewInstanceBuilder newInstance(org.eclipse.jdt.core.dom.Type type)
type
- actual typepublic NewInstanceBuilder newInstance(java.lang.String type)
type
- base type namepublic NewInstanceBuilder newInstanceFromString(java.lang.String type, java.lang.String value)
type
- simple type namevalue
- string value to be passed to constructorpublic NewInstanceBuilder newInstanceFromStrings(java.lang.String type, java.lang.String value1, java.lang.String value2)
type
- simple type namevalue1
- first string value to be passed to constructorvalue2
- second string value to be passed to constructorpublic FieldBuilder addField(java.lang.String name, org.eclipse.jdt.core.dom.Type type)
name
- field nametype
- field typepublic FieldBuilder addField(java.lang.String name, java.lang.String type)
name
- field nametype
- type namepublic FieldBuilder addIntField(java.lang.String name, java.lang.String value)
int
field declaration with constant initialization.name
- variable namevalue
- initial valuepublic MethodBuilder addConstructor(java.lang.String name)
name
- simple class namepublic MethodBuilder addMethod(java.lang.String name, org.eclipse.jdt.core.dom.Type type)
name
- type
- public MethodBuilder addMethod(java.lang.String name, java.lang.String type)
name
- type
- fully qualified type name or primitive type name, with optional array suffixespublic InvocationBuilder createMemberMethodCall(java.lang.String mname)
mname
- method namepublic InvocationBuilder createLocalStaticMethodCall(java.lang.String mname)
mname
- method namepublic InvocationBuilder createStaticMethodCall(java.lang.String cname, java.lang.String mname)
cname
- fully qualified class namemname
- method namepublic InvocationBuilder createStaticMethodCall(java.lang.String fname)
fname
- fully-qualified class and method namepublic InvocationBuilder createNormalMethodCall(java.lang.String name, java.lang.String mname)
name
- local variable or field namemname
- method namepublic InvocationBuilder createExpressionMethodCall(ExpressionBuilderBase expr, java.lang.String mname)
expr
- instance expressionmname
- method namepublic InfixExpressionBuilder buildInfix(org.eclipse.jdt.core.dom.InfixExpression.Operator op)
op
- operatorpublic InfixExpressionBuilder buildNameOp(java.lang.String name, org.eclipse.jdt.core.dom.InfixExpression.Operator op)
name
- local variable or field nameop
- operatorpublic InfixExpressionBuilder buildStringConcatenation(java.lang.String text)
text
- literal textpublic PrefixExpressionBuilder buildPreincrement(java.lang.String name)
name
- local variable or field namepublic CastBuilder buildCast(org.eclipse.jdt.core.dom.Type type)
type
- result typepublic CastBuilder buildCast(java.lang.String type)
type
- result typepublic ArrayAccessBuilder buildArrayIndexAccess(java.lang.String aname, java.lang.String iname)
aname
- iname
- public BlockBuilder newBlock()
public void finish()
public StringPair[] getSortedFields()