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 wo...@apache.org on 2008/01/22 12:11:14 UTC
svn commit: r614175 - in /portals/jetspeed-2/trunk/components:
jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/
jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/
jetspeed-prefs/src/main/java/org/apache/jetspeed/prefs...
Author: woonsan
Date: Tue Jan 22 03:11:14 2008
New Revision: 614175
URL: http://svn.apache.org/viewvc?rev=614175&view=rev
Log:
Fixed build errors.
Modified:
portals/jetspeed-2/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderImpl.java
portals/jetspeed-2/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/BasePortletAction.java
portals/jetspeed-2/trunk/components/jetspeed-prefs/src/main/java/org/apache/jetspeed/prefs/impl/PersistenceBrokerPreferencesProvider.java
Modified: portals/jetspeed-2/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderImpl.java?rev=614175&r1=614174&r2=614175&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderImpl.java (original)
+++ portals/jetspeed-2/trunk/components/jetspeed-page-manager/src/main/java/org/apache/jetspeed/om/folder/impl/FolderImpl.java Tue Jan 22 03:11:14 2008
@@ -22,59 +22,6 @@
import java.util.Iterator;
import java.util.List;
-import org.apache.jetspeed.JetspeedActions;
-import org.apache.jetspeed.om.folder.Folder;
-import org.apache.jetspeed.om.folder.FolderNotFoundException;
-import org.apache.jetspeed.om.folder.MenuDefinition;
-import org.apache.jetspeed.om.folder.MenuExcludeDefinition;
-import org.apache.jetspeed.om.folder.MenuIncludeDefinition;
-import org.apache.jetspeed.om.folder.MenuOptionsDefinition;
-import org.apache.jetspeed.om.folder.MenuSeparatorDefinition;
-import org.apache.jetspeed.om.page.Fragment;
-import org.apache.jetspeed.om.page.Link;
-import org.apache.jetspeed.om.page.Page;
-import org.apache.jetspeed.om.page.PageMetadataImpl;
-import org.apache.jetspeed.om.page.PageSecurity;
-import org.apache.jetspeed.om.page.impl.LinkImpl;
-import org.apache.jetspeed.om.page.impl.PageImpl;
-import org.apache.jetspeed.om.page.impl.PageSecurityImpl;
-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.DocumentNotFoundException;
-import org.apache.jetspeed.page.document.Node;
-import org.apache.jetspeed.page.document.NodeException;
-import org.apache.jetspeed.page.document.NodeNotFoundException;
-import org.apache.jetspeed.page.document.NodeSet;
-import org.apache.jetspeed.page.document.impl.NodeImpl;
-import org.apache.jetspeed.page.document.impl.NodeSetImpl;
-import org.apache.jetspeed.page.impl.DatabasePageManagerUtils;
-import org.apache.jetspeed.security.FolderPermission;
-import org.apache.ojb.broker.core.proxy.ProxyHelper;
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.jetspeed.om.folder.impl;
-
-import java.security.AccessController;
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.List;
-
import org.apache.jetspeed.Jetspeed;
import org.apache.jetspeed.JetspeedActions;
import org.apache.jetspeed.om.folder.Folder;
@@ -1159,1050 +1106,4 @@
}
return pageManager;
}
-}
-
-/**
- * FolderImpl
- *
- * @author <a href="mailto:rwatler@apache.org">Randy Watler</a>
- * @version $Id$
- */
-public class FolderImpl extends NodeImpl implements Folder
-{
- private String defaultPage;
- private String skin;
- private String defaultLayoutDecorator;
- private String defaultPortletDecorator;
- private List orders;
- private List menus;
-
- private PageManager pageManager;
- private List folders;
- private boolean foldersCached;
- private List pages;
- private boolean pagesCached;
- private List links;
- private boolean linksCached;
- private PageSecurityImpl pageSecurity;
- private boolean pageSecurityCached;
- private List all;
- private boolean allCached;
- private FolderOrderList documentOrder;
- private boolean documentOrderComparatorValid;
- private Comparator documentOrderComparator;
- private NodeSet foldersNodeSet;
- private NodeSet pagesNodeSet;
- private NodeSet linksNodeSet;
- private NodeSet allNodeSet;
- private FolderMenuDefinitionList menuDefinitions;
-
- public FolderImpl()
- {
- super(new FolderSecurityConstraintsImpl());
- }
-
- /**
- * accessFolderOrders
- *
- * Access mutable persistent collection member for List wrappers.
- *
- * @return persistent collection
- */
- List accessFolderOrders()
- {
- // create initial collection if necessary
- if (orders == null)
- {
- orders = DatabasePageManagerUtils.createList();
- }
- return orders;
- }
-
- /**
- * accessMenus
- *
- * Access mutable persistent collection member for List wrappers.
- *
- * @return persistent collection
- */
- List accessMenus()
- {
- // create initial collection if necessary
- if (menus == null)
- {
- menus = DatabasePageManagerUtils.createList();
- }
- return menus;
- }
-
- /**
- * setPageManager
- *
- * Infuses PageManager for use by this folder instance.
- *
- * @param pageManager page manager that manages this folder instance
- */
- public void setPageManager(PageManager pageManager)
- {
- this.pageManager = pageManager;
- }
-
- /**
- * accessFolders
- *
- * Access folders transient cache collection for use by PageManager.
- *
- * @return folders collection
- */
- public List accessFolders()
- {
- // create initial collection if necessary
- if (folders == null)
- {
- folders = DatabasePageManagerUtils.createList();
- }
- return folders;
- }
-
- /**
- * resetFolders
- *
- * Reset folders transient caches for use by PageManager.
- *
- * @param cached set cached state for folders
- */
- public void resetFolders(boolean cached)
- {
- // save cached state
- foldersCached = cached;
- allCached = false;
-
- // update node caches
- if (!cached)
- {
- accessFolders().clear();
- }
- accessAll().clear();
-
- // reset cached node sets
- foldersNodeSet = null;
- allNodeSet = null;
- }
-
- /**
- * accessPages
- *
- * Access pages transient cache collection for use by PageManager.
- *
- * @return pages collection
- */
- public List accessPages()
- {
- // create initial collection if necessary
- if (pages == null)
- {
- pages = DatabasePageManagerUtils.createList();
- }
- return pages;
- }
-
- /**
- * resetPages
- *
- * Reset pages transient caches for use by PageManager.
- *
- * @param cached set cached state for pages
- */
- public void resetPages(boolean cached)
- {
- // save cached state
- pagesCached = cached;
- allCached = false;
-
- // update node caches
- if (!cached)
- {
- accessPages().clear();
- }
- accessAll().clear();
-
- // reset cached node sets
- pagesNodeSet = null;
- allNodeSet = null;
- }
-
- /**
- * accessLinks
- *
- * Access links transient cache collection for use by PageManager.
- *
- * @return links collection
- */
- public List accessLinks()
- {
- // create initial collection if necessary
- if (links == null)
- {
- links = DatabasePageManagerUtils.createList();
- }
- return links;
- }
-
- /**
- * resetLinks
- *
- * Reset links transient caches for use by PageManager.
- *
- * @param cached set cached state for links
- */
- public void resetLinks(boolean cached)
- {
- // save cached state
- linksCached = cached;
- allCached = false;
-
- // update node caches
- if (!cached)
- {
- accessLinks().clear();
- }
- accessAll().clear();
-
- // reset cached node sets
- linksNodeSet = null;
- allNodeSet = null;
- }
-
- /**
- * accessPageSecurity
- *
- * Access pageSecurity cached instance for use by PageManager.
- *
- * @return pageSecurity instance
- */
- public PageSecurityImpl accessPageSecurity()
- {
- return pageSecurity;
- }
-
- /**
- * resetPageSecurity
- *
- * Reset pageSecurity transient cache instance for use by PageManager.
- *
- * @param newPageSecurty cached page security instance.
- * @param cached set cached state for page security
- */
- public void resetPageSecurity(PageSecurityImpl newPageSecurity, boolean cached)
- {
- // save cached state
- pageSecurity = newPageSecurity;
- pageSecurityCached = cached;
- allCached = false;
-
- // update node caches
- accessAll().clear();
-
- // reset cached node sets
- allNodeSet = null;
- }
-
- /**
- * accessAll
- *
- * Access all transient cache collection for use by PageManager.
- *
- * @return all collection
- */
- public List accessAll()
- {
- // create initial collection if necessary
- if (all == null)
- {
- all = DatabasePageManagerUtils.createList();
- }
- return all;
- }
-
- /**
- * resetAll
- *
- * Reset all transient caches for use by PageManager.
- *
- * @param cached set cached state for all
- */
- public void resetAll(boolean cached)
- {
- // save cached state
- allCached = cached;
- foldersCached = cached;
- pagesCached = cached;
- linksCached = cached;
- pageSecurityCached = cached;
-
- // update node caches
- accessFolders().clear();
- accessPages().clear();
- accessLinks().clear();
- pageSecurity = null;
- if (cached)
- {
- // populate node caches
- synchronized(all)
- {
- Iterator nodeIter = accessAll().iterator();
- while (nodeIter.hasNext())
- {
- Node node = (Node)nodeIter.next();
- if (node instanceof PageImpl)
- {
- pages.add(node);
- }
- else if (node instanceof FolderImpl)
- {
- folders.add(node);
- }
- else if (node instanceof LinkImpl)
- {
- links.add(node);
- }
- else if (node instanceof PageSecurityImpl)
- {
- pageSecurity = (PageSecurityImpl)node;
- }
- }
- }
- }
- else
- {
- accessAll().clear();
- }
-
- // reset cached node sets
- allNodeSet = null;
- foldersNodeSet = null;
- pagesNodeSet = null;
- linksNodeSet = null;
- }
-
- /**
- * createDocumentOrderComparator
- *
- * @return document order comparator
- */
- private Comparator createDocumentOrderComparator()
- {
- if (!documentOrderComparatorValid)
- {
- documentOrderComparatorValid = true;
- // return null if no document order exists;
- // (null implies natural ordering by name)
- final List documentOrder = getDocumentOrder();
- if ((documentOrder == null) || documentOrder.isEmpty())
- {
- return null;
- }
- // create new document order comparator
- documentOrderComparator = new Comparator()
- {
- /* (non-Javadoc)
- * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
- */
- public int compare(Object o1, Object o2)
- {
- // Compare node names using document order;
- // use indicies as names if found in document
- // order to force explicitly ordered items
- // ahead of unordered items
- String name1 = (String)o1;
- int index1 = documentOrder.indexOf(name1);
- if (index1 >= 0)
- {
- // use order index as name1
- name1 = String.valueOf(index1);
- }
- String name2 = (String)o2;
- int index2 = documentOrder.indexOf(name2);
- if (index2 >= 0)
- {
- // use order index as name2
- name2 = String.valueOf(index2);
- if (index1 >= 0)
- {
- // pad order indicies for numeric string compare
- while (name1.length() != name2.length())
- {
- if (name1.length() < name2.length())
- {
- name1 = "0" + name1;
- }
- else
- {
- name2 = "0" + name2;
- }
- }
- }
- }
- // compare names and/or indicies
- return name1.compareTo(name2);
- }
- };
- }
- return documentOrderComparator;
- }
-
- /**
- * clearDocumentOrderComparator
- */
- void clearDocumentOrderComparator()
- {
- // clear node set ordering
- documentOrderComparatorValid = false;
- documentOrderComparator = null;
- // clear previously cached node sets
- allNodeSet = null;
- foldersNodeSet = null;
- pagesNodeSet = null;
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.page.document.impl.NodeImpl#newPageMetadata(java.util.Collection)
- */
- public PageMetadataImpl newPageMetadata(Collection fields)
- {
- PageMetadataImpl pageMetadata = new PageMetadataImpl(FolderMetadataLocalizedFieldImpl.class);
- pageMetadata.setFields(fields);
- return pageMetadata;
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.om.page.impl.BaseElementImpl#getEffectivePageSecurity()
- */
- public PageSecurity getEffectivePageSecurity()
- {
- // return page security instance if available
- if (!pageSecurityCached)
- {
- // use PageManager to get and cache page security
- // instance for this folder
- try
- {
- return pageManager.getPageSecurity(this);
- }
- catch (NodeException ne)
- {
- }
- catch (NodeNotFoundException nnfe)
- {
- }
- }
- else if (pageSecurity != null)
- {
- return pageSecurity;
- }
-
- // delegate to real parent folder implementation
- FolderImpl parentFolderImpl = (FolderImpl)ProxyHelper.getRealObject(getParent());
- if (parentFolderImpl != null)
- {
- return parentFolderImpl.getEffectivePageSecurity();
- }
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.om.page.impl.BaseElementImpl#checkPermissions(java.lang.String, int, boolean, boolean)
- */
- public void checkPermissions(String path, int mask, boolean checkNodeOnly, boolean checkParentsOnly) throws SecurityException
- {
- // check granted folder permissions unless the check is
- // to be skipped due to explicity granted access
- if (!checkParentsOnly)
- {
- FolderPermission permission = new FolderPermission(path, mask);
- AccessController.checkPermission(permission);
- }
-
- // if not checking node only, recursively check
- // all parent permissions in hierarchy
- if (!checkNodeOnly)
- {
- FolderImpl parentFolderImpl = (FolderImpl)ProxyHelper.getRealObject(getParent());
- if (parentFolderImpl != null)
- {
- parentFolderImpl.checkPermissions(mask, false, false);
- }
- }
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.om.page.BaseElement#getTitle()
- */
- public String getTitle()
- {
- // default title to folder name
- String title = super.getTitle();
- if (title == null)
- {
- title = defaultTitleFromName();
- setTitle(title);
- }
- return title;
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.om.folder.Folder#getSkin()
- */
- public String getSkin()
- {
- return skin;
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.om.folder.Folder#setSkin(java.lang.String)
- */
- public void setSkin(String skinName)
- {
- this.skin = skinName;
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.om.folder.Folder#getEffectiveDefaultDecorator(java.lang.String)
- */
- public String getEffectiveDefaultDecorator(String fragmentType)
- {
- // get locally defined decorator
- String decorator = getDefaultDecorator(fragmentType);
- if (decorator == null)
- {
- // delegate to parent folder
- Folder parentFolder = (Folder)ProxyHelper.getRealObject(getParent());
- if (parentFolder != null)
- {
- return parentFolder.getEffectiveDefaultDecorator(fragmentType);
- }
- }
- return decorator;
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.om.folder.Folder#getDefaultDecorator(java.lang.String)
- */
- public String getDefaultDecorator(String fragmentType)
- {
- // retrieve supported decorator types
- if (fragmentType != null)
- {
- if (fragmentType.equals(Fragment.LAYOUT))
- {
- return defaultLayoutDecorator;
- }
- if (fragmentType.equals(Fragment.PORTLET))
- {
- return defaultPortletDecorator;
- }
- }
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.om.folder.Folder#getDefaultDecorator(java.lang.String,java.lang.String)
- */
- public void setDefaultDecorator(String decoratorName, String fragmentType)
- {
- // save supported decorator types
- if (fragmentType != null)
- {
- if (fragmentType.equals(Fragment.LAYOUT))
- {
- defaultLayoutDecorator = decoratorName;
- }
- if (fragmentType.equals(Fragment.PORTLET))
- {
- defaultPortletDecorator = decoratorName;
- }
- }
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.om.folder.Folder#getDocumentOrder()
- */
- public List getDocumentOrder()
- {
- // return mutable document order list
- // by using list wrapper to manage sort
- // order and element uniqueness
- if (documentOrder == null)
- {
- documentOrder = new FolderOrderList(this);
- }
- return documentOrder;
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.om.folder.Folder#setDocumentOrder(java.util.List)
- */
- public void setDocumentOrder(List docNames)
- {
- // set document order using ordered document
- // names by replacing existing entries with
- // new elements if new collection is specified
- List documentOrder = getDocumentOrder();
- if (docNames != documentOrder)
- {
- // replace all document order names
- documentOrder.clear();
- if (docNames != null)
- {
- documentOrder.addAll(docNames);
- }
- }
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.om.folder.Folder#getDefaultPage()
- */
- public String getDefaultPage()
- {
- return defaultPage;
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.om.folder.Folder#setDefaultPage(java.lang.String)
- */
- public void setDefaultPage(String defaultPage)
- {
- this.defaultPage = defaultPage;
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.om.folder.Folder#getFolders()
- */
- public NodeSet getFolders() throws DocumentException
- {
- // get folders collection
- if (!foldersCached)
- {
- // use PageManager to get and cache folders
- // collection for this folder
- return pageManager.getFolders(this);
- }
-
- // return nodes with view access
- return filterNodeSetByAccess(getFoldersNodeSet());
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.om.folder.Folder#getFolder(java.lang.String)
- */
- public Folder getFolder(String name) throws FolderNotFoundException, DocumentException
- {
- // get folder instance if folders collection not available
- if (!foldersCached)
- {
- // use PageManager to get folder instance without
- // caching the folders collection for this folder
- return pageManager.getFolder(this, name);
- }
-
- // select folder by name from cached folders collection
- Folder folder = (Folder)getFoldersNodeSet().get(name);
- if (folder == null)
- {
- throw new FolderNotFoundException("Folder not found: " + name);
- }
-
- // check for view access on folder
- folder.checkAccess(JetspeedActions.VIEW);
-
- return folder;
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.om.folder.Folder#getPages()
- */
- public NodeSet getPages() throws NodeException
- {
- // get pages collection
- if (!pagesCached)
- {
- // use PageManager to get and cache pages
- // collection for this folder
- return pageManager.getPages(this);
- }
-
- // return nodes with view access
- return filterNodeSetByAccess(getPagesNodeSet());
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.om.folder.Folder#getPage(java.lang.String)
- */
- public Page getPage(String name) throws PageNotFoundException, NodeException
- {
- // get page instance if pages collection not available
- if (!pagesCached)
- {
- // use PageManager to get page instance without
- // caching the pages collection for this folder
- return pageManager.getPage(this, name);
- }
-
- // select page by name from cached pages collection
- Page page = (Page)getPagesNodeSet().get(name);
- if (page == null)
- {
- throw new PageNotFoundException("Page not found: " + name);
- }
-
- // check for view access on page
- page.checkAccess(JetspeedActions.VIEW);
-
- return page;
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.om.folder.Folder#getLinks()
- */
- public NodeSet getLinks() throws NodeException
- {
- // get links collection
- if (!linksCached)
- {
- // use PageManager to get and cache links
- // collection for this folder
- return pageManager.getLinks(this);
- }
-
- // return nodes with view access
- return filterNodeSetByAccess(getLinksNodeSet());
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.om.folder.Folder#getLink(java.lang.String)
- */
- public Link getLink(String name) throws DocumentNotFoundException, NodeException
- {
- // get link instance if links collection not available
- if (!linksCached)
- {
- // use PageManager to get link instance without
- // caching the links collection for this folder
- return pageManager.getLink(this, name);
- }
-
- // select link by name from cached links collection
- Link link = (Link)getLinksNodeSet().get(name);
- if (link == null)
- {
- throw new DocumentNotFoundException("Link not found: " + name);
- }
-
- // check for view access on link
- link.checkAccess(JetspeedActions.VIEW);
-
- return link;
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.om.folder.Folder#getPageSecurity()
- */
- public PageSecurity getPageSecurity() throws DocumentNotFoundException, NodeException
- {
- // get page security instance
- if (!pageSecurityCached)
- {
- // use PageManager to get and cache page security
- // instance for this folder
- return pageManager.getPageSecurity(this);
- }
- if (pageSecurity == null)
- {
- throw new DocumentNotFoundException("Page security document not found");
- }
-
- // check for view access on document
- pageSecurity.checkAccess(JetspeedActions.VIEW);
-
- return pageSecurity;
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.om.folder.Folder#getAll()
- */
- public NodeSet getAll() throws DocumentException
- {
- // get all nodes collection
- if (!allCached)
- {
- // use PageManager to get and cache all nodes
- // collection for this folder
- return pageManager.getAll(this);
- }
-
- // return nodes with view access
- return filterNodeSetByAccess(getAllNodeSet());
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.om.folder.Folder#getMenuDefinitions()
- */
- public List getMenuDefinitions()
- {
- // return mutable menu definition list
- // by using list wrapper to manage
- // element uniqueness
- if (menuDefinitions == null)
- {
- menuDefinitions = new FolderMenuDefinitionList(this);
- }
- return menuDefinitions;
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.om.folder.Folder#newMenuDefinition()
- */
- public MenuDefinition newMenuDefinition()
- {
- return new FolderMenuDefinitionImpl();
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.om.folder.Folder#newMenuExcludeDefinition()
- */
- public MenuExcludeDefinition newMenuExcludeDefinition()
- {
- return new FolderMenuExcludeDefinitionImpl();
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.om.folder.Folder#newMenuIncludeDefinition()
- */
- public MenuIncludeDefinition newMenuIncludeDefinition()
- {
- return new FolderMenuIncludeDefinitionImpl();
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.om.folder.Folder#newMenuOptionsDefinition()
- */
- public MenuOptionsDefinition newMenuOptionsDefinition()
- {
- return new FolderMenuOptionsDefinitionImpl();
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.om.folder.Folder#newMenuSeparatorDefinition()
- */
- public MenuSeparatorDefinition newMenuSeparatorDefinition()
- {
- return new FolderMenuSeparatorDefinitionImpl();
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.om.folder.Folder#setMenuDefinitions(java.util.List)
- */
- public void setMenuDefinitions(List definitions)
- {
- // set menu definitions by replacing
- // existing entries with new elements if
- // new collection is specified
- List menuDefinitions = getMenuDefinitions();
- if (definitions != menuDefinitions)
- {
- // replace all menu definitions
- menuDefinitions.clear();
- if (definitions != null)
- {
- menuDefinitions.addAll(definitions);
- }
- }
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.om.folder.Folder#isReserved()
- */
- public boolean isReserved()
- {
- // folders are always concrete in this implementation
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.om.folder.Folder#getReservedType()
- */
- public int getReservedType()
- {
- // folders are always concrete in this implementation
- return RESERVED_FOLDER_NONE;
- }
-
- /* (non-Javadoc)
- * @see org.apache.jetspeed.page.document.Node#getType()
- */
- public String getType()
- {
- return FOLDER_TYPE;
- }
-
- /**
- * getFoldersNodeSet
- *
- * Latently create and access folders node set.
- *
- * @return folders node set
- */
- private NodeSet getFoldersNodeSet()
- {
- if (foldersNodeSet == null)
- {
- if ((folders != null) && !folders.isEmpty())
- {
- foldersNodeSet = new NodeSetImpl(folders, createDocumentOrderComparator());
- }
- else
- {
- foldersNodeSet = NodeSetImpl.EMPTY_NODE_SET;
- }
- }
- return foldersNodeSet;
- }
-
- /**
- * getPagesNodeSet
- *
- * Latently create and access pages node set.
- *
- * @return folders node set
- */
- private NodeSet getPagesNodeSet() throws NodeException
- {
- if (pagesNodeSet == null)
- {
- if ((pages != null) && !pages.isEmpty())
- {
- pagesNodeSet = new NodeSetImpl(pages, createDocumentOrderComparator());
- }
- else
- {
- pagesNodeSet = NodeSetImpl.EMPTY_NODE_SET;
- }
- }
- return pagesNodeSet;
- }
-
- /**
- * getLinksNodeSet
- *
- * Latently create and access links node set.
- *
- * @return folders node set
- */
- private NodeSet getLinksNodeSet() throws NodeException
- {
- if (linksNodeSet == null)
- {
- if ((links != null) && !links.isEmpty())
- {
- linksNodeSet = new NodeSetImpl(links, createDocumentOrderComparator());
- }
- else
- {
- linksNodeSet = NodeSetImpl.EMPTY_NODE_SET;
- }
- }
- return linksNodeSet;
- }
-
- /**
- * getAllNodeSet
- *
- * Latently create and access all nodes node set.
- *
- * @return all nodes node set
- */
- private NodeSet getAllNodeSet()
- {
- if (allNodeSet == null)
- {
- if ((all != null) && !all.isEmpty())
- {
- List allCopy = new java.util.ArrayList();
- synchronized(all)
- {
- allCopy.addAll(all);
- }
- allNodeSet = new NodeSetImpl(allCopy, createDocumentOrderComparator());
- }
- else
- {
- allNodeSet = NodeSetImpl.EMPTY_NODE_SET;
- }
- }
- return allNodeSet;
- }
-
- /**
- * filterNodeSetByAccess
- *
- * Filter node set elements for view access.
- *
- * @param nodes node set containing nodes to check
- * @return checked subset of nodes
- */
- static NodeSet filterNodeSetByAccess(NodeSet nodes)
- {
- if ((nodes != null) && !nodes.isEmpty())
- {
- // check permissions and constraints, filter nodes as required
- NodeSetImpl filteredNodes = null;
- Iterator checkAccessIter = nodes.iterator();
- while (checkAccessIter.hasNext())
- {
- Node node = (Node)checkAccessIter.next();
- try
- {
- // check access
- node.checkAccess(JetspeedActions.VIEW);
-
- // add to filteredNodes nodes if copying
- if (filteredNodes != null)
- {
- // permitted, add to filteredNodes nodes
- filteredNodes.add(node);
- }
- }
- catch (SecurityException se)
- {
- // create filteredNodes nodes if not already copying
- if (filteredNodes == null)
- {
- // not permitted, copy previously permitted nodes
- // to new filteredNodes node set with same comparator
- filteredNodes = new NodeSetImpl(nodes);
- Iterator copyIter = nodes.iterator();
- while (copyIter.hasNext())
- {
- Node copyNode = (Node)copyIter.next();
- if (copyNode != node)
- {
- filteredNodes.add(copyNode);
- }
- else
- {
- break;
- }
- }
- }
- }
- }
-
- // return filteredNodes nodes if generated
- if (filteredNodes != null)
- {
- return filteredNodes;
- }
- }
- return nodes;
- }
}
Modified: portals/jetspeed-2/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/BasePortletAction.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/BasePortletAction.java?rev=614175&r1=614174&r2=614175&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/BasePortletAction.java (original)
+++ portals/jetspeed-2/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/layout/impl/BasePortletAction.java Tue Jan 22 03:11:14 2008
@@ -118,7 +118,19 @@
}
return access;
}
-
+
+ public boolean isCreateNewPageOnEditEnabled()
+ {
+ if (securityBehavior == null)
+ return false;
+ return securityBehavior.isCreateNewPageOnEditEnabled();
+ }
+ public boolean isPageQualifiedForCreateNewPageOnEdit(RequestContext context)
+ {
+ if (securityBehavior == null)
+ return false;
+ return securityBehavior.isPageQualifiedForCreateNewPageOnEdit(context);
+ }
public boolean createNewPageOnEdit(RequestContext context)
{
if (securityBehavior == null)
@@ -126,17 +138,18 @@
return securityBehavior.createNewPageOnEdit(context);
}
-
- // TODO: support nested fragments
- public Fragment getFragmentIdFromLocation(int row, int column, Page page)
+
+ public Fragment getFragmentIdFromLocation( int row, int column, Page page )
+ {
+ return getFragmentIdFromLocation( row, column, page.getRootFragment() );
+ }
+ public Fragment getFragmentIdFromLocation( int row, int column, Fragment parentFragment )
{
- Fragment root = page.getRootFragment();
- Iterator fragments = root.getFragments().iterator();
- while (fragments.hasNext())
+ Iterator fragments = parentFragment.getFragments().iterator();
+ while ( fragments.hasNext() )
{
Fragment fragment = (Fragment)fragments.next();
- if (fragment.getLayoutColumn() == column &&
- fragment.getLayoutRow() == row)
+ if ( fragment.getLayoutColumn() == column && fragment.getLayoutRow() == row )
{
return fragment;
}
@@ -164,45 +177,16 @@
return parameter;
}
- public Fragment getParentFragmentById(String id, Fragment root)
+ public String getNonNullActionParameter(RequestContext requestContext, String name)
{
- if ( id == null )
- {
- return null;
- }
- return searchForParentFragmentById( id, root );
- }
-
- protected Fragment searchForParentFragmentById( String id, Fragment parent )
- {
- // find fragment by id, tracking fragment parent
- Fragment matchedParent = null;
- if( parent != null )
- {
- // process the children
- List children = parent.getFragments();
- for( int i = 0, cSize = children.size() ; i < cSize ; i++)
- {
- Fragment childFrag = (Fragment)children.get( i );
- if ( childFrag != null )
- {
- if ( id.equals( childFrag.getId() ) )
- {
- matchedParent = parent;
- break;
- }
- else
- {
- matchedParent = searchForParentFragmentById( id, childFrag );
- if ( matchedParent != null )
- {
- break;
- }
- }
- }
- }
- }
- return matchedParent;
+ String result = getActionParameter(requestContext, name);
+ if (result == null)
+ return "";
+ return result;
}
+ public Fragment getParentFragmentById(String id, Fragment root)
+ {
+ return NestedFragmentContext.getParentFragmentById( id, root );
+ }
}
Modified: portals/jetspeed-2/trunk/components/jetspeed-prefs/src/main/java/org/apache/jetspeed/prefs/impl/PersistenceBrokerPreferencesProvider.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/components/jetspeed-prefs/src/main/java/org/apache/jetspeed/prefs/impl/PersistenceBrokerPreferencesProvider.java?rev=614175&r1=614174&r2=614175&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/jetspeed-prefs/src/main/java/org/apache/jetspeed/prefs/impl/PersistenceBrokerPreferencesProvider.java (original)
+++ portals/jetspeed-2/trunk/components/jetspeed-prefs/src/main/java/org/apache/jetspeed/prefs/impl/PersistenceBrokerPreferencesProvider.java Tue Jan 22 03:11:14 2008
@@ -36,7 +36,6 @@
import org.apache.jetspeed.prefs.NodeDoesNotExistException;
import org.apache.jetspeed.prefs.PreferencesProvider;
import org.apache.jetspeed.prefs.impl.NodeImplProxy;
-import org.apache.jetspeed.prefs.impl.PersistenceBrokerPreferencesProvider.NodeCache;
import org.apache.jetspeed.prefs.om.Node;
import org.apache.jetspeed.prefs.om.Property;
import org.apache.jetspeed.prefs.om.impl.NodeImpl;
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org