org.jibx.schema.codegen.custom
Class SchemaCustom

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
              extended by org.jibx.schema.codegen.custom.SchemaCustom
All Implemented Interfaces:
TypeReplacer

public class SchemaCustom
extends SchemaRootBase

Individual schema customization information.

Author:
Dennis M. Sosnoski

Nested Class Summary
private static class SchemaCustom.AnnotationDeletionVisitor
          Visitor to delete annotations from schema components.
private static class SchemaCustom.ExtensionBuilderVisitor
          Visitor to build basic extensions for schema components.
private static class SchemaCustom.FacetRemoverVisitor
          Visitor to flag extensions to remove unused facets.
 
Nested classes/interfaces inherited from class org.jibx.schema.codegen.custom.SchemaRootBase
SchemaRootBase.ClassDecoratorUnmarshaller, SchemaRootBase.ExtensionUnmarshaller, SchemaRootBase.NameConverterUnmarshaller, SchemaRootBase.SchemaTypeUnmarshaller
 
Field Summary
private  java.lang.String[] m_excludes
          Global names excluded from code generation.
private  SchemaExtension m_extension
          Extension attached to actual schema element (only used for children).
private  boolean m_forceTypes
          Always specify property types flag.
private  java.lang.String[] m_includes
          Global names included in code generation.
private  java.lang.String m_name
          Schema name.
private  java.lang.String m_namespace
          Schema namespace.
private  SchemaElement m_schema
          Schema definition.
static StringArray s_allowedAttributes
          Enumeration of allowed attribute names
private static Logger s_logger
          Logger for class.
 
Fields inherited from class org.jibx.schema.codegen.custom.SchemaRootBase
ENUM_JAVA5, ENUM_SIMPLE, REPEAT_ARRAY, REPEAT_LIST, REPEAT_TYPED, s_enumValues, 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
SchemaCustom(SchemasetCustom parent)
          Constructor.
SchemaCustom(SchemasetCustom parent, java.lang.String name, java.lang.String namespace, java.lang.String[] includes, java.lang.String[] excludes)
          Constructor for constructing instance directly.
 
Method Summary
private static void applyRemainingCustomizationPath(SchemaPath path, OpenAttrBase match, ComponentCustom custom, ValidationContext vctx)
          Evaluate the remaining path for a customization after the first step, and apply it to the extension for each matching schema component.
 boolean checkMatch(java.lang.String name, SchemaElement schema)
          Check if this customization matches a particular schema.
 void extend(PackageHolder pack, ValidationContext vctx)
          Build the schema extension structure.
private  void extendGlobal(SchemaCustom.ExtensionBuilderVisitor visitor, TreeWalker wlkr, GlobalExtension anno)
          Build the extensions tree for a global definition.
private static SchemaCustom factory(IUnmarshallingContext ictx)
          Factory used during unmarshalling.
 java.lang.String[] getExcludes()
          Get the names of definitions to be excluded from generation.
 java.lang.String[] getIncludes()
          Get the names of definitions to be included in generation.
 java.lang.String getName()
          Get schema name.
 java.lang.String getNamespace()
          Get schema namespace.
 SchemaElement getSchema()
          Get schema definition.
 boolean isForceTypes()
          Check if type specifications forced for schema.
private  void preSet(IUnmarshallingContext uctx)
          Make sure all attributes are defined.
 void setExcludes(java.lang.String[] excludes)
          Set the names of definitions to be excluded from generation.
 void setForceTypes(java.lang.Boolean force)
          Set type specifications forced for schema.
 void setIncludes(java.lang.String[] includes)
          Set the names of definitions to be included in generation.
 void setName(java.lang.String name)
          Set schema name.
 void setNamespace(java.lang.String namespace)
          Set schema namespace.
 void setSchema(java.lang.String name, SchemaElement schema)
          Set schema definition.
 void stripAnnotations()
          Strip the annotation components (at any level) from a schema definitions.
 
Methods inherited from class org.jibx.schema.codegen.custom.SchemaRootBase
getBindingFileName, getClassDecorators, getEnumerationTypeText, getEnumType, getLineWidth, getNameConverter, getPackage, getPrefix, getRepeatedTypeText, getRepeatType, getRootParent, getSchemaTypes, isBindingPerSchema, isDeleteAnnotations, isGenerateAll, isInlineGroups, isJavaDocDocumentation, isNullCollectionAllowed, isPreferInline, isSchemaFragmentDocumentation, isStructureOptional, isUseInner, setEnumType, setPackage, setRepeatType
 
Methods inherited from class org.jibx.schema.codegen.custom.NestingCustomBase
getActiveFacetsMask, getAnyHandling, getAnyType, getChildren, getChoiceHandling, getChoiceType, getReplacement, getSubstitutions, getUnionHandling, getUnionType, isAttributeInlined, 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

s_logger

private static final Logger s_logger
Logger for class.


s_allowedAttributes

public static final StringArray s_allowedAttributes
Enumeration of allowed attribute names


m_name

private java.lang.String m_name
Schema name.


m_namespace

private java.lang.String m_namespace
Schema namespace.


m_forceTypes

private boolean m_forceTypes
Always specify property types flag.


m_includes

private java.lang.String[] m_includes
Global names included in code generation.


m_excludes

private java.lang.String[] m_excludes
Global names excluded from code generation.


m_schema

private SchemaElement m_schema
Schema definition.


m_extension

private SchemaExtension m_extension
Extension attached to actual schema element (only used for children).

Constructor Detail

SchemaCustom

public SchemaCustom(SchemasetCustom parent)
Constructor.

Parameters:
parent -

SchemaCustom

public SchemaCustom(SchemasetCustom parent,
                    java.lang.String name,
                    java.lang.String namespace,
                    java.lang.String[] includes,
                    java.lang.String[] excludes)
Constructor for constructing instance directly.

Parameters:
parent -
name - schema name
namespace - target namespace URI
includes - definition names to be included in generation
excludes - definition names to be excluded from generation
Method Detail

preSet

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

Parameters:
uctx - unmarshalling context

getIncludes

public java.lang.String[] getIncludes()
Get the names of definitions to be included in generation.

Returns:
names

setIncludes

public void setIncludes(java.lang.String[] includes)
Set the names of definitions to be included in generation. This only has any effect on the code generation if called before extend(PackageHolder, ValidationContext) is called.

Parameters:
includes -

getExcludes

public java.lang.String[] getExcludes()
Get the names of definitions to be excluded from generation.

Returns:
names

setExcludes

public void setExcludes(java.lang.String[] excludes)
Set the names of definitions to be excluded from generation. This only has any effect on the code generation if called before extend(PackageHolder, ValidationContext) is called.

Parameters:
excludes -

getName

public java.lang.String getName()
Get schema name.

Returns:
name

setName

public void setName(java.lang.String name)
Set schema name.

Parameters:
name -

getNamespace

public java.lang.String getNamespace()
Get schema namespace.

Returns:
namespace

setNamespace

public void setNamespace(java.lang.String namespace)
Set schema namespace.

Parameters:
namespace -

isForceTypes

public boolean isForceTypes()
Check if type specifications forced for schema.

Returns:
true if types forced, false if not

setForceTypes

public void setForceTypes(java.lang.Boolean force)
Set type specifications forced for schema.

Parameters:
force - true if types forced, false if not

getSchema

public SchemaElement getSchema()
Get schema definition.

Returns:
schema

setSchema

public void setSchema(java.lang.String name,
                      SchemaElement schema)
Set schema definition.

Parameters:
name -
schema -

checkMatch

public boolean checkMatch(java.lang.String name,
                          SchemaElement schema)
Check if this customization matches a particular schema.

Parameters:
name -
schema -
Returns:
true if a match, false if not

extendGlobal

private void extendGlobal(SchemaCustom.ExtensionBuilderVisitor visitor,
                          TreeWalker wlkr,
                          GlobalExtension anno)
Build the extensions tree for a global definition.

Parameters:
visitor -
wlkr -
anno -

stripAnnotations

public void stripAnnotations()
Strip the annotation components (at any level) from a schema definitions.


applyRemainingCustomizationPath

private static void applyRemainingCustomizationPath(SchemaPath path,
                                                    OpenAttrBase match,
                                                    ComponentCustom custom,
                                                    ValidationContext vctx)
Evaluate the remaining path for a customization after the first step, and apply it to the extension for each matching schema component. If no matches are found or multiple matches are found this generates a warning.

Parameters:
path - customization path
match - starting point for path
custom - customization information
vctx - validation context

extend

public void extend(PackageHolder pack,
                   ValidationContext vctx)
Build the schema extension structure. This first builds extensions for all the global definitions in the schema, marking the ones specified to be included or excluded from the schema, and for all the child components of the non-excluded globals. It then applies the customizations to the extensions.

Parameters:
pack - package for generated classes (null if no code generation)
vctx - validation context

factory

private static SchemaCustom factory(IUnmarshallingContext ictx)
Factory used during unmarshalling.

Parameters:
ictx -
Returns:
instance


Project Web Site