Author: veithen
Date: Fri Mar 13 22:49:33 2009
New Revision: 753464

URL: http://svn.apache.org/viewvc?rev=753464&view=rev
Log:
Resurrected org.apache.axiom.om.impl.llom.OMNavigator and 
org.apache.axiom.om.impl.dom.DOMNavigator as subclasses of 
org.apache.axiom.om.impl.OMNavigator to avoid breaking existing code.

Added:
    
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DOMNavigator.java
      - copied, changed from r751429, 
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DOMNavigator.java
    
webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMNavigator.java
      - copied, changed from r751429, 
webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMNavigator.java

Copied: 
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DOMNavigator.java
 (from r751429, 
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DOMNavigator.java)
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DOMNavigator.java?p2=webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DOMNavigator.java&p1=webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DOMNavigator.java&r1=751429&r2=753464&rev=753464&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DOMNavigator.java
 (original)
+++ 
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DOMNavigator.java
 Fri Mar 13 22:49:33 2009
@@ -19,42 +19,13 @@
 
 package org.apache.axiom.om.impl.dom;
 
-import org.apache.axiom.om.OMContainer;
-import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMNode;
+import org.apache.axiom.om.impl.OMNavigator;
 
 /**
- * This is exactly the same as org.apache.axiom.om.impl.om.OMNavigator, only 
the llom specifics are
- * changed to dom. Refer to the testClass to find out how to use features like 
isNavigable,
- * isComplete and step.
+ * Empty subclass of {...@link OMNavigator} to keep compatibility with 
existing code.
  */
-public class DOMNavigator {
-    /** Field node */
-    protected OMNode node;
-
-    /** Field visited */
-    private boolean visited;
-
-    /** Field next */
-    private OMNode next;
-
-    // root is the starting element. Once the navigator comes back to the
-    // root, the traversal is terminated
-
-    /** Field root */
-    private OMNode root;
-
-    /** Field backtracked */
-    private boolean backtracked;
-
-    // flags that tell the status of the navigator
-
-    /** Field end */
-    private boolean end = false;
-
-    /** Field start */
-    private boolean start = true;
-
+public class DOMNavigator extends OMNavigator {
     /** Constructor OMNavigator. */
     public DOMNavigator() {
     }
@@ -65,113 +36,6 @@
      * @param node
      */
     public DOMNavigator(OMNode node) {
-        init(node);
-    }
-
-    /**
-     * Method init.
-     *
-     * @param node
-     */
-    public void init(OMNode node) {
-        next = node;
-        root = node;
-        backtracked = false;
-    }
-
-    /**
-     * Gets the next node.
-     *
-     * @return Returns OMNode in the sequence of preorder traversal. Note 
however that an element
-     *         node is treated slightly differently. Once the element is 
passed it returns the same
-     *         element in the next encounter as well.
-     */
-    public OMNode next() {
-        if (next == null) {
-            return null;
-        }
-        node = next;
-        visited = backtracked;
-        backtracked = false;
-        updateNextNode();
-
-        // set the starting and ending flags
-        if (root.equals(node)) {
-            if (!start) {
-                end = true;
-            } else {
-                start = false;
-            }
-        }
-        return node;
-    }
-
-    /** Private method to encapsulate the searching logic */
-    private void updateNextNode() {
-        if ((next instanceof OMElement) && !visited) {
-            ElementImpl e = (ElementImpl) next;
-            if (e.firstChild != null) {
-                next = e.firstChild;
-            } else if (e.isComplete()) {
-                backtracked = true;
-            } else {
-                next = null;
-            }
-        } else {
-            OMNode nextSibling = ((ChildNode) next).nextSibling;
-            OMContainer parent = next.getParent();
-            if (nextSibling != null) {
-                next = nextSibling;
-            } else if ((parent != null) && parent.isComplete()) {
-                next = (NodeImpl) parent;
-                backtracked = true;
-            } else {
-                next = null;
-            }
-        }
-    }
-
-    /**
-     * Method visited.
-     *
-     * @return Returns boolean.
-     */
-    public boolean visited() {
-        return visited;
-    }
-
-    /**
-     * This is a very special method. This allows the navigator to step once 
it has reached the
-     * existing OM. At this point the isNavigable method will return false but 
the isComplete method
-     * may return false which means that the navigating the given element is 
not complete but the
-     * navigator cannot proceed.
-     */
-    public void step() {
-        if (!end) {
-            next = node;
-            updateNextNode();
-        }
-    }
-
-    /**
-     * Returns the navigable status.
-     *
-     * @return Returns boolean.
-     */
-    public boolean isNavigable() {
-        if (end) {
-            return false;
-        } else {
-            return !(next == null);
-        }
-    }
-
-    /**
-     * Returns the completed status.
-     *
-     * @return Returns boolean.
-     */
-    public boolean isCompleted() {
-        return end;
+        super(node);
     }
 }

Copied: 
webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMNavigator.java
 (from r751429, 
webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMNavigator.java)
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMNavigator.java?p2=webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMNavigator.java&p1=webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMNavigator.java&r1=751429&r2=753464&rev=753464&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMNavigator.java
 (original)
+++ 
webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMNavigator.java
 Fri Mar 13 22:49:33 2009
@@ -19,43 +19,13 @@
 
 package org.apache.axiom.om.impl.llom;
 
-import org.apache.axiom.om.OMContainer;
-import org.apache.axiom.om.OMDocument;
-import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMNode;
-import org.apache.axiom.om.OMSourcedElement;
 
 /**
- * Refer to the test, org.apache.axiom.om.OMNavigatorTest, to find out how to 
use features like
- * isNavigable, isComplete and step.
+ * Empty subclass of {...@link org.apache.axiom.om.impl.OMNavigator} to keep 
compatibility
+ * with existing code.
  */
-public class OMNavigator {
-    /** Field node */
-    protected OMNode node;
-
-    /** Field visited */
-    private boolean visited;
-
-    /** Field next */
-    private OMNode next;
-
-    // root is the starting element. Once the navigator comes back to the
-    // root, the traversal is terminated
-
-    /** Field root */
-    private OMNode root;
-
-    /** Field backtracked */
-    private boolean backtracked;
-
-    // flags that tell the status of the navigator
-
-    /** Field end */
-    private boolean end = false;
-
-    /** Field start */
-    private boolean start = true;
-
+public class OMNavigator extends org.apache.axiom.om.impl.OMNavigator {
     /** Constructor OMNavigator. */
     public OMNavigator() {
     }
@@ -66,149 +36,6 @@
      * @param node
      */
     public OMNavigator(OMNode node) {
-        init(node);
-    }
-
-    /**
-     * Method init.
-     *
-     * @param node
-     */
-    public void init(OMNode node) {
-        next = node;
-        root = node;
-        backtracked = false;
-    }
-
-    /**
-     * Gets the next node.
-     *
-     * @return Returns OMnode in the sequence of preorder traversal. Note 
however that an element
-     *         node is treated slightly differently. Once the element is 
passed it returns the same
-     *         element in the next encounter as well.
-     */
-    public OMNode next() {
-        if (next == null) {
-            return null;
-        }
-        node = next;
-        visited = backtracked;
-        backtracked = false;
-        updateNextNode();
-
-        // set the starting and ending flags
-        if (root.equals(node)) {
-            if (!start) {
-                end = true;
-            } else {
-                start = false;
-            }
-        }
-        return node;
-    }
-
-    /** Private method to encapsulate the searching logic. */
-    private void updateNextNode() {
-
-        if ((next instanceof OMElement) && !visited) {
-            OMNode firstChild = _getFirstChild((OMElement) next);
-            if (firstChild != null) {
-                next = firstChild;
-            } else if (next.isComplete()) {
-                backtracked = true;
-            } else {
-                next = null;
-            }
-        } else {
-            OMContainer parent = next.getParent();
-            OMNode nextSibling = getNextSibling(next);
-            if (nextSibling != null) {
-                next = nextSibling;
-            } else if ((parent != null) && parent.isComplete() && !(parent 
instanceof OMDocument)) {
-                next = (OMNodeImpl) parent;
-                backtracked = true;
-            } else {
-                next = null;
-            }
-        }
-    }
-
-    /**
-     * @param node
-     * @return first child or null
-     */
-    private OMNode _getFirstChild(OMElement node) {
-        if (node instanceof OMSourcedElement) {
-            OMNode first = node.getFirstOMChild();
-            OMNode sibling = first;
-            while (sibling != null) {
-                sibling = sibling.getNextOMSibling();
-            }
-            return first;
-        } else {
-            // Field access is used to prevent advancing the parser.
-            // Some tests fail if the following is used
-            // return node.getFirstOMChild()
-            return ((OMElementImpl) node).firstChild;
-        }
-    }
-
-    /**
-     * @param node
-     * @return next sibling or null
-     */
-    private OMNode getNextSibling(OMNode node) {
-        if (node instanceof OMSourcedElement) {
-            return node.getNextOMSibling();
-        } else {
-            // Field access is used to prevent advancing the parser.
-            // Some tests fail if the following is used
-            // return node.getNextOMSibling()
-            return ((OMNodeImpl) node).nextSibling;
-        }
-    }
-
-    /**
-     * Method visited.
-     *
-     * @return Returns boolean.
-     */
-    public boolean visited() {
-        return visited;
-    }
-
-    /**
-     * This is a very special method. This allows the navigator to step once 
it has reached the
-     * existing OM. At this point the isNavigable method will return false but 
the isComplete method
-     * may return false which means that the navigating the given element is 
not complete and the
-     * navigator cannot proceed.
-     */
-    public void step() {
-        if (!end) {
-            next = node;
-            updateNextNode();
-        }
-    }
-
-    /**
-     * Returns the navigable status.
-     *
-     * @return Returns boolean.
-     */
-    public boolean isNavigable() {
-        if (end) {
-            return false;
-        } else {
-            return !(next == null);
-        }
-    }
-
-    /**
-     * Returns the completed status.
-     *
-     * @return Returns boolean.
-     */
-    public boolean isCompleted() {
-        return end;
+        super(node);
     }
 }


Reply via email to