Package org.jibx.binding.model
Class CollectionElement
- java.lang.Object
-
- org.jibx.binding.model.ElementBase
-
- org.jibx.binding.model.NestingElementBase
-
- org.jibx.binding.model.ContainerElementBase
-
- org.jibx.binding.model.StructureElementBase
-
- org.jibx.binding.model.CollectionElement
-
- All Implemented Interfaces:
IComponent
public class CollectionElement extends StructureElementBase
Model component for collection element of binding definition.- Version:
- 1.0
- Author:
- Dennis M. Sosnoski
-
-
Field Summary
Fields Modifier and Type Field Description private IClassItem
m_addMethodItem
Add method information.private java.lang.String
m_addMethodName
Add method name.private IClass
m_itemTypeClass
Item type information.private java.lang.String
m_itemTypeName
Item type name.private IClassItem
m_iterMethodItem
Iterator method information.private java.lang.String
m_iterMethodName
Iterator method name.private IClassItem
m_loadMethodItem
Load method information.private java.lang.String
m_loadMethodName
Load method name.private IClassItem
m_sizeMethodItem
Size method information.private java.lang.String
m_sizeMethodName
Size method name.private IClassItem
m_storeMethodItem
Store method information.private java.lang.String
m_storeMethodName
Store method name.static StringArray
s_allowedAttributes
Enumeration of allowed attribute names-
Fields inherited from class org.jibx.binding.model.ElementBase
BINDING_ELEMENT, COLLECTION_ELEMENT, ELEMENT_NAMES, FORMAT_ELEMENT, INCLUDE_ELEMENT, INPUT_ELEMENT, MAPPING_ELEMENT, NAMESPACE_ELEMENT, OUTPUT_ELEMENT, SPLIT_ELEMENT, STRUCTURE_ELEMENT, TEMPLATE_ELEMENT, VALUE_ELEMENT
-
-
Constructor Summary
Constructors Constructor Description CollectionElement()
Default constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private boolean
checkCollectionChildren(ValidationContext vctx, IClass type, java.util.ArrayList children)
Check that child components are of types compatible with the collection item-type.private void
checkOrderedChildren(ValidationContext vctx, java.util.ArrayList children)
Check children of ordered collection for consistency.private void
checkUnorderedChildren(ValidationContext vctx, java.util.ArrayList children)
Check children of unordered collection for consistency.IClassItem
getAddMethodItem()
Get add method information.java.lang.String
getAddMethodName()
Get add method name.IClass
getChildObjectType()
Get class passed to child components.IClass
getItemTypeClass()
Get item type information.java.lang.String
getItemTypeName()
Get item type name.IClassItem
getIterMethodItem()
Get iterator method information.java.lang.String
getIterMethodName()
Get iterator method name.IClassItem
getLoadMethodItem()
Get load method information.java.lang.String
getLoadMethodName()
Get load method name.IClassItem
getSizeMethodItem()
Get size method information.java.lang.String
getSizeMethodName()
Get size method name.IClassItem
getStoreMethodItem()
Get store method information.java.lang.String
getStoreMethodName()
Get store method name.boolean
hasAttribute()
Check for attribute definition.boolean
hasContent()
Check for content definition.boolean
hasObject()
Check for object present.private void
preSet(IUnmarshallingContext uctx)
Make sure all attributes are defined.void
prevalidate(ValidationContext vctx)
Prevalidate element information.void
setAddMethodName(java.lang.String name)
Set add method name.boolean
setIdChild(IComponent child)
Set ID property.void
setItemTypeName(java.lang.String type)
Set item type name.void
setIterMethodName(java.lang.String name)
Set iterator method name.void
setLoadMethodName(java.lang.String name)
Set load method name.void
setSizeMethodName(java.lang.String name)
Set size method name.void
setStoreMethodName(java.lang.String name)
Set store method name.void
validate(ValidationContext vctx)
Validate element information.-
Methods inherited from class org.jibx.binding.model.StructureElementBase
getDeclaredType, getField, getFieldName, getFlag, getGet, getGetName, getGetType, getName, getNamespace, getObjectType, getPrefix, getSet, getSetName, getSetType, getTest, getTestName, getType, getUri, getUsage, getUsageName, hasName, hasProperty, isFlagOnly, isImplicit, isOptional, setDeclaredType, setFieldName, setFlagName, setGetName, setName, setPrefix, setSetName, setTestName, setUri, setUsage, setUsageName
-
Methods inherited from class org.jibx.binding.model.ContainerElementBase
checkCompatibleChildren, classifyComponents, getAttributeComponents, getContentComponents, getCreateClass, getCreateType, getFactory, getFactoryName, getId, getLabel, getMarshaller, getMarshallerName, getPostset, getPostsetName, getPreget, getPregetName, getPreset, getPresetName, getUnmarshaller, getUnmarshallerName, getUsing, isAllowRepeats, isChoice, isClassified, isFlexible, isNillable, isOrdered, setAllowRepeats, setChoice, setComponents, setCreateType, setFactoryName, setFlexible, setIdChild, setLabel, setMarshallerName, setNillable, setOrdered, setPostsetName, setPregetName, setPresetName, setUnmarshallerName, setUsing, verifyConstruction
-
Methods inherited from class org.jibx.binding.model.NestingElementBase
addChild, childIterator, children, getDefaultStyle, getDefinitions, getStyle, getStyleName, setDefinitions, setStyleName
-
Methods inherited from class org.jibx.binding.model.ElementBase
getComment, name, setComment, toString, type, validateAttributes
-
-
-
-
Field Detail
-
s_allowedAttributes
public static final StringArray s_allowedAttributes
Enumeration of allowed attribute names
-
m_loadMethodName
private java.lang.String m_loadMethodName
Load method name.
-
m_sizeMethodName
private java.lang.String m_sizeMethodName
Size method name.
-
m_storeMethodName
private java.lang.String m_storeMethodName
Store method name.
-
m_addMethodName
private java.lang.String m_addMethodName
Add method name.
-
m_iterMethodName
private java.lang.String m_iterMethodName
Iterator method name.
-
m_itemTypeName
private java.lang.String m_itemTypeName
Item type name.
-
m_loadMethodItem
private IClassItem m_loadMethodItem
Load method information.
-
m_sizeMethodItem
private IClassItem m_sizeMethodItem
Size method information.
-
m_storeMethodItem
private IClassItem m_storeMethodItem
Store method information.
-
m_addMethodItem
private IClassItem m_addMethodItem
Add method information.
-
m_iterMethodItem
private IClassItem m_iterMethodItem
Iterator method information.
-
m_itemTypeClass
private IClass m_itemTypeClass
Item type information.
-
-
Method Detail
-
getItemTypeName
public java.lang.String getItemTypeName()
Get item type name.- Returns:
- item type name (or
null
if none)
-
setItemTypeName
public void setItemTypeName(java.lang.String type)
Set item type name.- Parameters:
type
- item type name (ornull
if none)
-
getItemTypeClass
public IClass getItemTypeClass()
Get item type information. This call is only meaningful after validation.- Returns:
- item type information
-
getAddMethodName
public java.lang.String getAddMethodName()
Get add method name.- Returns:
- add method name (or
null
if none)
-
setAddMethodName
public void setAddMethodName(java.lang.String name)
Set add method name.- Parameters:
name
- add method name (ornull
if none)
-
getAddMethodItem
public IClassItem getAddMethodItem()
Get add method information. This call is only meaningful after validation.- Returns:
- add method information (or
null
if none)
-
getIterMethodName
public java.lang.String getIterMethodName()
Get iterator method name.- Returns:
- iterator method name (or
null
if none)
-
setIterMethodName
public void setIterMethodName(java.lang.String name)
Set iterator method name.- Parameters:
name
- iterator method name (ornull
if none)
-
getIterMethodItem
public IClassItem getIterMethodItem()
Get iterator method information. This call is only meaningful after validation.- Returns:
- iterator method information (or
null
if none)
-
getLoadMethodName
public java.lang.String getLoadMethodName()
Get load method name.- Returns:
- load method name (or
null
if none)
-
setLoadMethodName
public void setLoadMethodName(java.lang.String name)
Set load method name.- Parameters:
name
- load method name (ornull
if none)
-
getLoadMethodItem
public IClassItem getLoadMethodItem()
Get load method information. This call is only meaningful after validation.- Returns:
- load method information (or
null
if none)
-
getSizeMethodName
public java.lang.String getSizeMethodName()
Get size method name.- Returns:
- size method name (or
null
if none)
-
setSizeMethodName
public void setSizeMethodName(java.lang.String name)
Set size method name.- Parameters:
name
- size method name (ornull
if none)
-
getSizeMethodItem
public IClassItem getSizeMethodItem()
Get size method information. This call is only meaningful after validation.- Returns:
- size method information (or
null
if none)
-
getStoreMethodName
public java.lang.String getStoreMethodName()
Get store method name.- Returns:
- store method name (or
null
if none)
-
setStoreMethodName
public void setStoreMethodName(java.lang.String name)
Set store method name.- Parameters:
name
- store method name (ornull
if none)
-
getStoreMethodItem
public IClassItem getStoreMethodItem()
Get store method information. This call is only meaningful after validation.- Returns:
- store method information (or
null
if none)
-
setIdChild
public boolean setIdChild(IComponent child)
Set ID property. This is never supported for an object coming from a collection.- Parameters:
child
- child defining the ID property- Returns:
true
if successful,false
if ID already defined
-
hasObject
public boolean hasObject()
Check for object present. Alwaystrue
for collection.- Overrides:
hasObject
in classStructureElementBase
- Returns:
true
-
hasAttribute
public boolean hasAttribute()
Check for attribute definition. Alwaysfalse
for collection.- Specified by:
hasAttribute
in interfaceIComponent
- Overrides:
hasAttribute
in classStructureElementBase
- Returns:
false
-
hasContent
public boolean hasContent()
Check for content definition. Alwaystrue
for collection.- Specified by:
hasContent
in interfaceIComponent
- Overrides:
hasContent
in classStructureElementBase
- Returns:
true
-
getChildObjectType
public IClass getChildObjectType()
Description copied from class:ContainerElementBase
Get class passed to child components. This call is only meaningful after validation.- Overrides:
getChildObjectType
in classContainerElementBase
- Returns:
- information for class linked by binding
-
preSet
private void preSet(IUnmarshallingContext uctx) throws JiBXException
Make sure all attributes are defined.- Parameters:
uctx
- unmarshalling context- Throws:
JiBXException
- on unmarshalling error
-
prevalidate
public void prevalidate(ValidationContext vctx)
Description copied from class:ElementBase
Prevalidate element information. The prevalidation step is used to check isolated aspects of an element, such as the settings for enumerated values on the element and attributes. This empty base class implementation should be overridden by each subclass that requires prevalidation handling.- Overrides:
prevalidate
in classStructureElementBase
- Parameters:
vctx
- validation context
-
checkCollectionChildren
private boolean checkCollectionChildren(ValidationContext vctx, IClass type, java.util.ArrayList children)
Check that child components are of types compatible with the collection item-type. This method may call itself recursively to process the children of child components which do not themselves set a type. The result is used for recursive checking to detect conditions where an inner structure defines a type but an outer one does not (which causes errors in the current code generation).- Parameters:
vctx
- validation contexttype
- collection item typechildren
- list of child components to be checked- Returns:
true
if only child is a <value> element with type,false
if not
-
checkUnorderedChildren
private void checkUnorderedChildren(ValidationContext vctx, java.util.ArrayList children)
Check children of unordered collection for consistency. In an input binding each child element must define a unique qualified name. In an output binding each child element must define a unique type or supply a test method to allow checking when that element should be generated for an object.- Parameters:
vctx
- validation contextchildren
- list of child components
-
checkOrderedChildren
private void checkOrderedChildren(ValidationContext vctx, java.util.ArrayList children)
Check children of ordered collection for consistency. In an input binding each child element must use a different qualified name from the preceding child element. In an output binding each child element must define a different type from the preceding child element, or the preceding child element must supply a test method to allow checking when that element should be generated for an object.- Parameters:
vctx
- validation contextchildren
- list of child components
-
validate
public void validate(ValidationContext vctx)
Description copied from class:ElementBase
Validate element information. The validation step is used for checking the interactions between elements, such as name references to other elements. TheElementBase.prevalidate(org.jibx.binding.model.ValidationContext)
method will always be called for every element in the binding definition before this method is called for any element. This empty base class implementation should be overridden by each subclass that requires validation handling.- Overrides:
validate
in classStructureElementBase
- Parameters:
vctx
- validation context
-
-