com.sas.services.information.metadata
Class Folder

com.sas.services.information.metadata.Folder
All Implemented Interfaces:
FolderInterface, MetadataInterface, MutableContainerInterface, PublicObjectContainerInterface, PublicObjectInterface, com.sas.services.util.UpgradeInterface, com.sas.storage.editableproperties.LocalizableProperties, java.io.Serializable, java.rmi.Remote
Direct Known Subclasses:
DavPerson, FilteredFolder, MyDocuments, MyInbox, MyResults, PersonalRepository

public class Folder
implements FolderInterface, com.sas.storage.editableproperties.LocalizableProperties, java.io.Serializable, com.sas.services.util.UpgradeInterface

This class implements the FolderInterface. It allows manipulation of a folder, getting, adding, removing or deleting contents (items) or subfolders.

Client code should avoid casting to this class. Instead, cast to FolderInterface.

Since:
1.0
See Also:
Serialized Form

Field Summary
static java.lang.String CREATION_DATE
           
static com.sas.util.UsageVersion CURRENT_VERSION
           
static java.lang.String MODIFIED_DATE
           
static com.sas.util.UsageVersion OLDEST_VERSION
           
static java.lang.String REPOSITORY_CONTENT_MAPPING
          Deprecated. 
 
Fields inherited from class com.sas.services.information.metadata.Metadata
_actionInterfaces, _children, _isCompatible, _isDestroyPending, _isReadCompatible, _myRefreshInterval, _myState, _omrCreateDate, _omrModifyDate, _repository, _repositoryFlag, _repositoryObject, _treeRefreshTime, formats, gmtZone, OMSOBJ_STRING, REPOSITORY_DAV, REPOSITORY_LOMR, REPOSITORY_NONE, REPOSITORY_OMR, SLASH
 
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
 
Constructor Summary
  Folder()
          Default constructor.
  Folder(java.lang.Object o)
          Construct a folder given an object to initialize with.
protected Folder(java.lang.Object o, java.lang.Class theClass)
          Construct a folder given an object to initialize with.
  Folder(RepositoryInterface repos, java.lang.String name, FolderInterface parent)
          Construct a new Folder metadata object using the Repository name and parent folder.
  Folder(com.sas.metadata.remote.Tree o)
           
  Folder(com.sas.metadata.remote.impl.TreeImpl_Stub o)
           
  Folder(com.sas.metadata.remote.impl.TreeImpl o)
           
 
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.
 FolderInterface copyTo(FolderInterface folder, java.lang.String name)
          Make a copy of this object.
 void delete()
          Delete this object from its repository.
 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 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.
 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.
static long getFolderRefresh()
          Get the interval for keeping cached subfolder information before forcing a trip to the server to refresh it.
 java.lang.String getFolderType()
          Get the folder type.
 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 metadataType)
          Get a named item from the folder.
static long getItemRefresh()
          Get the interval to keep member item information before forcing a trip to the server to refresh it.
 java.util.List getItems()
          List all items in the folder.
 java.util.List getItemsByClass(java.lang.Class itemClass)
          List the items in the folder that match the Class passed in as a parameter.
 java.util.List 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.
 com.sas.storage.editableproperties.PropertyList getLocalizableProperties()
           
 FolderInterface getParent()
          Get parent folder.
 java.lang.String getPath()
          Get the path string for this 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()
          Return a type string to identify this object.
 boolean hasContentBackedItems()
           
 boolean hasContentBacking()
           
 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)
          Determines if this folder already has a subfolder with the given name.
 boolean hasDuplicateSubfolder(java.lang.String name, FolderInterface subFolderToExclude)
          Determines if this folder already has a subfolder with the given name excluding the specified subfolder.
 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)
          Create a new Folder with the given name of the given type and make it a new subfolder of this folder.
 java.lang.String mapNameToFilesystem(int hostOS, java.lang.String prefix, java.lang.String suffix)
          Map the metadata object name to a file system path.
 java.lang.String mapUrlToFilesystem(int hostOS, java.lang.String prefix, java.lang.String suffix)
          Map the metadata object's SBIP Url to a file system path.
 boolean moveMembersOnOverflow()
          Check for too many objects in a folder.
 void moveTo(FolderInterface folder)
          Move this object to a new folder.
 PublicObjectInterface newChild(java.lang.String type, java.lang.String name)
          Create a new metadata object and add it to the container.
 java.lang.Object newServiceObject()
          For objects that support it, get an "active" interface for the metadata object.
 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.
static void setFolderRefresh(long interval)
          Set the interval for keeping cached subfolder information before forcing a trip to the server to refresh it.
 void setFolderType(java.lang.String type)
          Set the folder type.
static void setItemRefresh(long interval)
          Set the interval to keep member item information before forcing a trip to the server to refresh it.
 void setLocalizableProperties(com.sas.storage.editableproperties.PropertyMap map)
           
 void setName(java.lang.String name)
          Set the name of the object.
 void setRepository(RepositoryInterface ri)
          Set the repository that this item exists in.
 void upgradeFromPreviousVersion()
          Upgrades an object from a previous version to the most current version supported.
 
Methods inherited from class com.sas.services.information.metadata.Metadata
add, addAccessControl, addAttribute, addAttributes, addDocument, addExtension, addGroup, addImplementor, addKeyword, addObjectProperty, addObjectProperty, addPermissions, addProcessorInterface, addPrompt, addPropertySet, addRemark, addResponsibleParty, addToList, addTransactionListener, addUsedByPrototype, checkin, checkout, checkPulse, clearInformationService, commit, countAssociatedObjects, deleteAttribute, deleteAttributes, deleteRootObject, destroy, fromByteArray, getAccessControls, getAttribute, getAttributes, getAuthorizationUtil, getContainer, getCreateDate, getDefaultLocalizableProperties, getDescription, getDocuments, getEntityKey, getEntityURL, getExtensions, getGroups, getGUID, getIdentifier, getIdentities, getImplementors, getInformationService, getKeywords, getLockedBy, getModifyDate, getName, getObjectProperties, getObjectURI, getParentPath, getParents, getPath, getPaths, getPathUrl, getPathUrl, getPermission, getPermissions, getPermissions, getPreviousVersionNames, getPrimaryPropertyGroup, getProcessorInterface, getPrompt, getPrompts, getPropertyBag, getPropertySets, getRemarksList, getReposId, getRepository, getRepositoryEntity, getRepositoryName, getReposKey, getResponsibleParties, getState, getTrackingId, getTreeRefresh, getTypeDescriptor, getUsageVersion, getUsedByPrototypes, getUsingPrototype, getVersion, hashCode, isAuthorized, isCompatible, isConnectionException, isDeleted, isDestroyed, isLoggingEnabled, isLoggingEnabled, isObjectAlive, isReadCompatible, logFormat, logFormat, logFormat, logFormat, logFormat, logFormat, logFormat, logFormat, logMessage, logMessage, logMessage, logMessage, logThrowable, logThrowable, notifyTransactionListeners, removeAccessControl, removeDocument, removeExtension, removeFromList, removeGroup, removeImplementor, removeKeyword, removeObjectProperty, removePermissions, removePrompt, removePropertySet, removeResponsibleParty, removeUsedByPrototype, rollback, setAttribute, setAttributes, setCompatibility, setDefaultLocalizableProperties, setDeleted, setDescription, setDocuments, setExtensions, setGroups, setGUID, setKeywords, setObjectProperties, setPermission, setPrimaryPropertyGroup, setPrompt, setPrompts, setRemarksList, setTreeRefresh, setUsingPrototype, startTransaction, toByteArray, toString, transactionEvent, uncheckout, update, updateFromBag, validateNameAndFolder, validateNameAndFolder, 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, countAssociatedObjects, 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, getReposId, getRepository, getRepositoryEntity, getRepositoryName, getReposKey, getResponsibleParties, getState, getTrackingId, getUsageVersion, getUsedByPrototypes, getUsingPrototype, getVersion, isAuthorized, isCompatible, isDeleted, isDestroyed, isLoggingEnabled, isObjectAlive, isReadCompatible, logMessage, removeAccessControl, removeDocument, removeExtension, removeGroup, removeImplementor, removeKeyword, removeObjectProperty, removePermissions, removePrompt, removePropertySet, removeResponsibleParty, removeUsedByPrototype, rollback, setAttribute, setAttributes, setDeleted, setDescription, setDocuments, setExtensions, setGroups, setGUID, setKeywords, 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, getContainer, getIdentifier, getName, getObjectURI, getPathUrl, getProcessorInterface, getTypeDescriptor
 

Field Detail

REPOSITORY_CONTENT_MAPPING

@Deprecated
public static final java.lang.String REPOSITORY_CONTENT_MAPPING
Deprecated. 
See Also:
Constant Field Values

CREATION_DATE

public static final java.lang.String CREATION_DATE
See Also:
Constant Field Values

MODIFIED_DATE

public static final java.lang.String MODIFIED_DATE
See Also:
Constant Field Values

OLDEST_VERSION

public static final com.sas.util.UsageVersion OLDEST_VERSION

CURRENT_VERSION

public static final com.sas.util.UsageVersion CURRENT_VERSION
Constructor Detail

Folder

public Folder()
       throws java.rmi.RemoteException
Default constructor.

Throws:
java.rmi.RemoteException - in the event of remote object failure.

Folder

public Folder(java.lang.Object o)
       throws java.rmi.RemoteException
Construct a folder given an object to initialize with.

Parameters:
o - The repository object to initialize with.
Throws:
java.rmi.RemoteException - in the event of remote object failure.

Folder

protected Folder(java.lang.Object o,
                 java.lang.Class theClass)
          throws java.rmi.RemoteException
Construct a folder given an object to initialize with.

Parameters:
o - The repository object to initialize with.
theClass - Class which will be used to determine the appropriate RMI socket factories.
Throws:
java.rmi.RemoteException - in the event of remote object failure.

Folder

public Folder(com.sas.metadata.remote.Tree o)
       throws java.rmi.RemoteException
Throws:
java.rmi.RemoteException

Folder

public Folder(com.sas.metadata.remote.impl.TreeImpl o)
       throws java.rmi.RemoteException
Throws:
java.rmi.RemoteException

Folder

public Folder(com.sas.metadata.remote.impl.TreeImpl_Stub o)
       throws java.rmi.RemoteException
Throws:
java.rmi.RemoteException

Folder

public Folder(RepositoryInterface repos,
              java.lang.String name,
              FolderInterface parent)
       throws java.rmi.RemoteException
Construct a new Folder metadata object using the Repository name and parent folder.

Parameters:
repos - The Repository in which this object resides.
name - The name of the new Folder.
parent -
Throws:
java.rmi.RemoteException
Method Detail

setFolderRefresh

public static void setFolderRefresh(long interval)
Set the interval for keeping cached subfolder information before forcing a trip to the server to refresh it.

Parameters:
interval - The interval in milliseconds to keep the cached subfolder information.

getFolderRefresh

public static long getFolderRefresh()
Get the interval for keeping cached subfolder information before forcing a trip to the server to refresh it.

Returns:
The interval in milliseconds to keep the cached subfolder information.

setItemRefresh

public static void setItemRefresh(long interval)
Set the interval to keep member item information before forcing a trip to the server to refresh it.

Parameters:
interval - The interval in milliseconds to keep the cached member item information.

getItemRefresh

public static long getItemRefresh()
Get the interval to keep member item information before forcing a trip to the server to refresh it.

Returns:
The interval in milliseconds to keep member item information.

getType

public java.lang.String getType()
                         throws java.rmi.RemoteException
Return a type string to identify this object.

Specified by:
getType in interface MetadataInterface
Overrides:
getType in class Metadata
Returns:
The type string ("Folder").
Throws:
java.rmi.RemoteException - in the event of remote object failure.

getPath

public java.lang.String getPath()
                         throws java.rmi.RemoteException
Get the path string for this Folder.

Specified by:
getPath in interface FolderInterface
Returns:
The String with the path from the BIP root to this folder.
Throws:
java.rmi.RemoteException - in the event of remote object failure.

getItems

public java.util.List getItems()
                        throws ServiceException,
                               java.rmi.RemoteException
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. If this folder has no items, an empty List is returned.
Throws:
ServiceException - if a repository error occurs.
java.rmi.RemoteException - in the event of remote object failure.

getItemsByType

public java.util.List getItemsByType(java.lang.String metadataType)
                              throws ServiceException,
                                     java.rmi.RemoteException
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. If no matching objects are found, an empty List is returned.
Throws:
ServiceException - if a repository error occurs.
java.rmi.RemoteException - in the event of remote object failure.

getItemsByClass

public java.util.List getItemsByClass(java.lang.Class itemClass)
                               throws ServiceException,
                                      java.rmi.RemoteException
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. If no objects matching the class are found, an empty List is returned.
Throws:
ServiceException - If a repository error occurs.
java.rmi.RemoteException - in the event of remote object failure.

getItem

public MetadataInterface getItem(java.lang.String name)
                          throws ServiceException,
                                 java.rmi.RemoteException
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, or null if no such object is found.
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 metadataType)
                                throws ServiceException,
                                       java.rmi.RemoteException
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.
metadataType - 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.

getItemByClass

public MetadataInterface getItemByClass(java.lang.String name,
                                        java.lang.Class itemClass)
                                 throws ServiceException,
                                        java.rmi.RemoteException
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, or null if no such object is found.
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
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. If this folder has no subfolders, an empty List is returned.
Throws:
ServiceException - if a repository error occurs.
java.rmi.RemoteException - in the event of remote object failure.

getSubfolder

public FolderInterface getSubfolder(java.lang.String name)
                             throws ServiceException,
                                    java.rmi.RemoteException
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.

addItem

public void addItem(MetadataInterface item)
             throws ServiceException,
                    java.rmi.RemoteException
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
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.

removeItem

public void removeItem(MetadataInterface item)
                throws ServiceException,
                       java.rmi.RemoteException
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.

deleteItem

public void deleteItem(MetadataInterface item)
                throws ServiceException,
                       java.rmi.RemoteException
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.

makeSubfolder

public FolderInterface makeSubfolder(java.lang.String name,
                                     java.lang.String type)
                              throws java.rmi.RemoteException,
                                     ServiceException
Create a new Folder with the given name of the given type and make it a new subfolder of this folder.

Specified by:
makeSubfolder in interface FolderInterface
Parameters:
name - The name of the new subfolder.
type - The public object type of the new subfolder. If this is null, the default folder type is created.
Returns:
The new FolderInterface that was created.
Throws:
java.rmi.RemoteException - In the event of remote object failure.
ServiceException - If a repository error occurs.

makeSubfolder

public FolderInterface makeSubfolder(java.lang.String name)
                              throws ServiceException,
                                     java.rmi.RemoteException
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. If the folder name already exists as a subfolder, the existing folder will be returned.
Throws:
ServiceException - if a repository error occurs.
java.rmi.RemoteException - in the event of remote object failure.

addSubfolder

public void addSubfolder(FolderInterface folder)
                  throws ServiceException,
                         java.rmi.RemoteException
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.

removeSubfolder

public void removeSubfolder(java.lang.String name)
                     throws ServiceException,
                            java.rmi.RemoteException
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.

deleteSubfolder

public void deleteSubfolder(java.lang.String name)
                     throws ServiceException,
                            java.rmi.RemoteException
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.

copyTo

public FolderInterface copyTo(FolderInterface folder,
                              java.lang.String name)
                       throws ServiceException,
                              java.rmi.RemoteException
Description copied from class: Metadata
Make a copy of this object. A new object will be created with all attributes, and keywords copied from the original. The new object's name will be set from the name argument. If the folder is null, if this object has only one parent, the new object will have the same parent Folder. If it has no parent, or more than one, the new object will not have a parent.

Specified by:
copyTo in interface MetadataInterface
Overrides:
copyTo in class Metadata
Parameters:
folder - The folder to be the parent of the new object.
name - The name of the new object.
Returns:
The new copy of this object.
Throws:
ServiceException - if a repository error occurs.
java.rmi.RemoteException - in the event of remote object failure.

moveTo

public void moveTo(FolderInterface folder)
            throws ServiceException,
                   java.rmi.RemoteException
Description copied from class: Metadata
Move this object to a new folder. Any current parent folders will be removed, and replaced with the one provided. If folder is null, no action will be taken.

Specified by:
moveTo in interface MetadataInterface
Overrides:
moveTo in class Metadata
Parameters:
folder - The new parent Folder of this object.
Throws:
ServiceException - if a repository error occurs.
java.rmi.RemoteException - in the event of remote object failure.

delete

public void delete()
            throws ServiceException,
                   java.rmi.RemoteException
Description copied from class: Metadata
Delete this object from its repository. This may be overridden by subclasses to perform clean up operations on other objects that may be dependent on this one.

Specified by:
delete in interface MetadataInterface
Overrides:
delete in class Metadata
Throws:
ServiceException - in the event of a repository failure.
java.rmi.RemoteException - in the event of a network failure.

getParent

public FolderInterface getParent()
                          throws ServiceException,
                                 java.rmi.RemoteException
Get parent folder.

If the current folder has more than one parent, the preferred (first) parent folder is returned.

Specified by:
getParent in interface FolderInterface
Specified by:
getParent in interface MetadataInterface
Overrides:
getParent in class Metadata
Returns:
The parent Folder of this folder.
Throws:
ServiceException - if a repository error occurs.
java.rmi.RemoteException - in the event of remote object failure.

isItemNameUnique

public boolean isItemNameUnique(MetadataInterface member)
                         throws ServiceException,
                                java.rmi.RemoteException
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.

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
Determines 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.
See Also:
hasDuplicateSubfolder(String, FolderInterface)

hasDuplicateSubfolder

public boolean hasDuplicateSubfolder(java.lang.String name,
                                     FolderInterface subFolderToExclude)
                              throws ServiceException,
                                     java.rmi.RemoteException
Determines if this folder already has a subfolder with the given name excluding the specified subfolder.

This method can be used to determine if a new name is valid for a subfolder by checking to see if a duplicate subfolder already exists other than the subfolder being checked.

Parameters:
name - The name of the subfolder to check for.
subFolderToExclude - The subfolder which should be excluded or null if a subfolder should not be excluded from this check.
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.

setRepository

public void setRepository(RepositoryInterface ri)
                   throws java.rmi.RemoteException
Description copied from class: Metadata
Set the repository that this item exists in.

Specified by:
setRepository in interface MetadataInterface
Overrides:
setRepository in class Metadata
Parameters:
ri - A handle to the repository for this object.
Throws:
java.rmi.RemoteException - in the event of remote object failure

setFolderType

public void setFolderType(java.lang.String type)
                   throws ServiceException,
                          java.rmi.RemoteException
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.

getFolderType

public java.lang.String getFolderType()
                               throws ServiceException,
                                      java.rmi.RemoteException
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.

setName

public void setName(java.lang.String name)
             throws java.rmi.RemoteException
Set the name of the object.

Specified by:
setName in interface MetadataInterface
Overrides:
setName in class Metadata
Parameters:
name - The name of the object in the repository.
Throws:
java.rmi.RemoteException - in the event of remote object failure.

mapNameToFilesystem

public java.lang.String mapNameToFilesystem(int hostOS,
                                            java.lang.String prefix,
                                            java.lang.String suffix)
                                     throws java.rmi.RemoteException,
                                            java.lang.IllegalArgumentException
Map the metadata object name to a file system path.

Specified by:
mapNameToFilesystem in interface MetadataInterface
Overrides:
mapNameToFilesystem in class Metadata
Parameters:
hostOS - The host operating system. Valid values include Names.UNKNOWN, Names.WINDOWS, Names.UNIX, Names.ZOS_HFS, Names.ZOS_PDS and Names.WEBDAV.
prefix - The prefix to use when creating the file system path.
suffix - The suffix to use when creating the file system path.
Returns:
String The file system path.
Throws:
java.rmi.RemoteException - In the event of remote object failure.
java.lang.IllegalArgumentException - If a null name is specified or if an invalid host operating system value is specified.

mapUrlToFilesystem

public java.lang.String mapUrlToFilesystem(int hostOS,
                                           java.lang.String prefix,
                                           java.lang.String suffix)
                                    throws ServiceException,
                                           java.rmi.RemoteException,
                                           java.lang.IllegalArgumentException
Map the metadata object's SBIP Url to a file system path.

Specified by:
mapUrlToFilesystem in interface MetadataInterface
Overrides:
mapUrlToFilesystem in class Metadata
Parameters:
hostOS - The host operating system. Valid values include Names.UNKNOWN, Names.WINDOWS, Names.UNIX, Names.ZOS_HFS, Names.ZOS_PDS and Names.WEBDAV.
prefix - The prefix to use when creating the file system path.
suffix - The suffix to use when creating the file system path.
Returns:
String The file system path.
Throws:
ServiceException - if a repository error occurs.
java.rmi.RemoteException - In the event of remote object failure.
java.lang.IllegalArgumentException - If a null name is specified or if an invalid host operating system value is specified.

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

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

getChildren

public java.util.List 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.

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.

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

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.

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.

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.

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.

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.

refresh

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

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

getContentInfo

public ContentInfo getContentInfo()
                           throws java.lang.IllegalStateException,
                                  ServiceException,
                                  java.rmi.RemoteException
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.
java.lang.IllegalStateException

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.

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.

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.

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.

newServiceObject

public java.lang.Object newServiceObject()
                                  throws ServiceException,
                                         java.rmi.RemoteException
Description copied from class: Metadata
For objects that support it, get an "active" interface for the metadata object. For instance, com.sas.services.information.metadata.StoredProcess returns a com.sas.services.storedProcess.StoredProcess object.

Specified by:
newServiceObject in interface MetadataInterface
Overrides:
newServiceObject in class Metadata
Returns:
The "active" object for this metadata.
Throws:
ServiceException - if an error occurs
java.rmi.RemoteException - in the event of remote object failure

getLocalizableProperties

public com.sas.storage.editableproperties.PropertyList getLocalizableProperties()
Specified by:
getLocalizableProperties in interface com.sas.storage.editableproperties.LocalizableProperties

setLocalizableProperties

public void setLocalizableProperties(com.sas.storage.editableproperties.PropertyMap map)
Specified by:
setLocalizableProperties in interface com.sas.storage.editableproperties.LocalizableProperties

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.

hasContentBacking

public boolean hasContentBacking()
                          throws java.rmi.RemoteException,
                                 ServiceException
Throws:
java.rmi.RemoteException
ServiceException

hasContentBackedItems

public boolean hasContentBackedItems()
                              throws ServiceException,
                                     java.rmi.RemoteException
Throws:
ServiceException
java.rmi.RemoteException

upgradeFromPreviousVersion

public void upgradeFromPreviousVersion()
                                throws ServiceException,
                                       java.rmi.RemoteException
Description copied from interface: UpgradeInterface
Upgrades an object from a previous version to the most current version supported.

Specified by:
upgradeFromPreviousVersion in interface com.sas.services.util.UpgradeInterface
Throws:
ServiceException - if the object could not be upgraded
java.rmi.RemoteException - a remote object failure



Copyright © 2009 SAS Institute Inc. All Rights Reserved.