org.duracloud.storage.provider
Class BrokeredStorageProvider

java.lang.Object
  extended by org.duracloud.storage.provider.BrokeredStorageProvider
All Implemented Interfaces:
StorageProvider

public class BrokeredStorageProvider
extends java.lang.Object
implements StorageProvider


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.duracloud.storage.provider.StorageProvider
StorageProvider.AccessType
 
Field Summary
 
Fields inherited from interface org.duracloud.storage.provider.StorageProvider
DEFAULT_MAX_RESULTS, DEFAULT_MIMETYPE, PROPERTIES_CONTENT_CHECKSUM, PROPERTIES_CONTENT_MD5, PROPERTIES_CONTENT_MIMETYPE, PROPERTIES_CONTENT_MODIFIED, PROPERTIES_CONTENT_SIZE, PROPERTIES_COPY_SOURCE, PROPERTIES_SPACE_ACCESS, PROPERTIES_SPACE_COUNT, PROPERTIES_SPACE_CREATED, PROPERTIES_SPACE_SIZE, RFC822_DATE_FORMAT, SPACE_PROPERTIES_SUFFIX
 
Constructor Summary
BrokeredStorageProvider(StatelessStorageProvider dispatchProvider, StorageProvider targetProvider, StorageProviderType targetType, java.lang.String storeId)
           
 
Method Summary
 java.lang.String addContent(java.lang.String spaceId, java.lang.String contentId, java.lang.String contentMimeType, long contentSize, java.lang.String contentChecksum, java.io.InputStream content)
          Adds content to a space.
 java.lang.String copyContent(java.lang.String sourceSpaceId, java.lang.String sourceContentId, java.lang.String destSpaceId, java.lang.String destContentId)
          This method copies the content item found in source-space with the id of source-content-id into the dest-space, naming it to dest-content-id.
 void createSpace(java.lang.String spaceId)
          Creates a new space.
 void deleteContent(java.lang.String spaceId, java.lang.String contentId)
          Removes content from a space.
 void deleteSpace(java.lang.String spaceId)
          Deletes a space.
 java.io.InputStream getContent(java.lang.String spaceId, java.lang.String contentId)
          Gets content from a space.
 java.util.Map<java.lang.String,java.lang.String> getContentProperties(java.lang.String spaceId, java.lang.String contentId)
          Retrieves the properties associated with content.
 StorageProvider.AccessType getSpaceAccess(java.lang.String spaceId)
          Gets the access setting of the space, either OPEN or CLOSED.
 java.util.Iterator<java.lang.String> getSpaceContents(java.lang.String spaceId, java.lang.String prefix)
          Provides access to the content files within a space.
 java.util.List<java.lang.String> getSpaceContentsChunked(java.lang.String spaceId, java.lang.String prefix, long maxResults, java.lang.String marker)
          Provides a listing of the content files within a space.
 java.util.Map<java.lang.String,java.lang.String> getSpaceProperties(java.lang.String spaceId)
          Retrieves the properties associated with a space.
 java.util.Iterator<java.lang.String> getSpaces()
          Provides a listing of all spaces owned by a customer.
 StorageProviderType getTargetType()
           
 void setContentProperties(java.lang.String spaceId, java.lang.String contentId, java.util.Map<java.lang.String,java.lang.String> contentProperties)
          Sets the properties associated with content.
 void setSpaceAccess(java.lang.String spaceId, StorageProvider.AccessType access)
          Sets the accessibility of a space to either OPEN or CLOSED.
 void setSpaceProperties(java.lang.String spaceId, java.util.Map<java.lang.String,java.lang.String> spaceProperties)
          Sets the properties associated with a space.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BrokeredStorageProvider

public BrokeredStorageProvider(StatelessStorageProvider dispatchProvider,
                               StorageProvider targetProvider,
                               StorageProviderType targetType,
                               java.lang.String storeId)
Method Detail

getTargetType

public StorageProviderType getTargetType()

addContent

public java.lang.String addContent(java.lang.String spaceId,
                                   java.lang.String contentId,
                                   java.lang.String contentMimeType,
                                   long contentSize,
                                   java.lang.String contentChecksum,
                                   java.io.InputStream content)
                            throws StorageException
Description copied from interface: StorageProvider
Adds content to a space. Computes the checksum of the provided content and checks this against the checksum of the uploaded content to protect against loss or corruption during transfer.

Specified by:
addContent in interface StorageProvider
Parameters:
spaceId - - ID of the space
contentId - - ID of the content in the space
contentMimeType - - the MIME type of the content being added
contentSize - - the file size (in bytes) of the content being added
contentChecksum - - the MD5 checksum of the content being added (null if no checksum is known)
content - - content to add
Returns:
The checksum of the provided content
Throws:
NotFoundException - if space with ID spaceId does not exist
StorageException - if errors occur

copyContent

public java.lang.String copyContent(java.lang.String sourceSpaceId,
                                    java.lang.String sourceContentId,
                                    java.lang.String destSpaceId,
                                    java.lang.String destContentId)
Description copied from interface: StorageProvider
This method copies the content item found in source-space with the id of source-content-id into the dest-space, naming it to dest-content-id.

Specified by:
copyContent in interface StorageProvider
Parameters:
sourceSpaceId - of content to copy
sourceContentId - of content to copy
destSpaceId - where copied content will end up
destContentId - given to copied content
Returns:
MD5 checksum of destination content item

createSpace

public void createSpace(java.lang.String spaceId)
                 throws StorageException
Description copied from interface: StorageProvider
Creates a new space. Depending on the storage implementation, the spaceId may be changed somewhat to comply with the naming rules of the underlying storage provider. The same spaceId value used here can be used in all other methods, as the conversion will be applied internally, however a call to getSpaces() may not include a space with exactly this same name.

Specified by:
createSpace in interface StorageProvider
Parameters:
spaceId - - ID of the space
Throws:
StorageException - if space with ID spaceId already exists

deleteContent

public void deleteContent(java.lang.String spaceId,
                          java.lang.String contentId)
                   throws StorageException
Description copied from interface: StorageProvider
Removes content from a space.

Specified by:
deleteContent in interface StorageProvider
Parameters:
spaceId - - ID of the space
contentId - - ID of the content in the space
Throws:
NotFoundException - if space with ID spaceId does not exist or the content item with ID contentId does not exist
StorageException - if errors occur

deleteSpace

public void deleteSpace(java.lang.String spaceId)
                 throws StorageException
Description copied from interface: StorageProvider
Deletes a space.

Specified by:
deleteSpace in interface StorageProvider
Parameters:
spaceId - - ID of the space
Throws:
NotFoundException - if space with ID spaceId does not exist
StorageException - if errors occur

getContent

public java.io.InputStream getContent(java.lang.String spaceId,
                                      java.lang.String contentId)
                               throws StorageException
Description copied from interface: StorageProvider
Gets content from a space.

Specified by:
getContent in interface StorageProvider
Parameters:
spaceId - - ID of the space
contentId - - ID of the content in the space
Returns:
the content stream
Throws:
NotFoundException - if space with ID spaceId does not exist or the content item with ID contentId does not exist
StorageException - if errors occur

getContentProperties

public java.util.Map<java.lang.String,java.lang.String> getContentProperties(java.lang.String spaceId,
                                                                             java.lang.String contentId)
                                                                      throws StorageException
Description copied from interface: StorageProvider
Retrieves the properties associated with content. This includes both properties generated by the underlying storage system as well as custom properties. Use the PROPERTIES_CONTENT_* constants to retrieve standard properties values.

Specified by:
getContentProperties in interface StorageProvider
Parameters:
spaceId - - ID of the space
contentId - - ID of the content in the space
Returns:
content properties
Throws:
NotFoundException - if space with ID spaceId does not exist or the content item with ID contentId does not exist
StorageException - if errors occur

getSpaceAccess

public StorageProvider.AccessType getSpaceAccess(java.lang.String spaceId)
                                          throws StorageException
Description copied from interface: StorageProvider
Gets the access setting of the space, either OPEN or CLOSED. An OPEN space is available for public viewing. A CLOSED space requires authentication prior to viewing any of the contents.

Specified by:
getSpaceAccess in interface StorageProvider
Parameters:
spaceId - - ID of the space
Returns:
the access type of the space, OPEN or CLOSED
Throws:
NotFoundException - if space with ID spaceId does not exist
StorageException - if errors occur

getSpaceContents

public java.util.Iterator<java.lang.String> getSpaceContents(java.lang.String spaceId,
                                                             java.lang.String prefix)
                                                      throws StorageException
Description copied from interface: StorageProvider
Provides access to the content files within a space. Chunking of the list is handled internally. Prefix can be set to return only content IDs starting with the prefix value.

Specified by:
getSpaceContents in interface StorageProvider
Parameters:
spaceId - - ID of the space
prefix - - The prefix of the content id (null for no constraints)
Returns:
Iterator of contentIds
Throws:
NotFoundException - if space with ID spaceId does not exist
StorageException - if errors occur

getSpaceContentsChunked

public java.util.List<java.lang.String> getSpaceContentsChunked(java.lang.String spaceId,
                                                                java.lang.String prefix,
                                                                long maxResults,
                                                                java.lang.String marker)
                                                         throws StorageException
Description copied from interface: StorageProvider
Provides a listing of the content files within a space. The number of items returned is limited to maxResults (default is 1000). Retrieve further results by including the last content ID in the previous list as the marker. Set prefix to return only content IDs starting with the prefix value.

Specified by:
getSpaceContentsChunked in interface StorageProvider
Parameters:
spaceId - - ID of the space
prefix - - Only retrieve content IDs with this prefix (null for all content ids)
maxResults - - The maximum number of content IDs to return in the list (0 indicates default (1000))
marker - - The content ID marking the last item in the previous set (null indicates the first set of ids)
Returns:
List of contentIds
Throws:
NotFoundException - if space with ID spaceId does not exist
StorageException - if errors occur

getSpaceProperties

public java.util.Map<java.lang.String,java.lang.String> getSpaceProperties(java.lang.String spaceId)
                                                                    throws StorageException
Description copied from interface: StorageProvider
Retrieves the properties associated with a space.

Specified by:
getSpaceProperties in interface StorageProvider
Parameters:
spaceId - - ID of the space
Returns:
Map of space properties or null if no properties exists
Throws:
NotFoundException - if space with ID spaceId does not exist
StorageException - if errors occur

getSpaces

public java.util.Iterator<java.lang.String> getSpaces()
                                               throws StorageException
Description copied from interface: StorageProvider
Provides a listing of all spaces owned by a customer.

Specified by:
getSpaces in interface StorageProvider
Returns:
Iterator listing spaceIds
Throws:
StorageException

setContentProperties

public void setContentProperties(java.lang.String spaceId,
                                 java.lang.String contentId,
                                 java.util.Map<java.lang.String,java.lang.String> contentProperties)
                          throws StorageException
Description copied from interface: StorageProvider
Sets the properties associated with content. This effectively removes all of the current content properties and adds a new set of properties. Some properties, such as system properties provided by the underlying storage system, cannot be updated or removed. Some of the values which cannot be updated or removed: Content-MD5 ETag Last-Modified Content-Type cannot be removed, but it can be updated

Specified by:
setContentProperties in interface StorageProvider
Parameters:
spaceId - - ID of the space
contentId - - ID of the content in the space
contentProperties - - new content properties
Throws:
NotFoundException - if space with ID spaceId does not exist or the content item with ID contentId does not exist
StorageException - if errors occur

setSpaceAccess

public void setSpaceAccess(java.lang.String spaceId,
                           StorageProvider.AccessType access)
                    throws StorageException
Description copied from interface: StorageProvider
Sets the accessibility of a space to either OPEN or CLOSED.

Specified by:
setSpaceAccess in interface StorageProvider
Parameters:
spaceId - - ID of the space
access - - New space access value
Throws:
NotFoundException - if space with ID spaceId does not exist
StorageException - if errors occur

setSpaceProperties

public void setSpaceProperties(java.lang.String spaceId,
                               java.util.Map<java.lang.String,java.lang.String> spaceProperties)
                        throws StorageException
Description copied from interface: StorageProvider
Sets the properties associated with a space.

Specified by:
setSpaceProperties in interface StorageProvider
Parameters:
spaceId - - ID of the space
spaceProperties - - Updated space properties
Throws:
NotFoundException - if space with ID spaceId does not exist
StorageException - if errors occur


Copyright © 2009-2011 DuraSpace. All Rights Reserved.