public class BdbjeDigitalObject extends AbstractDigitalObject implements DigitalObject, SupportsFastCopyForLayeredRepo
Constructor and Description |
---|
BdbjeDigitalObject(BdbjeRepository respository,
com.sleepycat.je.Environment dbEnvironment,
com.sleepycat.je.Database db,
java.lang.String handle,
byte[] handleBytes) |
Modifier and Type | Method and Description |
---|---|
void |
copyTo(DigitalObject dobj)
Copy this digital object (in the bottom repository of a
LayeredRepository
to another digital object (in the top repository). |
DataElement |
createDataElement(java.lang.String name)
Creates a new data element with the given name in this digital object.
|
void |
delete()
Deletes this digital object from the repository through which it is being accessed.
|
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 name)
Returns the value for a particular attribute
|
DataElement |
getDataElement(java.lang.String name)
Returns the data element with the given name.
|
java.lang.String |
getHandle()
Returns the identifier for this digital object.
|
Repository |
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.
|
void |
setCreatedAndModifiedAttribute() |
void |
setModifiedAttribute() |
boolean |
verifyDataElement(java.lang.String name)
Verifies whether a data element with the given name exists within this digital object
|
equals, getAttributes, getDataElementNames, getDataElements, getOrCreateDataElement, hashCode
getClass, notify, notifyAll, toString, wait, wait, wait
getAttributes, getDataElementNames, getDataElements, getOrCreateDataElement
public BdbjeDigitalObject(BdbjeRepository respository, com.sleepycat.je.Environment dbEnvironment, com.sleepycat.je.Database db, java.lang.String handle, byte[] handleBytes) throws RepositoryException
RepositoryException
public Repository getRepository()
DigitalObject
getRepository
in interface DigitalObject
public java.lang.String getHandle()
DigitalObject
getHandle
in interface DigitalObject
public void setCreatedAndModifiedAttribute() throws InternalException
InternalException
public void setModifiedAttribute() throws InternalException
InternalException
public void delete() throws RepositoryException
DigitalObject
delete
in interface DigitalObject
delete
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 name) throws RepositoryException
DigitalObject
getAttribute
in interface DigitalObject
getAttribute
in class AbstractDigitalObject
name
- 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 DataElement 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 DataElement 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 dobj) 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
dobj
- the digital object to copy intoRepositoryException
java.io.IOException