public class LayeredRepository extends AbstractRepository implements DirectRepository
Constructor and Description |
---|
LayeredRepository(Repository top,
Repository bottom) |
LayeredRepository(Repository top,
Repository bottom,
boolean writesReachBottom) |
Modifier and Type | Method and Description |
---|---|
void |
close()
Close the repository and release all resources.
|
static void |
copyDataOrSetAttributeForMissing(DataElement source,
DataElement target) |
static void |
copyForLayeredRepo(DigitalObject source,
DigitalObject target) |
void |
createDataElement(java.lang.String handle,
java.lang.String name)
Creates a new data element with the given name in this digital object.
|
LayeredDigitalObject |
createDigitalObject(java.lang.String handle)
Creates a new digital object with the given identifier in this repository.
|
void |
deleteAttribute(java.lang.String handle,
java.lang.String elementName,
java.lang.String name)
Deletes a particular attribute.
|
void |
deleteAttributes(java.lang.String handle,
java.lang.String elementName,
java.util.List<java.lang.String> names)
Deletes multiple attributes.
|
void |
deleteDataElement(java.lang.String handle,
java.lang.String name)
Deletes any data element of the given name.
|
void |
deleteDigitalObject(java.lang.String handle)
Deletes a digital object from the repository.
|
java.lang.String |
getAttribute(java.lang.String handle,
java.lang.String elementName,
java.lang.String name)
Returns the value for a particular attribute
|
java.util.Map<java.lang.String,java.lang.String> |
getAttributes(java.lang.String handle,
java.lang.String elementName)
Returns a Map view of the attributes of the digital object or data element.
|
Repository |
getBottom() |
LayeredDigitalObject |
getDigitalObject(java.lang.String handle)
Returns the digital object with the given identifier from this repository.
|
java.io.File |
getFile(java.lang.String handle,
java.lang.String elementName)
Returns a file for the data of the data element.
|
long |
getSize(java.lang.String handle,
java.lang.String elementName)
Returns the number of bytes of data in this data element.
|
Repository |
getTop() |
void |
lift(java.lang.String handle) |
CloseableIterator<java.util.Map.Entry<java.lang.String,java.lang.String>> |
listAttributes(java.lang.String handle,
java.lang.String elementName)
Returns a CloseableIterator view of the attributes of the digital object or data element.
|
CloseableIterator<java.lang.String> |
listDataElementNames(java.lang.String handle)
Provides a CloseableIterator view of the names of the data elements in this digital object.
|
CloseableIterator<java.lang.String> |
listHandles()
Provides a CloseableIterator view of the identifiers for digital objects accessible through this repository.
|
java.io.InputStream |
read(java.lang.String handle,
java.lang.String elementName)
Provides access to the data as an InputStream.
|
CloseableIterator<DigitalObject> |
search(Query query)
Provides a CloseableIterator view of the digital objects accessible through this repository under search bounds defined in the Query object with default parameters.
|
CloseableIterator<java.lang.String> |
searchHandles(Query query)
Provides a CloseableIterator view of the digital objects handles accessible through this repository under search bounds defined in the Query object with default parameters.
|
void |
setAttribute(java.lang.String handle,
java.lang.String elementName,
java.lang.String name,
java.lang.String value)
Sets a particular attribute.
|
void |
setAttributes(java.lang.String handle,
java.lang.String elementName,
java.util.Map<java.lang.String,java.lang.String> attributes)
Sets the value of multiple attributes.
|
boolean |
verifyDataElement(java.lang.String handle,
java.lang.String name)
Verifies whether a data element with the given name exists within this digital object
|
boolean |
verifyDigitalObject(java.lang.String handle)
Verifies whether a digital object with the given identifier can be accessed via this repository.
|
long |
write(java.lang.String handle,
java.lang.String elementName,
java.io.InputStream data,
boolean append)
Writes new data into the data element.
|
getHandle, getOrCreateDigitalObject, listObjects, search, search, searchHandles, searchHandles, searchMapping
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getHandle, getOrCreateDigitalObject, listObjects, search, search, searchHandles, searchHandles, searchMapping
public LayeredRepository(Repository top, Repository bottom) throws RepositoryException
RepositoryException
public LayeredRepository(Repository top, Repository bottom, boolean writesReachBottom) throws RepositoryException
RepositoryException
public Repository getTop()
public Repository getBottom()
public void lift(java.lang.String handle) throws RepositoryException
RepositoryException
public boolean verifyDigitalObject(java.lang.String handle) throws RepositoryException
Repository
verifyDigitalObject
in interface Repository
verifyDigitalObject
in class AbstractRepository
handle
- an identifier for a digital objectRepositoryException
public LayeredDigitalObject createDigitalObject(java.lang.String handle) throws CreationException, RepositoryException
Repository
null
requests that the repository assign a new unique identifier;
this method will throw UnsupportedOperationException
if the given repository does not support that functionality.createDigitalObject
in interface Repository
handle
- the identifier for the new digital object, or null
to request that the repository assign a new unique identifier.CreationException
- if an object with the given identifier already exists within the repositoryRepositoryException
public LayeredDigitalObject getDigitalObject(java.lang.String handle) throws RepositoryException
Repository
getDigitalObject
in interface Repository
handle
- the identifier for the digital objectRepositoryException
public void deleteDigitalObject(java.lang.String handle) throws RepositoryException
Repository
deleteDigitalObject
in interface Repository
deleteDigitalObject
in class AbstractRepository
handle
- the identifier for the digital objectRepositoryException
public CloseableIterator<java.lang.String> listHandles()
Repository
listHandles
in interface Repository
listHandles
in class AbstractRepository
public CloseableIterator<DigitalObject> search(Query query) throws RepositoryException
Repository
search
in interface Repository
search
in class AbstractRepository
query
- the query to performQueryResults
.RepositoryException
public CloseableIterator<java.lang.String> searchHandles(Query query) throws RepositoryException
Repository
searchHandles
in interface Repository
searchHandles
in class AbstractRepository
query
- the query to performQueryResults
.RepositoryException
public void close()
Repository
close
in interface Repository
public static void copyForLayeredRepo(DigitalObject source, DigitalObject target) throws RepositoryException, java.io.IOException
RepositoryException
java.io.IOException
public static void copyDataOrSetAttributeForMissing(DataElement source, DataElement target) throws RepositoryException, java.io.IOException
RepositoryException
java.io.IOException
public java.util.Map<java.lang.String,java.lang.String> getAttributes(java.lang.String handle, java.lang.String elementName) throws RepositoryException
DirectRepository
getAttributes
in interface DirectRepository
RepositoryException
public CloseableIterator<java.util.Map.Entry<java.lang.String,java.lang.String>> listAttributes(java.lang.String handle, java.lang.String elementName) throws RepositoryException
DirectRepository
listAttributes
in interface DirectRepository
RepositoryException
public java.lang.String getAttribute(java.lang.String handle, java.lang.String elementName, java.lang.String name) throws RepositoryException
DirectRepository
getAttribute
in interface DirectRepository
name
- the attribute nameRepositoryException
public void setAttributes(java.lang.String handle, java.lang.String elementName, java.util.Map<java.lang.String,java.lang.String> attributes) throws RepositoryException
DirectRepository
setAttributes
in interface DirectRepository
attributes
- the attributes to set, mapped to their new valuesRepositoryException
public void setAttribute(java.lang.String handle, java.lang.String elementName, java.lang.String name, java.lang.String value) throws RepositoryException
DirectRepository
setAttribute
in interface DirectRepository
name
- the attribute namevalue
- the attribute value; if null, the attribute will be deleted.RepositoryException
public void deleteAttributes(java.lang.String handle, java.lang.String elementName, java.util.List<java.lang.String> names) throws RepositoryException
DirectRepository
deleteAttributes
in interface DirectRepository
names
- the names of the attributes to deleteRepositoryException
public void deleteAttribute(java.lang.String handle, java.lang.String elementName, java.lang.String name) throws RepositoryException
DirectRepository
deleteAttribute
in interface DirectRepository
name
- the name of the attribute to deleteRepositoryException
public boolean verifyDataElement(java.lang.String handle, java.lang.String name) throws RepositoryException
DirectRepository
verifyDataElement
in interface DirectRepository
name
- an identifier for a data elementRepositoryException
public void createDataElement(java.lang.String handle, java.lang.String name) throws CreationException, RepositoryException
DirectRepository
createDataElement
in interface DirectRepository
name
- the identifier for the new data elementCreationException
- if a data element with the given name already existsRepositoryException
public void deleteDataElement(java.lang.String handle, java.lang.String name) throws RepositoryException
DirectRepository
deleteDataElement
in interface DirectRepository
name
- the identifier for the data elementRepositoryException
public CloseableIterator<java.lang.String> listDataElementNames(java.lang.String handle) throws RepositoryException
DirectRepository
listDataElementNames
in interface DirectRepository
RepositoryException
public java.io.InputStream read(java.lang.String handle, java.lang.String elementName) throws RepositoryException
DirectRepository
read
in interface DirectRepository
RepositoryException
public long write(java.lang.String handle, java.lang.String elementName, java.io.InputStream data, boolean append) throws java.io.IOException, RepositoryException
DirectRepository
write
in interface DirectRepository
data
- an InputStream streaming the new dataappend
- whether to append the new data to the existing datajava.io.IOException
RepositoryException
public long getSize(java.lang.String handle, java.lang.String elementName) throws RepositoryException
DirectRepository
getSize
in interface DirectRepository
RepositoryException
public java.io.File getFile(java.lang.String handle, java.lang.String elementName) throws RepositoryException
DirectRepository
getFile
in interface DirectRepository
RepositoryException