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 ArrayListList of all classes in package, including inner classes.private final ArrayListList of top-level classes in package.private final FileTarget directory for code generation.private final UniqueNameSetSet of class names used in package.private final StringFull package name (dot-separated form).private final PackageHolderInformation for parent package.private intNumber 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.voidaddInnerClass(IClassHolder clas) Add an inner class to package.voidgenerate(boolean verbose, AST ast, BindingOrganizer directory) Generate this package.voidGenerate a specific class within this package.intGet 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.intGet the number of subpackages created for this package.intGet 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 (nullif 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
-