Package org.jibx.schema.codegen
Class PackageHolder
- java.lang.Object
-
- org.jibx.schema.codegen.PackageHolder
-
public class PackageHolder extends java.lang.Object
Information for a package to be included in code generated from schema.- Author:
- Dennis M. Sosnoski
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.ArrayList
m_allClasses
List of all classes in package, including inner classes.private java.util.ArrayList
m_classes
List of top-level classes in package.private java.io.File
m_generateDirectory
Target directory for code generation.private UniqueNameSet
m_nameSet
Set of class names used in package.private java.lang.String
m_packageName
Full package name (dot-separated form).private PackageHolder
m_parentPackage
Information for parent package.private int
m_subpackageCount
Number of subpackages of this package.
-
Constructor Summary
Constructors Constructor Description PackageHolder(java.lang.String name, java.io.File dir, PackageHolder parent)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ClassHolder
addClass(java.lang.String name, java.lang.String base, NameConverter nconv, ClassDecorator[] decorators, boolean enumer, BindingHolder holder)
Add derived class to package.ClassHolder
addClass(java.lang.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(boolean verbose, TypeData clasdata, AST ast)
Generate a specific class within this package.int
getClassCount()
Get the total number of classes (including inner classes) in package.StringObjectPair[]
getClassFields()
Get the field information for every class in this package.java.io.File
getGenerateDirectory()
Get generate directory.java.lang.String
getName()
Get fully-qualified package name.PackageHolder
getParent()
Get parent package.int
getSubpackageCount()
Get the number of subpackages created for this package.int
getTopClassCount()
Get the number of top-level classes in package.
-
-
-
Field Detail
-
m_packageName
private final java.lang.String m_packageName
Full package name (dot-separated form).
-
m_generateDirectory
private final java.io.File m_generateDirectory
Target directory for code generation.
-
m_parentPackage
private final PackageHolder m_parentPackage
Information for parent package.
-
m_nameSet
private final UniqueNameSet m_nameSet
Set of class names used in package.
-
m_classes
private final java.util.ArrayList m_classes
List of top-level classes in package.
-
m_allClasses
private final java.util.ArrayList m_allClasses
List of all classes in package, including inner classes.
-
m_subpackageCount
private int m_subpackageCount
Number of subpackages of this package.
-
-
Constructor Detail
-
PackageHolder
public PackageHolder(java.lang.String name, java.io.File dir, PackageHolder parent)
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 Detail
-
getGenerateDirectory
public java.io.File getGenerateDirectory()
Get generate directory.- Returns:
- generate directory
-
getParent
public PackageHolder getParent()
Get parent package.- Returns:
- parent package
-
getName
public java.lang.String 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(java.lang.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(java.lang.String name, java.lang.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
public void addInnerClass(IClassHolder clas)
Add an inner class to package.- Parameters:
clas
-
-
generate
public void generate(boolean verbose, TypeData clasdata, AST ast)
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
public void generate(boolean verbose, AST ast, BindingOrganizer directory)
Generate this package.- Parameters:
verbose
-ast
-directory
- binding directory
-
getClassFields
public StringObjectPair[] 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
-
-