|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.commons.betwixt.Descriptor
org.apache.commons.betwixt.NodeDescriptor
org.apache.commons.betwixt.ElementDescriptor
ElementDescriptor
describes the XML elements
to be created for a bean instance.
It contains AttributeDescriptor
's for all it's attributes
and ElementDescriptor
's for it's child elements.
Field Summary | |
private AttributeDescriptor[] |
attributeDescriptors
Descriptors for attributes this element contains. |
private java.util.List |
attributeList
The List used on construction. |
private Descriptor[] |
contentDescriptors
Descriptors for child content. |
private java.util.List |
contentList
The list used o construct array. |
private Expression |
contextExpression
the expression used to evaluate the new context of this node or null if the same context is to be used |
private ElementDescriptor[] |
elementDescriptors
Descriptors for child elements. |
private java.util.List |
elementList
The List used on construction. |
private java.lang.Class |
implementationClass
specifies a separate implementation class that should be instantiated when reading beans or null if there is no separate implementation |
private boolean |
isCollectiveType
Is this a collective type? |
private boolean |
isHollow
Is this element hollow? In other words, is this descriptor a place holder indicating the name and update for a root ElementDescriptor for this type obtained by introspection TODO: this would probably be better modeled as a separate subclass |
private boolean |
primitiveType
Whether this element refers to a primitive type (or property of a parent object) |
private java.lang.Boolean |
useBindTimeTypeForMapping
Should the bind time type determine the mapping? (As opposed to the introspection time type.) Note that this attribute is write once, read many (WORM). |
private boolean |
wrapCollectionsInElement
Whether this collection element can be used as a collection element. |
Fields inherited from class org.apache.commons.betwixt.NodeDescriptor |
|
Fields inherited from class org.apache.commons.betwixt.Descriptor |
|
Constructor Summary | |
ElementDescriptor()
Constructs an ElementDescriptor that refers to a primitive type. |
|
ElementDescriptor(boolean primitiveType)
Deprecated. 0.6 PrimitiveType property has been removed |
|
ElementDescriptor(java.lang.String localName)
Creates a ElementDescriptor with no namespace URI or prefix. |
|
ElementDescriptor(java.lang.String localName,
java.lang.String qualifiedName,
java.lang.String uri)
Creates a ElementDescriptor with namespace URI and qualified name |
Method Summary | |
void |
addAttributeDescriptor(AttributeDescriptor descriptor)
Adds an attribute to the element this ElementDescriptor describes |
void |
addContentDescriptor(Descriptor descriptor)
Adds a descriptor for child content. |
void |
addElementDescriptor(ElementDescriptor descriptor)
Adds a descriptor for a child element. |
ElementDescriptor |
findParent(ElementDescriptor elementDescriptor)
Finds the parent of the given descriptor. |
AttributeDescriptor |
getAttributeDescriptor(java.lang.String name)
Returns an attribute descriptor with a given name or null. |
AttributeDescriptor[] |
getAttributeDescriptors()
Returns the attribute descriptors for this element |
protected java.util.List |
getAttributeList()
Lazily creates the mutable List. |
Descriptor[] |
getContentDescriptors()
Returns descriptors for the child content of the element this describes. |
protected java.util.List |
getContentList()
Lazily creates the mutable List of child content descriptors. |
Expression |
getContextExpression()
Returns the expression used to evaluate the new context of this element. |
ElementDescriptor |
getElementDescriptor(java.lang.String name)
Gets a child ElementDescriptor matching the given name if one exists. |
ElementDescriptor[] |
getElementDescriptors()
Returns descriptors for the child elements of the element this describes. |
protected java.util.List |
getElementList()
Lazily creates the mutable List of child elements. |
java.lang.Class |
getImplementationClass()
Gets the class which should be used for instantiation. |
TextDescriptor |
getPrimaryBodyTextDescriptor()
Gets the primary descriptor for body text of this element. |
boolean |
hasAttributes()
Returns true if this element has AttributeDescriptors |
boolean |
hasChildren()
Returns true if this element has child ElementDescriptors |
boolean |
hasContent()
Returns true if this element has child content. |
boolean |
isCollective()
Does this describe a collective? |
boolean |
isHollow()
Is this decriptor hollow? |
boolean |
isPolymorphic()
Is this a polymorphic element? |
boolean |
isPrimitiveType()
Deprecated. 0.6 moved to a declarative style of descriptors where the alrogithmic should be done during introspection |
boolean |
isSimple()
Is this a simple element? |
boolean |
isUseBindTimeTypeForMapping()
Is the bind time type to be used to determine the mapping? |
boolean |
isWrapCollectionsInElement()
Deprecated. 0.6 moved to a declarative style of descriptors where the alrogithmic should be done during introspection |
void |
removeAttributeDescriptor(AttributeDescriptor descriptor)
Removes an attribute descriptor from this element descriptor. |
void |
removeElementDescriptor(ElementDescriptor descriptor)
Removes an element descriptor from this element descriptor. |
void |
setAttributeDescriptors(AttributeDescriptor[] attributeDescriptors)
Sets the AttributesDescriptors for this element. |
void |
setCollective(boolean isCollectiveType)
Sets whether the element described is a collective. |
void |
setContentDescriptors(Descriptor[] contentDescriptors)
Sets the descriptors for the child content of the element this describes. |
void |
setContextExpression(Expression contextExpression)
Sets the expression used to evaluate the new context of this element |
void |
setElementDescriptors(ElementDescriptor[] elementDescriptors)
Sets the descriptors for the child element of the element this describes. |
void |
setHollow(boolean isHollow)
Sets whether this descriptor is hollow. |
void |
setImplementationClass(java.lang.Class implementationClass)
Sets the class which should be used for instantiation. |
void |
setPrimitiveType(boolean primitiveType)
Deprecated. 0.6 moved to a declarative style of descriptors where the alrogithmic should be done during introspection |
void |
setUseBindTimeTypeForMapping(boolean useBindTimeTypeForMapping)
Sets whether the bind time type to be used to determine the mapping. |
void |
setWrapCollectionsInElement(boolean wrapCollectionsInElement)
Deprecated. 0.6 moved to a declarative style of descriptors where the alrogithmic should be done during introspection |
java.lang.String |
toString()
Returns something useful for logging. |
Methods inherited from class org.apache.commons.betwixt.NodeDescriptor |
getLocalName, getQualifiedName, getURI, setLocalName, setQualifiedName, setURI |
Methods inherited from class org.apache.commons.betwixt.Descriptor |
getOptions, getPropertyName, getPropertyType, getSingularPropertyType, getTextExpression, getUpdater, setOptions, setPropertyName, setPropertyType, setSingularPropertyType, setTextExpression, setUpdater |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
private AttributeDescriptor[] attributeDescriptors
#getAttributeDescriptor()
should be called rather than accessing this
field directly.
private ElementDescriptor[] elementDescriptors
#getElementDescriptor()
should be called rather than accessing this
field directly.
private Descriptor[] contentDescriptors
#getContentDescriptor()
should be called rather than accessing this
field directly.
private java.util.List attributeList
private java.util.List elementList
private java.util.List contentList
private Expression contextExpression
private boolean primitiveType
private boolean isCollectiveType
private boolean isHollow
private boolean wrapCollectionsInElement
private java.lang.Class implementationClass
private java.lang.Boolean useBindTimeTypeForMapping
Constructor Detail |
public ElementDescriptor()
ElementDescriptor
that refers to a primitive type.
public ElementDescriptor(boolean primitiveType)
primitiveType
- if true, this element refers to a primitive typepublic ElementDescriptor(java.lang.String localName)
localName
- the (xml) local name of this node.
This will be used to set both qualified and local name for this name.public ElementDescriptor(java.lang.String localName, java.lang.String qualifiedName, java.lang.String uri)
ElementDescriptor
with namespace URI and qualified name
localName
- the (xml) local name of this nodequalifiedName
- the (xml) qualified name of this nodeuri
- the (xml) namespace prefix of this nodeMethod Detail |
public boolean hasChildren()
ElementDescriptors
getElementDescriptors()
public boolean hasAttributes()
AttributeDescriptors
getAttributeDescriptors()
public boolean hasContent()
getContentDescriptors()
public boolean isSimple()
Is this a simple element?
A simple element is one without child elements or attributes. This corresponds to the simple type concept used in XML Schema. TODO: need to consider whether it's sufficient to calculate which are simple types (and so don't get IDs assigned etc).
SimpleType
elementpublic void setWrapCollectionsInElement(boolean wrapCollectionsInElement)
Collection
bean properties should wrap items in a parent element.
In other words, should the mapping for bean properties which are Collection
s
enclosed the item elements within a parent element.
Normally only used when this describes a collection bean property.
wrapCollectionsInElement
- true if the elements for the items in the collection
should be contained in a parent elementpublic boolean isWrapCollectionsInElement()
Collection
s
enclosed the item elements within a parent element.
Normally only used when this describes a collection bean property.
public void addAttributeDescriptor(AttributeDescriptor descriptor)
ElementDescriptor
describes
descriptor
- the AttributeDescriptor
that will be added to the
attributes associated with element this ElementDescriptor
describespublic void removeAttributeDescriptor(AttributeDescriptor descriptor)
descriptor
- the AttributeDescriptor
to be removed, not nullpublic AttributeDescriptor[] getAttributeDescriptors()
ElementDescriptor
describespublic AttributeDescriptor getAttributeDescriptor(java.lang.String name)
name
- to search for; will be checked against the attributes' qualified name.
AttributeDescriptor
with the given name,
or null if no descriptor has that namepublic void setAttributeDescriptors(AttributeDescriptor[] attributeDescriptors)
AttributesDescriptors
for this element.
This sets descriptors for the attributes of the element describe by the
ElementDescriptor
.
attributeDescriptors
- the AttributeDescriptor
describe the attributes
of the element described by this ElementDescriptor
public void addElementDescriptor(ElementDescriptor descriptor)
descriptor
- the ElementDescriptor
describing the child element to addpublic void removeElementDescriptor(ElementDescriptor descriptor)
descriptor
- the ElementDescriptor
that will be removed.public ElementDescriptor[] getElementDescriptors()
ElementDescriptor
describing the child elements
of the element that this ElementDescriptor
describespublic ElementDescriptor getElementDescriptor(java.lang.String name)
ElementDescriptor
the first descriptor
with a null name will match any name
passed in, unless some other matches the name exactly.
name
- the localname to be matched, not null
public void setElementDescriptors(ElementDescriptor[] elementDescriptors)
elementDescriptors
- the ElementDescriptor
s of the element
that this describespublic void addContentDescriptor(Descriptor descriptor)
descriptor
- the Descriptor
describing the child content to addpublic Descriptor[] getContentDescriptors()
Descriptor
describing the child elements
of the element that this ElementDescriptor
describespublic TextDescriptor getPrimaryBodyTextDescriptor()
Gets the primary descriptor for body text of this element. Betwixt collects all body text for any element together. This makes it rounds tripping difficult for beans that write more than one mixed content property.
The algorithm used in the default implementation is that the first TextDescriptor found amongst the descriptors is returned.
public void setContentDescriptors(Descriptor[] contentDescriptors)
contentDescriptors
- the Descriptor
s of the element
that this describespublic Expression getContextExpression()
public void setContextExpression(Expression contextExpression)
contextExpression
- the expression used to evaluate the new context of this elementpublic boolean isPrimitiveType()
public void setPrimitiveType(boolean primitiveType)
primitiveType
- true if this element refers to a primitive typeprotected java.util.List getAttributeList()
AttributeDescriptors
's describing the attributes
of the element that this ElementDescriptor
describesprotected java.util.List getElementList()
ElementDescriptor
's describe the child elements of
the element that this ElementDescriptor
describesprotected java.util.List getContentList()
Descriptor
's describe the child content of
the element that this Descriptor
describespublic java.lang.Class getImplementationClass()
public void setImplementationClass(java.lang.Class implementationClass)
implementationClass
- the class which should be used for instantiation
or null to use the mapped typepublic boolean isCollective()
public void setCollective(boolean isCollectiveType)
isCollectiveType
- public ElementDescriptor findParent(ElementDescriptor elementDescriptor)
elementDescriptor
- ElementDescriptor
ElementDescriptor
, not nullpublic java.lang.String toString()
public boolean isHollow()
Is this decriptor hollow?
A hollow descriptor is one which gives only the class that the subgraph
is mapped to rather than describing the entire subgraph.
A new XMLBeanInfo
should be introspected
and that used to describe the subgraph.
A hollow descriptor should not have any child descriptors.
TODO: consider whether a subclass would be better
public void setHollow(boolean isHollow)
XMLBeanInfo
should be introspected
and that used to describe the subgraph.
A hollow descriptor should not have any child descriptors.
TODO: consider whether a subclass would be better
isHollow
- true if this is hollowpublic boolean isUseBindTimeTypeForMapping()
Is the bind time type to be used to determine the mapping?
The mapping for an object property value can either be the introspection time type (based on the logical type of the property) or the bind time type (based on the type of the actual instance).
public void setUseBindTimeTypeForMapping(boolean useBindTimeTypeForMapping)
Sets whether the bind time type to be used to determine the mapping. The mapping for an object property value can either be the introspection time type (based on the logical type of the property) or the bind time type (based on the type of the actual instance).
Note: this property is write once, read many. So, the first time that this method is called the value will be set but subsequent calls will be ignored.
useBindTimeTypeForMapping
- true if the bind time type is to be used to
determine the mapping, false if the introspection time type is to be usedpublic boolean isPolymorphic()
Is this a polymorphic element?
A polymorphic element's name is not fixed at introspection time and it's resolution is postponed to bind time.
NodeDescriptor.getQualifiedName()
is null,
false otherwise
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |