Fix errors in serializers and deserializers
[openflowplugin.git] / openflowplugin-impl / src / main / java / org / opendaylight / openflowplugin / impl / services / SalPortServiceImpl.java
index 3fc621e356a990966b517c924df375876cd0a7b9..8caae1981044c11af6df2d7089c83d54bf63ca2a 100644 (file)
@@ -27,22 +27,26 @@ import org.opendaylight.yangtools.yang.common.RpcResult;
 public final class SalPortServiceImpl extends AbstractSimpleService<UpdatePortInput, UpdatePortOutput> implements SalPortService {
     private final ConvertorExecutor convertorExecutor;
     private final VersionConvertorData data;
+    private final PortMessageService<UpdatePortOutput> portMessage;
 
     public SalPortServiceImpl(final RequestContextStack requestContextStack, final DeviceContext deviceContext, final ConvertorExecutor convertorExecutor) {
         super(requestContextStack, deviceContext, UpdatePortOutput.class);
         this.convertorExecutor = convertorExecutor;
         data = new VersionConvertorData(getVersion());
+        portMessage = new PortMessageService<>(requestContextStack, deviceContext, UpdatePortOutput.class);
     }
 
     @Override
     public Future<RpcResult<UpdatePortOutput>> updatePort(final UpdatePortInput input) {
-        return handleServiceCall(input);
+        return portMessage.isSupported()
+            ? portMessage.handleServiceCall(getPortFromInput(input))
+            : handleServiceCall(input);
     }
 
     @Override
     protected OfHeader buildRequest(final Xid xid, final UpdatePortInput input) throws ServiceException {
-        final Port inputPort = input.getUpdatedPort().getPort().getPort().get(0);
-        final Optional<PortModInput> ofPortModInput = convertorExecutor.convert(inputPort, data);
+        final Optional<PortModInput> ofPortModInput = convertorExecutor
+            .convert(getPortFromInput(input), data);
 
         final PortModInputBuilder mdInput = new PortModInputBuilder(ofPortModInput
                 .orElse(PortConvertor.defaultResult(getVersion())))
@@ -50,4 +54,8 @@ public final class SalPortServiceImpl extends AbstractSimpleService<UpdatePortIn
 
         return mdInput.build();
     }
+
+    private Port getPortFromInput(final UpdatePortInput input) {
+        return input.getUpdatedPort().getPort().getPort().get(0);
+    }
 }