public class LayeredDigitalObject extends AbstractDigitalObject implements DigitalObject, SupportsFastCopyForLayeredRepo
Constructor and Description |
---|
LayeredDigitalObject(LayeredRepository repo,
java.lang.String handle,
DigitalObject top,
DigitalObject bottom,
java.util.concurrent.ExecutorService execServ) |
Modifier and Type | Method and Description |
---|---|
void |
copyTo(DigitalObject target)
Copy this digital object (in the bottom repository of a
LayeredRepository
to another digital object (in the top repository). |
LayeredDataElement |
createDataElement(java.lang.String name)
Creates a new data element with the given name in this digital object.
|
void |
deleteAttribute(java.lang.String name)
Deletes a particular attribute.
|
void |
deleteAttributes(java.util.List<java.lang.String> names)
Deletes multiple attributes.
|
void |
deleteDataElement(java.lang.String name)
Deletes any data element of the given name.
|
java.lang.String |
getAttribute(java.lang.String id)
Returns the value for a particular attribute
|
java.util.Map<java.lang.String,java.lang.String> |
getAttributes()
Returns a Map view of the attributes of the digital object.
|
LayeredDataElement |
getDataElement(java.lang.String name)
Returns the data element with the given name.
|
java.lang.String |
getHandle()
Returns the identifier for this digital object.
|
LayeredRepository |
getRepository()
Returns the repository through which this digital object is being accessed.
|
CloseableIterator<java.util.Map.Entry<java.lang.String,java.lang.String>> |
listAttributes()
Returns a CloseableIterator view of the attributes of the digital object.
|
CloseableIterator<java.lang.String> |
listDataElementNames()
Provides a CloseableIterator view of the names of the data elements in this digital object.
|
CloseableIterator<DataElement> |
listDataElements()
Provides a CloseableIterator view of the data elements in this digital object.
|
void |
setAttribute(java.lang.String name,
java.lang.String value)
Sets a particular attribute.
|
void |
setAttributes(java.util.Map<java.lang.String,java.lang.String> attributes)
Sets the value of multiple attributes.
|
boolean |
verifyDataElement(java.lang.String name)
Verifies whether a data element with the given name exists within this digital object
|
delete, equals, getDataElementNames, getDataElements, getOrCreateDataElement, hashCode
getClass, notify, notifyAll, toString, wait, wait, wait
delete, getDataElementNames, getDataElements, getOrCreateDataElement
public LayeredDigitalObject(LayeredRepository repo, java.lang.String handle, DigitalObject top, DigitalObject bottom, java.util.concurrent.ExecutorService execServ)
public LayeredRepository getRepository()
DigitalObject
getRepository
in interface DigitalObject
public java.lang.String getHandle()
DigitalObject
getHandle
in interface DigitalObject
public java.util.Map<java.lang.String,java.lang.String> getAttributes() throws RepositoryException
DigitalObject
getAttributes
in interface DigitalObject
getAttributes
in class AbstractDigitalObject
RepositoryException
public CloseableIterator<java.util.Map.Entry<java.lang.String,java.lang.String>> listAttributes() throws RepositoryException
DigitalObject
listAttributes
in interface DigitalObject
listAttributes
in class AbstractDigitalObject
RepositoryException
public java.lang.String getAttribute(java.lang.String id) throws RepositoryException
DigitalObject
getAttribute
in interface DigitalObject
getAttribute
in class AbstractDigitalObject
id
- the attribute nameRepositoryException
public void setAttributes(java.util.Map<java.lang.String,java.lang.String> attributes) throws RepositoryException
DigitalObject
setAttributes
in interface DigitalObject
setAttributes
in class AbstractDigitalObject
attributes
- the attributes to set, mapped to their new valuesRepositoryException
public void setAttribute(java.lang.String name, java.lang.String value) throws RepositoryException
DigitalObject
setAttribute
in interface DigitalObject
name
- the attribute namevalue
- the attribute value; if null, the attribute will be deleted.RepositoryException
public void deleteAttributes(java.util.List<java.lang.String> names) throws RepositoryException
DigitalObject
deleteAttributes
in interface DigitalObject
deleteAttributes
in class AbstractDigitalObject
names
- the names of the attributes to deleteRepositoryException
public void deleteAttribute(java.lang.String name) throws RepositoryException
DigitalObject
deleteAttribute
in interface DigitalObject
name
- the name of the attribute to deleteRepositoryException
public boolean verifyDataElement(java.lang.String name) throws RepositoryException
DigitalObject
verifyDataElement
in interface DigitalObject
verifyDataElement
in class AbstractDigitalObject
name
- an identifier for a data elementRepositoryException
public LayeredDataElement createDataElement(java.lang.String name) throws CreationException, RepositoryException
DigitalObject
createDataElement
in interface DigitalObject
name
- the identifier for the new data elementCreationException
- if a data element with the given name already existsRepositoryException
public LayeredDataElement getDataElement(java.lang.String name) throws RepositoryException
DigitalObject
getDataElement
in interface DigitalObject
name
- the identifier for the data elementRepositoryException
public void deleteDataElement(java.lang.String name) throws RepositoryException
DigitalObject
deleteDataElement
in interface DigitalObject
deleteDataElement
in class AbstractDigitalObject
name
- the identifier for the data elementRepositoryException
public CloseableIterator<java.lang.String> listDataElementNames() throws RepositoryException
DigitalObject
listDataElementNames
in interface DigitalObject
listDataElementNames
in class AbstractDigitalObject
RepositoryException
public CloseableIterator<DataElement> listDataElements() throws RepositoryException
DigitalObject
listDataElements
in interface DigitalObject
listDataElements
in class AbstractDigitalObject
RepositoryException
public void copyTo(DigitalObject target) throws RepositoryException, java.io.IOException
SupportsFastCopyForLayeredRepo
LayeredRepository
to another digital object (in the top repository). For implementations that can be faster than naive copying.
In general this does not copy the data of data elements, but sets the attribute
LayeredDataElement.ATTRIBUTE_DATA_ELEMENT_MISSING
to 1 on each data element not copied.copyTo
in interface SupportsFastCopyForLayeredRepo
target
- the digital object to copy intoRepositoryException
java.io.IOException