Class DBSDocument
- All Implemented Interfaces:
Document
Document
for Document-Based Storage. The document is stored as a JSON-like Map. The keys
of the Map are the property names (including special names for system properties), and the values Map are
Serializable values, either:
- a scalar (String, Long, Double, Boolean, Calendar, Binary),
- an array of scalars,
- a List of Maps, recursively,
- or another Map, recursively.
- Since:
- 5.9.4
-
Nested Class Summary
Nested classes/interfaces inherited from class org.nuxeo.ecm.core.storage.BaseDocument
BaseDocument.BlobWriteContext<T extends StateAccessor>, BaseDocument.BlobWriteInfo<T extends StateAccessor>, BaseDocument.StateBlobAccessor, BaseDocument.Visit
Nested classes/interfaces inherited from interface org.nuxeo.ecm.core.model.Document
Document.BlobAccessor, Document.WriteContext
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
static final String
protected final DBSDocumentState
static final String
static final String
protected final String
static final Long
static final Long
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
Deprecated.since 11.1static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final String
protected boolean
protected final DBSSession
static final String
static final String
static final String
static final String
protected final DocumentType
Fields inherited from class org.nuxeo.ecm.core.storage.BaseDocument
BLOB_DATA, BLOB_DIGEST, BLOB_ENCODING, BLOB_LENGTH, BLOB_MIME_TYPE, BLOB_NAME, DC_ISSUED, DC_MODIFIED, DC_PREFIX, EMPTY_STRING_ARRAY, FULLTEXT_BINARYTEXT_PROP, FULLTEXT_JOBID_PROP, FULLTEXT_SIMPLETEXT_PROP, HAS_LEGAL_HOLD_PROP, IS_FLEXIBLE_RECORD_PROP, IS_RECORD_PROP, IS_TRASHED_PROP, LIST_INDEX_PATTERN, LOCK_CREATED_PROP, LOCK_OWNER_PROP, MISC_LIFECYCLE_STATE_PROP, NO_DIRTY, NON_CANONICAL_INDEX, RELATED_TEXT, RELATED_TEXT_ID, RELATED_TEXT_RESOURCES, RETAIN_UNTIL_PROP, RETAINED_PROPERTIES_PROP, TOKEN_SEP, VERSION_WRITABLE_PROPS
-
Constructor Summary
ConstructorDescriptionDBSDocument
(DBSDocumentState docState, DocumentType type, DBSSession session, boolean readonly) -
Method Summary
Modifier and TypeMethodDescriptionCreates a new child document of the given type.boolean
Adds a facet to this document.Creates a new version.void
checkOut()
boolean
void
followTransition
(String transition) Follows a given life cycle transition.Gets the facets available on this document (from the type and the instance facets).Returns the allowed state transitions for this document.Gets the version to which a checked in document is linked.String[]
Gets the current change token for this document.Gets the version check in comment of this document if it's a version or a proxy.Gets a child document given its name.protected State
Gets a child state.getChildAsList
(State state, String name) Gets a child state which is a list.protected State
getChildForWrite
(State state, String name, Type type) Gets a child state into which we will want to write data.Gets the children of the document.Gets a list of the children ids.protected DocumentBlobManager
protected Lock
Gets the lock from this recently created and unsaved document.String[]
Gets the facets defined on this document instance.Gets the last version of this document.Gets the life cycle policy of this document.Gets the life cycle state of this document.getName()
Gets the name of this document.Gets the parent document, ornull
if this is the root document.getPath()
Gets the path of this document.getPos()
Gets the document's position in its containing folder (if ordered).getPropertyValue
(String name) Gets a simple property value.Gets the list of proxy schemas, if this is a proxy.protected static String
getProxyUserVisibleChangeToken
(String proxyToken, String targetToken) Gets the repository in which the document lives.String[]
Gets the retained property xpaths of this document instance at the time it became a record.Gets the retention date for the document.protected String
getSchemas
(DocumentType type, List<Object> facets) Gets the session that owns this document.Gets the source for this document.protected DBSDocumentState
Gets the target state if this is a proxy, or the regular state otherwise.protected DBSDocumentState
getStateOrTarget
(String xpath) protected DBSDocumentState
getStateOrTarget
(Type type) protected DBSDocumentState
getStateOrTargetForSchema
(String schema) Checks if the given schema should be resolved on the proxy or the target.<T extends Serializable>
TgetSystemProp
(String name, Class<T> type) Gets a system property.Gets the document (version or live document) to which this proxy points.protected String
getType()
Gets the type of this document.getUUID()
Gets this document's UUID.Gets a property value.getVersion
(String label) Gets a version of this document, given its label.Gets the version creation date of this document if it's a version or a proxy.Gets the version label.Gets the versions for this document.Gets the version series id.Gets the list of version ids for this document.Gets the working copy for this document.boolean
Checks whether this document has a child of the given name.boolean
Tests if the document has any children.boolean
Checks whether this document has a given facet, either from its type or added on the instance.int
hashCode()
boolean
Checks if the document has a legal hold set.protected String
internalName
(String name) Finds the internal name to use to refer to this property.boolean
Checks whether this document is checked out.protected boolean
isEqualOnVersion
(Object ob, String key) boolean
boolean
isFolder()
Checks whether this document is a folder.boolean
Checks whether this document is the latest major version.boolean
Checks whether this document is the latest version.boolean
Checks whether this document is a major version.boolean
isProxy()
Checks whether or not this document is a proxy.boolean
Checks whether this document is readonly or not.boolean
isRecord()
Checks if the document is a record.boolean
Checks whether this document is under active retention.protected boolean
isSchemaForProxy
(String schema) boolean
Checks whether this document is a version document.boolean
Checks if there is a checked out working copy for the version series of this document.void
Turns the document into a flexible record.void
Turns the document into an enforced record.protected void
makeRecord
(boolean flexible) void
Marks the document as being modified by a user change.void
orderBefore
(String src, String dest) Orders the given source child before the destination child.void
Loads aDocumentPart
from storage.void
remove()
Removes this document and all its children, if any.void
remove
(NuxeoPrincipal principal) Removes this document and all its children, if any.protected Lock
removeDocumentLock
(String owner) Removes a lock from this recently created and unsaved document.boolean
removeFacet
(String facet) Removes a facet from this document.void
Removes this document only, without its children.replaceBlobDigest
(String key, String newKey, String newDigest) Visits the blobs of this document and, for those with a matching key, replace their key and digest with new ones.protected void
replaceBlobDigest
(Document.BlobAccessor accessor, String key, String newKey, String newDigest, org.apache.commons.lang3.mutable.MutableObject<String> oldDigestHolder) void
Replaces this document's content with the version specified.void
setCurrentLifeCycleState
(String lifeCycleState) Sets the life cycle state of this document.protected Lock
setDocumentLock
(Lock lock) Sets a lock on this recently created and unsaved document.void
setLegalHold
(boolean hold) Sets or removes a legal hold on the document (a record).void
setLifeCyclePolicy
(String policy) Sets the life cycle policy of this document.void
setPropertyValue
(String name, Serializable value) Sets a simple property value.void
setReadOnly
(boolean readonly) Sets this document as readonly or not.void
setRetainUntil
(Calendar retainUntil) Sets a retention date for the document (a record).void
setRetentionActive
(boolean retentionActive) Sets or unsets this document as under active retention.void
setSystemProp
(String name, Serializable value) Sets a system property.void
setTargetDocument
(Document target) Sets the document (version or live document) to which this proxy points.void
Sets a property value.toString()
updateList
(State state, String name, Property property) Update a list.protected void
Update a list.protected static boolean
validateProxyChangeToken
(String userVisibleChangeToken, DBSDocumentState proxyState, DBSDocumentState targetState) boolean
validateUserVisibleChangeToken
(String userVisibleChangeToken) Validates that the passed user-visible change token is compatible with the one for this document.void
visitBlobs
(Consumer<Document.BlobAccessor> blobVisitor) Visits all the blobs of this document and calls the passed blob visitor on each one.boolean
writeDocumentPart
(DocumentPart dp, Document.WriteContext writeContext, boolean create) Writes aDocumentPart
to storage.Methods inherited from class org.nuxeo.ecm.core.storage.BaseDocument
allowNewRetention, buildUserVisibleChangeToken, canonicalXPath, checkReadOnlyIgnoredWrite, clearDirtyFlags, getBlobInfo, getLegacyChangeToken, getLock, getTopLevelSchema, getValueBlob, getValueComplex, getValueField, getValueObject, getWriteContext, isRetainable, isRetained, isUnderRetentionOrLegalHold, isVersionWritableProperty, readComplexProperty, readComplexProperty, removeLock, setBlobInfo, setLock, setPropertyBlobData, setValueBlob, setValueBlob, setValueComplex, setValueField, setValueObject, typedArray, updateChangeToken, validateLegacyChangeToken, validateUserVisibleChangeToken, visitBlobs, writeComplexProperty, writeComplexProperty, writeDocumentPart
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.nuxeo.ecm.core.model.Document
isEnforcedRecord, writeDocumentPart
-
Field Details
-
SYSPROP_FULLTEXT_SIMPLE
- See Also:
-
SYSPROP_FULLTEXT_BINARY
- See Also:
-
SYSPROP_FULLTEXT_JOBID
- See Also:
-
SYSPROP_IS_TRASHED
- See Also:
-
KEY_PREFIX
- See Also:
-
KEY_ID
- See Also:
-
KEY_PARENT_ID
- See Also:
-
KEY_ANCESTOR_IDS
- See Also:
-
KEY_PRIMARY_TYPE
- See Also:
-
KEY_MIXIN_TYPES
- See Also:
-
KEY_NAME
- See Also:
-
KEY_POS
- See Also:
-
KEY_ACP
- See Also:
-
KEY_ACL_NAME
- See Also:
-
KEY_PATH_INTERNAL
- See Also:
-
KEY_ACL
- See Also:
-
KEY_ACE_USER
- See Also:
-
KEY_ACE_PERMISSION
- See Also:
-
KEY_ACE_GRANT
- See Also:
-
KEY_ACE_CREATOR
- See Also:
-
KEY_ACE_BEGIN
- See Also:
-
KEY_ACE_END
- See Also:
-
KEY_ACE_STATUS
- See Also:
-
KEY_READ_ACL
- See Also:
-
KEY_IS_RECORD
- Since:
- 11.1
- See Also:
-
KEY_IS_FLEXIBLE_RECORD
- Since:
- 2023.1
- See Also:
-
KEY_RETAIN_UNTIL
- Since:
- 11.1
- See Also:
-
KEY_HAS_LEGAL_HOLD
- Since:
- 11.1
- See Also:
-
KEY_IS_RETENTION_ACTIVE
Deprecated.since 11.1- See Also:
-
KEY_IS_CHECKED_IN
- See Also:
-
KEY_IS_VERSION
- See Also:
-
KEY_IS_LATEST_VERSION
- See Also:
-
KEY_IS_LATEST_MAJOR_VERSION
- See Also:
-
KEY_MAJOR_VERSION
- See Also:
-
KEY_MINOR_VERSION
- See Also:
-
KEY_VERSION_SERIES_ID
- See Also:
-
KEY_VERSION_CREATED
- See Also:
-
KEY_VERSION_LABEL
- See Also:
-
KEY_VERSION_DESCRIPTION
- See Also:
-
KEY_BASE_VERSION_ID
- See Also:
-
KEY_IS_PROXY
- See Also:
-
KEY_PROXY_TARGET_ID
- See Also:
-
KEY_PROXY_VERSION_SERIES_ID
- See Also:
-
KEY_PROXY_IDS
- See Also:
-
KEY_LIFECYCLE_POLICY
- See Also:
-
KEY_LIFECYCLE_STATE
- See Also:
-
KEY_IS_TRASHED
- Since:
- 10.1
- See Also:
-
KEY_LOCK_OWNER
- See Also:
-
KEY_LOCK_CREATED
- See Also:
-
KEY_SYS_CHANGE_TOKEN
- See Also:
-
KEY_CHANGE_TOKEN
- See Also:
-
KEY_DC_MODIFIED
- See Also:
-
KEY_BLOB_NAME
- See Also:
-
KEY_BLOB_MIME_TYPE
- See Also:
-
KEY_BLOB_ENCODING
- See Also:
-
KEY_BLOB_DIGEST
- See Also:
-
KEY_BLOB_LENGTH
- See Also:
-
KEY_BLOB_DATA
- See Also:
-
KEY_BLOB_KEYS
- Since:
- 11.5
- See Also:
-
KEY_RETAINED_PROPS
- Since:
- 2021.32
- See Also:
-
KEY_FULLTEXT_SIMPLE
- See Also:
-
KEY_FULLTEXT_BINARY
- See Also:
-
KEY_FULLTEXT_JOBID
- See Also:
-
KEY_FULLTEXT_SCORE
- See Also:
-
APPLICATION_OCTET_STREAM
- See Also:
-
PROP_UID_MAJOR_VERSION
- See Also:
-
PROP_UID_MINOR_VERSION
- See Also:
-
PROP_MAJOR_VERSION
- See Also:
-
PROP_MINOR_VERSION
- See Also:
-
FACETED_TAG
- Since:
- 9.3
- See Also:
-
FACETED_TAG_LABEL
- Since:
- 9.3
- See Also:
-
INITIAL_SYS_CHANGE_TOKEN
-
INITIAL_CHANGE_TOKEN
-
id
-
docState
-
type
-
proxySchemas
-
session
-
readonly
protected boolean readonly -
systemPropNameMap
-
CHANGE_TOKEN_PROXY_SEP
- See Also:
-
-
Constructor Details
-
DBSDocument
public DBSDocument(DBSDocumentState docState, DocumentType type, DBSSession session, boolean readonly)
-
-
Method Details
-
getType
Description copied from interface:Document
Gets the type of this document.- Returns:
- the document type
-
getSession
Description copied from interface:Document
Gets the session that owns this document.- Returns:
- the session
-
getRepositoryName
Description copied from interface:Document
Gets the repository in which the document lives.- Returns:
- the repository name.
-
getProxySchemas
Description copied from class:BaseDocument
Gets the list of proxy schemas, if this is a proxy.- Specified by:
getProxySchemas
in classBaseDocument<State>
- Returns:
- the proxy schemas, or
null
-
getUUID
Description copied from interface:Document
Gets this document's UUID.- Returns:
- the document UUID
-
getName
Description copied from interface:Document
Gets the name of this document.- Returns:
- the document name
-
getPos
Description copied from interface:Document
Gets the document's position in its containing folder (if ordered).- Returns:
- the position
-
getParent
Description copied from interface:Document
Gets the parent document, ornull
if this is the root document.- Returns:
- the parent document, or
null
-
isProxy
public boolean isProxy()Description copied from interface:Document
Checks whether or not this document is a proxy.- Returns:
true
if this document is a proxy,false
otherwise
-
isVersion
public boolean isVersion()Description copied from interface:Document
Checks whether this document is a version document.- Returns:
true
if it's a version,false
otherwise
-
getPath
Description copied from interface:Document
Gets the path of this document.- Returns:
- the path
-
getChild
Description copied from interface:Document
Gets a child document given its name.Throws
DocumentNotFoundException
if the document could not be found.- Parameters:
name
- the name of the child to retrieve- Returns:
- the child if exists
-
getChildren
Description copied from interface:Document
Gets the children of the document.- Returns:
- the children
-
getChildrenIds
Description copied from interface:Document
Gets a list of the children ids.- Returns:
- a list of children ids.
-
hasChild
Description copied from interface:Document
Checks whether this document has a child of the given name.- Parameters:
name
- the name of the child to check- Returns:
true
if the child exists,false
otherwise
-
hasChildren
public boolean hasChildren()Description copied from interface:Document
Tests if the document has any children.- Returns:
true
if the document has children,false
otherwise
-
addChild
Description copied from interface:Document
Creates a new child document of the given type.- Parameters:
name
- the name of the new child to createtypeName
- the type of the child to create- Returns:
- the newly created document
-
orderBefore
Description copied from interface:Document
Orders the given source child before the destination child.Both source and destination must be names that point to child documents of this document. The source document will be placed before the destination one. If destination is
null
, the source document will be appended at the end of the children list.- Parameters:
src
- the document to movedest
- the document before which to place the source document
-
getPropertyValue
Description copied from interface:Document
Gets a simple property value.For more generic properties described by an xpath, use
Document.getValue(java.lang.String)
instead.- Parameters:
name
- the name of the property to get- Returns:
- the property value or
null
if the property is not set - See Also:
-
setPropertyValue
Description copied from interface:Document
Sets a simple property value.For more generic properties described by an xpath, use
Document.setValue(java.lang.String, java.lang.Object)
instead.- Parameters:
name
- the name of the property to setvalue
- the value to set- See Also:
-
getChild
Description copied from class:BaseDocument
Gets a child state.- Specified by:
getChild
in classBaseDocument<State>
- Parameters:
state
- the parent statename
- the child nametype
- the child's type- Returns:
- the child state, or
null
if it doesn't exist
-
getChildForWrite
Description copied from class:BaseDocument
Gets a child state into which we will want to write data.Creates it if needed.
- Specified by:
getChildForWrite
in classBaseDocument<State>
- Parameters:
state
- the parent statename
- the child nametype
- the child's type- Returns:
- the child state, never
null
- Throws:
PropertyException
-
getChildAsList
Description copied from class:BaseDocument
Gets a child state which is a list.- Specified by:
getChildAsList
in classBaseDocument<State>
- Parameters:
state
- the parent statename
- the child name- Returns:
- the child state, never
null
-
updateList
Description copied from class:BaseDocument
Update a list.- Specified by:
updateList
in classBaseDocument<State>
- Parameters:
state
- the parent statename
- the child namefield
- the list element typexpath
- the xpath of this listvalues
- the values
-
updateList
protected List<State> updateList(State state, String name, Property property) throws PropertyException Description copied from class:BaseDocument
Update a list.- Specified by:
updateList
in classBaseDocument<State>
- Parameters:
state
- the parent statename
- the child nameproperty
- the property- Returns:
- the list of states to write
- Throws:
PropertyException
-
getValue
Description copied from interface:Document
Gets a property value.The xpath may point to a partial path, in which case the value may be a complex
List
orMap
.- Parameters:
xpath
- the xpath of the property to set- Returns:
- the property value or
null
if the property is not set - Throws:
PropertyException
- if the property does not exist
-
setValue
Description copied from interface:Document
Sets a property value.The xpath may point to a partial path, in which case the value may be a complex
List
orMap
.- Parameters:
xpath
- the xpath of the property to setvalue
- the value to set- Throws:
PropertyException
- if the property does not exist or the value is of the wrong type
-
visitBlobs
Description copied from interface:Document
Visits all the blobs of this document and calls the passed blob visitor on each one.- Throws:
PropertyException
-
replaceBlobDigest
Description copied from interface:Document
Visits the blobs of this document and, for those with a matching key, replace their key and digest with new ones.- Parameters:
key
- the bob key to look fornewKey
- the new keynewDigest
- the new digest- Returns:
- the old digest if at least one replacement was done,
null
otherwise
-
replaceBlobDigest
protected void replaceBlobDigest(Document.BlobAccessor accessor, String key, String newKey, String newDigest, org.apache.commons.lang3.mutable.MutableObject<String> oldDigestHolder) -
getDocumentBlobManager
-
makeFlexibleRecord
public void makeFlexibleRecord()Description copied from interface:Document
Turns the document into a flexible record.A record is a document with specific capabilities related to mandatory retention until a given date, and legal holds.
If the document is already a flexible record, this method has no effect. An enforced record cannot be turned into a flexible record.
The permission "MakeRecord" is required.
- See Also:
-
makeRecord
public void makeRecord()Description copied from interface:Document
Turns the document into an enforced record.A record is a document with specific capabilities related to mandatory retention until a given date, and legal holds. In addition, its main blob receives special treatment from the document blob manager to make sure it's never shared with another blob at the storage level, and is deleted as soon as the record is deleted.
If the document is already a record, this method has no effect.
The permission "MakeRecord" is required.
- See Also:
-
makeRecord
protected void makeRecord(boolean flexible) -
isRecord
public boolean isRecord()Description copied from interface:Document
Checks if the document is a record.- Returns:
true
if the document is a record,false
otherwise- See Also:
-
isFlexibleRecord
public boolean isFlexibleRecord()- Returns:
true
if the document is a flexible record,false
otherwise
-
setRetainUntil
Description copied from interface:Document
Sets a retention date for the document (a record).If no previous retention date was set, or if the previous retention date was indeterminate, or if the previous retention date was before the given value, then the retention date is set to the given value.
If the previous retention date was after the given value (that is, if trying to reduce the retention time), an exception is thrown.
If the given value is
null
and the previous retention date is in the past (it has already expired), then the retention date is set tonull
.The permission "SetRetention" is required.
- Parameters:
retainUntil
- the new retention date- Throws:
PropertyException
- if trying to reduce the retention time, or if the document is not a record- See Also:
-
getRetainUntil
Description copied from interface:Document
Gets the retention date for the document.- Returns:
- the retention date, or "SetRetention" for a
retention in the indeterminate future, or
null
if there is no retention date - See Also:
-
setLegalHold
public void setLegalHold(boolean hold) Description copied from interface:Document
Sets or removes a legal hold on the document (a record).The permission "ManageLegalHold" is required.
- Parameters:
hold
-true
to set a legal hold,false
to remove it- See Also:
-
hasLegalHold
public boolean hasLegalHold()Description copied from interface:Document
Checks if the document has a legal hold set.- Returns:
true
if a legal hold has been set on the document,false
otherwise- See Also:
-
isRetentionActive
public boolean isRetentionActive()Description copied from interface:Document
Checks whether this document is under active retention. -
setRetentionActive
public void setRetentionActive(boolean retentionActive) Description copied from interface:Document
Sets or unsets this document as under active retention. -
checkIn
Description copied from interface:Document
Creates a new version.- Parameters:
label
- the version labelcheckinComment
- the checkin comment- Returns:
- the created version
-
checkOut
public void checkOut() -
getVersionsIds
Description copied from interface:Document
Gets the list of version ids for this document.- Returns:
- the list of version ids
-
getVersions
Description copied from interface:Document
Gets the versions for this document.- Returns:
- the versions of the document, or an empty list if there are no versions
-
getLastVersion
Description copied from interface:Document
Gets the last version of this document.Returns
null
if there is no version at all.- Returns:
- the last version, or
null
if there is no version
-
getSourceDocument
Description copied from interface:Document
Gets the source for this document.For a version, it's the working copy.
For a proxy, it's the version the proxy points to.
- Returns:
- the source document
-
restore
Description copied from interface:Document
Replaces this document's content with the version specified.- Parameters:
version
- the version to replace with
-
getVersion
Description copied from interface:Document
Gets a version of this document, given its label.- Parameters:
label
- the version label- Returns:
- the version
-
getBaseVersion
Description copied from interface:Document
Gets the version to which a checked in document is linked.Returns
null
for a checked out document or a version or a proxy.- Returns:
- the version, or
null
-
isCheckedOut
public boolean isCheckedOut()Description copied from interface:Document
Checks whether this document is checked out.- Returns:
true
if the document is checked out, orfalse
otherwise
-
getVersionSeriesId
Description copied from interface:Document
Gets the version series id.- Returns:
- the version series id
-
getVersionCreationDate
Description copied from interface:Document
Gets the version creation date of this document if it's a version or a proxy.- Returns:
- the version creation date, or
null
if it's not a version or a proxy
-
getVersionLabel
Description copied from interface:Document
Gets the version label.- Returns:
- the version label
-
getCheckinComment
Description copied from interface:Document
Gets the version check in comment of this document if it's a version or a proxy.- Returns:
- the check in comment, or
null
if it's not a version or a proxy
-
isLatestVersion
public boolean isLatestVersion()Description copied from interface:Document
Checks whether this document is the latest version.- Returns:
true
if this is the latest version, orfalse
otherwise
-
isMajorVersion
public boolean isMajorVersion()Description copied from interface:Document
Checks whether this document is a major version.- Returns:
true
if this is a major version, orfalse
otherwise
-
isLatestMajorVersion
public boolean isLatestMajorVersion()Description copied from interface:Document
Checks whether this document is the latest major version.- Returns:
true
if this is the latest major version, orfalse
otherwise
-
isEqualOnVersion
-
isVersionSeriesCheckedOut
public boolean isVersionSeriesCheckedOut()Description copied from interface:Document
Checks if there is a checked out working copy for the version series of this document.- Returns:
true
if there is a checked out working copy
-
getWorkingCopy
Description copied from interface:Document
Gets the working copy for this document.- Returns:
- the working copy
-
isFolder
public boolean isFolder()Description copied from interface:Document
Checks whether this document is a folder.- Returns:
true
if the document is a folder,false
otherwise
-
setReadOnly
public void setReadOnly(boolean readonly) Description copied from interface:Document
Sets this document as readonly or not. -
isReadOnly
public boolean isReadOnly()Description copied from interface:Document
Checks whether this document is readonly or not. -
remove
public void remove()Description copied from interface:Document
Removes this document and all its children, if any. -
remove
Description copied from interface:Document
Removes this document and all its children, if any.- Parameters:
principal
- the caller
-
removeSingleton
public void removeSingleton()Description copied from interface:Document
Removes this document only, without its children. -
getBlobKeys
-
getLifeCycleState
Description copied from interface:Document
Gets the life cycle state of this document.- Returns:
- the life cycle state
-
setCurrentLifeCycleState
Description copied from interface:Document
Sets the life cycle state of this document.- Parameters:
lifeCycleState
- the life cycle state- Throws:
LifeCycleException
-
getLifeCyclePolicy
Description copied from interface:Document
Gets the life cycle policy of this document.- Returns:
- the life cycle policy
-
setLifeCyclePolicy
Description copied from interface:Document
Sets the life cycle policy of this document.- Parameters:
policy
- the life cycle policy- Throws:
LifeCycleException
-
followTransition
Description copied from interface:Document
Follows a given life cycle transition.This will update the life cycle state of the document.
- Parameters:
transition
- the name of the transition to follow- Throws:
LifeCycleException
-
getAllowedStateTransitions
Description copied from interface:Document
Returns the allowed state transitions for this document.- Returns:
- a collection of state transitions
- Throws:
LifeCycleException
-
setSystemProp
Description copied from interface:Document
Sets a system property. -
getSystemProp
Description copied from interface:Document
Gets a system property. -
getChangeToken
Description copied from interface:Document
Gets the current change token for this document.- Returns:
- the change token
-
getProxyUserVisibleChangeToken
-
validateUserVisibleChangeToken
Description copied from interface:Document
Validates that the passed user-visible change token is compatible with the one for this document.- Returns:
false
if the change token is not valid
-
validateProxyChangeToken
protected static boolean validateProxyChangeToken(String userVisibleChangeToken, DBSDocumentState proxyState, DBSDocumentState targetState) -
markUserChange
public void markUserChange()Description copied from interface:Document
Marks the document as being modified by a user change.This causes an additional change token increment and check during save.
-
getStateOrTarget
- Throws:
PropertyException
-
getStateOrTarget
-
getStateOrTargetForSchema
Checks if the given schema should be resolved on the proxy or the target. -
getStateOrTarget
Gets the target state if this is a proxy, or the regular state otherwise. -
isSchemaForProxy
-
getSchema
-
readDocumentPart
Description copied from interface:Document
Loads aDocumentPart
from storage.Reading data is done by
DocumentPart
because of per-proxy schemas.- Throws:
PropertyException
-
internalName
Description copied from class:BaseDocument
Finds the internal name to use to refer to this property.- Specified by:
internalName
in classBaseDocument<State>
-
writeDocumentPart
public boolean writeDocumentPart(DocumentPart dp, Document.WriteContext writeContext, boolean create) throws PropertyException Description copied from interface:Document
Writes aDocumentPart
to storage.Writing data is done by
DocumentPart
because of per-proxy schemas.- Parameters:
dp
- the document partwriteContext
- the write contextcreate
- whether this is for a document creation- Returns:
true
if something changed- Throws:
PropertyException
-
getAllFacets
Description copied from interface:Document
Gets the facets available on this document (from the type and the instance facets).- Returns:
- the facets
-
getFacets
Description copied from interface:Document
Gets the facets defined on this document instance. The type facets are not returned.- Returns:
- the facets
-
getRetainedProperties
Description copied from interface:Document
Gets the retained property xpaths of this document instance at the time it became a record.- Returns:
- the retained properties
- Throws:
PropertyException
- if document is not a record
-
hasFacet
Description copied from interface:Document
Checks whether this document has a given facet, either from its type or added on the instance.- Parameters:
facet
- the facet name- Returns:
true
if the document has the facet
-
addFacet
Description copied from interface:Document
Adds a facet to this document.Does nothing if the facet was already present on the document.
- Parameters:
facet
- the facet name- Returns:
true
if the facet was added, orfalse
if it is already present
-
removeFacet
Description copied from interface:Document
Removes a facet from this document.It's not possible to remove a facet coming from the document type.
- Parameters:
facet
- the facet name- Returns:
true
if the facet was removed, orfalse
if it isn't present or is present on the type or does not exit
-
getSchemas
-
getTargetDocument
Description copied from interface:Document
Gets the document (version or live document) to which this proxy points. -
getTargetDocumentId
-
setTargetDocument
Description copied from interface:Document
Sets the document (version or live document) to which this proxy points. -
getDocumentLock
Description copied from class:BaseDocument
Gets the lock from this recently created and unsaved document.- Specified by:
getDocumentLock
in classBaseDocument<State>
- Returns:
- the lock, or
null
if no lock is set
-
setDocumentLock
Description copied from class:BaseDocument
Sets a lock on this recently created and unsaved document.- Specified by:
setDocumentLock
in classBaseDocument<State>
- Parameters:
lock
- the lock to set- Returns:
null
if locking succeeded, or the existing lock if locking failed
-
removeDocumentLock
Description copied from class:BaseDocument
Removes a lock from this recently created and unsaved document.- Specified by:
removeDocumentLock
in classBaseDocument<State>
- Parameters:
owner
- the owner to check, ornull
for no check- Returns:
null
if there was no lock or if removal succeeded, or a lock if it blocks removal due to owner mismatch
-
toString
-
equals
-
hashCode
public int hashCode()
-