You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by rw...@apache.org on 2005/10/19 07:07:24 UTC
svn commit: r326394 - in
/portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed:
om/folder/impl/FolderImpl.java om/page/impl/FragmentImpl.java
om/page/impl/PageImpl.java page/document/impl/NodeSetImpl.java
Author: rwatler
Date: Tue Oct 18 22:07:20 2005
New Revision: 326394
URL: http://svn.apache.org/viewcvs?rev=326394&view=rev
Log:
checkpoint DB PageManager om implementation
Modified:
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderImpl.java
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/FragmentImpl.java
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/PageImpl.java
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/page/document/impl/NodeSetImpl.java
Modified: portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderImpl.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderImpl.java?rev=326394&r1=326393&r2=326394&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderImpl.java (original)
+++ portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/FolderImpl.java Tue Oct 18 22:07:20 2005
@@ -15,6 +15,7 @@
*/
package org.apache.jetspeed.om.folder.impl;
+import java.util.ArrayList;
import java.util.List;
import org.apache.jetspeed.om.folder.Folder;
@@ -30,6 +31,7 @@
import org.apache.jetspeed.page.document.NodeException;
import org.apache.jetspeed.page.document.NodeSet;
import org.apache.jetspeed.page.document.impl.NodeImpl;
+import org.apache.jetspeed.page.document.impl.NodeSetImpl;
/**
* FolderImpl
@@ -42,6 +44,10 @@
private List folders;
private List pages;
+ private NodeSet allNodeSet;
+ private NodeSet foldersNodeSet;
+ private NodeSet pagesNodeSet;
+
/* (non-Javadoc)
* @see org.apache.jetspeed.om.folder.Folder#getDefaultPage(boolean)
*/
@@ -79,7 +85,18 @@
*/
public NodeSet getFolders() throws FolderNotFoundException, DocumentException
{
- return null; // NYI
+ if (foldersNodeSet != null)
+ {
+ if (folders != null)
+ {
+ foldersNodeSet = new NodeSetImpl(folders);
+ }
+ else
+ {
+ foldersNodeSet = new NodeSetImpl();
+ }
+ }
+ return foldersNodeSet;
}
/* (non-Javadoc)
@@ -87,7 +104,12 @@
*/
public Folder getFolder(String name) throws FolderNotFoundException, DocumentException
{
- return null; // NYI
+ Folder folder = (Folder)getFolders().get(name);
+ if (folder == null)
+ {
+ throw new FolderNotFoundException("Folder not found: " + name);
+ }
+ return folder;
}
/* (non-Javadoc)
@@ -95,7 +117,18 @@
*/
public NodeSet getPages() throws NodeException
{
- return null; // NYI
+ if (pagesNodeSet != null)
+ {
+ if (pages != null)
+ {
+ pagesNodeSet = new NodeSetImpl(pages);
+ }
+ else
+ {
+ pagesNodeSet = new NodeSetImpl();
+ }
+ }
+ return pagesNodeSet;
}
/* (non-Javadoc)
@@ -103,7 +136,12 @@
*/
public Page getPage(String name) throws PageNotFoundException, NodeException
{
- return null; // NYI
+ Page page = (Page)getPages().get(name);
+ if (page == null)
+ {
+ throw new PageNotFoundException("Page not found: " + name);
+ }
+ return page;
}
/* (non-Javadoc)
@@ -135,7 +173,27 @@
*/
public NodeSet getAll() throws FolderNotFoundException, DocumentException
{
- return null; // NYI
+ if (allNodeSet == null)
+ {
+ List all = new ArrayList();
+ if (folders != null)
+ {
+ all.addAll(folders);
+ }
+ if (pages != null)
+ {
+ all.addAll(pages);
+ }
+ if (!all.isEmpty())
+ {
+ allNodeSet = new NodeSetImpl(all);
+ }
+ else
+ {
+ allNodeSet = new NodeSetImpl();
+ }
+ }
+ return allNodeSet;
}
/* (non-Javadoc)
Modified: portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/FragmentImpl.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/FragmentImpl.java?rev=326394&r1=326393&r2=326394&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/FragmentImpl.java (original)
+++ portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/FragmentImpl.java Tue Oct 18 22:07:20 2005
@@ -15,6 +15,7 @@
*/
package org.apache.jetspeed.om.page.impl;
+import java.util.ArrayList;
import java.util.List;
import org.apache.jetspeed.om.page.Fragment;
@@ -110,7 +111,12 @@
*/
public List getFragments()
{
- return null; // NYI
+ // fragments collection must be defined
+ if (fragments == null)
+ {
+ fragments = new ArrayList();
+ }
+ return fragments;
}
/* (non-Javadoc)
Modified: portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/PageImpl.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/PageImpl.java?rev=326394&r1=326393&r2=326394&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/PageImpl.java (original)
+++ portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/om/page/impl/PageImpl.java Tue Oct 18 22:07:20 2005
@@ -15,7 +15,10 @@
*/
package org.apache.jetspeed.om.page.impl;
+import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
+import java.util.Stack;
import org.apache.jetspeed.om.page.Defaults;
import org.apache.jetspeed.om.page.Fragment;
@@ -79,7 +82,12 @@
*/
public Fragment getRootFragment()
{
- return null; //NYI
+ // get singleton fragment
+ if ((fragments != null) && !fragments.isEmpty())
+ {
+ return (Fragment)fragments.get(0);
+ }
+ return null;
}
/* (non-Javadoc)
@@ -87,7 +95,26 @@
*/
public void setRootFragment(Fragment fragment)
{
- // NYI
+ // delete existing fragments if required
+ if ((fragments != null) && !fragments.isEmpty())
+ {
+ Iterator removeIter = fragments.iterator();
+ while (removeIter.hasNext())
+ {
+ removeIter.next();
+ removeIter.remove();
+ }
+ }
+
+ // add new singleton fragment
+ if (fragment != null)
+ {
+ if (fragments == null)
+ {
+ fragments = new ArrayList(1);
+ }
+ fragments.add(fragment);
+ }
}
/* (non-Javadoc)
@@ -95,7 +122,34 @@
*/
public Fragment getFragmentById(String id)
{
- return null; // NYI
+ // search for fragment recursively from
+ // root singleton fragment using a local stack
+ Stack stack = new Stack();
+ Fragment fragment = getRootFragment();
+ while ((fragment != null) && !fragment.getId().equals(id))
+ {
+ // push any fragment fragments onto the local stack
+ List fragments = fragment.getFragments();
+ if (!fragments.isEmpty())
+ {
+ Iterator pushIter = fragments.iterator();
+ while (pushIter.hasNext())
+ {
+ stack.push(pushIter.next());
+ }
+ }
+
+ // pop next fragment from local stack if available
+ if (stack.size() > 0)
+ {
+ fragment = (Fragment) stack.pop();
+ }
+ else
+ {
+ fragment = null;
+ }
+ }
+ return fragment;
}
/* (non-Javadoc)
Modified: portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/page/document/impl/NodeSetImpl.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/page/document/impl/NodeSetImpl.java?rev=326394&r1=326393&r2=326394&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/page/document/impl/NodeSetImpl.java (original)
+++ portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/page/document/impl/NodeSetImpl.java Tue Oct 18 22:07:20 2005
@@ -15,7 +15,11 @@
*/
package org.apache.jetspeed.page.document.impl;
+import java.util.ArrayList;
+import java.util.HashMap;
import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
import org.apache.jetspeed.page.document.Node;
import org.apache.jetspeed.page.document.NodeSet;
@@ -28,12 +32,43 @@
*/
public class NodeSetImpl implements NodeSet
{
+ private List nodes;
+ private Map nodesByName;
+
+ public NodeSetImpl()
+ {
+ }
+ public NodeSetImpl(List nodes)
+ {
+ this.nodes = new ArrayList(nodes.size());
+ this.nodesByName = new HashMap((nodes.size() / 2) + 1);
+ Iterator addIter = nodes.iterator();
+ while (addIter.hasNext())
+ {
+ Node node = (Node)addIter.next();
+ this.nodes.add(node);
+ if (!this.nodesByName.containsKey(node.getName()))
+ {
+ this.nodesByName.put(node.getName(), node);
+ }
+ }
+ }
+
/* (non-Javadoc)
* @see org.apache.jetspeed.page.document.NodeSet#add(org.apache.jetspeed.page.document.Node)
*/
public void add(Node node)
{
- // NYI
+ if (nodes != null)
+ {
+ nodes = new ArrayList(8);
+ nodesByName = new HashMap(5);
+ }
+ nodes.add(node);
+ if (!nodesByName.containsKey(node.getName()))
+ {
+ nodesByName.put(node.getName(), node);
+ }
}
/* (non-Javadoc)
@@ -41,7 +76,11 @@
*/
public Node get(String name)
{
- return null; // NYI
+ if (nodesByName != null)
+ {
+ return (Node)nodesByName.get(name);
+ }
+ return null;
}
/* (non-Javadoc)
@@ -49,7 +88,11 @@
*/
public Iterator iterator()
{
- return null; // NYI
+ if (nodes != null)
+ {
+ return nodes.iterator();
+ }
+ return null;
}
/* (non-Javadoc)
@@ -81,7 +124,11 @@
*/
public int size()
{
- return -1; // NYI
+ if (nodes != null)
+ {
+ return nodes.size();
+ }
+ return 0;
}
/* (non-Javadoc)
@@ -89,7 +136,11 @@
*/
public boolean contains(Node node)
{
- return false; // NYI
+ if (nodes != null)
+ {
+ return nodes.contains(node);
+ }
+ return false;
}
/* (non-Javadoc)
@@ -97,6 +148,10 @@
*/
public boolean isEmpty()
{
- return true; // NYI
+ if (nodes != null)
+ {
+ return nodes.isEmpty();
+ }
+ return true;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org