com.plumtree.remote.prc.content.folder
Interface IFolder


public interface IFolder

Represents a folder in Publisher that is a container for IContentItem, IDataEntryTemplate, IPresentationTemplate, ISelectionList, and other IFolder objects. Any modifications to the IFolder metadata will not be stored permanently until store is called.

If you associate a folder with a portlet, then all content items in that folder or its sub-folders will be indexed by the Search server and made searchable. See the addAssociatedPortletID method documentation on how to add an associated portlet ID to a folder.

Prior to associating a portlet to a folder, either a content item or a publishable Presentation Template in that folder must be associated with the same portlet.

To associate a portlet with a content item and make it searchable, see IContentItem.setAssociatedPortletID.

To associate a portlet with a publishable Presentation Template, see IPresentationTemplate.setAssociatedPortletID. Note: Publisher does not support making a publishable Presentation Template searchable.

Refer to the Administrator Guide for AquaLogic Interaction Publisher for additional details on portlet association with a content item, a Presentation Template or a folder.


Method Summary
 void addAssociatedPortletID(int portletID)
          Adds an association of a portlet to this folder.
 int[] getAssociatedPortletIDs()
          Returns the object IDs of the portlets associated with this folder or an empty array if no portlets have been associated with the folder.
 IFolderACL getFolderACL()
          Returns the XPFolderACL for this folder.
 java.lang.String getName()
          Returns the folder name.
 IFolder getParentFolder()
          Returns the parent folder, or null if this is the root folder.
 java.lang.String getPath()
          Returns a string representation of the path of a folder.
 java.lang.String getUUID()
          Returns the folder UUID.
 void removeAssociatedPortletID(int portletID)
          Remove a portlet association from this folder.
 void setName(java.lang.String name)
          Sets the folder name.
 void store()
          Stores the folder.
 

Method Detail

addAssociatedPortletID

public void addAssociatedPortletID(int portletID)
Adds an association of a portlet to this folder. If a folder is associated with a portlet, then all its contents, including its subfolders, can be indexed and made searchable when they are published. See IPresentationTemplate.isSearchable for more information.

Note: The recommended way to associate a portlet with a content folder is through the portlet administration settings in the portal.

In order to associate a portlet ID with a folder the portlet ID must be associated with a Presentation Template or content item in that folder or one of its subfolders. To associate a portlet ID with a Presentation Template, use IPresentationTemplate.setAssociatedPortletID. To associate a portlet ID with a content item, use IContentItem.setAssociatedPortletID. If the portlet ID is not associated with a content item or Presentation Template in the folder or one of its subfolders, a ContentException will be thrown when store is called on the folder.

If the portlet ID does not refer to a valid portlet, a ContentException will be thrown when store is called. The ID of a portlet can be retrieved using methods in com.plumtree.remote.prc.IPortletManager or com.plumtree.remote.prc.IPortletTemplateManager.

Note: A folder can have multiple portlet IDs associated with it, but a portlet can only be associated with one folder at a time. If the portlet ID is already associated with another folder, an IllegalStateException will be thrown when store is called.

The portlet ID association will not be persisted until store is called.

Parameters:
portletID - the portlet ID to associate with the folder
Throws:
java.lang.IllegalStateException - if the folder has been deleted
java.lang.IllegalArgumentException - if the portlet ID is less than or equal to 0
See Also:
IPresentationTemplate.isSearchable(), IContentItem.setAssociatedPortletID(int), IPresentationTemplate.setAssociatedPortletID(int)

getAssociatedPortletIDs

public int[] getAssociatedPortletIDs()
Returns the object IDs of the portlets associated with this folder or an empty array if no portlets have been associated with the folder. Note: If you are verifying a content item is searchable by checking if it is contained in a folder with an associated portlet ID, make sure to check all parent folders for associated portlet IDs as well.

For more information about associating portlet IDs with folders, refer to the Administrator Guide for AquaLogic Interaction Publisher.

Returns:
an array of portlet object IDs associated with this folder. The returned array is not ordered.
Throws:
java.lang.IllegalStateException - if the folder has been deleted
See Also:
IPresentationTemplate.isSearchable(), addAssociatedPortletID(int), removeAssociatedPortletID(int)

getFolderACL

public IFolderACL getFolderACL()
Returns the XPFolderACL for this folder.

Returns:
the folder ACL (Access Control List)

getName

public java.lang.String getName()
Returns the folder name.

Returns:
the folder name
Throws:
java.lang.IllegalStateException - if the folder has been removed

getParentFolder

public IFolder getParentFolder()
                        throws ContentSecurityException,
                               ContentException,
                               java.rmi.RemoteException
Returns the parent folder, or null if this is the root folder.

Returns:
the parent folder or null if this is the root folder
Throws:
java.lang.IllegalStateException - if the folder has been deleted or has not been stored
ContentSecurityException - if the user does not have permission to access the parent folder
ContentException - if the method call resulted in a Publisher exception
java.rmi.RemoteException - if there was a communication problem during the execution of the remote method call

getPath

public java.lang.String getPath()
Returns a string representation of the path of a folder. The folder path string has "/" as the delimiter for each path component.

For example, a folder named "Department Codes" that is in the "HR" subfolder of the "Acme Subdivision" top-level folder will return /Acme Subdivision/HR/Department Codes as its folder path.

Returns:
a string representing the path of the folder
Throws:
java.lang.IllegalStateException - if the folder has been deleted or has not been stored

getUUID

public java.lang.String getUUID()
Returns the folder UUID.

Returns:
the folder UUID
Throws:
java.lang.IllegalStateException - if the folder has been deleted or has not been stored

removeAssociatedPortletID

public void removeAssociatedPortletID(int portletID)
Remove a portlet association from this folder. A portlet that was previously associated with this folder can be associated with a different folder after this method is called with the ID of that portlet.

Calling this method with a portlet ID that was not associated with the folder or on a folder that does not have any associated portlet IDs will not result in a exception.

The portlet disassociation will not be persisted until store is called on the folder.

Parameters:
portletID - the portlet ID to associate with the folder
Throws:
java.lang.IllegalStateException - if the folder has been deleted
java.lang.IllegalArgumentException - if the portlet ID is less than or equal to 0
See Also:
addAssociatedPortletID(int), getAssociatedPortletIDs()

setName

public void setName(java.lang.String name)
Sets the folder name.

Parameters:
name - the folder name The name cannot be null, empty, or longer than 255 characters. The string used for the name will be trimmed of leading and trailing whitespace when it is stored and is case-insensitive during name comparison.
Throws:
java.lang.IllegalStateException - if the folder has already been removed
java.lang.IllegalArgumentException - if the name is an empty string or longer than 255 characters

store

public void store()
           throws ContentSecurityException,
                  NameAlreadyInUseException,
                  ContentException,
                  java.rmi.RemoteException
Stores the folder. Modifications to the folder will not be permanently stored until this method is called. This method can be used to persist a newly created folder or to persist a modification to an existing folder such as setting a new folder name.

The security level of a newly-created, persisted folder will inherit the security of its parent folder by default.

Throws:
ContentSecurityException - if the user does not have permission to create a folder in the parent folder
NameAlreadyInUseException - if there is already a folder in the parent folder with the same name
ContentException - if the folder is associated with an invalid portlet ID, or if method call resulted in a Publisher exception
java.rmi.RemoteException - if there was a communication problem during the execution of the remote method call
java.lang.IllegalStateException - if the folder has been removed, its parent folder has been deleted or has not been stored, or there was an attempt to associate the folder with a portlet ID that was already associated with another folder


For additional information on the Oracle® WebCenter Interaction Development Kit, including tutorials, blogs, code samples and more, see the Oracle Technology Network (http://www.oracle.com/technology/index.html).

Copyright ©2010 Oracle® Corporation. All Rights Reserved.