Package org.jibx.schema.codegen.custom
Class SchemaCustom
- java.lang.Object
-
- org.jibx.schema.codegen.custom.CustomBase
-
- org.jibx.schema.codegen.custom.NestingCustomBase
-
- org.jibx.schema.codegen.custom.SchemaRootBase
-
- 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
Nested Classes Modifier and Type Class Description private static classSchemaCustom.AnnotationDeletionVisitorVisitor to delete annotations from schema components.private static classSchemaCustom.ExtensionBuilderVisitorVisitor to build basic extensions for schema components.private static classSchemaCustom.FacetRemoverVisitorVisitor 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
Fields Modifier and Type Field Description private java.lang.String[]m_excludesGlobal names excluded from code generation.private SchemaExtensionm_extensionExtension attached to actual schema element (only used for children).private booleanm_forceTypesAlways specify property types flag.private java.lang.String[]m_includesGlobal names included in code generation.private java.lang.Stringm_nameSchema name.private java.lang.Stringm_namespaceSchema namespace.private SchemaElementm_schemaSchema definition.static StringArrays_allowedAttributesEnumeration of allowed attribute namesprivate static Loggers_loggerLogger 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
Constructors Constructor Description 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
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static voidapplyRemainingCustomizationPath(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.booleancheckMatch(java.lang.String name, SchemaElement schema)Check if this customization matches a particular schema.voidextend(PackageHolder pack, ValidationContext vctx)Build the schema extension structure.private voidextendGlobal(SchemaCustom.ExtensionBuilderVisitor visitor, TreeWalker wlkr, GlobalExtension anno)Build the extensions tree for a global definition.private static SchemaCustomfactory(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.StringgetName()Get schema name.java.lang.StringgetNamespace()Get schema namespace.SchemaElementgetSchema()Get schema definition.booleanisForceTypes()Check if type specifications forced for schema.private voidpreSet(IUnmarshallingContext uctx)Make sure all attributes are defined.voidsetExcludes(java.lang.String[] excludes)Set the names of definitions to be excluded from generation.voidsetForceTypes(java.lang.Boolean force)Set type specifications forced for schema.voidsetIncludes(java.lang.String[] includes)Set the names of definitions to be included in generation.voidsetName(java.lang.String name)Set schema name.voidsetNamespace(java.lang.String namespace)Set schema namespace.voidsetSchema(java.lang.String name, SchemaElement schema)Set schema definition.voidstripAnnotations()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
-
-
-
-
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 namenamespace- target namespace URIincludes- definition names to be included in generationexcludes- 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 beforeextend(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 beforeextend(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:
trueif types forced,falseif not
-
setForceTypes
public void setForceTypes(java.lang.Boolean force)
Set type specifications forced for schema.- Parameters:
force-trueif types forced,falseif 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:
trueif a match,falseif 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 pathmatch- starting point for pathcustom- customization informationvctx- 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 (nullif no code generation)vctx- validation context
-
factory
private static SchemaCustom factory(IUnmarshallingContext ictx)
Factory used during unmarshalling.- Parameters:
ictx-- Returns:
- instance
-
-