Package com.documentum.fc.client

# Interface IDfSysObjectRetention

public interface IDfSysObjectRetention
This class provides access to the retention operations of the IDfSysobject class. An obtained IDfSysObject should be cast to IDSysobjectRetention to make these calls.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `applyRetention(IDfId retainerId)`
  Places object under retention by the specified dm_retainer object.
  `boolean`
  `canSwapRetainer(IDfId oldRetainerId, IDfId newRetainerId)`
  `int`
  `getRetainerCount()`
  Returns the number of entries in the i_retainer_id field.
  `IDfId`
  `getRetainerId(int index)`
  Returns an entry from the i_retainer_id field.
  `boolean`
  `isObjectUnderRetention()`
  Returns true if the object is under retention.
  `boolean`
  `isObjectUnderRetentionHold()`
  Returns true is the object is under retention-hold.
  `void`
  `onObjectRetained()`
  A function that is called by RPS after an object was retained.
  `void`
  `removeRetention(IDfId retainerId)`
  Removes object from the control of retention services.
  `void`
  `swapRetainer(IDfId oldRetainerId, IDfId newRetainerId)`
  Replace a dm_retainer attached to the object to a new one.
  `void`
  `triggerConditionalRetention()`
  Function triggers the clip inside Centera associated with the SysObject object.

- ## Method Details

  - ### applyRetention

    void applyRetention(IDfId retainerId) throws DfException
    Places object under retention by the specified dm_retainer object. Once called, the object no longer allows deletion or primary content changes. This operation is not committed until a `IDfPersistentObject.save()` is performed. The caller must either have Write Permission on the sysobject or be a member of the dm_retention_managers group to call this method. The dm_sysobject.i_retainer_id and dm_sysobject.i_retain_until fields are modified.
    Parameters:
      `retainerId` - dm_retainer object controlling the retention
    Throws:
      `DfException`
    Since:
      5.3

  - ### removeRetention

    void removeRetention(IDfId retainerId) throws DfException
    Removes object from the control of retention services.

    The retainer id is removed from the dm_sysobject.i_retainer_id field.

    This operation is not committed until a `IDfPersistentObject.save()` is performed.

    If the specified retainer is still active, the caller must be a member of the dm_retention_managers group.
    Parameters:
      `retainerId` - dm_retainer from which to remove association
    Throws:
      `DfException`
    Since:
      5.3

  - ### swapRetainer

    void swapRetainer(IDfId oldRetainerId, IDfId newRetainerId) throws DfException
    Replace a dm_retainer attached to the object to a new one.

    The oldRetainerId is replaced with newRetainerId from the dm_sysobject.i_retainer_id field.

    This operation is not committed until a `IDfPersistentObject.save()` is performed.

    The two retainers specified in oldRetainerId and newRetainerId must be compatible in the sense that the following attribute values are identical: . r_object_type . owner_name . acl_domain . acl_name . retainer_strategy . r_retention_status . retention_rule_type . rendition_rule . enforcement_rule . immutability_rule . aging_method
    Parameters:
      `oldRetainerId` - : a dm_retainer already attached to the sysobject to be replaced with
      `newRetainerId` - : a dm_retainer to replace the oldRetainerId in the sysobject.
    Throws:
      `DfException`
    Since:
      6.5

  - ### canSwapRetainer

    boolean canSwapRetainer(IDfId oldRetainerId, IDfId newRetainerId) throws DfException
    Throws:
      `DfException`

  - ### getRetainerCount

    int getRetainerCount() throws DfException
    Returns the number of entries in the i_retainer_id field.
    Returns:
      the number of retainers the object is linked to.
    Throws:
      `DfException`
    Since:
      5.3

  - ### getRetainerId

    IDfId getRetainerId(int index) throws DfException
    Returns an entry from the i_retainer_id field.
    Parameters:
      `index` - specifies the index of the repeating attribute
    Returns:
      the i_retainer_id value at the specified index
    Throws:
      `DfException`
    Since:
      5.3

  - ### onObjectRetained

    void onObjectRetained() throws DfException
    A function that is called by RPS after an object was retained.
    Throws:
      `DfException`
    Since:
      5.3 SP1

  - ### isObjectUnderRetention

    boolean isObjectUnderRetention() throws DfException
    Returns true if the object is under retention. The object is under retention if the r_retention_status corresponding to i_retainer_id is in active or locked state.
    Returns:
      true if the object is under retention; false otherwise.
    Throws:
      `DfException`
    Since:
      5.3 SP1

  - ### triggerConditionalRetention

    void triggerConditionalRetention() throws DfException
    Function triggers the clip inside Centera associated with the SysObject object. This function calls the TRIGGER_CONDITIONAL_RETENTION RPC of the server.
    Throws:
      `DfException`
    Since:
      6.0

  - ### isObjectUnderRetentionHold

    boolean isObjectUnderRetentionHold() throws DfException
    Returns true is the object is under retention-hold. The object is under retention hold if the r_retention_status corresponding to i_retainer_id is in active or locked state and aging_method of it is DOES_NOT_AGE
    Throws:
      `DfException`
    Since:
      6.0 SP1