X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=openflowplugin-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fopenflowplugin%2Fimpl%2Fservices%2Fbatch%2FFlatBatchGroupAdapters.java;h=3ba5d322f36000e59a61e1f26a399bbcbb0ee057;hb=be071e949e1ae9991b8c8a3a7fde27f658f87d95;hp=0ea8a07f91cc084d5fe8102f6113823ebac42e43;hpb=bd3a5be020c3d78b675793fd34a3a82cee108b9c;p=openflowplugin.git diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/batch/FlatBatchGroupAdapters.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/batch/FlatBatchGroupAdapters.java index 0ea8a07f91..3ba5d322f3 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/batch/FlatBatchGroupAdapters.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/batch/FlatBatchGroupAdapters.java @@ -17,7 +17,6 @@ import java.util.ArrayList; import java.util.List; import java.util.concurrent.Future; import javax.annotation.Nullable; -import org.opendaylight.openflowplugin.impl.util.FlatBatchUtil; import org.opendaylight.yang.gen.v1.urn.opendaylight.flat.batch.service.rev160321.ProcessFlatBatchOutput; import org.opendaylight.yang.gen.v1.urn.opendaylight.flat.batch.service.rev160321.ProcessFlatBatchOutputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.flat.batch.service.rev160321.process.flat.batch.input.batch.batch.choice.flat.batch.add.group._case.FlatBatchAddGroup; @@ -45,7 +44,7 @@ import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.common.RpcResultBuilder; /** - * transform between FlatBatch API and group batch API + * Transform between FlatBatch API and group batch API. */ public class FlatBatchGroupAdapters { @@ -116,30 +115,22 @@ public class FlatBatchGroupAdapters { } /** - * @param chainInput here all partial results are collected (values + errors) * @param stepOffset offset of current batch plan step - * @return next chained result incorporating results of this step's batch + * @return converted {@link ProcessFlatBatchOutput} RPC result */ @VisibleForTesting static Function, RpcResult> - createBatchGroupChainingFunction(final RpcResult chainInput, - final int stepOffset) { + convertBatchGroupResult(final int stepOffset) { return new Function, RpcResult>() { @Nullable @Override public RpcResult apply(@Nullable final RpcResult input) { - // create rpcResult builder honoring both success/failure of current input and chained input + join errors - final RpcResultBuilder output = FlatBatchUtil.mergeRpcResults(chainInput, input); - // convert values and add to chain values - final ProcessFlatBatchOutputBuilder outputBuilder = new ProcessFlatBatchOutputBuilder(chainInput.getResult()); - final List batchFailures = wrapBatchGroupFailuresForFlat(input, stepOffset); - // join values - if (outputBuilder.getBatchFailure() == null) { - outputBuilder.setBatchFailure(new ArrayList(batchFailures.size())); - } - outputBuilder.getBatchFailure().addAll(batchFailures); - - return output.withResult(outputBuilder.build()).build(); + List batchFailures = wrapBatchGroupFailuresForFlat(input, stepOffset); + ProcessFlatBatchOutputBuilder outputBuilder = new ProcessFlatBatchOutputBuilder().setBatchFailure(batchFailures); + return RpcResultBuilder.status(input.isSuccessful()) + .withRpcErrors(input.getErrors()) + .withResult(outputBuilder.build()) + .build(); } }; } @@ -162,19 +153,17 @@ public class FlatBatchGroupAdapters { } /** - * shortcut for {@link #createBatchGroupChainingFunction(RpcResult, int)} with conversion {@link ListenableFuture} + * shortcut for {@link #convertBatchGroupResult(int)} with conversion {@link ListenableFuture} * * @param exact type of batch flow output - * @param chainInput here all partial results are collected (values + errors) * @param resultUpdateGroupFuture batch group rpc-result (add/remove/update) * @param currentOffset offset of current batch plan step with respect to entire chain of steps - * @return next chained result incorporating results of this step's batch + * @return ListenableFuture with converted result {@link ProcessFlatBatchOutput} */ public static ListenableFuture> - adaptGroupBatchFutureForChain(final RpcResult chainInput, - final Future> resultUpdateGroupFuture, - final int currentOffset) { + convertGroupBatchFutureForChain(final Future> resultUpdateGroupFuture, + final int currentOffset) { return Futures.transform(JdkFutureAdapters.listenInPoolThread(resultUpdateGroupFuture), - FlatBatchGroupAdapters.createBatchGroupChainingFunction(chainInput, currentOffset)); + FlatBatchGroupAdapters.convertBatchGroupResult(currentOffset)); } }