in elastic-db-tools/src/main/java/com/microsoft/azure/elasticdb/shard/storeops/base/StoreOperation.java [120:151]
private static StoreOperationState undoStateForDoState(StoreOperationState doState) {
switch (doState) {
case DoGlobalConnect:
case DoLocalSourceConnect:
case DoLocalTargetConnect:
case DoGlobalPreLocalBeginTransaction:
case DoGlobalPreLocalExecute:
return StoreOperationState.UndoEnd;
case DoGlobalPreLocalCommitTransaction:
case DoLocalSourceBeginTransaction:
case DoLocalSourceExecute:
return StoreOperationState.UndoGlobalPostLocalBeginTransaction;
case DoLocalSourceCommitTransaction:
case DoLocalTargetBeginTransaction:
case DoLocalTargetExecute:
return StoreOperationState.UndoLocalSourceBeginTransaction;
case DoLocalTargetCommitTransaction:
case DoGlobalPostLocalBeginTransaction:
case DoGlobalPostLocalExecute:
case DoGlobalPostLocalCommitTransaction:
return StoreOperationState.UndoLocalTargetBeginTransaction;
case DoBegin:
case DoEnd:
default:
// Debug.Fail("Unexpected Do states for corresponding Undo operation.");
return StoreOperationState.UndoBegin;
}
}