***  This class provides Binary Compatibility only, not Source Compatibility  ***

com.sas.services.information.metadata
Class VirtualFolder

com.sas.services.information.metadata.VirtualFolder
All Implemented Interfaces:
FolderInterface, MetadataInterface, VirtualFolderInterface, MutableContainerInterface, PublicObjectContainerInterface, PublicObjectInterface, java.io.Serializable, java.rmi.Remote

public class VirtualFolder
implements VirtualFolderInterface, java.io.Serializable

An implementation of a virtual folder. Virtual folders are different from normal folder smart objects in that they do not exist within metadata. Because of this, a virtual folder cannot be modified. In fact, most of the methods in this implementatation throw an UnsupportedOperationException.

A virtual folder should only be managed/created within the VirtualFolderManager class.

Since:
9.3
See Also:
Serialized Form

Field Summary
protected  java.util.Map<java.lang.String,com.sas.services.information.publicobject.ProcessorInterface> _actionInterfaces
           
protected  java.lang.String _id
           
protected  java.util.List<PublicObjectInterface> _members
           
protected  java.lang.String _name
           
protected  java.util.List<SearchFilter> _origSearchFilters
           
protected  FolderInterface _parentFolder
          The parent folder.
protected  RepositoryInterface _repository
           
protected  Search _searchManager
           
protected  java.util.List<VirtualFolderInterface> _subFolders
           
 
Fields inherited from interface com.sas.services.information.metadata.FolderInterface
FOLDER_TYPE_BIP
 
Fields inherited from interface com.sas.services.information.metadata.MetadataInterface
METADATA_STATE_DELETED, METADATA_STATE_DESTROYED, METADATA_STATE_NEW, METADATA_STATE_NORMAL, PERMISSION_READMETADATA, PERMISSION_WRITEMETADATA
 
Method Summary
 void addChild(PublicObjectInterface newChild)
          Add a child to this container.
 void addItem(MetadataInterface item)
          Add an item to the folder.
 MetadataInterface addNewItem(java.lang.String name, java.lang.String type)
          Create a new metadata object to add to the folder.
 void addSubfolder(FolderInterface folder)
          Add an existing folder to this one as a subfolder.
 void addSubfolder(VirtualFolderInterface folder)
          Adds a nested virtual folder.
 void deleteItem(MetadataInterface item)
          Delete an item from this folder.
 void deleteSubfolder(java.lang.String name)
          Delete a subfolder.
 PublicObjectInterface getChildAt(int index)
          Returns a child item at the specified location
 int getChildCount()
          Returns the number of children within this container.
 java.util.List<PublicObjectInterface> getChildren()
          Get a List of the children of this container.
 java.util.List getChildren(java.lang.String type)
          Get a list of children of a specific type.
 PublicObjectContainerInterface getContainer()
          Get the object which contains this object.
 java.util.Date getContentCreateDate()
          Get the content create date.
 ContentInfo getContentInfo()
          Returns the ContentInfoobject corresponding to the root of the given PathUrl.
 java.util.Date getContentModifyDate()
          Get the content modification date.
 java.lang.String getFolderType()
          Get the folder type.
 java.lang.String getIdentifier()
          Get the unique ID of this object.
 MetadataInterface getItem(java.lang.String name)
          Get a named item from the folder.
 MetadataInterface getItemByClass(java.lang.String name, java.lang.Class itemClass)
          Get a named item from the folder.
 MetadataInterface getItemByType(java.lang.String name, java.lang.String publicType)
          Get a named item from the folder.
 java.util.List<MetadataInterface> getItems()
          List all items in the folder.
 java.util.List<MetadataInterface> getItemsByClass(java.lang.Class itemClass)
          List the items in the folder that match the Class passed in as a parameter.
 java.util.List<MetadataInterface> getItemsByType(java.lang.String metadataType)
          Get a list of items in the folder of a specific type.
 java.util.List getItemSublist(int start, int end)
          Get a sublist of items from this folder
 java.util.List getItemSublist(int start, int end, java.lang.String sort)
          Get a sublist of items from this folder which are sorted.
 java.lang.String getName()
          Get the name of this object.
protected  java.util.List<SearchFilter> getOriginalFilters()
           
 FolderInterface getParent()
          Return the FolderInterface that contains this object.
 java.lang.String getPath()
          Get path of the current folder.
 PathUrl getPathUrl()
          Get the SBIP URL.
 com.sas.services.information.publicobject.ProcessorInterface getProcessorInterface(java.lang.String interfaceClassName)
          Get the specified action interface.
 java.lang.String getReposId()
          Get the repository ID for the item.
 RepositoryInterface getRepository()
          Get the handle to the repository for this object.
 Search getSearchManager()
          Returns the search manager that is used to populate the contents of a virtual folder.
 FolderInterface getSubfolder(java.lang.String name)
          Get a named subfolder.
 java.util.List getSubfolders()
          Get all the folders immediately below this one in the hiearchy.
 int getTotalNumberOfItems()
          Get the total number of items in this folder
 java.lang.String getType()
          Get the object type.
 TypeDescriptorInterface getTypeDescriptor()
          Get the type descriptor which should have the information from the Type Dictionary in metadata available for the clients.
 boolean hasDuplicate(java.lang.String name, java.lang.String type)
          Check if there's a duplicate object in this folder with the same name and of the same type.
 boolean hasDuplicateSubfolder(java.lang.String name)
          Check if this folder already has a subfolder with the given name.
 void insertChild(PublicObjectInterface child, int index)
          Inserts a child into the parent container at the specified index.
 boolean isEmpty()
          Returns true if this folder has no subfolders and no member objects.
 boolean isItemNameUnique(MetadataInterface member)
          Validate that the name of the metadata object is unique within the Folder.
 FolderInterface makeSubfolder(java.lang.String name)
          Makes a subfolder under the current folder.
 FolderInterface makeSubfolder(java.lang.String name, java.lang.String type)
          Make a subfolder of a specific type.
 boolean moveMembersOnOverflow()
          Check for too many objects in a folder.
 PublicObjectInterface newChild(java.lang.String type, java.lang.String name)
          Create a new metadata object and add it to the container.
 void refresh()
          Refresh the data for this object from the repository.
 void removeChild(PublicObjectInterface child)
          Remove a child from this container.
 void removeItem(MetadataInterface item)
          Remove an item from the folder.
 void removeSubfolder(java.lang.String name)
          Remove a subfolder from the current folder.
 void setContentCreateDate(java.util.Date date)
          Set the Date that the content folder was created.
 void setContentModifyDate(java.util.Date date)
          Set the date when an object was last added to or removed from this folder.
 void setFolderType(java.lang.String type)
          Set the folder type.
 void setRepository(RepositoryInterface repository)
          Set the repository that this item exists in.
 void setSearchManager(Search search)
           
 java.lang.String toString()
           
 
Methods inherited from class com.sas.services.information.metadata.VirtualMetadata
add, addAccessControl, addAttribute, addAttributes, addDocument, addExtension, addGroup, addImplementor, addKeyword, addObjectProperty, addObjectProperty, addPermissions, addProcessorInterface, addPrompt, addPropertySet, addRemark, addResponsibleParty, addTransactionListener, addUsedByPrototype, checkin, checkout, commit, copyTo, countAssociatedObjects, delete, deleteAttribute, deleteAttributes, destroy, getAccessControls, getAttribute, getAttributes, getAuthorizationUtil, getCreateDate, getDescription, getDocuments, getEntityKey, getEntityURL, getExtensions, getGroups, getGUID, getIdentities, getImplementors, getKeywords, getLockedBy, getModifyDate, getObjectProperties, getObjectURI, getParentPath, getParents, getPath, getPaths, getPathUrl, getPermission, getPermissions, getPermissions, getPreviousVersionNames, getPrimaryPropertyGroup, getPrompt, getPrompts, getPropertyBag, getPropertySets, getRemarksList, getRepositoryEntity, getRepositoryName, getReposKey, getResponsibleParties, getState, getTrackingId, getUsageVersion, getUsedByPrototypes, getUsingPrototype, getVersion, isAuthorized, isCompatible, isDeleted, isDestroyed, isLoggingEnabled, isObjectAlive, isReadCompatible, logMessage, mapNameToFilesystem, mapUrlToFilesystem, moveTo, newServiceObject, removeAccessControl, removeDocument, removeExtension, removeGroup, removeImplementor, removeKeyword, removeObjectProperty, removePermissions, removePrompt, removePropertySet, removeResponsibleParty, removeUsedByPrototype, rollback, setAttribute, setAttributes, setDeleted, setDescription, setDocuments, setExtensions, setGroups, setGUID, setKeywords, setName, setObjectProperties, setPermission, setPrimaryPropertyGroup, setPrompt, setPrompts, setRemarksList, setUsingPrototype, startTransaction, toByteArray, transactionEvent, uncheckout, update, updateFromBag, version
 
Methods inherited from interface com.sas.services.information.metadata.MetadataInterface
add, addAccessControl, addAttribute, addAttributes, addDocument, addExtension, addGroup, addImplementor, addKeyword, addObjectProperty, addObjectProperty, addPermissions, addPrompt, addPropertySet, addRemark, addResponsibleParty, addTransactionListener, addUsedByPrototype, checkin, checkout, commit, copyTo, countAssociatedObjects, delete, deleteAttribute, deleteAttributes, destroy, getAccessControls, getAttribute, getAttributes, getAuthorizationUtil, getCreateDate, getDescription, getDocuments, getEntityKey, getEntityURL, getExtensions, getGroups, getGUID, getIdentities, getImplementors, getKeywords, getLockedBy, getModifyDate, getObjectProperties, getParentPath, getParents, getPath, getPaths, getPermission, getPermissions, getPermissions, getPreviousVersionNames, getPrimaryPropertyGroup, getPrompt, getPrompts, getPropertyBag, getPropertySets, getRemarksList, getRepositoryEntity, getRepositoryName, getReposKey, getResponsibleParties, getState, getTrackingId, getUsageVersion, getUsedByPrototypes, getUsingPrototype, getVersion, isAuthorized, isCompatible, isDeleted, isDestroyed, isLoggingEnabled, isObjectAlive, isReadCompatible, logMessage, mapNameToFilesystem, mapUrlToFilesystem, moveTo, newServiceObject, removeAccessControl, removeDocument, removeExtension, removeGroup, removeImplementor, removeKeyword, removeObjectProperty, removePermissions, removePrompt, removePropertySet, removeResponsibleParty, removeUsedByPrototype, rollback, setAttribute, setAttributes, setDeleted, setDescription, setDocuments, setExtensions, setGroups, setGUID, setKeywords, setName, setObjectProperties, setPermission, setPrimaryPropertyGroup, setPrompt, setPrompts, setRemarksList, setUsingPrototype, startTransaction, toByteArray, transactionEvent, uncheckout, update, updateFromBag, version
 
Methods inherited from interface com.sas.services.information.publicobject.PublicObjectInterface
addProcessorInterface, getObjectURI
 

Field Detail

_parentFolder

protected FolderInterface _parentFolder
The parent folder. May be a folder or another virtual folder.


_repository

protected RepositoryInterface _repository

_searchManager

protected Search _searchManager

_actionInterfaces

protected java.util.Map<java.lang.String,com.sas.services.information.publicobject.ProcessorInterface> _actionInterfaces

_members

protected java.util.List<PublicObjectInterface> _members

_subFolders

protected java.util.List<VirtualFolderInterface> _subFolders

_name

protected java.lang.String _name

_id

protected java.lang.String _id

_origSearchFilters

protected java.util.List<SearchFilter> _origSearchFilters
Method Detail

getIdentifier

public java.lang.String getIdentifier()
                               throws ServiceException,
                                      java.rmi.RemoteException
Description copied from interface: PublicObjectInterface
Get the unique ID of this object.

Specified by:
getIdentifier in interface PublicObjectInterface
Overrides:
getIdentifier in class VirtualMetadata
Returns:
String
Throws:
ServiceException
java.rmi.RemoteException

getReposId

public java.lang.String getReposId()
                            throws java.rmi.RemoteException
Description copied from interface: MetadataInterface
Get the repository ID for the item. This should be a string that uniquely identifies the object within this repository.

Specified by:
getReposId in interface MetadataInterface
Overrides:
getReposId in class VirtualMetadata
Returns:
The repository identifier for this object.
Throws:
java.rmi.RemoteException - if an error occurs

refresh

public void refresh()
             throws ServiceException,
                    java.rmi.RemoteException
Description copied from interface: MetadataInterface
Refresh the data for this object from the repository.

Specified by:
refresh in interface MetadataInterface
Overrides:
refresh in class VirtualMetadata
Throws:
ServiceException - if a repository error occurs.
java.rmi.RemoteException - in the event of remote object failure.

getName

public java.lang.String getName()
                         throws java.rmi.RemoteException
Description copied from interface: PublicObjectInterface
Get the name of this object.

Specified by:
getName in interface PublicObjectInterface
Overrides:
getName in class VirtualMetadata
Returns:
String
Throws:
java.rmi.RemoteException

getSearchManager

public Search getSearchManager()
                        throws ServiceException,
                               java.rmi.RemoteException
Description copied from interface: VirtualFolderInterface
Returns the search manager that is used to populate the contents of a virtual folder.

Specified by:
getSearchManager in interface VirtualFolderInterface
Returns:
search manager
Throws:
ServiceException - if a repository error occurs.
java.rmi.RemoteException

setSearchManager

public void setSearchManager(Search search)
                      throws ServiceException,
                             java.rmi.RemoteException
Throws:
ServiceException
java.rmi.RemoteException

getOriginalFilters

protected java.util.List<SearchFilter> getOriginalFilters()

getRepository

public RepositoryInterface getRepository()
                                  throws java.rmi.RemoteException
Description copied from interface: MetadataInterface
Get the handle to the repository for this object.

Specified by:
getRepository in interface MetadataInterface
Overrides:
getRepository in class VirtualMetadata
Returns:
A handle to the repository this item exists in.
Throws:
java.rmi.RemoteException - if an error occurs

setRepository

public void setRepository(RepositoryInterface repository)
                   throws java.lang.IllegalStateException,
                          java.rmi.RemoteException
Description copied from interface: MetadataInterface
Set the repository that this item exists in.

Specified by:
setRepository in interface MetadataInterface
Overrides:
setRepository in class VirtualMetadata
Parameters:
repository - A handle to the repository for this object.
Throws:
java.lang.IllegalStateException - If the repository has already been set.
java.rmi.RemoteException - if an error occurs

getContainer

public PublicObjectContainerInterface getContainer()
                                            throws ServiceException,
                                                   java.rmi.RemoteException
Description copied from interface: PublicObjectInterface
Get the object which contains this object.

Specified by:
getContainer in interface PublicObjectInterface
Overrides:
getContainer in class VirtualMetadata
Returns:
PublicObjectContainerInterface
Throws:
ServiceException
java.rmi.RemoteException

getParent

public FolderInterface getParent()
                          throws ServiceException,
                                 java.rmi.RemoteException
Description copied from interface: MetadataInterface
Return the FolderInterface that contains this object. For objects in the SAS Folder hierarchy, there should be exactly one parent folder.

Specified by:
getParent in interface FolderInterface
Specified by:
getParent in interface MetadataInterface
Overrides:
getParent in class VirtualMetadata
Returns:
The FolderInterface that contains this object as a member.
Throws:
ServiceException - if an error occurs
java.rmi.RemoteException - if an error occurs

getPath

public java.lang.String getPath()
                         throws java.rmi.RemoteException
Description copied from interface: FolderInterface
Get path of the current folder. This is the path starting with the Tree just below the Bip Service SoftwareComponent down to this folder, with forward-slash separators.

Specified by:
getPath in interface FolderInterface
Returns:
The path string for this folder.
Throws:
java.rmi.RemoteException - in the event of remote object failure.

getPathUrl

public PathUrl getPathUrl()
                   throws java.lang.IllegalStateException,
                          ServiceException,
                          java.rmi.RemoteException
Description copied from interface: PublicObjectInterface
Get the SBIP URL. This is an object that contains the repository name, the path from a root to the object, the object's name and the object's type. In the SAS Metadata Server, an object is in a rooted Tree if it has a path to a Tree that's associated to a SoftwareComponent with a ClassIdentifier of "E5F27790-2149-11D6-8828-AA0004006D06", and a name of "BIP Service".

Specified by:
getPathUrl in interface PublicObjectInterface
Overrides:
getPathUrl in class VirtualMetadata
Returns:
a PathUrl value with the object's location in a rooted tree. If the object isn't in a rooted tree, null is returned.
Throws:
ServiceException - if a repository error occurs.
java.rmi.RemoteException - if a remote object error occurs.
java.lang.IllegalStateException

getType

public java.lang.String getType()
                         throws java.rmi.RemoteException
Description copied from interface: MetadataInterface
Get the object type. Subclasses of Metadata will return a repository-neutral type string. If no subclass exists, Metadata returns the repository-specific type.

Specified by:
getType in interface MetadataInterface
Overrides:
getType in class VirtualMetadata
Returns:
A type string for the object.
Throws:
java.rmi.RemoteException - if an error occurs

getTypeDescriptor

public TypeDescriptorInterface getTypeDescriptor()
                                          throws ServiceException,
                                                 java.rmi.RemoteException
Description copied from interface: PublicObjectInterface
Get the type descriptor which should have the information from the Type Dictionary in metadata available for the clients.

Specified by:
getTypeDescriptor in interface PublicObjectInterface
Overrides:
getTypeDescriptor in class VirtualMetadata
Returns:
TypeDescriptorInterface
Throws:
ServiceException
java.rmi.RemoteException

getFolderType

public java.lang.String getFolderType()
                               throws ServiceException,
                                      java.rmi.RemoteException
Description copied from interface: FolderInterface
Get the folder type.

Specified by:
getFolderType in interface FolderInterface
Returns:
A String with the type of folder.
Throws:
ServiceException - If a repository error occurs.
java.rmi.RemoteException - In the event of remote object failure.

getProcessorInterface

public com.sas.services.information.publicobject.ProcessorInterface getProcessorInterface(java.lang.String interfaceClassName)
                                                                                   throws ServiceException,
                                                                                          java.rmi.RemoteException
Description copied from interface: PublicObjectInterface
Get the specified action interface.

Specified by:
getProcessorInterface in interface PublicObjectInterface
Overrides:
getProcessorInterface in class VirtualMetadata
Returns:
ProcessorInterface
Throws:
ServiceException
java.rmi.RemoteException

getItem

public MetadataInterface getItem(java.lang.String name)
                          throws ServiceException,
                                 java.rmi.RemoteException
Description copied from interface: FolderInterface
Get a named item from the folder. With only a name, we can't guarantee that the object coming back will be the one the user wants. Even if we ask for a type, name collisions can occur.

Specified by:
getItem in interface FolderInterface
Parameters:
name - The name of the object to return.
Returns:
A MetadataInterface object matching name.
Throws:
ServiceException - if a repository error occurs.
java.rmi.RemoteException - in the event of remote object failure.

getItemByClass

public MetadataInterface getItemByClass(java.lang.String name,
                                        java.lang.Class itemClass)
                                 throws ServiceException,
                                        java.rmi.RemoteException
Description copied from interface: FolderInterface
Get a named item from the folder. It must match both the name and the Class provided. If no Class is provided on the call, the first object matching the name is retuned. If no match is found, null is returned.

Specified by:
getItemByClass in interface FolderInterface
Parameters:
name - The name of the object to return.
itemClass - The Class of the object to return.
Returns:
A MetadataInterface object in the folder that matches the name and Class requested.
Throws:
ServiceException - if a repository error occurs.
java.rmi.RemoteException - in the event of remote object failure.

getItemByType

public MetadataInterface getItemByType(java.lang.String name,
                                       java.lang.String publicType)
                                throws ServiceException,
                                       java.rmi.RemoteException
Description copied from interface: FolderInterface
Get a named item from the folder. With only a name, we can't guarantee that the object coming back will be the one the user wants. Even if we ask for a type, name collisions can occur.

Specified by:
getItemByType in interface FolderInterface
Parameters:
name - The name of the object to return.
publicType - The type of object to return.
Returns:
A MetadataInterface object that matches the name and type requested, or null if none is found.
Throws:
ServiceException - if a repository error occurs.
java.rmi.RemoteException - in the event of remote object failure.

getItems

public java.util.List<MetadataInterface> getItems()
                                           throws ServiceException,
                                                  java.rmi.RemoteException
Description copied from interface: FolderInterface
List all items in the folder. These are only the individual items. Subfolders will be returned separately.

Specified by:
getItems in interface FolderInterface
Returns:
A List of MetadataInterface objects in this folder.
Throws:
ServiceException - if a repository error occurs.
java.rmi.RemoteException - in the event of remote object failure.

getItemsByClass

public java.util.List<MetadataInterface> getItemsByClass(java.lang.Class itemClass)
                                                  throws ServiceException,
                                                         java.rmi.RemoteException
Description copied from interface: FolderInterface
List the items in the folder that match the Class passed in as a parameter. This Class should be a subclass of MetadataInterface.

Specified by:
getItemsByClass in interface FolderInterface
Parameters:
itemClass - The Class used to filter the folder objects to return.
Returns:
A List of MetadataInterface objects that match the itemClass.
Throws:
ServiceException - If a repository error occurs.
java.rmi.RemoteException - in the event of remote object failure.

getItemsByType

public java.util.List<MetadataInterface> getItemsByType(java.lang.String metadataType)
                                                 throws ServiceException,
                                                        java.rmi.RemoteException
Description copied from interface: FolderInterface
Get a list of items in the folder of a specific type.

Specified by:
getItemsByType in interface FolderInterface
Parameters:
metadataType - A String that will match the output from the object's getType method.
Returns:
A List of MetadataInterface objects whose getType() method returns the string specified by metadataType.
Throws:
ServiceException - if a repository error occurs.
java.rmi.RemoteException - in the event of remote object failure.

addSubfolder

public void addSubfolder(VirtualFolderInterface folder)
                  throws ServiceException,
                         java.rmi.RemoteException
Description copied from interface: VirtualFolderInterface
Adds a nested virtual folder.

Specified by:
addSubfolder in interface VirtualFolderInterface
Parameters:
folder - a sub or nested virtual folder
Throws:
ServiceException - if a repository error occurs.
java.rmi.RemoteException

getSubfolder

public FolderInterface getSubfolder(java.lang.String name)
                             throws ServiceException,
                                    java.rmi.RemoteException
Description copied from interface: FolderInterface
Get a named subfolder.

Specified by:
getSubfolder in interface FolderInterface
Parameters:
name - The name of the folder to return.
Returns:
A FolderInterface object with the name requested, or null if it doesn't exist.
Throws:
ServiceException - if a repository error occurs.
java.rmi.RemoteException - in the event of remote object failure.

getSubfolders

public java.util.List getSubfolders()
                             throws ServiceException,
                                    java.rmi.RemoteException
Description copied from interface: FolderInterface
Get all the folders immediately below this one in the hiearchy.

Specified by:
getSubfolders in interface FolderInterface
Returns:
A List of FolderInterface objects that are members of this folder.
Throws:
ServiceException - if a repository error occurs.
java.rmi.RemoteException - in the event of remote object failure.

getTotalNumberOfItems

public int getTotalNumberOfItems()
                          throws java.rmi.RemoteException,
                                 ServiceException
Description copied from interface: FolderInterface
Get the total number of items in this folder

Specified by:
getTotalNumberOfItems in interface FolderInterface
Returns:
The number of items in the folder.
Throws:
java.rmi.RemoteException
ServiceException

hasDuplicate

public boolean hasDuplicate(java.lang.String name,
                            java.lang.String type)
                     throws ServiceException,
                            java.rmi.RemoteException
Description copied from interface: FolderInterface
Check if there's a duplicate object in this folder with the same name and of the same type.

Specified by:
hasDuplicate in interface FolderInterface
Parameters:
name - The name to check for.
type - The type to check for. This should be the value of the PublicType attribute because I can't necessarily instantiate the object if the current user doesn't have ReadMetadata permission on it. I need to construct a filter to do a getCountNoSecurity with.
Returns:
true if this folder has an object with the given name and type, false otherwise.
Throws:
ServiceException - If a repository error occurs.
java.rmi.RemoteException - In the event of remote object failure.

hasDuplicateSubfolder

public boolean hasDuplicateSubfolder(java.lang.String name)
                              throws ServiceException,
                                     java.rmi.RemoteException
Description copied from interface: FolderInterface
Check if this folder already has a subfolder with the given name.

Specified by:
hasDuplicateSubfolder in interface FolderInterface
Parameters:
name - The name of the subfolder to check for.
Returns:
true if this folder has a subfolder with the given name, false otherwise.
Throws:
ServiceException - If a metadata server, or other service level error occurs.
java.rmi.RemoteException - In the event of remote object failure.

isEmpty

public boolean isEmpty()
                throws ServiceException,
                       java.rmi.RemoteException
Description copied from interface: FolderInterface
Returns true if this folder has no subfolders and no member objects. This method may return false even if both FolderInterface.getSubfolders() and FolderInterface.getItems() return empty lists due to objects hidden by access controls.

Specified by:
isEmpty in interface FolderInterface
Returns:
true if this folder has no subfolders and no member objects
Throws:
ServiceException - If a metadata server, or other service level error occurs.
java.rmi.RemoteException - In the event of remote object failure.

isItemNameUnique

public boolean isItemNameUnique(MetadataInterface member)
                         throws ServiceException,
                                java.rmi.RemoteException
Description copied from interface: FolderInterface
Validate that the name of the metadata object is unique within the Folder. The object should already be an item in the folder. If it's not, then the hasDuplicate call should be made. If the member name is unique in the folder, the method returns true. Otherwise it returns false. This method does not validate the name string itself.

Specified by:
isItemNameUnique in interface FolderInterface
Parameters:
member - The item to check for a unique name in the folder.
Returns:
True if the member's name is unique, false otherwise.
Throws:
ServiceException - If a repository error occurs.
java.rmi.RemoteException - In the event of remote object failure.

addChild

public void addChild(PublicObjectInterface newChild)
              throws ServiceException,
                     java.rmi.RemoteException
Description copied from interface: MutableContainerInterface
Add a child to this container. For folders, the new child can be a sub folder, or a simple element.

Specified by:
addChild in interface MutableContainerInterface
Parameters:
newChild - The new child object to add to this container.
Throws:
ServiceException - If a repository error occurs.
java.rmi.RemoteException - In the event of remote object failure.

getChildren

public java.util.List<PublicObjectInterface> getChildren()
                                                  throws ServiceException,
                                                         java.rmi.RemoteException
Description copied from interface: PublicObjectContainerInterface
Get a List of the children of this container.

Specified by:
getChildren in interface PublicObjectContainerInterface
Returns:
All child nodes below this container. For folder, this includes subfolders and members.
Throws:
ServiceException - If a repository error occurs.
java.rmi.RemoteException - In the event of remote object failure.

getChildCount

public int getChildCount()
                  throws ServiceException,
                         java.rmi.RemoteException
Description copied from interface: PublicObjectContainerInterface
Returns the number of children within this container.

Specified by:
getChildCount in interface PublicObjectContainerInterface
Returns:
child count
Throws:
ServiceException - If a repository error occurs.
java.rmi.RemoteException - In the event of remote object failure.

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

removeChild

public void removeChild(PublicObjectInterface child)
                 throws ServiceException,
                        java.rmi.RemoteException
Description copied from interface: MutableContainerInterface
Remove a child from this container. Trying to remove a child and not moving it to another container may be invalid.

Specified by:
removeChild in interface MutableContainerInterface
Parameters:
child - The child to remove from this container.
Throws:
ServiceException - If a repository error occurs.
java.rmi.RemoteException - In the event of remote object failure.

insertChild

public void insertChild(PublicObjectInterface child,
                        int index)
                 throws ServiceException,
                        java.rmi.RemoteException
Description copied from interface: MutableContainerInterface
Inserts a child into the parent container at the specified index.

Specified by:
insertChild in interface MutableContainerInterface
Parameters:
child - the new child to add to this container
index - the index where the child is to be inserted into
Throws:
ServiceException - If a repository error occurs.
java.rmi.RemoteException - In the event of remote object failure.

getChildAt

public PublicObjectInterface getChildAt(int index)
                                 throws ServiceException,
                                        java.rmi.RemoteException
Description copied from interface: PublicObjectContainerInterface
Returns a child item at the specified location

Specified by:
getChildAt in interface PublicObjectContainerInterface
Parameters:
index - the index of the child
Returns:
the child item at the specified index
Throws:
ServiceException
java.rmi.RemoteException

getChildren

public java.util.List getChildren(java.lang.String type)
                           throws ServiceException,
                                  java.rmi.RemoteException
Description copied from interface: PublicObjectContainerInterface
Get a list of children of a specific type. The type string should be the unlocalized type, listed as the "Type Abbreviation" in the type dictionary.

Specified by:
getChildren in interface PublicObjectContainerInterface
Parameters:
type - The "type abbreviation" which will be used to filter the children returned from the container.
Returns:
A List of child elements that match the type specified.
Throws:
ServiceException - If a repository error occurs.
java.rmi.RemoteException - In the event of remote object failure.

newChild

public PublicObjectInterface newChild(java.lang.String type,
                                      java.lang.String name)
                               throws ServiceException,
                                      java.rmi.RemoteException
Description copied from interface: PublicObjectContainerInterface
Create a new metadata object and add it to the container.

Specified by:
newChild in interface PublicObjectContainerInterface
Parameters:
type - The public object type to add to the container.
name - The name of the new object
Returns:
The newly created public object.
Throws:
ServiceException - If a repository error occurs.
java.rmi.RemoteException - In the event of remote object faiure.

getItemSublist

public java.util.List getItemSublist(int start,
                                     int end)
                              throws java.rmi.RemoteException,
                                     ServiceException
Description copied from interface: FolderInterface
Get a sublist of items from this folder

Specified by:
getItemSublist in interface FolderInterface
Parameters:
start - item number to start at
end - item number to end at
Returns:
The sublist of items.
Throws:
java.rmi.RemoteException
ServiceException

getItemSublist

public java.util.List getItemSublist(int start,
                                     int end,
                                     java.lang.String sort)
                              throws java.rmi.RemoteException,
                                     ServiceException
Description copied from interface: FolderInterface
Get a sublist of items from this folder which are sorted.

Specified by:
getItemSublist in interface FolderInterface
Parameters:
start - item number to start at
end - item number to end at
sort - one of name, namedescending, desc, descdescending, date, datedescending, type, typedescending, defaults to name
Returns:
The sorted sublist of items.
Throws:
java.rmi.RemoteException
ServiceException

makeSubfolder

public FolderInterface makeSubfolder(java.lang.String name,
                                     java.lang.String type)
                              throws ServiceException,
                                     java.rmi.RemoteException
Description copied from interface: FolderInterface
Make a subfolder of a specific type. the type string should be the smart object type.

Specified by:
makeSubfolder in interface FolderInterface
Parameters:
name - The name of the new subfolder.
type - The smart object type of the new subfolder.
Returns:
A new subfolder of this folder.
Throws:
ServiceException - If the type is not a FolderInterface derivative, or if a repository error occurs.
java.rmi.RemoteException - In the event of remote object failure.

makeSubfolder

public FolderInterface makeSubfolder(java.lang.String name)
                              throws ServiceException,
                                     java.rmi.RemoteException
Description copied from interface: FolderInterface
Makes a subfolder under the current folder.

Specified by:
makeSubfolder in interface FolderInterface
Parameters:
name - The name of the folder to create.
Returns:
The new folder
Throws:
ServiceException - if a repository error occurs.
java.rmi.RemoteException - in the event of remote object failure.

addItem

public void addItem(MetadataInterface item)
             throws ServiceException,
                    java.rmi.RemoteException
Description copied from interface: FolderInterface
Add an item to the folder. The item should already exist. This method makes the association that puts it in this folder, but doesn't create the item in the store.

Specified by:
addItem in interface FolderInterface
Parameters:
item - The item to add to this folder.
Throws:
ServiceException - if a repository error occurs.
java.rmi.RemoteException - in the event of remote object failure.

addNewItem

public MetadataInterface addNewItem(java.lang.String name,
                                    java.lang.String type)
                             throws ServiceException,
                                    java.rmi.RemoteException
Description copied from interface: FolderInterface
Create a new metadata object to add to the folder.

Specified by:
addNewItem in interface FolderInterface
Parameters:
name - The name of the new object.
type - The repository-specific type of the new object.
Returns:
The new metadata object.
Throws:
ServiceException - In the event of repository failure.
java.rmi.RemoteException - In the event of remote object failure.

addSubfolder

public void addSubfolder(FolderInterface folder)
                  throws ServiceException,
                         java.rmi.RemoteException
Description copied from interface: FolderInterface
Add an existing folder to this one as a subfolder.

Specified by:
addSubfolder in interface FolderInterface
Parameters:
folder - The folder to add to this one as a subfolder.
Throws:
ServiceException - if a repository error occurs.
java.rmi.RemoteException - in the event of remote object failure.

deleteItem

public void deleteItem(MetadataInterface item)
                throws ServiceException,
                       java.rmi.RemoteException
Description copied from interface: FolderInterface
Delete an item from this folder. This method deletes the item from the repository as well as removing it from the folder.

Specified by:
deleteItem in interface FolderInterface
Parameters:
item - The item to delete from this folder.
Throws:
ServiceException - if a repository error occurs.
java.rmi.RemoteException - in the event of remote object failure.

deleteSubfolder

public void deleteSubfolder(java.lang.String name)
                     throws ServiceException,
                            java.rmi.RemoteException
Description copied from interface: FolderInterface
Delete a subfolder. This will only work if the folder is empty.

Specified by:
deleteSubfolder in interface FolderInterface
Parameters:
name - The name of the subfolder to delete.
Throws:
ServiceException - if a repository error occurs.
java.rmi.RemoteException - in the event of remote object failure.

getContentCreateDate

public java.util.Date getContentCreateDate()
                                    throws ServiceException,
                                           java.rmi.RemoteException
Description copied from interface: FolderInterface
Get the content create date. This is maintained separately from the metadata create date, which is when the Tree object itself was created. This date indicates when the content folder was created.

Specified by:
getContentCreateDate in interface FolderInterface
Returns:
The Date when the content folder was created.
Throws:
ServiceException - If a service level error occured.
java.rmi.RemoteException - In the event of remote object failure.

getContentInfo

public ContentInfo getContentInfo()
                           throws ServiceException,
                                  java.rmi.RemoteException
Description copied from interface: FolderInterface
Returns the ContentInfoobject corresponding to the root of the given PathUrl.

Implementation Note: computed results are cached; repeated calls are not expensive.

Specified by:
getContentInfo in interface FolderInterface
Returns:
The ContentInfo object with the path and credentials for the content area, or null if the folder isn't content mapped.
Throws:
ServiceException - If a repository error occurs.
java.rmi.RemoteException - In the event of remote object failure.

getContentModifyDate

public java.util.Date getContentModifyDate()
                                    throws ServiceException,
                                           java.rmi.RemoteException
Description copied from interface: FolderInterface
Get the content modification date. This is the date and time of the most recent addition to or deletion from this folder. This information may be maintained by the client.

Specified by:
getContentModifyDate in interface FolderInterface
Returns:
The Date when an object was last added or removed.
Throws:
ServiceException - If a service level error occured.
java.rmi.RemoteException - In the event of remote object failure.

moveMembersOnOverflow

public boolean moveMembersOnOverflow()
                              throws ServiceException,
                                     java.rmi.RemoteException
Description copied from interface: FolderInterface
Check for too many objects in a folder. If the folder contains more than a limit defined by the folder, the current members of the folder are moved to a new subfolder. The new subfolder will be named "1", "2", etc. Subfolders are not considered in the count.

Specified by:
moveMembersOnOverflow in interface FolderInterface
Returns:
true if objects were moved to a subfolder
Throws:
ServiceException - If a repository error occurs.
java.rmi.RemoteException - In the event of remote object failure.

removeItem

public void removeItem(MetadataInterface item)
                throws ServiceException,
                       java.rmi.RemoteException
Description copied from interface: FolderInterface
Remove an item from the folder. This call just breaks the association with the item, and leaves it otherwise undisturbed in the repository.

Specified by:
removeItem in interface FolderInterface
Parameters:
item - The item to remove from this folder.
Throws:
ServiceException - if a repository error occurs.
java.rmi.RemoteException - in the event of remote object failure.

removeSubfolder

public void removeSubfolder(java.lang.String name)
                     throws ServiceException,
                            java.rmi.RemoteException
Description copied from interface: FolderInterface
Remove a subfolder from the current folder. This breaks the association, but does not remove it from the repository.

Specified by:
removeSubfolder in interface FolderInterface
Parameters:
name - The name of the subfolder to remove.
Throws:
ServiceException - if a repository error occurs.
java.rmi.RemoteException - in the event of remote object failure.

setContentCreateDate

public void setContentCreateDate(java.util.Date date)
                          throws ServiceException,
                                 java.rmi.RemoteException
Description copied from interface: FolderInterface
Set the Date that the content folder was created.

Specified by:
setContentCreateDate in interface FolderInterface
Parameters:
date - The date that the mapped content folder was created.
Throws:
ServiceException - If a service level error occured.
java.rmi.RemoteException - In the event of remote object failure.

setContentModifyDate

public void setContentModifyDate(java.util.Date date)
                          throws ServiceException,
                                 java.rmi.RemoteException
Description copied from interface: FolderInterface
Set the date when an object was last added to or removed from this folder.

Specified by:
setContentModifyDate in interface FolderInterface
Parameters:
date - The last time the contents of this folder were modified.
Throws:
ServiceException - If a service level error occured.
java.rmi.RemoteException - In the event of remote object failure.

setFolderType

public void setFolderType(java.lang.String type)
                   throws ServiceException,
                          java.rmi.RemoteException
Description copied from interface: FolderInterface
Set the folder type.

Specified by:
setFolderType in interface FolderInterface
Parameters:
type - The String indicating the type of the folder.
Throws:
ServiceException - If a repository error occurs.
java.rmi.RemoteException - In the event of remote object failure.

***  This class provides Binary Compatibility only, not Source Compatibility  ***




Copyright © 2009 SAS Institute Inc. All Rights Reserved.