Package org.jibx.schema.codegen
Class PackageHolder
java.lang.Object
org.jibx.schema.codegen.PackageHolder
Information for a package to be included in code generated from schema.
- Author:
- Dennis M. Sosnoski
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final ArrayList
List of all classes in package, including inner classes.private final ArrayList
List of top-level classes in package.private final File
Target directory for code generation.private final UniqueNameSet
Set of class names used in package.private final String
Full package name (dot-separated form).private final PackageHolder
Information for parent package.private int
Number of subpackages of this package. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaddClass
(String name, String base, NameConverter nconv, ClassDecorator[] decorators, boolean enumer, BindingHolder holder) Add derived class to package.addClass
(String name, NameConverter nconv, ClassDecorator[] decorators, boolean inner, boolean enumer, BindingHolder holder) Add class to package.void
addInnerClass
(IClassHolder clas) Add an inner class to package.void
generate
(boolean verbose, AST ast, BindingOrganizer directory) Generate this package.void
Generate a specific class within this package.int
Get the total number of classes (including inner classes) in package.Get the field information for every class in this package.Get generate directory.getName()
Get fully-qualified package name.Get parent package.int
Get the number of subpackages created for this package.int
Get the number of top-level classes in package.
-
Field Details
-
m_packageName
Full package name (dot-separated form). -
m_generateDirectory
Target directory for code generation. -
m_parentPackage
Information for parent package. -
m_nameSet
Set of class names used in package. -
m_classes
List of top-level classes in package. -
m_allClasses
List of all classes in package, including inner classes. -
m_subpackageCount
private int m_subpackageCountNumber of subpackages of this package.
-
-
Constructor Details
-
PackageHolder
Constructor.- Parameters:
name
- full package name (dot-separated form)dir
- target directory for code generation (null
if skipping code generation)parent
- parent package information
-
-
Method Details
-
getGenerateDirectory
Get generate directory.- Returns:
- generate directory
-
getParent
Get parent package.- Returns:
- parent package
-
getName
Get fully-qualified package name.- Returns:
- name
-
getTopClassCount
public int getTopClassCount()Get the number of top-level classes in package.- Returns:
- count
-
getClassCount
public int getClassCount()Get the total number of classes (including inner classes) in package.- Returns:
- count
-
getSubpackageCount
public int getSubpackageCount()Get the number of subpackages created for this package.- Returns:
- count
-
addClass
public ClassHolder addClass(String name, NameConverter nconv, ClassDecorator[] decorators, boolean inner, boolean enumer, BindingHolder holder) Add class to package.- Parameters:
name
- preferred name for classnconv
- name converter for classdecorators
- class decoratorsinner
- use inner classes for substructuresenumer
- enumeration class flagholder
- binding holder- Returns:
- class generator
-
addClass
public ClassHolder addClass(String name, String base, NameConverter nconv, ClassDecorator[] decorators, boolean enumer, BindingHolder holder) Add derived class to package. This method is only used when top-level classes are being used for substructures.- Parameters:
name
- preferred name for classbase
- base class namenconv
- name converter for classdecorators
- class decoratorsenumer
- enumeration class flagholder
- binding holder- Returns:
- class generator
-
addInnerClass
Add an inner class to package.- Parameters:
clas
-
-
generate
Generate a specific class within this package. This first tests if the class has already been generated, and if it has does nothing.- Parameters:
verbose
-clasdata
- class dataast
-
-
generate
Generate this package.- Parameters:
verbose
-ast
-directory
- binding directory
-
getClassFields
Get the field information for every class in this package. The returned pairs have the fully-qualified class name as the key, and the array of ordered field name and type string pairs as the values. This method is only meaningful after the class has been generated.- Returns:
- class field information
-