org.jibx.schema.codegen.custom
Class SchemaRootBase

java.lang.Object
  extended by org.jibx.schema.codegen.custom.CustomBase
      extended by org.jibx.schema.codegen.custom.NestingCustomBase
          extended by org.jibx.schema.codegen.custom.SchemaRootBase
All Implemented Interfaces:
TypeReplacer
Direct Known Subclasses:
SchemaCustom, SchemasetCustom

public abstract class SchemaRootBase
extends NestingCustomBase

Base class for possible root customizations.

Author:
Dennis M. Sosnoski

Nested Class Summary
static class SchemaRootBase.ClassDecoratorUnmarshaller
          Unmarshaller for class decorator extension elements.
static class SchemaRootBase.ExtensionUnmarshaller
          Unmarshaller for extension elements.
static class SchemaRootBase.NameConverterUnmarshaller
          Unmarshaller for name converter extension elements.
 
Field Summary
private static ClassDecorator[] EMPTY_DECORATORS_ARRAY
           
private static java.lang.String[] EMPTY_STRING_ARRAY
          Empty array used as return value when nothing else specified.
static int ENUM_JAVA5
           
static int ENUM_SIMPLE
           
private  java.util.List m_classDecorators
          Decorators to be used in code generation (null if none set at level).
private  java.lang.Boolean m_deleteAnnotations
          Delete annotations flag.
private  int m_enumCode
          Code for enumeration representation (-1 if not set at level).
private  java.lang.Boolean m_generateAll
          Generate even unused global definitions.
private  java.lang.Boolean m_importDocs
          Convert schema documentation to JavaDocs in generated code flag.
private  java.lang.Boolean m_inheritDecorators
          Inherit code generation class decorators from parent flag.
private  java.lang.Integer m_lineWidth
          Preferred maximum line width for generated code.
private  NameConverter m_nameConverter
          Name converter instance (null if none set at level).
private  java.lang.Boolean m_nullCollection
          Force separate class for collection flag.
private  java.lang.String m_package
          Fully-qualified package name.
private  java.lang.Boolean m_preferInline
          Prefer inline definitions (separate classes for all if FALSE).
private  int m_repeatCode
          Code for repeated value representation (-1 if not set at level).
private  java.lang.Boolean m_showSchema
          Include schema fragments in generated class JavaDocs flag.
private  java.lang.Boolean m_structureOptional
          Set references as optional structure where possible flag.
private  java.lang.Boolean m_useInner
          Use inner classes for substructures (top-level classes for all if FALSE).
static int REPEAT_ARRAY
           
static int REPEAT_LIST
           
static int REPEAT_TYPED
           
static StringArray s_allowedAttributes
          Enumeration of allowed attribute names
private static NameConverter s_defaultNameConverter
          Default converter used if none set.
static EnumSet s_enumValues
           
static EnumSet s_repeatValues
           
 
Fields inherited from class org.jibx.schema.codegen.custom.NestingCustomBase
ANY_DISCARD, ANY_DOM, ANY_MAPPED, s_anyValues, s_selectionValues, SELECTION_CHECKEDBOTH, SELECTION_CHECKEDSET, SELECTION_OVERRIDEBOTH, SELECTION_OVERRIDESET, SELECTION_UNCHECKED
 
Constructor Summary
SchemaRootBase(SchemaRootBase parent)
          Constructor.
 
Method Summary
private  void addClassDecorator(ClassDecorator decor)
          Add a class decorator to the current list.
private static ClassDecorator classDecoratorFactory(IUnmarshallingContext ictx)
          Create an instance of the appropriate class decorator class, to be used for unmarshalling.
 ClassDecorator[] getClassDecorators()
          Get class decorators.
 java.lang.String getEnumText()
          Get the enumeration representation text value set specifically for this element.
 int getEnumType()
          Get the enumeration representation type code to be applied for this schema or set of schemas.
 int getLineWidth()
          Get the preferred maximum line width used for generated classes.
 NameConverter getNameConverter()
          Get name converter.
 java.lang.String getPackage()
          Get fully-qualified package name.
 java.lang.String getRepeatText()
          Get the repeated value representation text value set specifically for this element.
 int getRepeatType()
          Get the repeated value representation type code to be applied for this schema or set of schemas.
 SchemaRootBase getRootParent()
          Get parent customization (which will either be null, or another instance of this class).
 boolean isDeleteAnnotations()
          Check whether annotations are to be deleted.
 boolean isGenerateAll()
          Check whether unused definitions should be included in code generation.
 boolean isJavaDocDocumentation()
          Check whether schema documentation is to be used for JavaDocs in the generated code.
 boolean isNullCollectionAllowed()
          Check whether collection holder (array, list, etc.) can be null.
 boolean isPreferInline()
          Check whether inlining of components is preferred.
 boolean isSchemaFragmentDocumentation()
          Check whether schema fragments matching a generated class are to be included in the class JavaDocs.
 boolean isStructureOptional()
          Check whether references to classes with no associated element and all components optional should be made optional in the generated binding.
 boolean isUseInner()
          Check whether inner classes are preferred for components used only by one definition.
private  void setEnumText(java.lang.String text, IUnmarshallingContext ictx)
          Set the enumeration representation text value.
 void setEnumType(int code)
          Set the enumeration representation type code.
private  void setNameConverter(NameConverter nconv, IUnmarshallingContext ictx)
          Set name converter to be used.
private  void setRepeatText(java.lang.String text, IUnmarshallingContext ictx)
          Set the repeated value representation text value.
 void setRepeatType(int code)
          Set the repeated value representation type code.
 
Methods inherited from class org.jibx.schema.codegen.custom.NestingCustomBase
getActiveFacetsMask, getAnyHandling, getAnyType, getChildren, getChoiceHandling, getChoiceType, getReplacement, getSubstitutions, getUnionHandling, getUnionType, isChoiceExposed, isUnionExposed, setAnyType, setChoiceType, setEnforcedFacets, setIgnoredFacets, setReplacement, setSubstitutions, setUnionType, validate
 
Methods inherited from class org.jibx.schema.codegen.custom.CustomBase
getContainingObject, getParent, getSchemaRoot, setParent, validateAttributes
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

EMPTY_STRING_ARRAY

private static final java.lang.String[] EMPTY_STRING_ARRAY
Empty array used as return value when nothing else specified.


EMPTY_DECORATORS_ARRAY

private static final ClassDecorator[] EMPTY_DECORATORS_ARRAY

s_allowedAttributes

public static final StringArray s_allowedAttributes
Enumeration of allowed attribute names


s_defaultNameConverter

private static final NameConverter s_defaultNameConverter
Default converter used if none set.


REPEAT_ARRAY

public static final int REPEAT_ARRAY
See Also:
Constant Field Values

REPEAT_LIST

public static final int REPEAT_LIST
See Also:
Constant Field Values

REPEAT_TYPED

public static final int REPEAT_TYPED
See Also:
Constant Field Values

s_repeatValues

public static final EnumSet s_repeatValues

ENUM_JAVA5

public static final int ENUM_JAVA5
See Also:
Constant Field Values

ENUM_SIMPLE

public static final int ENUM_SIMPLE
See Also:
Constant Field Values

s_enumValues

public static final EnumSet s_enumValues

m_package

private java.lang.String m_package
Fully-qualified package name.


m_generateAll

private java.lang.Boolean m_generateAll
Generate even unused global definitions.


m_preferInline

private java.lang.Boolean m_preferInline
Prefer inline definitions (separate classes for all if FALSE).


m_useInner

private java.lang.Boolean m_useInner
Use inner classes for substructures (top-level classes for all if FALSE).


m_deleteAnnotations

private java.lang.Boolean m_deleteAnnotations
Delete annotations flag.


m_importDocs

private java.lang.Boolean m_importDocs
Convert schema documentation to JavaDocs in generated code flag.


m_showSchema

private java.lang.Boolean m_showSchema
Include schema fragments in generated class JavaDocs flag.


m_nullCollection

private java.lang.Boolean m_nullCollection
Force separate class for collection flag.


m_structureOptional

private java.lang.Boolean m_structureOptional
Set references as optional structure where possible flag.


m_nameConverter

private NameConverter m_nameConverter
Name converter instance (null if none set at level).


m_inheritDecorators

private java.lang.Boolean m_inheritDecorators
Inherit code generation class decorators from parent flag.


m_classDecorators

private java.util.List m_classDecorators
Decorators to be used in code generation (null if none set at level).


m_lineWidth

private java.lang.Integer m_lineWidth
Preferred maximum line width for generated code.


m_repeatCode

private int m_repeatCode
Code for repeated value representation (-1 if not set at level).


m_enumCode

private int m_enumCode
Code for enumeration representation (-1 if not set at level).

Constructor Detail

SchemaRootBase

public SchemaRootBase(SchemaRootBase parent)
Constructor.

Parameters:
parent -
Method Detail

getRootParent

public SchemaRootBase getRootParent()
Get parent customization (which will either be null, or another instance of this class).

Returns:
parent, or null if none

isGenerateAll

public boolean isGenerateAll()
Check whether unused definitions should be included in code generation. The default is true if not overridden at any level.

Returns:
generate unused flag

isPreferInline

public boolean isPreferInline()
Check whether inlining of components is preferred. The default is false if not overridden at any level.

Returns:
inline components flag

isUseInner

public boolean isUseInner()
Check whether inner classes are preferred for components used only by one definition. The default is true if not overridden at any level.

Returns:
inline components flag

isDeleteAnnotations

public boolean isDeleteAnnotations()
Check whether annotations are to be deleted. The default is true if not overridden at any level.

Returns:
delete annotations flag

isJavaDocDocumentation

public boolean isJavaDocDocumentation()
Check whether schema documentation is to be used for JavaDocs in the generated code. The default is true if not overridden at any level.

Returns:
use schema documentation in JavaDocs flag

isSchemaFragmentDocumentation

public boolean isSchemaFragmentDocumentation()
Check whether schema fragments matching a generated class are to be included in the class JavaDocs. The default is true if not overridden at any level.

Returns:
schema fragments in class JavaDocs flag

isNullCollectionAllowed

public boolean isNullCollectionAllowed()
Check whether collection holder (array, list, etc.) can be null. This is only relevant to collections using an optional wrapper element: If this flag is true a null collection holder indicates the element is missing; otherwise a class is created to wrap the collection holder, and a null for that class indicates the element is missing. The default is true if not overridden at any level. TODO: currently unsupported

Returns:
force collection wrapper flag

isStructureOptional

public boolean isStructureOptional()
Check whether references to classes with no associated element and all components optional should be made optional in the generated binding. The effect of making such class references optional is that the reference will be set null when unmarshalling if none of the components are present, and will be checked for null when marshalling. The default is true if not overridden at any level.

Returns:
prefer structure optional flag

getLineWidth

public int getLineWidth()
Get the preferred maximum line width used for generated classes. The default is 80.

Returns:
line width

getRepeatType

public int getRepeatType()
Get the repeated value representation type code to be applied for this schema or set of schemas. The default value is REPEAT_TYPED if not overridden at any level.

Returns:
code

setRepeatType

public void setRepeatType(int code)
Set the repeated value representation type code.

Parameters:
code - type code, -1 if to be unset

getRepeatText

public java.lang.String getRepeatText()
Get the repeated value representation text value set specifically for this element.

Returns:
text (null if not set)

setRepeatText

private void setRepeatText(java.lang.String text,
                           IUnmarshallingContext ictx)
Set the repeated value representation text value. This method is provided only for use when unmarshalling.

Parameters:
text - (null if not set)
ictx -

getEnumType

public int getEnumType()
Get the enumeration representation type code to be applied for this schema or set of schemas. The default value is ENUM_JAVA5 if not overridden at any level.

Returns:
code

setEnumType

public void setEnumType(int code)
Set the enumeration representation type code.

Parameters:
code - type code, -1 if to be unset

getEnumText

public java.lang.String getEnumText()
Get the enumeration representation text value set specifically for this element.

Returns:
text (null if not set)

setEnumText

private void setEnumText(java.lang.String text,
                         IUnmarshallingContext ictx)
Set the enumeration representation text value. This method is provided only for use when unmarshalling.

Parameters:
text - (null if not set)
ictx -

getPackage

public java.lang.String getPackage()
Get fully-qualified package name. This is inherited by nested schemas if set at any level.

Returns:
package (null if none set)

setNameConverter

private void setNameConverter(NameConverter nconv,
                              IUnmarshallingContext ictx)
Set name converter to be used.

Parameters:
nconv -
ictx -

getNameConverter

public NameConverter getNameConverter()
Get name converter.

Returns:
converter (null if none defined)

addClassDecorator

private void addClassDecorator(ClassDecorator decor)
Add a class decorator to the current list.

Parameters:
decor -

getClassDecorators

public ClassDecorator[] getClassDecorators()
Get class decorators.

Returns:
decorators

classDecoratorFactory

private static ClassDecorator classDecoratorFactory(IUnmarshallingContext ictx)
Create an instance of the appropriate class decorator class, to be used for unmarshalling. This always uses the default constructor for the target class.

Parameters:
ictx -
Returns:
class decorator instance, or null if error


Project Web Site