public interface Document extends RepositoryObject, Versionable, Containable, CmHoldable, Replicable, Subscribable, IndependentlyPersistableObject
Document
object can be subclassed and can carry content, which is stored in one or more content elements.
Each content element represents content data, which can either be local to an object store (represented by a
ContentTransfer
object) or external to an object store and therefore outside the control of the Content Engine server
(represented by a ContentReference
object). In addition, a Document
object can be associated with a document
lifecycle policy. A document lifecycle policy defines a set of valid lifecycle states for a document, controls the transition of those
states, and specifies the actions to be taken when a document's lifecycle state changes.
Modifier and Type | Method and Description |
---|---|
java.io.InputStream |
accessContentStream(int element)
Obtains read access, via an input stream, to the content data of a
ContentTransfer content element associated with
this document or annotation. |
void |
applySecurityTemplate(Id applyStateId)
Applies a security policy template to the given object.
|
void |
changeState(LifecycleChangeFlags flags)
Changes the current, user-defined lifecycle state of a
Document object,
or the current state of a CmTask object
(see TaskState for a list of the states). |
void |
checkin(AutoClassify autoClassify,
CheckinType checkinType)
Checks in this document reservation object by saving it as a new document version.
|
DocumentSet |
get_ChildDocuments()
Returns the value of the ChildDocuments property.
|
ComponentRelationshipSet |
get_ChildRelationships()
Returns the value of the ChildRelationships property.
|
DocClassificationStatus |
get_ClassificationStatus()
Returns the value of the ClassificationStatus property.
|
java.lang.Integer |
get_CmIndexingFailureCode()
Returns the value of the CmIndexingFailureCode property.
|
java.util.Date |
get_CmRetentionDate()
Returns the value of the CmRetentionDate property.
|
CmThumbnailSet |
get_CmThumbnails()
Returns the value of the CmThumbnails property.
|
CompoundDocumentState |
get_CompoundDocumentState()
Returns the value of the CompoundDocumentState property.
|
ContentElementList |
get_ContentElements()
Returns the value of the ContentElements property.
|
StringList |
get_ContentElementsPresent()
Returns the value of the ContentElementsPresent property.
|
java.util.Date |
get_ContentRetentionDate()
Returns the value of the ContentRetentionDate property.
|
java.lang.Double |
get_ContentSize()
Returns the value of the ContentSize property.
|
java.lang.String |
get_CurrentState()
Returns the value of the CurrentState property.
|
Versionable |
get_CurrentVersion()
Returns the value of the CurrentVersion property.
|
java.util.Date |
get_DateContentLastAccessed()
Returns the value of the DateContentLastAccessed property.
|
DocumentSet |
get_DependentDocuments()
Returns the value of the DependentDocuments property.
|
DocumentSet |
get_DestinationDocuments()
Returns the value of the DestinationDocuments property.
|
DocumentLifecyclePolicy |
get_DocumentLifecyclePolicy()
Returns the value of the DocumentLifecyclePolicy property.
|
Id |
get_IndexationId()
Returns the value of the IndexationId property.
|
java.lang.Boolean |
get_IsInExceptionState()
Returns the value of the IsInExceptionState property.
|
java.lang.String |
get_MimeType()
Returns the value of the MimeType property.
|
Document |
get_OwnerDocument()
Returns the value of the OwnerDocument property.
|
DocumentSet |
get_ParentDocuments()
Returns the value of the ParentDocuments property.
|
ComponentRelationshipSet |
get_ParentRelationships()
Returns the value of the ParentRelationships property.
|
byte[] |
get_PublicationInfo()
Returns the value of the PublicationInfo property.
|
Folder |
get_PublishingSubsidiaryFolder()
Returns the value of the PublishingSubsidiaryFolder property.
|
Versionable |
get_ReleasedVersion()
Returns the value of the ReleasedVersion property.
|
ReferentialContainmentRelationship |
get_SecurityParent()
Deprecated.
|
Document |
get_SourceDocument()
Returns the value of the SourceDocument property.
|
StorageArea |
get_StorageArea()
Returns the value of the StorageArea property.
|
java.lang.String |
get_StorageLocation()
Deprecated.
As of release 4.0.0.
|
StoragePolicy |
get_StoragePolicy()
Returns the value of the StoragePolicy property.
|
InstanceWorkflowSubscriptionSet |
get_WorkflowSubscriptions()
Returns the value of the WorkflowSubscriptions property.
|
PublicationStatus |
getPublicationStatus()
Returns a
PublicationStatus enumeration value, which identifies the document's publication
status (dependent, independent, or not a publication). |
java.lang.Boolean |
isLocked()
Queries this object's lock state.
|
void |
lock(int timeout,
java.lang.String owner)
Sets a new lock or updates an existing lock on the object.
|
void |
moveContent(StorageArea storageArea)
Moves the content data of an object to a new storage area.
|
PublishRequest |
publish(PublishTemplate publishTemplate,
java.lang.String publishOptions)
Publishes this
Document object according to the specifications included in the specified
publish template as modified by the contents of the publishOptions parameter. |
PublishRequest |
republish(Document publication,
java.lang.String publishOptions)
Republishes the specified published document.
|
void |
set_CmRetentionDate(java.util.Date value)
Sets the value of the CmRetentionDate property.
|
void |
set_CompoundDocumentState(CompoundDocumentState value)
Sets the value of the CompoundDocumentState property.
|
void |
set_ContentElements(ContentElementList value)
Sets the value of the ContentElements property.
|
void |
set_DocumentLifecyclePolicy(DocumentLifecyclePolicy value)
Sets the value of the DocumentLifecyclePolicy property.
|
void |
set_MimeType(java.lang.String value)
Sets the value of the MimeType property.
|
void |
set_OwnerDocument(Document value)
Sets the value of the OwnerDocument property.
|
void |
set_PublicationInfo(byte[] value)
Sets the value of the PublicationInfo property.
|
void |
set_PublishingSubsidiaryFolder(Folder value)
Sets the value of the PublishingSubsidiaryFolder property.
|
void |
set_SecurityParent(ReferentialContainmentRelationship value)
Deprecated.
|
void |
set_SourceDocument(Document value)
Sets the value of the SourceDocument property.
|
void |
set_StorageArea(StorageArea value)
Sets the value of the StorageArea property.
|
void |
set_StoragePolicy(StoragePolicy value)
Sets the value of the StoragePolicy property.
|
void |
takeFederatedOwnership()
For a document that has been federated by Content Federation Services (CFS), grants exclusive
control of this document to the FileNet P8 Content Engine by making the corresponding external
document read-only.
|
void |
unlock()
Explicitly removes the lock from this object.
|
void |
updateLock(long timeout)
Adjusts the timeout period of the lock on this object.
|
getObjectStore
cancelCheckout, changeClass, checkout, createAnnotation, demoteVersion, freeze, get_CmIsMarkedForDeletion, get_DateCheckedIn, get_FoldersFiledIn, get_IsCurrentVersion, get_IsFrozenVersion, get_IsReserved, get_IsVersioningEnabled, get_MajorVersionNumber, get_MinorVersionNumber, get_Reservation, get_ReservationType, get_SecurityFolder, get_Versions, get_VersionSeries, get_VersionStatus, promoteVersion, set_DateCheckedIn, set_SecurityFolder
get_ActiveMarkings, get_Annotations, get_AuditedEvents, get_Containers, get_CoordinatedTasks, get_Creator, get_DateCreated, get_DateLastModified, get_Id, get_LastModifier, get_LockOwner, get_LockTimeout, get_LockToken, get_Name, get_Owner, get_Permissions, get_SecurityPolicy, set_Creator, set_DateCreated, set_DateLastModified, set_LastModifier, set_Owner, set_Permissions, set_SecurityPolicy
get_CmHoldRelationships
get_ExternalReplicaIdentities, get_ReplicationGroup, set_ExternalReplicaIdentities, set_ReplicationGroup
raiseEvent
addPendingAction, clearPendingActions, delete, getAccessAllowed, getPendingActions, getUpdateSequenceNumber, isCurrent, save, save, setUpdateSequenceNumber
fetchProperties, fetchProperties, fetchProperty, fetchProperty, getObjectReference, refresh, refresh, refresh
get_ClassDescription, getClassName, getConnection, getProperties, getSuperClasses
StoragePolicy get_StoragePolicy()
void set_StoragePolicy(StoragePolicy value)
java.lang.String get_StorageLocation()
StringList get_ContentElementsPresent()
ContentElementList get_ContentElements()
void set_ContentElements(ContentElementList value)
java.lang.Double get_ContentSize()
java.lang.String get_MimeType()
void set_MimeType(java.lang.String value)
java.util.Date get_DateContentLastAccessed()
java.util.Date get_ContentRetentionDate()
DocumentLifecyclePolicy get_DocumentLifecyclePolicy()
void set_DocumentLifecyclePolicy(DocumentLifecyclePolicy value)
java.lang.String get_CurrentState()
java.lang.Boolean get_IsInExceptionState()
InstanceWorkflowSubscriptionSet get_WorkflowSubscriptions()
DocClassificationStatus get_ClassificationStatus()
StorageArea get_StorageArea()
void set_StorageArea(StorageArea value)
Id get_IndexationId()
java.lang.Integer get_CmIndexingFailureCode()
CompoundDocumentState get_CompoundDocumentState()
void set_CompoundDocumentState(CompoundDocumentState value)
DocumentSet get_ChildDocuments()
ComponentRelationshipSet get_ChildRelationships()
DocumentSet get_ParentDocuments()
ComponentRelationshipSet get_ParentRelationships()
java.util.Date get_CmRetentionDate()
void set_CmRetentionDate(java.util.Date value)
Document get_SourceDocument()
void set_SourceDocument(Document value)
DocumentSet get_DestinationDocuments()
Document get_OwnerDocument()
void set_OwnerDocument(Document value)
DocumentSet get_DependentDocuments()
byte[] get_PublicationInfo()
void set_PublicationInfo(byte[] value)
Folder get_PublishingSubsidiaryFolder()
void set_PublishingSubsidiaryFolder(Folder value)
CmThumbnailSet get_CmThumbnails()
void takeFederatedOwnership()
E_NOT_SUPPORTED
- if this document is a reservation object (VersionStatus property is set
to RESERVATION
).void changeState(LifecycleChangeFlags flags)
Document
object,
or the current state of a CmTask
object
(see TaskState for a list of the states).
The changeState
method must be followed by a save()
or an equivalent batch operation to commit the state change.
Every state change generates a ChangeStateEvent
, to which you can subscribe or audit.
For documents, you cannot change the state of a
document that is a reservation object. Valid lifecycle states are defined by the collection of
DocumentState
objects belonging to the document's
associated DocumentLifecyclePolicy
object.
For documents, the LifecycleChangeFlags
constant can be used as follows:
PROMOTE
: Promotes the document's current lifecycle state to the next state in its document lifecycle policy and sets the document's
CurrentState property to the name of the next state. Throws an error if the document is in the exception state or in the last state of its lifecycle.DEMOTE
: Demotes the document's current lifecycle state to the previous state in its document lifecycle policy and sets the document's
CurrentState property to the name of the previous state, unless the CanBeDemoted property of the document’s current state (DocumentState
object) is set to false
. Throws an error if the document is in the exception state, in the first state of its lifecycle, or does not allow demotion.SET_EXCEPTION
: Places the document into the exception state and sets its IsInExceptionState property to true
.
Throws an error if the document's IsInExceptionState property is already set to true
.CLEAR_EXCEPTION
: Removes the document from the exception state and sets its IsInExceptionState property to false
.
Throws an error if the document's IsInExceptionState property is already set to false
.RESET
: Resets the lifecycle state to the initial state in its document lifecycle policy and sets the document's
CurrentState property to the name of the initial state. Throws an error if the document is in the exception state.For tasks, the LifecycleChangeFlags
constant can be used as follows:
PROMOTE
: Promotes the task's current state to the next state.DEMOTE
: Demotes the task's current state to the previous state.SET_EXCEPTION
: Places the task into the exception state.CLEAR_EXCEPTION
: Removes the task from the exception state. RESET
: Not supported for tasks.flags
- A LifecycleChangeFlags
constant that specifies the type of state transition to be applied to the document or task.E_BAD_PARAMETER
- if you attempt to promote, demote, reset, or place into the exception state a document or task that is in the exception state,
or attempt to clear the exception of a document or task that is not in the exception state.E_NOT_SUPPORTED
- if you attempt to promote or demote a document or task from a state that does not allow promotion or demotion.PublicationStatus getPublicationStatus()
PublicationStatus
enumeration value, which identifies the document's publication
status (dependent, independent, or not a publication).PublicationStatus
object.PublishRequest republish(Document publication, java.lang.String publishOptions)
Document
object as its source document. This method
returns the PublishRequest
object that is queued for this request. All publish requests are asynchronous,
including copy operations, which do not transform the document. A publish request is always enqueued, and
a copy of the PublishRequest
object is always returned to the caller.
The publishOptions
parameter is a string containing XML that specifies the publish options for
the republished document. See Publish Options XML
for more information.
publication
- The Document
object to be republished.publishOptions
- A string containing XML that specifies the publish options for the republished document. Can be null
, in which case the values for the publication name, output folder, and event action are as specified in the associated publish template.PublishRequest
object that is queued for this request.PublishRequest publish(PublishTemplate publishTemplate, java.lang.String publishOptions)
Document
object according to the specifications included in the specified
publish template as modified by the contents of the publishOptions
parameter. This method
returns the PublishRequest
object that is queued for this request. All publish requests are asynchronous,
including copy operations, which do not transform the document. A publish request is always enqueued, and
a copy of the PublishRequest
object is always returned to the caller.
The publish template you specify, as well as any objects specified in the publish template itself,
must reside on the same object store as this Document
object. Note that publishing to a
document class containing a required binary- or object-valued property is not supported as there is no
way to set these property values during publishing.
The publishOptions
parameter is a string containing XML that specifies the publish options
for the published document. See Publish Options XML
for more information.
After a successful call to publish
, call the save
method of the returned
PublishRequest
object to submit the request to the publish queue.
publishTemplate
- The PublishTemplate
object to use for this publish operation.publishOptions
- A string containing XML that specifies the publish options for the published document. Can be null
, in which case the values for the publication name, output folder, and event action are as specified in the associated publish template.PublishRequest
object that is queued for this request.void checkin(AutoClassify autoClassify, CheckinType checkinType)
MAJOR_VERSION
to check it in a major version or MINOR_VERSION
to check it in a
minor version). A major version is either the current released document version (if it is the latest major version) or a
former released version that has been superseded. A minor version is either the in-process document version (if it is the latest minor version)
or a former in-process version that has been superseded.
In addition, if the reservation object is an exclusive reservation (its ReservationType property is set
to EXCLUSIVE
), you must be the user who checked out the document, or have the WRITE_OWNER
access right.
An error will occur if this method is called by a document that is not a reservation object.
Before you can check in a document that has content, you must set the content for the document by adding to its ContentElements
collection one or more ContentTransfer
objects if the content is stored in a Content Engine object store, or one or more ContentReference
objects if the content is stored externally. If you do not want the Content Engine to assign a MIME type to the checked-in document, you must
explicitly set the value of the document's MimeType property before calling the checkin
method. After a successful check-in,
the reservation object becomes the new current version of the document (its IsCurrentVersion property is set to true
).
During a minor version check-in, the new minor document version is marked as in-process (its VersionStatus property is set to IN_PROCESS
) and the
previous in-process minor document version (if it exists) is marked as superseded (its VersionStatus property is set to SUPERSEDED
).
During a major version check-in, the new major document version is marked as released (its VersionStatus property is set to RELEASED
) and
the previous released major document version and in-process minor document version (if they exist) are marked as superseded.
The checkinType
parameter specifies whether to check in a document as a minor or a major version; set it to MINOR_VERSION
to check in a minor version, or MAJOR_VERSION
to check in a major version. The autoClassify
parameter specifies whether
the document should have automatic document classification enabled. (This feature is not supported for publish templates.) If set to
AUTO_CLASSIFY
, and if a classifier exists for the document's content type, the
document will automatically be assigned the proper document class and its properties will be populated based on the
document content (and, in the case of XML document classification, mapping rules from user-defined scripts). The Content Engine's
classification service uses a document's MIME type to determine if there is a classifier capable of parsing the document. If you set the
autoClassify
parameter to AUTO_CLASSIFY
, the check-in operation changes the value of the document's ClassificationStatus
property to CLASSIFICATION_PENDING
; if you set it to DO_NOT_AUTO_CLASSIFY
, the property is set to
NOT_CLASSIFIED
.
autoClassify
- An AutoClassify
constant specifying whether to auto-classify a document during
check-in.checkinType
- A CheckinType
constant specifying whether to check in a document as a new minor
version or as a new major version.E_NOT_SUPPORTED
- if this method is called by a document that is not a reservation object.void applySecurityTemplate(Id applyStateId)
applyStateId
parameter
must match the value of the ApplyStateID property of one of the templates in the security policy
for the object. For a versioning security template, the apply state ID can be one of the following:
- VersionStatusId.IN_PROCESS
- VersionStatusId.RELEASED
- VersionStatusId.RESERVATION
- VersionStatusId.SUPERSEDED
For an application security template, the apply state ID is defined by your application.applyStateId
- An Id
object representing the unique identifier of the security template
to apply.java.io.InputStream accessContentStream(int element)
ContentTransfer
content element associated with
this document or annotation. The content data is fetched from the server.
The Content Platform Engine will not automatically close the stream after access has finished; unless you want the stream to
remain open, your application should close the stream after it has finished reading the content data.element
- An int
specifying the index of the content element to which the content data belongs.InputStream
object for reading content data. To retrieve content at arbitrary positions within the stream, cast the returned InputStream
to ExtendedInputStream
and use the methods on ExtendedInputStream
.API_INDEX_OUT_OF_BOUNDS
- if the element
parameter specifies an invalid index.API_NO_CONTENT_ELEMENTS
- if no content elements exist on this document or annotation.API_NOT_A_CONTENT_TRANSFER
- if the content element is not a ContentTransfer
object.void lock(int timeout, java.lang.String owner)
To successfully execute this method, the current user must have permission to modify this object's
properties. For example, locking a Document
object requires the following combination of access rights:
AccessRight.CHANGE_STATE | AccessRight.CREATE_INSTANCE | AccessRight.LINK | AccessRight.UNLINK |
AccessRight.VIEW_CONTENT | AccessRight.WRITE | AccessRight.READ_ACL | AccessLevel.READ
.
If the call succeeds:
owner
parameter. (New lock only.)timeout
is applied to the object's LockTimeout property.To update an existing lock, the objects needs to be in the locked state and the current user
needs to match the user of the lock. Note that the user is the logged in user, not the owner
string.
If the call succeeds, then only the LockTimeout
property is updated with the timeout value. The owner
parameter in this case is ignored. (See the updateLock()
method instead.)
timeout
- An integer that represents the number of seconds after which the lock will expire.
The range of values is 0 to 2147483647 (Integer.MAX_VALUE
) seconds.owner
- A String
representing the user name to be assigned as the owner of the
lock on this object. Defaults to the short principal name of the requesting user. The value is strictly advisory and
is not validated against user or group names known to the Content Engine. The value can be used by client applications to identify the user who has locked the object.E_OBJECT_LOCKED
- If the object is already locked and the current user does not match the user of the lock.E_OBJECT_NOT_LOCKED
- If the user tries to update an existing lock but the object is not locked (absence of a LockToken).void moveContent(StorageArea storageArea)
VersionSeries
, this method moves the content for
all associated document versions.
After a successful call to the moveContent
method,
the content data is deleted from the original location unless the content data is IBM FileNet Content Federation
Services for Image Services federated content. To enable deletion of IBM FileNet Content Federation Services for
Image Services federated content from its original location, set the com.filenet.replication.EnableLegacyMoveContentBehaviour
parameter to true
for your application server. For information about how to assign JVM parameter values for your application server,
see Setting JVM parameters.
You can force content to be encrypted, re-encrypted, or decrypted based on the current encryption configuration for the destination storage area. Likewise, you can force content to be compressed or decompressed based on the content compression configuration for the destination storage area. For more information, see Content encryption and Content compression.
.storageArea
- A StorageArea
object specifying the new storage area for this object's content data.java.lang.Boolean isLocked()
lock
method
and handle any exception thrown if the method fails.
Note that this method returns an approximation of the locked state
at the time of the call. Once this method executes and returns the value, the object's lock state could be
immediately changed by another application's call to the lock
method or the lock could expire.
Before calling this method, make sure that the object's LockToken, LockTimeout, and DateLastModified properties have relatively fresh values. If any of those properties is missing, they are silently fetched from the server and added to the object's property cache.
The isLocked
method returns false
if the LockTimeout property is not set
or if the lock has expired. The lock is determined to be expired if the DateLastModified property
value plus the number of seconds specified by the LockTimeout property is less than the current system
time. (All millisecond components are dropped from the calculation.) If the DateLastModified
property is not set, this method returns false
because the check against the lock timeout value
or the lock token will yield null
, meaning that the object is not locked. As soon as some action locks the object, the
DateLastModified property will be updated and can then used for the expiration
calculation.
Note To successfully run isLocked
and other cooperative locking methods, system clocks on the
IBM FileNet P8 platform engine machines must be synchronized. The calculation performed by the isLocked()
method is done on the client system. If the client and server machine clocks are not synchronized, the result of this
calculation might be incorrect.
true
if this object is locked; otherwise, returns false
.void updateLock(long timeout)
This method updates the object's DateLastModified property to the current time and its LockTimeout property to the timeout value. The net effect of this may extend or shorten the original lock's expiration time. Only the user who locked the object can successfully call this method; for any other user, an exception is thrown. There is no limit to the number of times you can call this method.
timeout
- The changed timeout value, in seconds, for this object's lock. The range of values is
0 to 2147483647 (Integer.MAX_VALUE
) seconds.void unlock()
AccessRight.WRITE_ACL
permission on the object. An exception is thrown
if the above conditions are not met.
Upon successful execution of this method, the values for the object's LockOwner, LockToken, and LockTimeout properties
are removed (set to null
). If you do not call unlock
to explicitly remove the lock, the lock is implicitly removed
when the lock's timeout value expires.E_OBJECT_NOT_LOCKED
- If the object is not locked.void set_SecurityParent(ReferentialContainmentRelationship value)
ReferentialContainmentRelationship get_SecurityParent()
SecurityParent
property has no value), this method
returns null
. For more information, see
SecurityParent Property.Versionable get_ReleasedVersion()
Versionable get_CurrentVersion()
get_CurrentVersion
in interface Versionable
© Copyright IBM Corporation 2006, 2015. All rights reserved.