com.filenet.api.core
Interface CustomObject

All Superinterfaces:
Containable, EngineObject, IndependentlyPersistableObject, IndependentObject, Replicable, RepositoryObject, java.io.Serializable, Subscribable
All Known Subinterfaces:
PublishStyleTemplate

public interface CustomObject
extends RepositoryObject, Containable, Replicable, Subscribable, IndependentlyPersistableObject

Represents a general interface that can be subclassed. A CustomObject object has no inherent semantics, but is independently securable and can be persisted to an object store. A CustomObject does not carry content, is not versionable, and does not support lifecycle functionality.

The CustomObject base interface provides a minimal set of properties (such as Creator, DateCreated, and Name). Unlike most Content Engine objects, the CustomObject base interface does not have a specific property defined as the name property in order that subclassed objects can define it in an appropriate way. Because a CustomObject object does not have a defined name property, the value of its Name property reverts to the default value, which is same as its ID property.

Metadata

Auditable: true
AllowsInstances: true
AllowsSubClasses: true
ClassDefinitionName: ReplicableClassDefinition
IsDependent: false
IsHidden: false
Searchable: true
StorageType: ObjectStore
SuperclassName: Containable


Method Summary
 void applySecurityTemplate(Id applyStateId)
          Applies a security policy template to the given object.
 void changeClass(java.lang.String className)
          Changes the class of a Content Engine object.
 Id get_IndexationId()
          Returns the value of the IndexationId property.
 Folder get_SecurityFolder()
          Returns the value of the SecurityFolder property.
 ReferentialContainmentRelationship get_SecurityParent()
          Deprecated.  
 InstanceWorkflowSubscriptionSet get_WorkflowSubscriptions()
          Returns the value of the WorkflowSubscriptions property.
 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 set_SecurityFolder(Folder value)
          Sets the value of the SecurityFolder property.
 void set_SecurityParent(ReferentialContainmentRelationship value)
          Deprecated.  
 void unlock()
          Explicitly removes the lock from this object.
 void updateLock(long timeout)
          Adjusts the timeout period of the lock on this object.
 
Methods inherited from interface com.filenet.api.core.RepositoryObject
getObjectStore
 
Methods inherited from interface com.filenet.api.core.Containable
get_ActiveMarkings, get_Annotations, get_AuditedEvents, get_Containers, 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
 
Methods inherited from interface com.filenet.api.replication.Replicable
get_ExternalReplicaIdentities, get_ReplicationGroup, set_ExternalReplicaIdentities, set_ReplicationGroup
 
Methods inherited from interface com.filenet.api.core.Subscribable
raiseEvent
 
Methods inherited from interface com.filenet.api.core.IndependentlyPersistableObject
addPendingAction, clearPendingActions, delete, getAccessAllowed, getPendingActions, getUpdateSequenceNumber, isCurrent, save, save, setUpdateSequenceNumber
 
Methods inherited from interface com.filenet.api.core.IndependentObject
fetchProperties, fetchProperties, fetchProperty, fetchProperty, getObjectReference, refresh, refresh, refresh
 
Methods inherited from interface com.filenet.api.core.EngineObject
get_ClassDescription, getClassName, getConnection, getProperties, getSuperClasses
 

Method Detail

get_SecurityFolder

Folder get_SecurityFolder()
Returns the value of the SecurityFolder property. For more information, see SecurityFolder Property.


set_SecurityFolder

void set_SecurityFolder(Folder value)
Sets the value of the SecurityFolder property. For more information, see SecurityFolder Property.


get_WorkflowSubscriptions

InstanceWorkflowSubscriptionSet get_WorkflowSubscriptions()
Returns the value of the WorkflowSubscriptions property. For more information, see WorkflowSubscriptions Property.


get_IndexationId

Id get_IndexationId()
Returns the value of the IndexationId property. For more information, see IndexationId Property.


isLocked

java.lang.Boolean isLocked()
Queries this object's lock state. This helper method examines the object's lock-related properties and determines the object's lock state. An alternative approach is to call the 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.

Returns:
true if this object is locked; otherwise, returns false.

changeClass

void changeClass(java.lang.String className)
Changes the class of a Content Engine object. The new class must already exist and both it and the original class must be subclasses of the same base class. The changeClass method does not modify the security for an object, even if the object's current security is derived from the default security for its source class. For the object's user-defined properties, the following rules apply:

When the class of a document object is changed, the default document lifecycle policy of the new class will only be applied to the document object's DocumentLifecyclePolicy property if both of the following scenarios occur:

Parameters:
className - A String specifying the symbolic name, ClassNames constant, ID, or GUIDConstants constant of the class to which this object is to be changed.
Throws:
E_NULL_OR_INVALID_PARAM_VALUE - if className is null or has a length of zero.

lock

void lock(int timeout,
          java.lang.String owner)
Sets a new lock or updates an existing lock on the object. Calling this method has no effect in preventing others from updating a locked object (with the exception that others cannot re-lock the locked object). This lock mechanism is used for custom purposes only and has no bearing on the actual ability to update an object.

To successfully execute this method, the current user must have permission to modify this object's properties. For example, locking a Document object requires AccessLevel.WRITE_DOCUMENT.

If the call succeeds:

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.)

Parameters:
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 applications such as WebDAV to identify the user who has locked the object.
Throws:
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).

updateLock

void updateLock(long timeout)
Adjusts the timeout period of the lock on this object.

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.

Parameters:
timeout - The changed timeout value, in seconds, for this object's lock. The range of values is 0 to 2147483647 (Integer.MAX_VALUE) seconds.

applySecurityTemplate

void applySecurityTemplate(Id applyStateId)
Applies a security policy template to the given object. The specified value for the 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.

Parameters:
applyStateId - An Id object representing the unique identifier of the security template to apply.

unlock

void unlock()
Explicitly removes the lock from this object. Only the user who locked the object may remove the lock. If the current user is not the user of the lock, the current user can still remove the lock provided tht user has 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.

Throws:
E_OBJECT_NOT_LOCKED - If the object is not locked.

set_SecurityParent

void set_SecurityParent(ReferentialContainmentRelationship value)
Deprecated. 

Sets the security parent for this object, that is, the object from which this object inherits its security. This method sets the object's SecurityParent property to the specified value.

Parameters:
value - The ReferentialContainmentRelationship object that is to be the security parent of this object.

get_SecurityParent

ReferentialContainmentRelationship get_SecurityParent()
Deprecated. 

Returns the object from which this object inherits security. If this object does not have a security parent (that is, its SecurityParent property has no value), this method returns null.

Returns:
The parent ReferentialContainmentRelationship object for this object, or null if the object has no security parent.


© Copyright IBM Corporation 2006, 2008. All rights reserved.