public IStoreOperation fromLogEntry()

in elastic-db-tools/src/main/java/com/microsoft/azure/elasticdb/shard/storeops/base/StoreOperationFactory.java [1038:1077]


    public IStoreOperation fromLogEntry(ShardMapManager shardMapManager,
            StoreLogEntry so) {
        StoreOperationCode code = so.getOpCode();
        switch (code) {
            case AddShard:
                return this.createAddShardOperation(shardMapManager, so.getId(), so.getUndoStartState(), so.getData());

            case RemoveShard:
                return this.createRemoveShardOperation(shardMapManager, so.getId(), so.getUndoStartState(), so.getData());

            case UpdateShard:
                return this.createUpdateShardOperation(shardMapManager, so.getId(), so.getUndoStartState(), so.getData());

            case AddPointMapping:
            case AddRangeMapping:
                return this.createAddMappingOperation(code, shardMapManager, so.getId(), so.getUndoStartState(), so.getData(),
                        so.getOriginalShardVersionAdds());

            case RemovePointMapping:
            case RemoveRangeMapping:
                return this.createRemoveMappingOperation(code, shardMapManager, so.getId(), so.getUndoStartState(), so.getData(),
                        so.getOriginalShardVersionRemoves());

            case UpdatePointMapping:
            case UpdateRangeMapping:
            case UpdatePointMappingWithOffline:
            case UpdateRangeMappingWithOffline:
                return this.createUpdateMappingOperation(code, shardMapManager, so.getId(), so.getUndoStartState(), so.getData(),
                        so.getOriginalShardVersionRemoves(), so.getOriginalShardVersionAdds());

            case SplitMapping:
            case MergeMappings:
                return this.createReplaceMappingsOperation(code, shardMapManager, so.getId(), so.getUndoStartState(), so.getData(),
                        so.getOriginalShardVersionAdds());

            default:
                // Debug.Fail("Unexpected operation code.");
                return null;
        }
    }