Package org.jibx.schema.codegen
Class SourceBuilder
- java.lang.Object
-
- org.jibx.schema.codegen.SourceBuilder
-
public class SourceBuilder extends java.lang.ObjectAbstract syntax tree builder. This wraps the AST with convenience methods and added control information.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classSourceBuilder.WriterVisitorVisitor to apply edits.
-
Field Summary
Fields Modifier and Type Field Description private ASTm_astActual AST instance.private java.util.ArrayListm_classesBuilders for main classes in file.private CompilationUnitm_compilationUnitCompilation unit.protected ImportsTrackerm_importsTrackerTracker for imports.private java.lang.Stringm_nameName of this source.private PackageHolderm_packagePackage containing this source.private static Loggers_loggerLogger for class.private static java.util.Maps_primitiveTypeCodesMap from primitive type name to type code.
-
Constructor Summary
Constructors Constructor Description SourceBuilder(AST ast, PackageHolder pack, java.lang.String name, ImportsTracker imports)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private AbstractTypeDeclarationcreateClass(java.lang.String cname, boolean isenum)Create a type declaration.TypecreateParameterizedType(java.lang.String type, java.lang.String param)Create a parameterized type.TypecreateType(java.lang.String type)Create type definition.protected NamecreateTypeName(java.lang.String type)Create type name.voidfinish(boolean verbose)Generate the actual source file.(package private) ASTgetAST()AST access for related classes.java.lang.StringgetPackageName()Get the name of the package containing this source file.ClassBuildernewInnerClass(java.lang.String cname, ClassBuilder outer, boolean isenum)Add a new inner class to the file.ClassBuildernewMainClass(java.lang.String cname, boolean isenum)Add a new main class to the file.
-
-
-
Field Detail
-
s_logger
private static final Logger s_logger
Logger for class.
-
s_primitiveTypeCodes
private static final java.util.Map s_primitiveTypeCodes
Map from primitive type name to type code.
-
m_ast
private final AST m_ast
Actual AST instance.
-
m_package
private final PackageHolder m_package
Package containing this source.
-
m_name
private final java.lang.String m_name
Name of this source.
-
m_compilationUnit
private final CompilationUnit m_compilationUnit
Compilation unit.
-
m_importsTracker
protected final ImportsTracker m_importsTracker
Tracker for imports.
-
m_classes
private java.util.ArrayList m_classes
Builders for main classes in file.
-
-
Constructor Detail
-
SourceBuilder
public SourceBuilder(AST ast, PackageHolder pack, java.lang.String name, ImportsTracker imports)Constructor.- Parameters:
ast-pack-name-imports-
-
-
Method Detail
-
getAST
AST getAST()
AST access for related classes.- Returns:
- AST
-
getPackageName
public java.lang.String getPackageName()
Get the name of the package containing this source file.- Returns:
- name
-
createClass
private AbstractTypeDeclaration createClass(java.lang.String cname, boolean isenum)Create a type declaration.- Parameters:
cname- class nameisenum- Java 5 enum class flag- Returns:
- type declaration
-
newMainClass
public ClassBuilder newMainClass(java.lang.String cname, boolean isenum)
Add a new main class to the file.- Parameters:
cname- class nameisenum- Java 5 enum class flag- Returns:
- builder
-
newInnerClass
public ClassBuilder newInnerClass(java.lang.String cname, ClassBuilder outer, boolean isenum)
Add a new inner class to the file.- Parameters:
cname- class nameouter- containing class builderisenum- Java 5 enum class flag- Returns:
- builder
-
createTypeName
protected Name createTypeName(java.lang.String type)
Create type name.- Parameters:
type- fully-qualified type name- Returns:
- name
-
createType
public Type createType(java.lang.String type)
Create type definition. This uses the supplied type name, which may include array suffixes and/or type parameters, to construct the actual type definition.- Parameters:
type- fully qualified type name, or primitive type name- Returns:
- constructed typed definition
-
createParameterizedType
public Type createParameterizedType(java.lang.String type, java.lang.String param)Create a parameterized type.- Parameters:
type- fully qualified type nameparam- fully qualified parameter type name- Returns:
- type
-
finish
public void finish(boolean verbose)
Generate the actual source file.- Parameters:
verbose-
-
-