lenya/src/java/org/apache/lenya/cms/publication SiteTree.java,1.2,1.3 DefaultSiteTree.java,1.3,1.4

Christian Egli <[email protected]> Tue, 13 May 2003 14:28:55 +0200
Newsgroups gmane.comp.cms.wyona.cvs
Message-ID <[email protected]>
Update of /repository/lenya/src/java/org/apache/lenya/cms/publication
In directory erbium:/tmp/cvs-serv4874/src/java/org/apache/lenya/cms/publication

Modified Files:
	SiteTree.java DefaultSiteTree.java 
Log Message:
SiteTree interface now uses the SiteTreeNode now instead of the plain
w3c.dom.Node (in the methods getNode and addNode).


Index: SiteTree.java
===================================================================
RCS file: /repository/lenya/src/java/org/apache/lenya/cms/publication/SiteTree.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** SiteTree.java	12 May 2003 12:57:19 -0000	1.2
--- SiteTree.java	13 May 2003 12:28:53 -0000	1.3
***************
*** 46,62 ****
  import java.util.Map;
  
- import org.w3c.dom.Node;
- 
  public interface SiteTree {
  
!     public void addNode(String parentid, String id, Label[] labels);
! 
!     public void addNode(String parentid, String id, Label[] labels,
! 			String href, String suffix, boolean link);
! 
!     public void addNode(Node node);
! 
!     public void deleteNode(String id);
! 
!     public Node getNode(String documentId);
  }
--- 46,60 ----
  import java.util.Map;
  
  public interface SiteTree {
  
!     void addNode(String parentid, String id, Label[] labels);
!     
!     void addNode(String parentid, String id, Label[] labels,
! 		 String href, String suffix, boolean link);
!     
!     void addNode(SiteTreeNode node);
!     
!     void deleteNode(String id);
!     
!     SiteTreeNode getNode(String documentId);
  }

Index: DefaultSiteTree.java
===================================================================
RCS file: /repository/lenya/src/java/org/apache/lenya/cms/publication/DefaultSiteTree.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** DefaultSiteTree.java	12 May 2003 12:57:19 -0000	1.3
--- DefaultSiteTree.java	13 May 2003 12:28:53 -0000	1.4
***************
*** 78,83 ****
      
      public static final String NAMESPACE_URI = "http://www.lenya.org/2003/sitetree";
-     public static final String NODE_NAME = "node";
-     public static final String LABEL_NAME = "label";
  
      private Document document = null;
--- 78,81 ----
***************
*** 156,176 ****
  
          // Add node
! 	Element child = helper.createElement(NODE_NAME);
! 	child.setAttribute("id", id);
   	if (href != null && href.length() > 0) {
!  	    child.setAttribute("href", href);
   	}
  	if (suffix != null && suffix.length() > 0) {
! 	    child.setAttribute("suffix", suffix);
  	}
  	if (link == true) {
! 	    child.setAttribute("link", "true");
  	}
  	for (int i = 0; i < labels.length; i++) {
  	    String labelName = labels[i].getLabel();
! 	    Element label = helper.createElement(LABEL_NAME, labelName);
  	    String labelLanguage = labels[i].getLanguage();
  	    if (labelLanguage != null && labelLanguage.length() > 0) {
! 		label.setAttribute("xml:lang", labelLanguage);
  	    }
  	    child.appendChild(label);
--- 154,174 ----
  
          // Add node
! 	Element child = helper.createElement(SiteTreeNodeImpl.NODE_NAME);
! 	child.setAttribute(SiteTreeNodeImpl.ID_ATTRIBUTE_NAME, id);
   	if (href != null && href.length() > 0) {
!  	    child.setAttribute(SiteTreeNodeImpl.HREF_ATTRIBUTE_NAME, href);
   	}
  	if (suffix != null && suffix.length() > 0) {
! 	    child.setAttribute(SiteTreeNodeImpl.SUFFIX_ATTRIBUTE_NAME, suffix);
  	}
  	if (link == true) {
! 	    child.setAttribute(SiteTreeNodeImpl.LINK_ATTRIBUTE_NAME, "true");
  	}
  	for (int i = 0; i < labels.length; i++) {
  	    String labelName = labels[i].getLabel();
! 	    Element label = helper.createElement(SiteTreeNodeImpl.LABEL_NAME, labelName);
  	    String labelLanguage = labels[i].getLanguage();
  	    if (labelLanguage != null && labelLanguage.length() > 0) {
! 		label.setAttribute(SiteTreeNodeImpl.LANGUAGE_ATTRIBUTE_NAME, labelLanguage);
  	    }
  	    child.appendChild(label);
***************
*** 181,224 ****
      }
  
!     public void addNode(Node node) {
!         // Get parent element
! 	String parentId = "FIXME:"; // node.getParentId();
!         StringTokenizer st = new StringTokenizer(parentId, "/");
! 	ArrayList ids = new ArrayList();
! 	while (st.hasMoreTokens()) {
! 	    ids.add(st.nextToken());
! 	}
! 
! 	Element root = document.getDocumentElement();
! 	
! 	Node parentNode = findNode(root, ids);
! 
!         if (parentNode == null) {
!             log.error("No nodes: " + parentId + ". No child added");
! 	    
!             return;
!         }
! 	
! 	log.debug("PARENT ELEMENT: " + parentNode);
! 	
! //         // Check if child already exists
! //         String newChildXPath = xpath_string + "/" + "node";
! //         log.debug("CHECK: " + newChildXPath);
! 	
! //         if (doc.selectSingleNode(newChildXPath + "[@id='" + id + "']") != null) {
! //             log.error("Exception: XPath exists: " + newChildXPath + "[@id='" + id + "']");
! //             log.error("No child added");
! 	    
! //             return;
! //         }
! 
!         // Add node
! 	parentNode.appendChild(node.cloneNode(true));
! 	log.debug("Tree has been modified: " + root);
      }
  
      public void deleteNode(String id) {}
  
!     public Node getNode(String documentId) {
          StringTokenizer st = new StringTokenizer(documentId, "/");
  	ArrayList ids = new ArrayList();
--- 179,190 ----
      }
  
!     public void addNode(SiteTreeNode node) {
! 	this.addNode(node.getParentId(), node.getId(), node.getLabels(),
! 		     node.getHref(), node.getSuffix(), node.hasLink());
      }
  
      public void deleteNode(String id) {}
  
!     public SiteTreeNode getNode(String documentId) {
          StringTokenizer st = new StringTokenizer(documentId, "/");
  	ArrayList ids = new ArrayList();
***************
*** 227,233 ****
  	}
  
! 	Element root = document.getDocumentElement();
! 	
! 	return findNode(root, ids);
      }
  
--- 193,201 ----
  	}
  
! 	Node node = findNode(document.getDocumentElement(), ids);
! 	if (node == null) {
! 	    return null;
! 	}
! 	return new SiteTreeNodeImpl(node);
      }