org.springframework.ldap.transaction.compensating.support

## Class DifferentSubtreeTempEntryRenamingStrategy

- java.lang.Object
- - org.springframework.ldap.transaction.compensating.support.DifferentSubtreeTempEntryRenamingStrategy

- All Implemented Interfaces:
    TempEntryRenamingStrategy

      public class DifferentSubtreeTempEntryRenamingStrategy
      extends Object
      implements TempEntryRenamingStrategy

  A `TempEntryRenamingStrategy` that moves the entry to a different subtree than the original entry. The specified subtree needs to be present in the LDAP tree; it will not be created and operations using this strategy will fail if the destination is not in place. However, this strategy is preferable to `DefaultTempEntryRenamingStrategy`, as it makes searches have the expected result even though the temporary entry still exists during the transaction.

  Example: If the specified `subtreeNode` is `ou=tempEntries` and the `originalName` is `cn=john doe, ou=company1, c=SE`, the result of `getTemporaryName(Name)` will be `cn=john doe1, ou=tempEntries`. The "1" suffix is a sequence number needed to prevent potential collisions in the temporary storage.

  Since:
    1.2
  Author:
    Mattias Hellborg Arthursson

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `DifferentSubtreeTempEntryRenamingStrategy(Name subtreeNode)`
    `DifferentSubtreeTempEntryRenamingStrategy(String subtreeNode)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Name` | `getSubtreeNode()`
    `Name` | `getTemporaryName(Name originalName)` Get a temporary name for the current entry to be renamed to.
    `void` | `setSubtreeNode(Name subtreeNode)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### DifferentSubtreeTempEntryRenamingStrategy

          public DifferentSubtreeTempEntryRenamingStrategy(Name subtreeNode)

    - #### DifferentSubtreeTempEntryRenamingStrategy

          public DifferentSubtreeTempEntryRenamingStrategy(String subtreeNode)

  - ### Method Detail

    - #### getSubtreeNode

          public Name getSubtreeNode()

    - #### setSubtreeNode

          public void setSubtreeNode(Name subtreeNode)

    - #### getTemporaryName

          public Name getTemporaryName(Name originalName)

      Description copied from interface: `TempEntryRenamingStrategy`
      Get a temporary name for the current entry to be renamed to.
      Specified by:
        `getTemporaryName` in interface `TempEntryRenamingStrategy`
      Parameters:
        `originalName` - The original name of the entry.
      Returns:
        The name to which the entry should be temporarily renamed according to this strategy.