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 2006/03/24 06:03:44 UTC
svn commit: r388374 [2/2] - in /portals/jetspeed-2/trunk:
components/page-manager/src/java/JETSPEED-INF/ojb/
components/page-manager/src/java/org/apache/jetspeed/om/folder/impl/
components/page-manager/src/java/org/apache/jetspeed/om/folder/psml/ compo...
Modified: portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/page/psml/CastorXmlPageManager.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/page/psml/CastorXmlPageManager.java?rev=388374&r1=388373&r2=388374&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/page/psml/CastorXmlPageManager.java (original)
+++ portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/page/psml/CastorXmlPageManager.java Thu Mar 23 21:03:42 2006
@@ -18,6 +18,7 @@
import java.io.FileNotFoundException;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -55,8 +56,10 @@
import org.apache.jetspeed.om.preference.FragmentPreference;
import org.apache.jetspeed.om.preference.impl.FragmentPreferenceImpl;
import org.apache.jetspeed.page.AbstractPageManager;
+import org.apache.jetspeed.page.FolderNotUpdatedException;
import org.apache.jetspeed.page.PageManager;
import org.apache.jetspeed.page.PageNotFoundException;
+import org.apache.jetspeed.page.document.DocumentException;
import org.apache.jetspeed.page.document.DocumentHandlerFactory;
import org.apache.jetspeed.page.document.DocumentNotFoundException;
import org.apache.jetspeed.page.document.FailedToDeleteDocumentException;
@@ -64,6 +67,7 @@
import org.apache.jetspeed.page.document.FolderHandler;
import org.apache.jetspeed.page.document.Node;
import org.apache.jetspeed.page.document.NodeException;
+import org.apache.jetspeed.page.document.NodeSet;
import org.apache.jetspeed.page.document.UnsupportedDocumentTypeException;
import org.apache.jetspeed.page.document.psml.NodeSetImpl;
@@ -220,11 +224,22 @@
// update page
handlerFactory.getDocumentHandler(Page.DOCUMENT_TYPE).updateDocument(page);
- // update folder
- if ((parentFolder != null) && !parentFolder.getAllNodes().contains(page))
+ // update parent folder
+ if (parentFolder != null)
{
- parentFolder.getAllNodes().add(page);
- newPage = true;
+ NodeSetImpl parentAllNodes = (NodeSetImpl)parentFolder.getAllNodes();
+ if (!parentAllNodes.contains(page))
+ {
+ // add new page
+ parentAllNodes.add(page);
+ newPage = true;
+ }
+ else if (parentAllNodes.get(page.getPath()) != page)
+ {
+ // remove stale page and add updated page
+ parentAllNodes.remove(page);
+ parentAllNodes.add(page);
+ }
}
// notify page manager listeners
@@ -331,11 +346,22 @@
// update link
handlerFactory.getDocumentHandler(Link.DOCUMENT_TYPE).updateDocument(link);
- // update folder
- if ((parentFolder != null) && !parentFolder.getAllNodes().contains(link))
+ // update parent folder
+ if (parentFolder != null)
{
- parentFolder.getAllNodes().add(link);
- newLink = true;
+ NodeSetImpl parentAllNodes = (NodeSetImpl)parentFolder.getAllNodes();
+ if (!parentAllNodes.contains(link))
+ {
+ // add new link
+ parentAllNodes.add(link);
+ newLink = true;
+ }
+ else if (parentAllNodes.get(link.getPath()) != link)
+ {
+ // remove stale link and add updated link
+ parentAllNodes.remove(link);
+ parentAllNodes.add(link);
+ }
}
// notify page manager listeners
@@ -437,11 +463,22 @@
// update pageSecurity
handlerFactory.getDocumentHandler(PageSecurity.DOCUMENT_TYPE).updateDocument(pageSecurity);
- // update folder
- if ((parentFolder != null) && !parentFolder.getAllNodes().contains(pageSecurity))
+ // update parent folder
+ if (parentFolder != null)
{
- parentFolder.getAllNodes().add(pageSecurity);
- newPageSecurity = true;
+ NodeSetImpl parentAllNodes = (NodeSetImpl)parentFolder.getAllNodes();
+ if (!parentAllNodes.contains(pageSecurity))
+ {
+ // add new page security
+ parentAllNodes.add(pageSecurity);
+ newPageSecurity = true;
+ }
+ else if (parentAllNodes.get(pageSecurity.getPath()) != pageSecurity)
+ {
+ // remove stale page security and add updated page security
+ parentAllNodes.remove(pageSecurity);
+ parentAllNodes.add(pageSecurity);
+ }
}
// notify page manager listeners
@@ -494,6 +531,78 @@
return folder;
}
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.page.PageManager#getFolders(org.apache.jetspeed.om.folder.Folder)
+ */
+ public NodeSet getFolders(Folder folder) throws FolderNotFoundException, DocumentException
+ {
+ // delegate back to folder instance
+ return folder.getFolders();
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.page.PageManager#getFolder(org.apache.jetspeed.om.folder.Folder,java.lang.String)
+ */
+ public Folder getFolder(Folder folder, String name) throws FolderNotFoundException, DocumentException
+ {
+ // delegate back to folder instance
+ return folder.getFolder(name);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.page.PageManager#getPages(org.apache.jetspeed.om.folder.Folder)
+ */
+ public NodeSet getPages(Folder folder) throws NodeException
+ {
+ // delegate back to folder instance
+ return folder.getPages();
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.page.PageManager#getPage(org.apache.jetspeed.om.folder.Folder,java.lang.String)
+ */
+ public Page getPage(Folder folder, String name) throws PageNotFoundException, NodeException
+ {
+ // delegate back to folder instance
+ return folder.getPage(name);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.page.PageManager#getLinks(org.apache.jetspeed.om.folder.Folder)
+ */
+ public NodeSet getLinks(Folder folder) throws NodeException
+ {
+ // delegate back to folder instance
+ return folder.getLinks();
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.page.PageManager#getLink(org.apache.jetspeed.om.folder.Folder,java.lang.String)
+ */
+ public Link getLink(Folder folder, String name) throws DocumentNotFoundException, NodeException
+ {
+ // delegate back to folder instance
+ return folder.getLink(name);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.page.PageManager#getPageSecurity(org.apache.jetspeed.om.folder.Folder)
+ */
+ public PageSecurity getPageSecurity(Folder folder) throws DocumentNotFoundException, NodeException
+ {
+ // delegate back to folder instance
+ return folder.getPageSecurity();
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.page.PageManager#getAll(org.apache.jetspeed.om.folder.Folder)
+ */
+ public NodeSet getAll(Folder folder) throws FolderNotFoundException, DocumentException
+ {
+ // delegate back to folder instance
+ return folder.getAll();
+ }
+
/**
* <p>
* updateFolder
@@ -503,6 +612,15 @@
*/
public void updateFolder(Folder folder) throws JetspeedException
{
+ // shallow update by default
+ updateFolder(folder, false);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.page.PageManager#updateFolder(org.apache.jetspeed.om.folder.Folder,boolean)
+ */
+ public void updateFolder(Folder folder, boolean deep) throws JetspeedException, FolderNotUpdatedException
+ {
// make sure path and related members are set
if (folder.getPath() != null)
{
@@ -549,10 +667,28 @@
folderHandler.updateFolder(folder);
// update parent folder
- if ((parentFolder != null) && !parentFolder.getAllNodes().contains(folder))
+ if (parentFolder != null)
{
- parentFolder.getAllNodes().add(folder);
- newFolder = true;
+ NodeSetImpl parentAllNodes = (NodeSetImpl)parentFolder.getAllNodes();
+ if (!parentAllNodes.contains(folder))
+ {
+ // add new folder
+ parentAllNodes.add(folder);
+ newFolder = true;
+ }
+ else if (parentAllNodes.get(folder.getPath()) != folder)
+ {
+ // remove stale folder and add updated folder
+ parentAllNodes.remove(folder);
+ parentAllNodes.add(folder);
+ }
+ }
+
+ // update deep recursively if specified
+ if (deep)
+ {
+ // update recursively, (breadth first)
+ updateFolderNodes(folderImpl);
}
// notify page manager listeners
@@ -563,6 +699,61 @@
else
{
notifyUpdatedNode(folder);
+ }
+ }
+
+ /**
+ * updateFolderNodes - recusively update all folder nodes
+ *
+ * @param folderImpl folder whose nodes are to be updated
+ * @param throws FolderNotUpdatedException
+ */
+ private void updateFolderNodes(FolderImpl folderImpl) throws FolderNotUpdatedException
+ {
+ try
+ {
+ // update folder documents
+ NodeSet nodes = folderImpl.getAllNodes();
+ Iterator nodesIter = nodes.iterator();
+ while (nodesIter.hasNext())
+ {
+ Node node = (Node) nodesIter.next();
+ if (node instanceof Page)
+ {
+ updatePage((Page)node);
+ }
+ else if (node instanceof Link)
+ {
+ updateLink((Link)node);
+ }
+ else if (node instanceof PageSecurity)
+ {
+ updatePageSecurity((PageSecurity)node);
+ }
+ }
+
+ // update folders last: breadth first recursion
+ nodesIter = nodes.iterator();
+ while (nodesIter.hasNext())
+ {
+ Node node = (Node) nodesIter.next();
+ if (node instanceof Folder)
+ {
+ updateFolder((Folder)node, true);
+ }
+ }
+ }
+ catch (FolderNotUpdatedException fnue)
+ {
+ throw fnue;
+ }
+ catch (SecurityException se)
+ {
+ throw se;
+ }
+ catch (Exception e)
+ {
+ throw new FolderNotUpdatedException("Folder " + folderImpl.getPath() + " not updated.", e);
}
}
Modified: portals/jetspeed-2/trunk/components/page-manager/src/test/org/apache/jetspeed/page/PageManagerTestShared.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/page-manager/src/test/org/apache/jetspeed/page/PageManagerTestShared.java?rev=388374&r1=388373&r2=388374&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/page-manager/src/test/org/apache/jetspeed/page/PageManagerTestShared.java (original)
+++ portals/jetspeed-2/trunk/components/page-manager/src/test/org/apache/jetspeed/page/PageManagerTestShared.java Thu Mar 23 21:03:42 2006
@@ -356,6 +356,8 @@
test.assertNotNull(folder.getPageSecurity());
test.assertNotNull(folder.getPages());
test.assertEquals(2, folder.getPages().size());
+ test.assertNotNull(pageManager.getPages(folder));
+ test.assertEquals(2, pageManager.getPages(folder).size());
PageSecurity pageSecurity = pageManager.getPageSecurity();
Page page0 = pageManager.getPage("/default-page.psml");
test.assertNotNull(page0.getRootFragment());
Modified: portals/jetspeed-2/trunk/components/page-manager/src/test/org/apache/jetspeed/page/TestCastorXmlPageManager.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/page-manager/src/test/org/apache/jetspeed/page/TestCastorXmlPageManager.java?rev=388374&r1=388373&r2=388374&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/page-manager/src/test/org/apache/jetspeed/page/TestCastorXmlPageManager.java (original)
+++ portals/jetspeed-2/trunk/components/page-manager/src/test/org/apache/jetspeed/page/TestCastorXmlPageManager.java Thu Mar 23 21:03:42 2006
@@ -443,7 +443,28 @@
}
assertEquals(1, folder.getPages().size());
+ assertEquals(1, pageManager.getPages(folder).size());
assertNotNull(folder.getPages().get(this.testPage004));
+
+ folder.setTitle("Updated Deep Title");
+ page.setTitle("Updated Deep Title");
+
+ try
+ {
+ pageManager.updateFolder(folder, true);
+ }
+ catch (Exception e)
+ {
+ String errmsg = "Exception in deep folder update: " + e.toString();
+ e.printStackTrace();
+ System.err.println(errmsg);
+ assertNotNull(errmsg, null);
+ }
+
+ folder = pageManager.getFolder(this.testFolder2);
+ assertTrue(folder.getTitle().equals("Updated Deep Title"));
+ page = pageManager.getPage(this.testPage004);
+ assertTrue(page.getTitle().equals("Updated Deep Title"));
}
public void testUpdateLink() throws Exception
@@ -478,6 +499,7 @@
assertTrue(folder1.getDefaultDecorator(Fragment.PORTLET).equals("test-portlet"));
assertEquals(2, folder1.getFolders().size());
+ assertEquals(2, pageManager.getFolders(folder1).size());
Iterator childItr = folder1.getFolders().iterator();
// Test that the folders are naturally orderd
Folder folder2 = (Folder) childItr.next();
@@ -488,6 +510,7 @@
assertEquals("test001.psml", folder3.getDefaultPage());
assertEquals(1, folder2.getPages().size());
assertEquals(2, folder3.getPages().size());
+ assertEquals(2, pageManager.getPages(folder3).size());
// test folder decoration inheritance
Page page = (Page)folder3.getPages().get("test001.psml");
@@ -495,6 +518,8 @@
assertTrue(page.getEffectiveDefaultDecorator(Fragment.PORTLET).equals("test-portlet"));
// Check link order
+ assertEquals(6, folder3.getAll().size());
+ assertEquals(6, pageManager.getAll(folder3).size());
Iterator linkItr = folder3.getAll().iterator();
assertEquals("Jetspeed2Wiki.link", ((Link)linkItr.next()).getName());
assertEquals("Jetspeed2.link", ((Link)linkItr.next()).getName());
@@ -502,7 +527,6 @@
assertEquals("apache.link", ((Link)linkItr.next()).getName());
assertEquals("test001.psml", ((Page)linkItr.next()).getName());
assertEquals("default-page.psml", ((Page)linkItr.next()).getName());
-
//Test FolderSet with both absolute and relative names
assertNotNull(folder1.getFolders().get("/folder1/folder2"));
@@ -584,6 +608,7 @@
assertNotNull(folder);
assertNotNull(folder.getLinks());
assertEquals(2,folder.getLinks().size());
+ assertEquals(2,pageManager.getLinks(folder).size());
assertEquals("http://portals.apache.org", ((Document) folder.getLinks().get("/apache_portals.link")).getUrl());
}
Modified: portals/jetspeed-2/trunk/components/page-manager/src/test/org/apache/jetspeed/page/TestDatabasePageManager.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/page-manager/src/test/org/apache/jetspeed/page/TestDatabasePageManager.java?rev=388374&r1=388373&r2=388374&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/page-manager/src/test/org/apache/jetspeed/page/TestDatabasePageManager.java (original)
+++ portals/jetspeed-2/trunk/components/page-manager/src/test/org/apache/jetspeed/page/TestDatabasePageManager.java Thu Mar 23 21:03:42 2006
@@ -361,6 +361,8 @@
assertEquals(page.getParent().getId(), folder.getId());
assertNotNull(folder.getPages());
assertEquals(1, folder.getPages().size());
+ assertNotNull(pageManager.getPages(folder));
+ assertEquals(1, pageManager.getPages(folder).size());
page = pageManager.newPage("/another-page.psml");
assertEquals("Another Page", page.getTitle());
@@ -375,6 +377,7 @@
assertNotNull(page.getParent());
assertEquals(page.getParent().getId(), folder.getId());
assertEquals(3, folder.getPages().size());
+ assertEquals(3, pageManager.getPages(folder).size());
Link link = pageManager.newLink("/default.link");
assertEquals("Default", link.getTitle());
@@ -405,6 +408,8 @@
assertEquals(link.getParent().getId(), folder.getId());
assertNotNull(folder.getLinks());
assertEquals(1, folder.getLinks().size());
+ assertNotNull(pageManager.getLinks(folder));
+ assertEquals(1, pageManager.getLinks(folder).size());
PageSecurity pageSecurity = pageManager.newPageSecurity();
List constraintsDefs = new ArrayList(2);
@@ -489,7 +494,8 @@
assertNotNull(deepFolder.getParent());
assertNotNull(((Folder)deepFolder.getParent()).getFolders());
assertEquals(1, ((Folder)deepFolder.getParent()).getFolders().size());
-
+ assertNotNull(pageManager.getFolders((Folder)deepFolder.getParent()));
+ assertEquals(1, pageManager.getFolders((Folder)deepFolder.getParent()).size());
if (pathIndex < deepFolderPath.length())
{
pathIndex = deepFolderPath.indexOf('/', pathIndex+1);
@@ -511,8 +517,12 @@
// test folder nodesets
assertNotNull(folder.getFolders());
assertEquals(1, folder.getFolders().size());
+ assertNotNull(pageManager.getFolders(folder));
+ assertEquals(1, pageManager.getFolders(folder).size());
assertNotNull(folder.getAll());
assertEquals(6, folder.getAll().size());
+ assertNotNull(pageManager.getAll(folder));
+ assertEquals(6, pageManager.getAll(folder).size());
Iterator all = folder.getAll().iterator();
assertEquals("some-other-page.psml", ((Node)all.next()).getName());
assertEquals("default-page.psml", ((Node)all.next()).getName());
@@ -882,12 +892,20 @@
updateMenu.getMetadata().addField(Locale.JAPANESE, "short-title", "[ja] UPDATED");
((MenuOptionsDefinition)updateMenu.getMenuElements().get(2)).setProfile("UPDATED");
pageManager.updateFolder(folder);
-
assertNotNull(folder.getAll());
assertEquals(6, folder.getAll().size());
Iterator all = folder.getAll().iterator();
assertEquals("default-page.psml", ((Node)all.next()).getName());
assertEquals("some-other-page.psml", ((Node)all.next()).getName());
+
+ folder.setTitle("FOLDER-UPDATED-DEEP");
+ page.setTitle("FOLDER-UPDATED-DEEP");
+ link.setTitle("FOLDER-UPDATED-DEEP");
+ Folder deepFolder = pageManager.getFolder(deepFolderPath);
+ deepFolder.setTitle("FOLDER-UPDATED-DEEP");
+ Page deepPage = pageManager.getPage(deepPagePath);
+ deepPage.setTitle("FOLDER-UPDATED-DEEP");
+ pageManager.updateFolder(folder, true);
}
public void testRemoves() throws Exception
@@ -973,8 +991,8 @@
{
// verify listener functionality and operation counts
assertEquals(22, newNodeCount);
- assertEquals(4, updatedNodeCount);
- assertEquals(1, removedNodeCount);
+ assertEquals(26, updatedNodeCount);
+ assertEquals(22, removedNodeCount);
// last test has been run
lastTestRun = true;
Modified: portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/page/PageManager.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/page/PageManager.java?rev=388374&r1=388373&r2=388374&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/page/PageManager.java (original)
+++ portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/page/PageManager.java Thu Mar 23 21:03:42 2006
@@ -41,6 +41,7 @@
import org.apache.jetspeed.page.document.FailedToDeleteDocumentException;
import org.apache.jetspeed.page.document.FailedToUpdateDocumentException;
import org.apache.jetspeed.page.document.NodeException;
+import org.apache.jetspeed.page.document.NodeSet;
import org.apache.jetspeed.page.document.UnsupportedDocumentTypeException;
/**
@@ -240,22 +241,20 @@
*/
public FragmentPreference newFragmentPreference();
- /**
- *
- * <p>
- * getPage
- * </p>
- *
- * Returns a PSML document for the given key
- *
- * @param locator The locator descriptor of the document to be retrieved.
- * @throws PageNotFoundException if the page cannot be found
- * @throws NodeException
- */
+ /**
+ * <p>
+ * getPage
+ * </p>
+ *
+ * Returns a PSML document for the given key
+ *
+ * @param locator The locator descriptor of the document to be retrieved.
+ * @throws PageNotFoundException if the page cannot be found
+ * @throws NodeException
+ */
public Page getPage(String id) throws PageNotFoundException, NodeException;
/**
- *
* <p>
* ContentPage
* </p>
@@ -269,50 +268,197 @@
* @throws PageNotFoundException if the page cannot be found
* @throws NodeException
*/
- public ContentPage getContentPage(String path) throws PageNotFoundException, NodeException;
+ public ContentPage getContentPage(String path) throws PageNotFoundException, NodeException;
- /**
- *
- * <p>
- * getLink
- * </p>
- *
- * Returns a Link document for the given path
- *
- * @param name The path of the document to be retrieved.
- * @throws PageNotFoundException if the page cannot be found
- * @throws NodeException
- */
+ /**
+ * <p>
+ * getLink
+ * </p>
+ *
+ * Returns a Link document for the given path
+ *
+ * @param name The path of the document to be retrieved.
+ * @throws PageNotFoundException if the page cannot be found
+ * @throws NodeException
+ */
public Link getLink(String name) throws DocumentNotFoundException, UnsupportedDocumentTypeException, FolderNotFoundException, NodeException;
- /**
- *
- * <p>
- * getPageSecurity
- * </p>
- *
- * Returns the PageSecurity document
- *
- * @throws PageNotFoundException if the page cannot be found
- * @throws NodeException
- */
+ /**
+ * <p>
+ * getPageSecurity
+ * </p>
+ *
+ * Returns the PageSecurity document
+ *
+ * @throws DocumentNotFoundException if the document cannot be found
+ * @throws FolderNotFoundException if a folder cannot be found
+ * @throws UnsupportedDocumentTypeException
+ * @throws NodeException
+ */
public PageSecurity getPageSecurity() throws DocumentNotFoundException, UnsupportedDocumentTypeException, FolderNotFoundException, NodeException;
/**
- *
* <p>
* getFolder
* </p>
+ *
* Locates a folder for the given path.
+ *
* @param folderPath
- * @return <code>Folder</code> object represented by the <code>folderPath</code> or
- * <code>null</code> if no such folder exists.
- * @throws DocumentException
+ * @return <code>Folder</code> object represented by the <code>folderPath</code>
* @throws FolderNotFoundException
* @throws NodeException
* @throws InvalidFolderException
*/
- Folder getFolder(String folderPath) throws FolderNotFoundException, InvalidFolderException, NodeException;
+ public Folder getFolder(String folderPath) throws FolderNotFoundException, InvalidFolderException, NodeException;
+
+ /**
+ * <p>
+ * getFolders
+ * </p>
+ *
+ * Locates folders within a specified parent folder.
+ * Returned documents are filtered according to security
+ * constraints and/or permissions.
+ *
+ * @see org.apache.jetspeed.om.folder.Folder#getFolders(org.apache.jetspeed.om.folder.Folder)
+ *
+ * @param folder The parent folder.
+ * @return A <code>NodeSet</code> containing all sub-folders
+ * directly under this folder.
+ * @throws FolderNotFoundException
+ * @throws DocumentException
+ */
+ public NodeSet getFolders(Folder folder) throws FolderNotFoundException, DocumentException;
+
+ /**
+ * <p>
+ * getFolder
+ * </p>
+ *
+ * Locates folders within a specified parent folder.
+ * Returned documents are filtered according to security
+ * constraints and/or permissions.
+ *
+ * @see org.apache.jetspeed.om.folder.Folder#getFolder(org.apache.jetspeed.om.folder.Folder,java.lang.String)
+ *
+ * @param folder The parent folder.
+ * @param name The name of folder to retrieve.
+ * @return A Folder referenced by this folder.
+ * @throws FolderNotFoundException
+ * @throws DocumentException
+ */
+ public Folder getFolder(Folder folder, String name) throws FolderNotFoundException, DocumentException;
+
+ /**
+ * <p>
+ * getPages
+ * </p>
+ *
+ * Locates documents within a specified parent folder.
+ * Returned documents are filtered according to security
+ * constraints and/or permissions.
+ *
+ * @see org.apache.jetspeed.om.folder.Folder#getPages(org.apache.jetspeed.om.folder.Folder)
+ *
+ * @param folder The parent folder.
+ * @return A <code>NodeSet</code> of all the Pages referenced
+ * by this Folder.
+ * @throws NodeException
+ */
+ public NodeSet getPages(Folder folder) throws NodeException;
+
+ /**
+ * <p>
+ * getPage
+ * </p>
+ *
+ * Locates documents within a specified parent folder.
+ * Returned documents are filtered according to security
+ * constraints and/or permissions.
+ *
+ * @see org.apache.jetspeed.om.folder.Folder#getPage(org.apache.jetspeed.om.folder.Folder,java.lang.String)
+ *
+ * @param folder The parent folder.
+ * @param name The name of page to retrieve.
+ * @return A Page referenced by this folder.
+ * @throws PageNotFoundException if the Page requested could not be found.
+ * @throws NodeException
+ */
+ public Page getPage(Folder folder, String name) throws PageNotFoundException, NodeException;
+
+ /**
+ * <p>
+ * getLinks
+ * </p>
+ *
+ * @see org.apache.jetspeed.om.folder.Folder#getLinks(org.apache.jetspeed.om.folder.Folder)
+ *
+ * Locates documents within a specified parent folder.
+ * Returned documents are filtered according to security
+ * constraints and/or permissions.
+ *
+ * @param folder The parent folder.
+ * @return NodeSet of all the Links referenced by this Folder.
+ * @throws NodeException
+ */
+ public NodeSet getLinks(Folder folder) throws NodeException;
+
+ /**
+ * <p>
+ * getLink
+ * </p>
+ *
+ * Locates documents within a specified parent folder.
+ * Returned documents are filtered according to security
+ * constraints and/or permissions.
+ *
+ * @see org.apache.jetspeed.om.folder.Folder#getLink(org.apache.jetspeed.om.folder.Folder,java.lang.String)
+ *
+ * @param folder The parent folder.
+ * @param name The name of page to retrieve.
+ * @return A Link referenced by this folder.
+ * @throws DocumentNotFoundException if the document requested could not be found.
+ * @throws NodeException
+ */
+ public Link getLink(Folder folder, String name) throws DocumentNotFoundException, NodeException;
+
+ /**
+ * <p>
+ * getPageSecurity
+ * </p>
+ *
+ * Locates documents within a specified parent folder.
+ * Returned documents are filtered according to security
+ * constraints and/or permissions.
+ *
+ * @see org.apache.jetspeed.om.folder.Folder#getPageSecurity(org.apache.jetspeed.om.folder.Folder)
+ *
+ * @param folder The parent folder.
+ * @return A PageSecurity referenced by this folder.
+ * @throws DocumentNotFoundException if the document requested could not be found.
+ * @throws NodeException
+ */
+ public PageSecurity getPageSecurity(Folder folder) throws DocumentNotFoundException, NodeException;
+
+ /**
+ * <p>
+ * getAll
+ * </p>
+ *
+ * Locates folders and documents within a specified parent folder.
+ * Returned folders and documents are filtered according to
+ * security constraints and/or permissions.
+ *
+ * @see org.apache.jetspeed.om.folder.Folder#getAll(org.apache.jetspeed.om.folder.Folder)
+ *
+ * @param folder The parent folder.
+ * @return A <code>NodeSet</code> containing all sub-folders
+ * and documents directly under this folder.
+ * @throws FolderNotFoundException
+ * @throws DocumentException
+ */
+ public NodeSet getAll(Folder folder) throws FolderNotFoundException, DocumentException;
/** Update a page in persistent storage
*
@@ -326,11 +472,19 @@
*/
public void removePage(Page page) throws JetspeedException, PageNotRemovedException;
- /** Update a folder in persistent storage
+ /** Update a folder and all child folders
+ * and documents in persistent storage
*
* @param folder The folder to be updated.
*/
public void updateFolder(Folder folder) throws JetspeedException, FolderNotUpdatedException;
+
+ /** Update a folder in persistent storage
+ *
+ * @param folder The folder to be updated.
+ * @param deep Flag to control recursive deep updates.
+ */
+ public void updateFolder(Folder folder, boolean deep) throws JetspeedException, FolderNotUpdatedException;
/** Remove a folder.
*
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org