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
  • Constructor Details

    • DifferentSubtreeTempEntryRenamingStrategy

      public DifferentSubtreeTempEntryRenamingStrategy(Name subtreeNode)
    • DifferentSubtreeTempEntryRenamingStrategy

      public DifferentSubtreeTempEntryRenamingStrategy(String subtreeNode)
  • Method Details

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