Merge "OPNFLWPLUG-997 Spec - Southbound cli implementation"
[openflowplugin.git] / openflowplugin-impl / src / main / java / org / opendaylight / openflowplugin / impl / services / AbstractTableMultipartService.java
index b712cbe6b5d9feb477da8bf1ddce47eae07aaaa0..e45c095fce47bd06c2b3bddd934883b4f7df128e 100644 (file)
@@ -8,78 +8,35 @@
 
 package org.opendaylight.openflowplugin.impl.services;
 
-import java.util.Collections;
 import java.util.List;
-import java.util.Optional;
 import java.util.concurrent.Future;
 import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext;
 import org.opendaylight.openflowplugin.api.openflow.device.RequestContextStack;
-import org.opendaylight.openflowplugin.api.openflow.device.Xid;
 import org.opendaylight.openflowplugin.impl.datastore.MultipartWriterProvider;
-import org.opendaylight.openflowplugin.impl.services.util.RequestInputUtils;
-import org.opendaylight.openflowplugin.impl.services.util.ServiceException;
-import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorExecutor;
-import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionConvertorData;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartType;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OfHeader;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestTableFeaturesCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.table.features._case.MultipartRequestTableFeaturesBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.table.features._case.multipart.request.table.features.TableFeatures;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.service.rev131026.TableUpdatedBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.service.rev131026.UpdateTableInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.service.rev131026.UpdateTableOutput;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 
-public abstract class AbstractTableMultipartService<T extends OfHeader> extends AbstractMultipartService<UpdateTableInput, T> {
+public abstract class AbstractTableMultipartService<T extends OfHeader>
+        extends AbstractMultipartService<UpdateTableInput, T> {
 
-    private final ConvertorExecutor convertorExecutor;
     private final MultipartWriterProvider multipartWriterProvider;
-    private final VersionConvertorData data;
 
     protected AbstractTableMultipartService(final RequestContextStack requestContextStack,
                                             final DeviceContext deviceContext,
-                                            final ConvertorExecutor convertorExecutor,
                                             final MultipartWriterProvider multipartWriterProvider) {
         super(requestContextStack, deviceContext);
-        this.convertorExecutor = convertorExecutor;
         this.multipartWriterProvider = multipartWriterProvider;
-        data = new VersionConvertorData(getVersion());
-    }
-
-    @Override
-    protected OfHeader buildRequest(final Xid xid, final UpdateTableInput input) throws ServiceException {
-        final Optional<List<TableFeatures>> tableFeatures = getConvertorExecutor().convert(input.getUpdatedTable(), data);
-
-        return RequestInputUtils.createMultipartHeader(MultipartType.OFPMPTABLEFEATURES, xid.getValue(), getVersion())
-            .setMultipartRequestBody(new MultipartRequestTableFeaturesCaseBuilder()
-                .setMultipartRequestTableFeatures(new MultipartRequestTableFeaturesBuilder()
-                    .setTableFeatures(tableFeatures
-                        .orElseGet(Collections::emptyList))
-                    .build())
-                .build())
-            .build();
-    }
-
-    /**
-     * Get convertor executor
-     * @return convertor executor
-     */
-    protected ConvertorExecutor getConvertorExecutor() {
-        return convertorExecutor;
-    }
-
-    /**
-     * Get data
-     * @return data
-     */
-    protected VersionConvertorData getData() {
-        return data;
     }
 
     /**
-     * Stores table features to operational datastore
+     * Stores table features to operational datastore.
      */
-    protected void storeStatistics(List<org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.features.TableFeatures> result) {
+    protected void storeStatistics(List<org.opendaylight.yang.gen.v1.urn
+            .opendaylight.table.types.rev131026.table.features.TableFeatures> result) {
         multipartWriterProvider
             .lookup(MultipartType.OFPMPTABLEFEATURES)
             .ifPresent(writer -> {
@@ -94,7 +51,7 @@ public abstract class AbstractTableMultipartService<T extends OfHeader> extends
     }
 
     /**
-     * Process experimenter input and result experimenter output
+     * Process experimenter input and result experimenter output.
      * @param input experimenter input
      * @return experimenter output
      */