org.jibx.custom.classes
Class PackageCustom

java.lang.Object
  extended by org.jibx.custom.classes.CustomBase
      extended by org.jibx.custom.classes.SharedNestingBase
          extended by org.jibx.custom.classes.NestingBase
              extended by org.jibx.custom.classes.PackageCustom
All Implemented Interfaces:
IApply

public class PackageCustom
extends NestingBase
implements IApply

Package customization information.

Author:
Dennis M. Sosnoski

Field Summary
static java.lang.String ELEMENT_NAME
          Element name in XML customization file.
private  java.util.Map m_classMap
           
private  boolean m_fixedNamespace
           
private  java.lang.String m_fullName
           
private  java.lang.String m_simpleName
           
static StringArray s_allowedAttributes
          Enumeration of allowed attribute names
 
Fields inherited from class org.jibx.custom.classes.NestingBase
ATTRIBUTE_STYLE_INTEGER, ATTRIBUTE_VALUE_STYLE, ELEMENT_STYLE_INTEGER, ELEMENT_VALUE_STYLE, s_valueStyleEnum
 
Fields inherited from class org.jibx.custom.classes.CustomBase
CAMEL_CASE_NAMES, DERIVE_BY_PACKAGE, DERIVE_FIXED, DERIVE_NONE, DOTTED_NAMES, HYPHENATED_NAMES, REQUIRE_ALL, REQUIRE_NONE, REQUIRE_OBJECTS, REQUIRE_PRIMITIVES, s_namespaceStyleEnum, s_nameStyleEnum, s_requireEnum, UNDERSCORED_NAMES, UPPER_CAMEL_CASE_NAMES
 
Constructor Summary
PackageCustom(java.lang.String simple, java.lang.String full, NestingBase parent)
          Constructor.
 
Method Summary
(package private)  ClassCustom addClassCustomization(java.lang.String name)
          Add information for class in this package.
 void apply(IClassLocator loc)
          Apply customizations to default values.
 void fixNamespace()
          Fix the namespace for this package.
 ClassCustom getClassCustomization(java.lang.String name)
          Get existing information for class in this package.
 java.lang.String getName()
          Get fully-qualified package name.
private  void preSet(IUnmarshallingContext uctx)
          Make sure all attributes are defined.
 
Methods inherited from class org.jibx.custom.classes.NestingBase
getStripPrefixes, getStripSuffixes, getValueStyle, isForceMapping, isForceStructureNames, isMapAbstract, isPropertyAccess, isWrapCollections, setMapAbstract, setValueStyle
 
Methods inherited from class org.jibx.custom.classes.SharedNestingBase
convertName, getFormatterClass, getNamespace, getNamespaceStyle, getNameStyle, getSpecifiedNamespace, isObjectRequired, isPrimitiveRequired, isUseJavaDocs, setNamespace, setNamespaceStyle, setNameStyle
 
Methods inherited from class org.jibx.custom.classes.CustomBase
convertName, deriveItemName, deriveNamespace, getContainingObject, getGlobal, getParent, packageOfType, packageToNamespace, validateAttributes
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

s_allowedAttributes

public static final StringArray s_allowedAttributes
Enumeration of allowed attribute names


ELEMENT_NAME

public static final java.lang.String ELEMENT_NAME
Element name in XML customization file.

See Also:
Constant Field Values

m_simpleName

private java.lang.String m_simpleName

m_fullName

private java.lang.String m_fullName

m_fixedNamespace

private boolean m_fixedNamespace

m_classMap

private java.util.Map m_classMap
Constructor Detail

PackageCustom

PackageCustom(java.lang.String simple,
              java.lang.String full,
              NestingBase parent)
Constructor. This has package access so that it can be used from the GlobalCustom class.

Parameters:
simple - simple package name
full - fully-qualified package name
parent -
Method Detail

preSet

private void preSet(IUnmarshallingContext uctx)
Make sure all attributes are defined.

Parameters:
uctx - unmarshalling context

getName

public java.lang.String getName()
Get fully-qualified package name.

Returns:
package name (empty string if default package)

getClassCustomization

public ClassCustom getClassCustomization(java.lang.String name)
Get existing information for class in this package.

Parameters:
name - simple class name (without package)
Returns:
class information (null if no existing information)

addClassCustomization

ClassCustom addClassCustomization(java.lang.String name)
Add information for class in this package. This just creates the basic class information structure and returns it, without populating the class details.

Parameters:
name - simple class name (without package)
Returns:
class information (null if no existing information)

fixNamespace

public void fixNamespace()
Fix the namespace for this package. If there's a parent package and that package namespace has not yet been fixed, this first fixes the parent package namespace by means of a recursive call.


apply

public void apply(IClassLocator loc)
Apply customizations to default values. This fills in the information for classes in this package by deriving information for fields or properties in each class. This is intended to be used once, after customizations have been unmarshalled.

Specified by:
apply in interface IApply
Parameters:
loc - class locator


Project Web Site