From: Pierrick B. <br...@us...> - 2006-01-15 20:55:52
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/dom In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17932/src/org/exist/dom Modified Files: XMLUtil.java NodeSetHelper.java DocumentImpl.java StoredNode.java Log Message: Cosmetics : Organized imports Relocated local variables Reformatted code Index: NodeSetHelper.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/dom/NodeSetHelper.java,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** NodeSetHelper.java 15 Jan 2006 13:30:38 -0000 1.17 --- NodeSetHelper.java 15 Jan 2006 20:55:43 -0000 1.18 *************** *** 532,537 **** if(level < 1) return NodeProxy.DOCUMENT_NODE_GID; ! return (gid - doc.treeLevelStartPoints[level]) / doc.treeLevelOrder[level] ! + doc.treeLevelStartPoints[level - 1]; } --- 532,537 ---- if(level < 1) return NodeProxy.DOCUMENT_NODE_GID; ! return (gid - doc.getLevelStartPoint(level)) / doc.getTreeLevelOrder(level) ! + doc.getLevelStartPoint(level - 1); } Index: DocumentImpl.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/dom/DocumentImpl.java,v retrieving revision 1.101 retrieving revision 1.102 diff -C2 -d -r1.101 -r1.102 *** DocumentImpl.java 15 Jan 2006 13:30:38 -0000 1.101 --- DocumentImpl.java 15 Jan 2006 20:55:43 -0000 1.102 *************** *** 103,112 **** private int maxDepth = 0; ! // arity of the tree at every level ! //TODO : make private ! protected int treeLevelOrder[] = new int[15]; //TODO : make private ! protected transient long treeLevelStartPoints[] = new long[15]; public DocumentImpl(DBBroker broker) { --- 103,111 ---- private int maxDepth = 0; ! // arity of the tree at every level ! private int treeLevelOrder[] = new int[15]; //TODO : make private ! private transient long treeLevelStartPoints[] = new long[15]; public DocumentImpl(DBBroker broker) { *************** *** 432,436 **** } ! public long getLevelStartPoint(int level) { //TODO : check *before* calling ? -pb if (level < 0) { --- 431,435 ---- } ! public long getLevelStartPoint(int level) { //TODO : check *before* calling ? -pb if (level < 0) { Index: StoredNode.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/dom/StoredNode.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** StoredNode.java 15 Jan 2006 09:40:29 -0000 1.12 --- StoredNode.java 15 Jan 2006 20:55:43 -0000 1.13 *************** *** 47,69 **** private long internalAddress = UNKNOWN_NODE_IMPL_ADDRESS; private DocumentImpl ownerDocument = null; ! private short nodeType = UNKNOWN_NODE_IMPL_NODE_TYPE; ! ! //Made this constructor protected since we need it from DocumentImpl -pb ! private StoredNode() { ! } ! public StoredNode(short nodeType) { //TOUNDERSTAND : what are the semantics of this 0 ? -pb this(nodeType, 0); } ! ! public StoredNode(long gid) { ! this(UNKNOWN_NODE_IMPL_NODE_TYPE, gid); ! } ! ! public StoredNode(short nodeType, long gid) { ! this.nodeType = nodeType; ! this.gid = gid; ! } /** --- 47,65 ---- private long internalAddress = UNKNOWN_NODE_IMPL_ADDRESS; private DocumentImpl ownerDocument = null; ! private short nodeType = UNKNOWN_NODE_IMPL_NODE_TYPE; ! public StoredNode(short nodeType) { //TOUNDERSTAND : what are the semantics of this 0 ? -pb this(nodeType, 0); } ! ! public StoredNode(long gid) { ! this(UNKNOWN_NODE_IMPL_NODE_TYPE, gid); ! } ! ! public StoredNode(short nodeType, long gid) { ! this.nodeType = nodeType; ! this.gid = gid; ! } /** *************** *** 76,80 **** this.gid = other.gid; this.internalAddress = other.internalAddress; ! this.ownerDocument = other.ownerDocument; } --- 72,76 ---- this.gid = other.gid; this.internalAddress = other.internalAddress; ! this.ownerDocument = other.ownerDocument; } *************** *** 88,92 **** this.internalAddress = UNKNOWN_NODE_IMPL_ADDRESS; this.ownerDocument = null; ! //this.nodeType is *immutable* } --- 84,88 ---- this.internalAddress = UNKNOWN_NODE_IMPL_ADDRESS; this.ownerDocument = null; ! //this.nodeType is *immutable* } *************** *** 244,252 **** */ public long getParentGID() { ! return NodeSetHelper.getParentId(ownerDocument, getGID()); } public long firstChildID(){ ! throw new DOMException(DOMException.INVALID_ACCESS_ERR, "firstChildID() not implemented in " + getClass().getName()); } --- 240,248 ---- */ public long getParentGID() { ! return NodeSetHelper.getParentId(ownerDocument, getGID()); } public long firstChildID(){ ! return NodeSetHelper.getFirstChildId(ownerDocument, getGID()); } *************** *** 266,293 **** } return ownerDocument.getNode(parentID); ! } ! ! protected StoredNode getLastNode(StoredNode node) { ! final NodeProxy p = new NodeProxy(ownerDocument, node.getGID(), node.getInternalAddress()); ! final Iterator iterator = getBroker().getNodeIterator(p); ! //TODO : hasNext() test ? -pb ! iterator.next(); ! return getLastNode(iterator, node); ! } ! ! protected StoredNode getLastNode(Iterator iterator, StoredNode node) { ! if (!node.hasChildNodes()) ! return node; ! final long firstChild = node.firstChildID(); ! final long lastChild = firstChild + node.getChildCount(); ! StoredNode next = null; ! for (long gid = firstChild; gid < lastChild; gid++) { ! next = (StoredNode) iterator.next(); ! next.setGID(gid); ! //Recursivity helps taversing... ! next = getLastNode(iterator, next); ! } ! return next; ! } /** --- 262,266 ---- } return ownerDocument.getNode(parentID); ! } /** *************** *** 295,316 **** */ public Node getPreviousSibling() { ! int level = ownerDocument.getTreeLevel(getGID()); if (level == 0) return ownerDocument.getPreviousSibling(this); ! //TODO : use XMLUtils routine ? -pb ! long parentID = ! (getGID() - ownerDocument.getLevelStartPoint(level)) ! / ownerDocument.getTreeLevelOrder(level) ! + ownerDocument.getLevelStartPoint(level - 1); ! //Filter out the temporary nodes wrapper element //TODO : use level == 1 ? if (parentID == NodeProxy.DOCUMENT_NODE_GID || parentID == NodeProxy.DOCUMENT_ELEMENT_GID && ((DocumentImpl)getOwnerDocument()).getCollection().isTempCollection()) ! return null; ! //TODO : use XMLUtils routine ? -pb ! long firstChildId = ! (parentID - ownerDocument.getLevelStartPoint(level - 1)) ! * ownerDocument.getTreeLevelOrder(level) ! + ownerDocument.getLevelStartPoint(level); if (getGID() > firstChildId) return ownerDocument.getNode(getGID() - 1); --- 268,284 ---- */ public Node getPreviousSibling() { ! int level = ownerDocument.getTreeLevel(getGID()); if (level == 0) return ownerDocument.getPreviousSibling(this); ! ! long parentID = NodeSetHelper.getParentId(ownerDocument, getGID(), level); ! ! //Filter out the temporary nodes wrapper element //TODO : use level == 1 ? if (parentID == NodeProxy.DOCUMENT_NODE_GID || parentID == NodeProxy.DOCUMENT_ELEMENT_GID && ((DocumentImpl)getOwnerDocument()).getCollection().isTempCollection()) ! return null; ! ! long firstChildId = NodeSetHelper.getFirstChildId(ownerDocument, parentID, level - 1); if (getGID() > firstChildId) return ownerDocument.getNode(getGID() - 1); *************** *** 325,344 **** if (level == 0) return ownerDocument.getFollowingSibling(this); ! //TODO : use XMLUtils routine ? -pb ! long parentID = ! (getGID() - ownerDocument.getLevelStartPoint(level)) ! / ownerDocument.getTreeLevelOrder(level) ! + ownerDocument.getLevelStartPoint(level - 1); //Filter out the temporary nodes wrapper element //TODO : use level == 1 ? if (parentID == NodeProxy.DOCUMENT_NODE_GID || ! parentID == NodeProxy.DOCUMENT_ELEMENT_GID && ((DocumentImpl)getOwnerDocument()).getCollection().isTempCollection()) return null; ! //TODO : use XMLUtils routine ? -pb ! long firstChildId = ! (parentID - ownerDocument.getLevelStartPoint(level - 1)) ! * ownerDocument.getTreeLevelOrder(level) ! + ownerDocument.getLevelStartPoint(level); if (getGID() < firstChildId + ownerDocument.getTreeLevelOrder(level) - 1) return ownerDocument.getNode(getGID() + 1); --- 293,309 ---- if (level == 0) return ownerDocument.getFollowingSibling(this); ! ! long parentID = NodeSetHelper.getParentId(ownerDocument, getGID(), level); ! //Filter out the temporary nodes wrapper element //TODO : use level == 1 ? if (parentID == NodeProxy.DOCUMENT_NODE_GID || ! (parentID == NodeProxy.DOCUMENT_ELEMENT_GID && ! ((DocumentImpl)getOwnerDocument()).getCollection().isTempCollection())) return null; ! long firstChildId = NodeSetHelper.getFirstChildId(ownerDocument, parentID, level - 1); ! ! //TODO : avoid using getTreeLevelOrder if (getGID() < firstChildId + ownerDocument.getTreeLevelOrder(level) - 1) return ownerDocument.getNode(getGID() + 1); *************** *** 346,349 **** --- 311,337 ---- } + protected StoredNode getLastNode(StoredNode node) { + final NodeProxy p = new NodeProxy(ownerDocument, node.getGID(), node.getInternalAddress()); + final Iterator iterator = getBroker().getNodeIterator(p); + //TODO : hasNext() test ? -pb + iterator.next(); + return getLastNode(iterator, node); + } + + protected StoredNode getLastNode(Iterator iterator, StoredNode node) { + if (!node.hasChildNodes()) + return node; + final long firstChild = node.firstChildID(); + final long lastChild = firstChild + node.getChildCount(); + StoredNode next = null; + for (long gid = firstChild; gid < lastChild; gid++) { + next = (StoredNode) iterator.next(); + next.setGID(gid); + //Recursivity helps taversing... + next = getLastNode(iterator, next); + } + return next; + } + public NodePath getPath() { NodePath path = new NodePath(); Index: XMLUtil.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/dom/XMLUtil.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** XMLUtil.java 15 Jan 2006 09:40:29 -0000 1.14 --- XMLUtil.java 15 Jan 2006 20:55:43 -0000 1.15 *************** *** 32,45 **** import javax.xml.transform.TransformerException; - import org.exist.util.Range; import org.exist.util.serializer.DOMSerializer; import org.exist.xquery.Constants; - import org.w3c.dom.Attr; - import org.w3c.dom.Document; import org.w3c.dom.DocumentFragment; - import org.w3c.dom.Element; - import org.w3c.dom.Node; - import org.w3c.dom.NodeList; - import org.w3c.dom.Text; /** --- 32,38 ---- |