class RenameOperationRecorder implements
        CompensatingTransactionOperationRecorder {

    public CompensatingTransactionOperationExecutor recordOperation(
            Object[] args) {
        log.debug("Storing rollback information for rename operation");
        Assert.notEmpty(args);
        if (args.length != 2) {
            // This really shouldn't happen.
            throw new IllegalArgumentException("Illegal argument length");
        }
        Name oldDn = LdapTransactionUtils.getArgumentAsName(args[0]);
        Name newDn = LdapTransactionUtils.getArgumentAsName(args[1]);
        return new RenameOperationExecutor(ldapOperations, oldDn, newDn);
    }

    public  RenameOperationRecorder(LdapOperations ldapOperations);

}