[Yanel-commits] rev 33919 - public/yanel/trunk/src/impl/java/org/wyona/yanel/impl/navigation

michi at wyona.com michi at wyona.com
Mon Mar 24 00:40:26 CET 2008


Author: michi
Date: 2008-03-24 00:40:26 +0100 (Mon, 24 Mar 2008)
New Revision: 33919

Modified:
   public/yanel/trunk/src/impl/java/org/wyona/yanel/impl/navigation/NodeDOMImpl.java
Log:
various methods implemented, e.g. getCollection

Modified: public/yanel/trunk/src/impl/java/org/wyona/yanel/impl/navigation/NodeDOMImpl.java
===================================================================
--- public/yanel/trunk/src/impl/java/org/wyona/yanel/impl/navigation/NodeDOMImpl.java	2008-03-23 23:39:46 UTC (rev 33918)
+++ public/yanel/trunk/src/impl/java/org/wyona/yanel/impl/navigation/NodeDOMImpl.java	2008-03-23 23:40:26 UTC (rev 33919)
@@ -20,6 +20,10 @@
 
 import org.apache.log4j.Logger;
 
+import org.w3c.dom.Element;
+
+import java.util.Vector;
+
 /**
  * Also see org.w3c.dom.Node
  */
@@ -75,8 +79,16 @@
      *
      */
     public boolean isResource() {
-        log.error("TODO: Implementation not finished yet!");
-        return false;
+        org.w3c.dom.NodeList nl = element.getElementsByTagName("node");
+        if (nl == null) {
+            return true;
+        } else {
+            if (nl.getLength() > 0) {
+                return false;
+            } else {
+                return true;
+            }
+        }
     }
 
     /**
@@ -84,8 +96,12 @@
      */
     public boolean isCollection() {
         org.w3c.dom.NodeList nl = element.getElementsByTagName("node");
-        if (nl.getLength() > 0) {
-            return true;
+        if (nl != null) {
+            if (nl.getLength() > 0) {
+                return true;
+            } else {
+                return false;
+            }
         } else {
             return false;
         }
@@ -95,20 +111,32 @@
      *
      */
     public Node[] getChildren() {
-        org.w3c.dom.NodeList nl = element.getElementsByTagName("node");
-        NodeDOMImpl[] nodes = new NodeDOMImpl[nl.getLength()];
-        for (int i = 0; i < nodes.length; i++) {
-            nodes[i] = new NodeDOMImpl((org.w3c.dom.Element) nl.item(i));
+        org.w3c.dom.NodeList nl = element.getChildNodes();
+        Vector nodes = new Vector();
+        //log.debug("Children of: " + getName());
+        for (int i = 0; i < nl.getLength(); i++) {
+            if (nl.item(i).getNodeType() == org.w3c.dom.Node.ELEMENT_NODE && nl.item(i).getNodeName().equals("node")) {
+                nodes.add(nl.item(i));
+            }
         }
-        return nodes;
+
+        NodeDOMImpl[] children = new NodeDOMImpl[nodes.size()];
+        for (int i = 0; i < children.length; i++) {
+            children[i] = new NodeDOMImpl((Element) nodes.elementAt(i));
+            //log.debug("Child: " + children[i].getName());
+        }
+        return children;
     }
 
     /**
      *
      */
     public Node getParent() {
-        log.error("TODO: Implementation not finished yet!");
-        return null;
+        if (!element.getNodeName().equals("sitetree")) {
+            return new NodeDOMImpl((org.w3c.dom.Element) element.getParentNode());
+        } else {
+            return null;
+        }
     }
 
     /**
@@ -131,8 +159,15 @@
      *
      */
     public String getPath() {
-        log.error("TODO: Implementation not finished yet!");
+        log.error("TODO: Not implemented yet! Name: " + getName());
         return null;
+/*
+        if (getParent() != null) {
+            return getParent().getPath() + "/" + getName();
+        } else {
+            return "/";
+        }
+*/
     }
 
     /**
@@ -141,6 +176,7 @@
     public String getName() {
         if (element.getNodeName().equals("sitetree")) {
             log.warn("Sitetree node has no name");
+            return "/";
         }
         return element.getAttribute("name");
     }



More information about the Yanel-commits mailing list