import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Function;
import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.JdkFutureAdapters;
import com.google.common.util.concurrent.ListenableFuture;
+import com.google.common.util.concurrent.MoreExecutors;
import java.util.ArrayList;
import java.util.List;
-import java.util.concurrent.Future;
-import javax.annotation.Nullable;
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;
@VisibleForTesting
static <T extends BatchGroupOutputListGrouping> Function<RpcResult<T>, RpcResult<ProcessFlatBatchOutput>>
convertBatchGroupResult(final int stepOffset) {
- return new Function<RpcResult<T>, RpcResult<ProcessFlatBatchOutput>>() {
- @Nullable
- @Override
- public RpcResult<ProcessFlatBatchOutput> apply(@Nullable final RpcResult<T> input) {
- List<BatchFailure> batchFailures = wrapBatchGroupFailuresForFlat(input, stepOffset);
- ProcessFlatBatchOutputBuilder outputBuilder =
- new ProcessFlatBatchOutputBuilder().setBatchFailure(batchFailures);
- return RpcResultBuilder.<ProcessFlatBatchOutput>status(input.isSuccessful())
- .withRpcErrors(input.getErrors())
- .withResult(outputBuilder.build())
- .build();
- }
+ return input -> {
+ List<BatchFailure> batchFailures = wrapBatchGroupFailuresForFlat(input, stepOffset);
+ ProcessFlatBatchOutputBuilder outputBuilder =
+ new ProcessFlatBatchOutputBuilder().setBatchFailure(batchFailures);
+ return RpcResultBuilder.<ProcessFlatBatchOutput>status(input.isSuccessful())
+ .withRpcErrors(input.getErrors())
+ .withResult(outputBuilder.build())
+ .build();
};
}
final RpcResult<T> input, final int stepOffset) {
final List<BatchFailure> batchFailures = new ArrayList<>();
if (input.getResult().getBatchFailedGroupsOutput() != null) {
- for (BatchFailedGroupsOutput stepOutput : input.getResult().getBatchFailedGroupsOutput()) {
+ for (BatchFailedGroupsOutput stepOutput : input.getResult().nonnullBatchFailedGroupsOutput().values()) {
final BatchFailure batchFailure = new BatchFailureBuilder()
- .setBatchOrder(stepOffset + stepOutput.getBatchOrder())
+ .setBatchOrder(stepOffset + stepOutput.getBatchOrder().toJava())
.setBatchItemIdChoice(new FlatBatchFailureGroupIdCaseBuilder()
.setGroupId(stepOutput.getGroupId())
.build())
* @return ListenableFuture with converted result {@link ProcessFlatBatchOutput}
*/
public static <T extends BatchGroupOutputListGrouping> ListenableFuture<RpcResult<ProcessFlatBatchOutput>>
- convertGroupBatchFutureForChain(final Future<RpcResult<T>> resultUpdateGroupFuture,
+ convertGroupBatchFutureForChain(final ListenableFuture<RpcResult<T>> resultUpdateGroupFuture,
final int currentOffset) {
- return Futures.transform(JdkFutureAdapters.listenInPoolThread(resultUpdateGroupFuture),
- FlatBatchGroupAdapters.<T>convertBatchGroupResult(currentOffset));
+ return Futures.transform(resultUpdateGroupFuture,
+ FlatBatchGroupAdapters.convertBatchGroupResult(currentOffset), MoreExecutors.directExecutor());
}
}