Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.enhydra.xml.lazydom
Class LazyEntity  view LazyEntity download LazyEntity.java

java.lang.Object
  extended byorg.apache.xerces.dom.NodeImpl
      extended byorg.apache.xerces.dom.ChildNode
          extended byorg.apache.xerces.dom.ParentNode
              extended byorg.apache.xerces.dom.EntityImpl
                  extended byorg.enhydra.xml.lazydom.LazyEntity
All Implemented Interfaces:
java.lang.Cloneable, org.w3c.dom.Entity, org.w3c.dom.events.EventTarget, LazyNode, LazyParent, org.w3c.dom.Node, org.w3c.dom.NodeList, java.io.Serializable

public class LazyEntity
extends org.apache.xerces.dom.EntityImpl
implements LazyParent

Implementation of the DOM Entity that supports lazy instantiation of a template DOM.


Field Summary
private  boolean fChildrenExpanded
           
private  boolean fIsTemplateNode
          Is this a template node?
private  int fNodeId
           
private  boolean fParentExpanded
          Parent and children expanded flags.
private  LazyEntity fTemplateNode
          Template for this Entity.
 
Fields inherited from class org.apache.xerces.dom.EntityImpl
baseURI, encoding, inputEncoding, name, notationName, publicId, systemId, version
 
Fields inherited from class org.apache.xerces.dom.ParentNode
firstChild, fNodeListCache, ownerDocument
 
Fields inherited from class org.apache.xerces.dom.ChildNode
nextSibling, previousSibling
 
Fields inherited from class org.apache.xerces.dom.NodeImpl
DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_IS_CONTAINED, DOCUMENT_POSITION_PRECEDING, ELEMENT_DEFINITION_NODE, FIRSTCHILD, flags, HASSTRING, ID, IGNORABLEWS, NORMALIZED, OWNED, ownerNode, READONLY, SPECIFIED, SYNCCHILDREN, SYNCDATA, TREE_POSITION_ANCESTOR, TREE_POSITION_DESCENDANT, TREE_POSITION_DISCONNECTED, TREE_POSITION_EQUIVALENT, TREE_POSITION_FOLLOWING, TREE_POSITION_PRECEDING, TREE_POSITION_SAME_NODE
 
Fields inherited from interface org.enhydra.xml.lazydom.LazyNode
DOCUMENT_NODE_ID, NULL_NODE_ID
 
Fields inherited from interface org.w3c.dom.Node
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
 
Constructor Summary
protected LazyEntity(LazyDocument ownerDoc, LazyEntity template, java.lang.String name, java.lang.String publicId, java.lang.String systemId, java.lang.String notationName)
          Constructor from template.
 
Method Summary
 org.w3c.dom.Node appendChild(org.w3c.dom.Node newChild)
          Adds the node newChild to the end of the list of children of this node.
 void appendChildWhileExpanding(org.w3c.dom.Node child)
          Append a child during node expansion.
 boolean areChildrenExpanded()
          Are the children of this node expanded?
 org.w3c.dom.Node cloneNode(boolean deep)
          Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes.
private  void expandChildren()
          Expand the children of this element, if they are not already expanded.
private  void expandParent()
          Expand the parent of this element, if it is not already expanded.
 org.w3c.dom.NodeList getChildNodes()
          A NodeList that contains all children of this node.
 org.w3c.dom.Node getFirstChild()
          The first child of this node.
 org.w3c.dom.Node getLastChild()
          The last child of this node.
 org.w3c.dom.Node getNextSibling()
          The node immediately following this node.
 int getNodeId()
          Get the node numeric id number.
 org.w3c.dom.Node getParentNode()
          The parent of this node.
 org.w3c.dom.Node getPreviousSibling()
          The node immediately preceding this node.
 LazyEntity getTemplateEntity()
          Get the template for this node.
 LazyNode getTemplateNode()
          Get the template node as a LazyNode.
 boolean hasChildNodes()
          Returns whether this node has any children.
 org.w3c.dom.Node insertBefore(org.w3c.dom.Node newChild, org.w3c.dom.Node refChild)
          Inserts the node newChild before the existing child node refChild.
 boolean isParentExpanded()
          Is the parent of this node expanded?
 boolean isTemplateNode()
          Check if this node is a template node.
 void makeTemplateNode(int nodeId)
           
 void normalize()
          Puts all Text nodes in the full depth of the sub-tree underneath this Node, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates Text nodes, i.e., there are neither adjacent Text nodes nor empty Text nodes.
 org.w3c.dom.Node removeChild(org.w3c.dom.Node oldChild)
          Removes the child node indicated by oldChild from the list of children, and returns it.
 org.w3c.dom.Node replaceChild(org.w3c.dom.Node newChild, org.w3c.dom.Node oldChild)
          Replaces the child node oldChild with newChild in the list of children, and returns the oldChild node.
 void setChildrenExpanded()
          Flag the children as being expanded.
 void setNodeValue(java.lang.String value)
          Set the node value, invalidating the id.
 void setParentExpanded()
          Flag the parent as being expanded.
 void setParentWhileExpanding(org.w3c.dom.Node parent)
          Set the parent of this node during expansion.
 LazyNode templateClone(org.w3c.dom.Document ownerDocument)
          Create a new node, using this node as the template.
 
Methods inherited from class org.apache.xerces.dom.EntityImpl
getBaseURI, getInputEncoding, getNodeName, getNodeType, getNotationName, getPublicId, getSystemId, getXmlEncoding, getXmlVersion, setBaseURI, setInputEncoding, setNotationName, setPublicId, setSystemId, setXmlEncoding, setXmlVersion
 
Methods inherited from class org.apache.xerces.dom.ParentNode
getChildNodesUnoptimized, getLength, getOwnerDocument, getTextContent, isEqualNode, item, setReadOnly, setTextContent, synchronizeChildren
 
Methods inherited from class org.apache.xerces.dom.ChildNode
 
Methods inherited from class org.apache.xerces.dom.NodeImpl
addEventListener, changed, changes, compareDocumentPosition, compareTreePosition, dispatchEvent, getAttributes, getContainer, getFeature, getLocalName, getNamespaceURI, getNodeNumber, getNodeValue, getPrefix, getReadOnly, getUserData, getUserData, hasAttributes, isDefaultNamespace, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, needsSyncChildren, removeEventListener, setPrefix, setUserData, setUserData, synchronizeData, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.w3c.dom.Node
getAttributes, getLocalName, getNamespaceURI, getNodeName, getNodeType, getNodeValue, getOwnerDocument, getPrefix, hasAttributes, isSupported, setPrefix
 

Field Detail

fTemplateNode

private LazyEntity fTemplateNode
Template for this Entity.


fNodeId

private int fNodeId

fIsTemplateNode

private boolean fIsTemplateNode
Is this a template node?


fParentExpanded

private boolean fParentExpanded
Parent and children expanded flags.


fChildrenExpanded

private boolean fChildrenExpanded
Constructor Detail

LazyEntity

protected LazyEntity(LazyDocument ownerDoc,
                     LazyEntity template,
                     java.lang.String name,
                     java.lang.String publicId,
                     java.lang.String systemId,
                     java.lang.String notationName)
Constructor from template.

Method Detail

getTemplateEntity

public LazyEntity getTemplateEntity()
Get the template for this node.


cloneNode

public org.w3c.dom.Node cloneNode(boolean deep)
Description copied from interface: org.w3c.dom.Node
Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent; ( parentNode is null.).
Cloning an Element copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any text it contains unless it is a deep clone, since the text is contained in a child Text node. Cloning an Attribute directly, as opposed to be cloned as part of an Element cloning operation, returns a specified attribute ( specified is true). Cloning any other type of node simply returns a copy of this node.
Note that cloning an immutable subtree results in a mutable copy, but the children of an EntityReference clone are readonly . In addition, clones of unspecified Attr nodes are specified. And, cloning Document, DocumentType, Entity, and Notation nodes is implementation dependent.

Specified by:
cloneNode in interface org.w3c.dom.Node

makeTemplateNode

public void makeTemplateNode(int nodeId)
Specified by:
makeTemplateNode in interface LazyNode

getNodeId

public int getNodeId()
Description copied from interface: LazyNode
Get the node numeric id number.

Specified by:
getNodeId in interface LazyNode

isTemplateNode

public boolean isTemplateNode()
Description copied from interface: LazyNode
Check if this node is a template node.

Specified by:
isTemplateNode in interface LazyNode

getTemplateNode

public LazyNode getTemplateNode()
Description copied from interface: LazyNode
Get the template node as a LazyNode.

Specified by:
getTemplateNode in interface LazyNode

templateClone

public LazyNode templateClone(org.w3c.dom.Document ownerDocument)
Description copied from interface: LazyNode
Create a new node, using this node as the template.

Specified by:
templateClone in interface LazyNode

setNodeValue

public void setNodeValue(java.lang.String value)
Set the node value, invalidating the id. All node data is modified by this routine.

Specified by:
setNodeValue in interface org.w3c.dom.Node

isParentExpanded

public boolean isParentExpanded()
Description copied from interface: LazyParent
Is the parent of this node expanded?

Specified by:
isParentExpanded in interface LazyParent

setParentExpanded

public void setParentExpanded()
Description copied from interface: LazyParent
Flag the parent as being expanded.

Specified by:
setParentExpanded in interface LazyParent

setParentWhileExpanding

public void setParentWhileExpanding(org.w3c.dom.Node parent)
Description copied from interface: LazyParent
Set the parent of this node during expansion. This should also flag the parent as being expanded.

Specified by:
setParentWhileExpanding in interface LazyParent

areChildrenExpanded

public boolean areChildrenExpanded()
Description copied from interface: LazyParent
Are the children of this node expanded?

Specified by:
areChildrenExpanded in interface LazyParent

setChildrenExpanded

public void setChildrenExpanded()
Description copied from interface: LazyParent
Flag the children as being expanded.

Specified by:
setChildrenExpanded in interface LazyParent

appendChildWhileExpanding

public void appendChildWhileExpanding(org.w3c.dom.Node child)
Description copied from interface: LazyParent
Append a child during node expansion. This should only add the child, not trigger any other expansion.

Specified by:
appendChildWhileExpanding in interface LazyParent

expandParent

private void expandParent()
Expand the parent of this element, if it is not already expanded.


expandChildren

private void expandChildren()
Expand the children of this element, if they are not already expanded.


getParentNode

public org.w3c.dom.Node getParentNode()
Description copied from interface: org.w3c.dom.Node
The parent of this node. All nodes, except Attr, Document, DocumentFragment, Entity, and Notation may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is null.

Specified by:
getParentNode in interface org.w3c.dom.Node

getChildNodes

public org.w3c.dom.NodeList getChildNodes()
Description copied from interface: org.w3c.dom.Node
A NodeList that contains all children of this node. If there are no children, this is a NodeList containing no nodes.

Specified by:
getChildNodes in interface org.w3c.dom.Node

getFirstChild

public org.w3c.dom.Node getFirstChild()
Description copied from interface: org.w3c.dom.Node
The first child of this node. If there is no such node, this returns null.

Specified by:
getFirstChild in interface org.w3c.dom.Node

getLastChild

public org.w3c.dom.Node getLastChild()
Description copied from interface: org.w3c.dom.Node
The last child of this node. If there is no such node, this returns null.

Specified by:
getLastChild in interface org.w3c.dom.Node

getPreviousSibling

public org.w3c.dom.Node getPreviousSibling()
Description copied from interface: org.w3c.dom.Node
The node immediately preceding this node. If there is no such node, this returns null.

Specified by:
getPreviousSibling in interface org.w3c.dom.Node

getNextSibling

public org.w3c.dom.Node getNextSibling()
Description copied from interface: org.w3c.dom.Node
The node immediately following this node. If there is no such node, this returns null.

Specified by:
getNextSibling in interface org.w3c.dom.Node

insertBefore

public org.w3c.dom.Node insertBefore(org.w3c.dom.Node newChild,
                                     org.w3c.dom.Node refChild)
                              throws org.w3c.dom.DOMException
Description copied from interface: org.w3c.dom.Node
Inserts the node newChild before the existing child node refChild. If refChild is null, insert newChild at the end of the list of children.
If newChild is a DocumentFragment object, all of its children are inserted, in the same order, before refChild. If the newChild is already in the tree, it is first removed.

Specified by:
insertBefore in interface org.w3c.dom.Node

replaceChild

public org.w3c.dom.Node replaceChild(org.w3c.dom.Node newChild,
                                     org.w3c.dom.Node oldChild)
                              throws org.w3c.dom.DOMException
Description copied from interface: org.w3c.dom.Node
Replaces the child node oldChild with newChild in the list of children, and returns the oldChild node.
If newChild is a DocumentFragment object, oldChild is replaced by all of the DocumentFragment children, which are inserted in the same order. If the newChild is already in the tree, it is first removed.

Specified by:
replaceChild in interface org.w3c.dom.Node

removeChild

public org.w3c.dom.Node removeChild(org.w3c.dom.Node oldChild)
                             throws org.w3c.dom.DOMException
Description copied from interface: org.w3c.dom.Node
Removes the child node indicated by oldChild from the list of children, and returns it.

Specified by:
removeChild in interface org.w3c.dom.Node

appendChild

public org.w3c.dom.Node appendChild(org.w3c.dom.Node newChild)
                             throws org.w3c.dom.DOMException
Description copied from interface: org.w3c.dom.Node
Adds the node newChild to the end of the list of children of this node. If the newChild is already in the tree, it is first removed.

Specified by:
appendChild in interface org.w3c.dom.Node

hasChildNodes

public boolean hasChildNodes()
Description copied from interface: org.w3c.dom.Node
Returns whether this node has any children.

Specified by:
hasChildNodes in interface org.w3c.dom.Node

normalize

public void normalize()
Description copied from interface: org.w3c.dom.Node
Puts all Text nodes in the full depth of the sub-tree underneath this Node, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates Text nodes, i.e., there are neither adjacent Text nodes nor empty Text nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer lookups) that depend on a particular document tree structure are to be used.In cases where the document contains CDATASections, the normalize operation alone may not be sufficient, since XPointers do not differentiate between Text nodes and CDATASection nodes.

Specified by:
normalize in interface org.w3c.dom.Node