public class StructureClassHolder extends ClassHolder
ClassHolder.DataNode, ClassHolder.LeafNode, ClassHolder.ParentNode| Modifier and Type | Field and Description |
|---|---|
private static java.lang.String |
LIST_DESERIALIZE_PREFIX |
private static java.lang.String |
LIST_SERIALIZE_PREFIX |
private ContainerElementBase |
m_bindingElement
Binding definition element for this class.
|
private boolean |
m_collectionPresent
Flag for collection present in class.
|
private ClassHolder.ParentNode |
m_dataRoot
Root node for data structure of class.
|
protected UniqueNameSet |
m_selectSet
Selection property names used in class (lazy create,
null if none). |
private static java.util.Map |
s_formatMap
Default format definitions map.
|
private static Logger |
s_logger
Logger for class.
|
COLLECTION_VARIABLE_NAME, COLLECTION_VARIABLE_TYPE, m_baseName, m_decorators, m_holder, m_importsTracker, m_inners, m_listImplClass, m_nameConverter, m_nameSet, m_outerClass, m_package, m_useInnerClasses| Modifier | Constructor and Description |
|---|---|
|
StructureClassHolder(java.lang.String name,
java.lang.String base,
PackageHolder pack,
BindingHolder holder,
NameConverter nconv,
ClassDecorator[] decorators,
boolean inner)
Constructor.
|
private |
StructureClassHolder(java.lang.String name,
StructureClassHolder context)
Constructor for creating a child inner class definition.
|
| Modifier and Type | Method and Description |
|---|---|
private void |
addFixedNames(ClassHolder.ParentNode wrapper)
Add all fixed names in a group to the set of names defined for this class.
|
private void |
addFlagProperty(java.lang.String basename,
ClassHolder.DataNode node,
ClassBuilder builder)
Add a flag property to the class.
|
private void |
addInnerFormats(MappingElementBase mapping)
Recursively add all inner enumeration classes as formats to a <mapping> definition.
|
private StructureElement |
addReferenceStructure(ClassHolder.LeafNode leaf,
DefinitionItem def,
boolean single,
BindingHolder holder,
ContainerElementBase bindcomp)
Build the binding structure element for a reference to a class.
|
private void |
addRepeatedProperty(java.lang.String basename,
ClassHolder.DataNode node,
ClassBuilder builder)
Add a multiple-valued property to the class.
|
private void |
addSimpleProperty(java.lang.String basename,
ClassHolder.DataNode node,
ClassBuilder builder)
Add a simple property to the class.
|
private void |
addToBinding(ClassHolder.ParentNode parent,
QName wrapname,
boolean wrapopt,
boolean single,
ContainerElementBase bindcomp,
BindingHolder holder)
Generate the binding for a parent node of the data structure tree.
|
private void |
addToClass(ClassHolder.ParentNode parent)
Generate the fields and methods for a wrapper around one or more properties.
|
private void |
addToTree(GroupItem struct,
java.lang.String supertext,
ClassHolder.ParentNode parent,
BindingHolder bindhold)
Populate a class data representation tree based on a supplied item tree.
|
void |
buildDataStructure(GroupItem group,
BindingHolder bindhold)
Convert an item structure to a class representation.
|
private ValueElement |
buildValueBinding(ClassHolder.DataNode node,
QName wrapname,
java.lang.String gname,
java.lang.String sname,
BindingHolder holder)
Build a <value> binding component for a field.
|
private void |
checkIfMethod(ClassHolder.DataNode node,
java.lang.String seldesc,
java.lang.String valdesc,
ClassBuilder builder)
Generate a test method for a value, if it's part of a group with a selector.
|
private java.lang.String |
findDocumentation(boolean top,
ClassHolder.DataNode node)
Find the schema documentation associated with a data node.
|
private void |
fixFlexibleNames(ClassHolder.ParentNode parent,
boolean innamed)
Handle value name assignments for a group within this class.
|
void |
generate(boolean verbose,
SourceBuilder builder)
Generate this class.
|
private void |
generateSelectorCheck(ClassHolder.DataNode value,
BlockBuilder block,
ClassBuilder builder)
Generate the code to check the selection on any containing selector group.
|
private void |
generateSelectorSet(ClassHolder.DataNode value,
BlockBuilder block,
ClassBuilder builder)
Generate the code to check and set the selection on any containing selector group.
|
private CollectionElement |
newCollection(QName wrapname,
boolean wrapopt,
BindingHolder holder,
ClassHolder.DataNode node)
Create a new collection element for the binding.
|
void |
setBinding(ContainerElementBase container)
Set the binding component linked to this class.
|
private void |
setCollectionName(java.lang.String base,
Item item)
Convert base name to collection name.
|
private void |
setMemberNames(java.lang.String basename,
ClassHolder.DataNode node)
Set the field and get/set access method names for a property.
|
private static void |
setName(QName qname,
BindingHolder holder,
StructureElementBase struct)
Set the name and namespace URI for a <structure> or <collection> binding component.
|
private static void |
setName(QName qname,
BindingHolder holder,
ValueElement value)
Set the name and namespace URI for a <value> binding component.
|
private void |
setStructureOptional(ClassHolder.DataNode value,
boolean force,
StructureElementBase struct)
Set the optional state of a structure or collection element in the binding.
|
private void |
setValueHandlingOptions(Item item,
ValueElement value,
BindingHolder holder)
Set serializer/deserializer options for a <value> component of the binding.
|
addField, addImport, addInterface, addMethod, addType, describe, extractDocumentation, finishClass, generateInner, getBuilder, getFields, getImports, getInterfaces, getMethods, getName, getOuterClass, getPackage, getSchemaCustom, getSortedFields, getSuperClass, getSuperClassName, getTypeName, importValueType, initClass, isGenerated, isSuperClassForced, setListImplementation, setSuperClass, setSuperClassNamegetBindingName, getFullName, isPregenerated, isSimpleValueclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetFullNameprivate static final java.lang.String LIST_DESERIALIZE_PREFIX
private static final java.lang.String LIST_SERIALIZE_PREFIX
private static final Logger s_logger
private static final java.util.Map s_formatMap
private boolean m_collectionPresent
private ClassHolder.ParentNode m_dataRoot
private ContainerElementBase m_bindingElement
protected UniqueNameSet m_selectSet
null if none).public StructureClassHolder(java.lang.String name,
java.lang.String base,
PackageHolder pack,
BindingHolder holder,
NameConverter nconv,
ClassDecorator[] decorators,
boolean inner)
name - class namebase - base class namepack - package informationholder - binding holdernconv - name converterdecorators - class decoratorsinner - use inner classes for substructuresprivate StructureClassHolder(java.lang.String name,
StructureClassHolder context)
name - class namecontext - parent classprivate void addToTree(GroupItem struct, java.lang.String supertext, ClassHolder.ParentNode parent, BindingHolder bindhold)
struct - root item in treesupertext - schema documentation passed in for item treeparent - containing data nodebindhold - associated binding definition holderpublic void buildDataStructure(GroupItem group, BindingHolder bindhold)
buildDataStructure in class ClassHoldergroup - item groupbindhold - associated binding definition holderpublic void setBinding(ContainerElementBase container)
container - binding definition element (<mapping> or <structure>)private void addInnerFormats(MappingElementBase mapping)
mapping - private void addFixedNames(ClassHolder.ParentNode wrapper)
wrapper - private void setCollectionName(java.lang.String base,
Item item)
java.util.List representation the name is converted
to singular form and "List" is appended; if using an array representation the name is converted to plural form.base - item - private void fixFlexibleNames(ClassHolder.ParentNode parent, boolean innamed)
parent - innamed - flag for parent group name already fixedprivate void generateSelectorSet(ClassHolder.DataNode value, BlockBuilder block, ClassBuilder builder)
value - block - builder - private void generateSelectorCheck(ClassHolder.DataNode value, BlockBuilder block, ClassBuilder builder)
value - block - builder - private void checkIfMethod(ClassHolder.DataNode node, java.lang.String seldesc, java.lang.String valdesc, ClassBuilder builder)
node - seldesc - containing group descriptionvaldesc - description of this value within groupbuilder - private void setStructureOptional(ClassHolder.DataNode value, boolean force, StructureElementBase struct)
value - nodeforce - optional state forced flagstruct - binding structureprivate static void setName(QName qname, BindingHolder holder, ValueElement value)
qname - qualified name to be set (null if none)holder - binding containing the value definitionvalue - binding componentprivate static void setName(QName qname, BindingHolder holder, StructureElementBase struct)
qname - qualified name to be set (null if none)holder - binding containing the structure or collection definitionstruct - binding componentprivate ValueElement buildValueBinding(ClassHolder.DataNode node, QName wrapname, java.lang.String gname, java.lang.String sname, BindingHolder holder)
node - wrapname - gname - sname - holder - private void setMemberNames(java.lang.String basename,
ClassHolder.DataNode node)
basename - node - private void addSimpleProperty(java.lang.String basename,
ClassHolder.DataNode node,
ClassBuilder builder)
basename - node - builder - private void addRepeatedProperty(java.lang.String basename,
ClassHolder.DataNode node,
ClassBuilder builder)
basename - node - builder - private void addFlagProperty(java.lang.String basename,
ClassHolder.DataNode node,
ClassBuilder builder)
basename - node - builder - private java.lang.String findDocumentation(boolean top,
ClassHolder.DataNode node)
top - use topmost documentation found flagnode - starting nodeprivate void addToClass(ClassHolder.ParentNode parent)
parent - private StructureElement addReferenceStructure(ClassHolder.LeafNode leaf, DefinitionItem def, boolean single, BindingHolder holder, ContainerElementBase bindcomp)
leaf - reference nodedef - target definitionsingle - flag for single childholder - holder for binding definitionbindcomp - containing binding elementprivate CollectionElement newCollection(QName wrapname, boolean wrapopt, BindingHolder holder, ClassHolder.DataNode node)
wrapname - name to be used for wrapper collection or structure, null if nonewrapopt - wrapper element optional flag (should be false if wrapname is null)holder - binding definition tracking informationnode - data node associated with collectionprivate void setValueHandlingOptions(Item item, ValueElement value, BindingHolder holder)
item - value - holder - private void addToBinding(ClassHolder.ParentNode parent, QName wrapname, boolean wrapopt, boolean single, ContainerElementBase bindcomp, BindingHolder holder)
parent - node to be added to bindingwrapname - name to be used for wrapper collection or structure, null if nonewrapopt - wrapper element optional flag (should be false if wrapname is null)single - parent node binding component can be modified by child flag (single path from parent)bindcomp - binding definition component corresponding to the parent nodeholder - binding definition tracking informationpublic void generate(boolean verbose,
SourceBuilder builder)
generate in class ClassHolderverbose - builder - class source file builder