|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.google.gdata.model.Element
public class Element
Data element in an instance document. Contains attributes, child elements, and a text node.
The various setter methods provided by this class return this
so setter invocations can be chained, as in the following example:
Element who = new Element(KEY) .setAttributeValue(ATTR_KEY, "value") .addElement( new Element(EXT_KEY_NOEXT) .setTextValue("yolk"));
Subclasses are expected to follow the same model for any setter methods they provide.
setTextValue(Object)
,
setAttributeValue(AttributeKey, Object)
,
addElement(Element)
,
addElement(ElementKey, Element)
Constructor Summary | |
---|---|
Element(ElementKey<?,?> elementKey)
Construct element and associate with a key. |
|
Element(ElementKey<?,?> elementKey,
Element source)
Copy constructor that initializes a new Element instance to be a wrapper around another element instance. |
|
Element(QName qName)
Construct a generic undeclared element with the specified qualified name. |
Method Summary | ||
---|---|---|
Element |
addElement(Element element)
Add a child element, using the key of the child element as the key into this element's children. |
|
Element |
addElement(ElementKey<?,?> key,
Element element)
Add a child element with the given key. |
|
Element |
addElement(QName id,
Element element)
Add a child element with the given ID. |
|
void |
clear()
Clears internal state of all attributes, child elements, and text content. |
|
static
|
createElement(ElementKey<?,E> key)
Helper method that constructs a new Element instance of the type
defined by the type parameter E . |
|
static
|
createElement(ElementKey<?,E> key,
Element source)
Helper method that constructs a new Element instance of the type
defined by the type parameter E . |
|
boolean |
equals(java.lang.Object obj)
|
|
int |
getAttributeCount()
Returns the number of attributes present on this element. |
|
java.util.Iterator<Attribute> |
getAttributeIterator()
Returns an iterator over all attributes on this element. |
|
java.util.Iterator<Attribute> |
getAttributeIterator(ElementMetadata<?,?> metadata)
Returns an iterator over the attributes of this element with a well-defined iteration order based on the metadata. |
|
|
getAttributeValue(AttributeKey<T> key)
Returns the attribute value cast to the appropriate type, based on the given key. |
|
java.lang.Object |
getAttributeValue(QName id)
Get the value of an attribute by id. |
|
static ElementKey<?,?> |
getDefaultKey(java.lang.Class<? extends Element> type)
Returns the default ElementKey for an Element type. |
|
|
getElement(ElementKey<D,T> childKey)
Get child element matching the specified key. |
|
Element |
getElement(QName id)
Get a child element matching the specified qualified name. |
|
int |
getElementCount()
Returns the number of child elements present on this element. |
|
QName |
getElementId()
Get the id of this element. |
|
java.util.Iterator<Element> |
getElementIterator()
Returns an iterator over all child elements of this element. |
|
java.util.Iterator<Element> |
getElementIterator(ElementMetadata<?,?> metadata)
Returns an iterator over all child elements with a well-defined iteration order based on this metadata. |
|
ElementKey<?,?> |
getElementKey()
Returns the key to this element. |
|
|
getElements(ElementKey<?,T> key)
Get child elements matching the specified key. |
|
java.util.List<Element> |
getElements(QName id)
Returns an immutable list of elements matching the given id. |
|
|
getElementSet(ElementKey<?,T> key)
Get child elements matching the specified key. |
|
java.util.Set<Element> |
getElementSet(QName id)
Get child elements matching the specified id. |
|
|
getElementValue(ElementKey<V,? extends Element> key)
Convenience method to return child element's text node cast to the specified type. |
|
java.lang.Object |
getElementValue(QName id)
Convenience method to return child element's text node as an object. |
|
java.lang.Object |
getTextValue()
Returns the untyped element value or null if it has no value. |
|
|
getTextValue(ElementKey<V,?> key)
Returns the element value adapted to the key's datatype. |
|
boolean |
hasAttribute(AttributeKey<?> childKey)
Returns true if the element has an attribute with the given key. |
|
boolean |
hasAttribute(QName id)
Returns true if the element has an attribute with the given id. |
|
boolean |
hasElement(ElementKey<?,?> childKey)
Returns true if the element has child element(s) with the given key. |
|
boolean |
hasElement(QName id)
Returns true if the element has child element(s) with the given id. |
|
int |
hashCode()
|
|
boolean |
hasTextValue()
|
|
boolean |
isLocked()
Returns true if this element has been locked using lock() . |
|
Element |
lock()
Locks this element. |
|
java.lang.Object |
removeAttribute(AttributeKey<?> key)
Deprecated. use removeAttributeValue instead. |
|
java.lang.Object |
removeAttribute(QName id)
Deprecated. use removeAttributeValue instead. |
|
java.lang.Object |
removeAttributeValue(AttributeKey<?> key)
Remove attribute (if present). |
|
java.lang.Object |
removeAttributeValue(QName id)
Remove attribute (if present). |
|
boolean |
removeElement(Element element)
Remove a single child element from this element. |
|
Element |
removeElement(ElementKey<?,?> childKey)
Remove child element(s) of a given name. |
|
boolean |
removeElement(ElementKey<?,?> childKey,
Element element)
Remove a single child element from this element. |
|
Element |
removeElement(QName id)
Remove child element(s) of a given name. |
|
boolean |
replaceElement(Element toRemove,
Element toAdd)
Replace one element with another. |
|
Element |
resolve(ElementMetadata<?,?> metadata)
Resolve the state of all elements in the tree, rooted at this element, against the metadata. |
|
Element |
resolve(ElementMetadata<?,?> metadata,
ValidationContext vc)
Resolve this element's state against the metadata. |
|
Element |
setAttributeValue(AttributeKey<?> key,
java.lang.Object attrValue)
Add attribute by value. |
|
Element |
setAttributeValue(QName id,
java.lang.Object attrValue)
Add attribute by id and value. |
|
Element |
setElement(Element element)
Sets a child element to the given value. |
|
Element |
setElement(ElementKey<?,?> key,
Element element)
Sets the value of the child element(s) with the key . |
|
Element |
setElement(QName id,
Element element)
Sets the value of the child element(s) with the given id. |
|
Element |
setTextValue(java.lang.Object newValue)
Sets the value of the element and returns the element to allow chaining. |
|
java.lang.String |
toString()
|
|
void |
visit(ElementVisitor ev,
ElementMetadata<?,?> meta)
Visits the element using the specified ElementVisitor and metadata. |
Methods inherited from class java.lang.Object |
---|
getClass, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public Element(ElementKey<?,?> elementKey)
elementKey
- the key to this element, contains the ID and datatype.public Element(QName qName)
qName
- qualified namepublic Element(ElementKey<?,?> elementKey, Element source)
elementKey
- the element key to associate with the copy.source
- the element to copy data from.Method Detail |
---|
public static ElementKey<?,?> getDefaultKey(java.lang.Class<? extends Element> type)
ElementKey
for an Element
type.
type
- element type
public final boolean isLocked()
lock()
. Once an
element has been locked it cannot be unlocked.
public Element lock()
public ElementKey<?,?> getElementKey()
public QName getElementId()
public java.util.Iterator<Attribute> getAttributeIterator()
public java.util.Iterator<Attribute> getAttributeIterator(ElementMetadata<?,?> metadata)
metadata
- the element metadata to use for iteration
public int getAttributeCount()
public boolean hasAttribute(QName id)
public boolean hasAttribute(AttributeKey<?> childKey)
public java.lang.Object getAttributeValue(QName id)
public <T> T getAttributeValue(AttributeKey<T> key)
T
- return typekey
- the attribute key to use to cast the attribute value
java.lang.IllegalArgumentException
- if the value cannot be converted to the
key typepublic Element setAttributeValue(QName id, java.lang.Object attrValue)
null
this is
equivalent to removing the attribute with the given id.
public Element setAttributeValue(AttributeKey<?> key, java.lang.Object attrValue)
null
the value will be
removed.
key
- attribute key that is being addedattrValue
- attribute value or null
to remove@Deprecated public java.lang.Object removeAttribute(QName id)
public java.lang.Object removeAttributeValue(QName id)
id
- the qualified name of the attribute.
@Deprecated public java.lang.Object removeAttribute(AttributeKey<?> key)
public java.lang.Object removeAttributeValue(AttributeKey<?> key)
key
- the key of the attribute.
public java.util.Iterator<Element> getElementIterator()
public java.util.Iterator<Element> getElementIterator(ElementMetadata<?,?> metadata)
metadata
- the metadata to use for iteration
public int getElementCount()
public Element getElement(QName id)
id
- the qualified name of the child to retrieve
null
if none was found
java.lang.IllegalArgumentException
- if the id referenced a repeating elementpublic <D,T extends Element> T getElement(ElementKey<D,T> childKey)
T
- the type of element to returnchildKey
- the metadata key for the child element to retrieve
null
if none was found
java.lang.IllegalArgumentException
- if the key referenced a repeating elementpublic java.lang.Object getElementValue(QName id)
null
if child doesn't exist or child does not have a text
node.
public <V> V getElementValue(ElementKey<V,? extends Element> key)
null
if child element does
not exist or has no text node.
V
- child element's text node typekey
- identifying the child element.
V
,
or null
if child element does not exist or has no
text nodepublic boolean hasElement(QName id)
public boolean hasElement(ElementKey<?,?> childKey)
public java.util.List<Element> getElements(QName id)
public <T extends Element> java.util.List<T> getElements(ElementKey<?,T> key)
addElement(Element)
method should be used. If the elements at the given key are not of the
correct type an IllegalArgumentException
will be thrown.
key
- child key to lookup child elements based on.
public java.util.Set<Element> getElementSet(QName id)
addElement(Element)
method
should be used.
public <T extends Element> java.util.Set<T> getElementSet(ElementKey<?,T> key)
addElement(Element)
method should be used. If the elements at the given key are not of the
correct type an IllegalArgumentException
will be thrown.
key
- the child key to lookup child elements based on.
public Element setElement(QName id, Element element)
null
, this is equivalent to removeElement(QName)
.
public Element setElement(Element element)
setElement(element.getElementKey(), element);
.
java.lang.NullPointerException
- if element is null.public Element setElement(ElementKey<?,?> key, Element element)
key
. The
element
will replace all existing elements with the same key. If
element is null, this is equivalent to removeElement(ElementKey)
.
key
- the key for the child elementelement
- child element
public Element addElement(Element element)
element
- child element
java.lang.NullPointerException
- if element is null.public Element addElement(QName id, Element element)
setElement(QName, Element)
instead.
id
- the qualified name to use for the childelement
- child element
java.lang.NullPointerException
- if element is null.public Element addElement(ElementKey<?,?> key, Element element)
setElement(ElementKey, Element)
instead.
key
- the key of the child.element
- child element
public Element removeElement(QName id)
id
- the id of the child element(s) to remove.
public Element removeElement(ElementKey<?,?> childKey)
childKey
- key of the element(s) to remove.
public boolean removeElement(Element element)
element
- the child element to remove.
public boolean removeElement(ElementKey<?,?> childKey, Element element)
childKey
- the key for the child element to remove.element
- the child element to remove.
public boolean replaceElement(Element toRemove, Element toAdd)
toRemove
- element to remove.toAdd
- element to add.
public void clear()
public java.lang.Object getTextValue()
public <V> V getTextValue(ElementKey<V,?> key)
V
- data type of the key.key
- the element key used to convert the value.
public Element setTextValue(java.lang.Object newValue)
newValue
- element's value
java.lang.IllegalStateException
- if the element is immutable
java.lang.IllegalArgumentException
- if the object is of an invalid type or
if this element does not allow a valuepublic boolean hasTextValue()
public Element resolve(ElementMetadata<?,?> metadata) throws ContentValidationException
metadata
- the metadata to resolve against.
ContentValidationException
- if tree cannot be resolvedpublic Element resolve(ElementMetadata<?,?> metadata, ValidationContext vc)
vc
- validation context
public void visit(ElementVisitor ev, ElementMetadata<?,?> meta)
ElementVisitor
and metadata.
A null
metadata indicates that the element is undeclared, and
child elements will be visited in the order they were added to the element.
ev
- the element visitor instance to use.meta
- the metadata for the element, or null
for undeclared
metadata.
ElementVisitor.StoppedException
- if traversal must be stoppedpublic static <E extends Element> E createElement(ElementKey<?,E> key) throws ContentCreationException
Element
instance of the type
defined by the type parameter E
.
key
- the element key to create the element from
ContentCreationException
- if content cannot be createdpublic static <E extends Element> E createElement(ElementKey<?,E> key, Element source) throws ContentCreationException
Element
instance of the type
defined by the type parameter E
.
key
- the element key to create the element for.source
- the source element to use, or null if a fresh instance should
be created.
ContentCreationException
- if content cannot be createdpublic int hashCode()
hashCode
in class java.lang.Object
public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
public java.lang.String toString()
toString
in class java.lang.Object
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |