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 08:21:56 UTC

svn commit: r326411 - in /portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed: om/folder/impl/FolderImpl.java page/impl/DatabasePageManager.java

Author: rwatler
Date: Tue Oct 18 23:21:53 2005
New Revision: 326411

URL: http://svn.apache.org/viewcvs?rev=326411&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/page/impl/DatabasePageManager.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=326411&r1=326410&r2=326411&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 23:21:53 2005
@@ -24,6 +24,7 @@
 import org.apache.jetspeed.om.page.Link;
 import org.apache.jetspeed.om.page.Page;
 import org.apache.jetspeed.om.page.PageSecurity;
+import org.apache.jetspeed.om.page.impl.PageImpl;
 import org.apache.jetspeed.page.PageNotFoundException;
 import org.apache.jetspeed.page.document.DocumentException;
 import org.apache.jetspeed.page.document.DocumentNotFoundException;
@@ -47,6 +48,88 @@
     private NodeSet allNodeSet;
     private NodeSet foldersNodeSet;
     private NodeSet pagesNodeSet;
+
+    /**
+     * addFolder
+     *
+     * Adds a folder to the persistent collection and resets cached node sets.
+     *
+     * @param folder new folder impl
+     */
+    public void addFolder(FolderImpl newFolder)
+    {
+        // add to folders collection
+        if (folders == null)
+        {
+            folders = new ArrayList();
+        }
+        folders.add(newFolder);
+
+        // reset cached node sets
+        allNodeSet = null;
+        foldersNodeSet = null;
+    }
+    
+    /**
+     * removeFolder
+     *
+     * Removes a folder to the persistent collection and resets cached node sets.
+     *
+     * @param folder remove folder impl
+     */
+    public void removeFolder(FolderImpl removeFolder)
+    {
+        // remove from folders collection
+        if (folders != null)
+        {
+            folders.remove(removeFolder);
+        }
+
+        // reset cached node sets
+        allNodeSet = null;
+        foldersNodeSet = null;
+    }
+
+    /**
+     * addPage
+     *
+     * Adds a page to the persistent collection and resets cached node sets.
+     *
+     * @param page new page impl
+     */
+    public void addPage(PageImpl newPage)
+    {
+        // add to pages collection
+        if (pages == null)
+        {
+            pages = new ArrayList();
+        }
+        pages.add(newPage);
+
+        // reset cached node sets
+        allNodeSet = null;
+        pagesNodeSet = null;
+    }
+    
+    /**
+     * removePage
+     *
+     * Removes a page to the persistent collection and resets cached node sets.
+     *
+     * @param page remove page impl
+     */
+    public void removePage(PageImpl removePage)
+    {
+        // remove from pages collection
+        if (pages != null)
+        {
+            pages.remove(removePage);
+        }
+
+        // reset cached node sets
+        allNodeSet = null;
+        pagesNodeSet = null;
+    }
 
     /* (non-Javadoc)
      * @see org.apache.jetspeed.om.folder.Folder#getDefaultPage(boolean)

Modified: portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/page/impl/DatabasePageManager.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/page/impl/DatabasePageManager.java?rev=326411&r1=326410&r2=326411&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/page/impl/DatabasePageManager.java (original)
+++ portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/page/impl/DatabasePageManager.java Tue Oct 18 23:21:53 2005
@@ -265,7 +265,39 @@
             PageNotUpdatedException
     {
         System.out.println("storing page " + page.getPath());
-        getPersistenceBrokerTemplate().store(page);
+
+        // look up and set parent folder if necessary
+        if (page.getParent() == null)
+        {
+            // access folder by path
+            String pagePath = page.getPath();
+            String parentPath = pagePath.substring(0, pagePath.lastIndexOf(Folder.PATH_SEPARATOR));
+            if (parentPath.length() == 0)
+            {
+                parentPath = Folder.PATH_SEPARATOR;
+            }
+            FolderImpl parent = null;
+            try
+            {
+                parent = (FolderImpl)getFolder(parentPath);
+            }
+            catch (FolderNotFoundException fnfe)
+            {
+                throw new PageNotUpdatedException("Missing parent folder: " + parentPath);
+            }
+
+            // update page and parent folder
+            parent.addPage((PageImpl)page);
+            page.setParent(parent);
+            getPersistenceBrokerTemplate().store(parent);
+            getPersistenceBrokerTemplate().store(page);
+        }
+        else
+        {
+            // update page
+            getPersistenceBrokerTemplate().store(page);
+        }
+
         System.out.println("**** stored page " + page.getPath());        
     }
 
@@ -276,7 +308,22 @@
             PageNotRemovedException
     {
         System.out.println("deleting page " + page.getPath());
-        getPersistenceBrokerTemplate().delete(page);
+
+        // look up and update parent folder if necessary
+        if (page.getParent() != null)
+        {
+            // delete page and update parent folder
+            FolderImpl parent = (FolderImpl)page.getParent();
+            parent.removePage((PageImpl)page);
+            getPersistenceBrokerTemplate().store(parent);
+            getPersistenceBrokerTemplate().delete(page);
+        }
+        else
+        {
+            // delete page
+            getPersistenceBrokerTemplate().delete(page);
+        }
+
         System.out.println("**** deleted page " + page.getPath());        
     }
 
@@ -287,7 +334,39 @@
             FolderNotUpdatedException
     {
         System.out.println("storing folder " + folder.getPath());
-        getPersistenceBrokerTemplate().store(folder);
+
+        // look up and set parent folder if necessary
+        if ((folder.getParent() == null) && !folder.getPath().equals(Folder.PATH_SEPARATOR))
+        {
+            // access folder by path
+            String folderPath = folder.getPath();
+            String parentPath = folderPath.substring(0, folderPath.lastIndexOf(Folder.PATH_SEPARATOR));
+            if (parentPath.length() == 0)
+            {
+                parentPath = Folder.PATH_SEPARATOR;
+            }
+            FolderImpl parent = null;
+            try
+            {
+                parent = (FolderImpl)getFolder(parentPath);
+            }
+            catch (FolderNotFoundException fnfe)
+            {
+                throw new FolderNotUpdatedException("Missing parent folder: " + parentPath);
+            }
+
+            // update folder and parent folder
+            parent.addFolder((FolderImpl)folder);
+            folder.setParent(parent);
+            getPersistenceBrokerTemplate().store(parent);
+            getPersistenceBrokerTemplate().store(folder);
+        }
+        else
+        {
+            // update folder
+            getPersistenceBrokerTemplate().store(folder);
+        }
+
         System.out.println("**** stored folder " + folder.getPath());        
     }
 
@@ -298,7 +377,22 @@
             FolderNotRemovedException
     {
         System.out.println("deleting folder " + folder.getPath());
-        getPersistenceBrokerTemplate().delete(folder);
+
+        // look up and update parent folder if necessary
+        if (folder.getParent() != null)
+        {
+            // delete folder and update parent folder
+            FolderImpl parent = (FolderImpl)folder.getParent();
+            parent.removeFolder((FolderImpl)folder);
+            getPersistenceBrokerTemplate().store(parent);
+            getPersistenceBrokerTemplate().delete(folder);
+        }
+        else
+        {
+            // delete folder
+            getPersistenceBrokerTemplate().delete(folder);
+        }
+
         System.out.println("**** deleted folder " + folder.getPath());        
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org