Top Description Fields Constructors Methods
com.sun.org.apache.xerces.internal.dom

public final Class DeferredAttrImpl

extends AttrImpl
implements DeferredNode
Class Inheritance
All Implemented Interfaces
com.sun.org.apache.xerces.internal.dom.DeferredNode, org.w3c.dom.Node

Attribute represents an XML-style attribute of an Element. Typically, the allowable values are controlled by its declaration in the Document Type Definition (DTD) governing this kind of document.

If the attribute has not been explicitly assigned a value, but has been declared in the DTD, it will exist and have that default. Only if neither the document nor the DTD specifies a value will the Attribute really be considered absent and have no value; in that case, querying the attribute will return null.

Attributes may have multiple children that contain their data. (XML allows attributes to contain entity references, and tokenized attribute types such as NMTOKENS may have a child for each token.) For convenience, the Attribute object's getValue() method returns the string version of the attribute's value.

Attributes are not children of the Elements they belong to, in the usual sense, and have no valid Parent reference. However, the spec says they _do_ belong to a specific Element, and an INUSE exception is to be thrown if the user attempts to explicitly share them between elements.

Note that Elements do not permit attributes to appear to be shared (see the INUSE exception), so this object's mutability is officially not an issue.

DeferredAttrImpl inherits from AttrImpl which does not support Namespaces. DeferredAttrNSImpl, which inherits from AttrNSImpl, does.

Authors
Andy Clark, IBM, Arnaud Le Hors, IBM
Since
PR-DOM-Level-1-19980818.
See Also
DeferredAttrNSImpl

Field Summary

Modifier and TypeField and Description
protected transient int
fNodeIndex

Node index.

pack-priv static final long
Inherited from com.sun.org.apache.xerces.internal.dom.AttrImpl:
DTD_URInametypevalue

Constructor Summary

AccessConstructor and Description
pack-priv
DeferredAttrImpl(DeferredDocumentImpl ownerDocument, int nodeIndex)

This is the deferred constructor.

Method Summary

Modifier and TypeMethod and Description
public int
protected void
synchronizeChildren()

Overrides com.sun.org.apache.xerces.internal.dom.AttrImpl.synchronizeChildren.

Synchronizes the node's children with the internal structure.

protected void
synchronizeData()

Overrides com.sun.org.apache.xerces.internal.dom.NodeImpl.synchronizeData.

Synchronizes the data (name and value) for fast nodes.

Inherited from com.sun.org.apache.xerces.internal.dom.AttrImpl:
checkNormalizationAfterInsertcheckNormalizationAfterRemovecloneNodegetChildNodesgetElementgetFirstChildgetLastChildgetLengthgetNamegetNodeNamegetNodeTypegetNodeValuegetOwnerElementgetSchemaTypeInfogetSpecifiedgetTypeNamegetTypeNamespacegetValuehasChildNodesinsertBeforeinternalInsertBeforeinternalRemoveChildisDerivedFromisEqualNodeisIditemlastChildlastChildmakeChildNodenormalizeremoveChildrenamereplaceChildsetIdAttributesetNodeValuesetOwnerDocumentsetReadOnlysetSpecifiedsetTypesetValuetoString

Field Detail

fNodeIndexback to summary
protected transient int fNodeIndex

Node index.

serialVersionUIDback to summary
pack-priv static final long serialVersionUID

Hides com.sun.org.apache.xerces.internal.dom.AttrImpl.serialVersionUID.

Serialization version.

Constructor Detail

DeferredAttrImplback to summary
pack-priv DeferredAttrImpl(DeferredDocumentImpl ownerDocument, int nodeIndex)

This is the deferred constructor. Only the fNodeIndex is given here. All other data, can be requested from the ownerDocument via the index.

Method Detail

getNodeIndexback to summary
public int getNodeIndex()

Implements com.sun.org.apache.xerces.internal.dom.DeferredNode.getNodeIndex.

Returns the node index.

synchronizeChildrenback to summary
protected void synchronizeChildren()

Overrides com.sun.org.apache.xerces.internal.dom.AttrImpl.synchronizeChildren.

Synchronizes the node's children with the internal structure. Fluffing the children at once solves a lot of work to keep the two structures in sync. The problem gets worse when editing the tree -- this makes it a lot easier.

synchronizeDataback to summary
protected void synchronizeData()

Overrides com.sun.org.apache.xerces.internal.dom.NodeImpl.synchronizeData.

Synchronizes the data (name and value) for fast nodes.