class DefaultCompensatingTransactionOperationManager implements
        CompensatingTransactionOperationManager {

    public void performOperation(Object resource, String operation,
            Object[] args) {
        CompensatingTransactionOperationRecorder recorder = operationFactory
                .createRecordingOperation(resource, operation);
        CompensatingTransactionOperationExecutor executor = recorder
                .recordOperation(args);

        executor.performOperation();

        // Don't push the executor until the actual operation passed.
        operationExecutors.push(executor);
    }

    public  DefaultCompensatingTransactionOperationManager(
            CompensatingTransactionOperationFactory operationFactory);

}