Class PackageHolder

java.lang.Object
org.jibx.schema.codegen.PackageHolder

public class PackageHolder extends Object
Information for a package to be included in code generated from schema.
Author:
Dennis M. Sosnoski
  • Field Details

    • m_packageName

      private final String m_packageName
      Full package name (dot-separated form).
    • m_generateDirectory

      private final 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 ArrayList m_classes
      List of top-level classes in package.
    • m_allClasses

      private final 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 Details

    • PackageHolder

      public PackageHolder(String name, 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 Details

    • getGenerateDirectory

      public File getGenerateDirectory()
      Get generate directory.
      Returns:
      generate directory
    • getParent

      public PackageHolder getParent()
      Get parent package.
      Returns:
      parent package
    • getName

      public 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(String name, NameConverter nconv, ClassDecorator[] decorators, boolean inner, boolean enumer, BindingHolder holder)
      Add class to package.
      Parameters:
      name - preferred name for class
      nconv - name converter for class
      decorators - class decorators
      inner - use inner classes for substructures
      enumer - enumeration class flag
      holder - 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 class
      base - base class name
      nconv - name converter for class
      decorators - class decorators
      enumer - enumeration class flag
      holder - 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 data
      ast -
    • 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