Bump MRI upstreams
[openflowplugin.git] / openflowplugin-impl / src / main / java / org / opendaylight / openflowplugin / impl / services / AbstractService.java
index d7ee0510358b8690e6718ff6296083021af190fc..d916cd35685e042feb322354a4ade970bd050f7d 100644 (file)
@@ -1,4 +1,4 @@
-/**
+/*
  * Copyright (c) 2015 Cisco Systems, Inc. and others.  All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -12,11 +12,9 @@ import com.google.common.base.Verify;
 import com.google.common.util.concurrent.FutureCallback;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
-import java.util.Objects;
 import java.util.function.Function;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.openflowjava.protocol.api.connection.OutboundQueue;
 import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext;
 import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo;
@@ -31,17 +29,21 @@ import org.opendaylight.openflowplugin.impl.services.util.RequestContextUtil;
 import org.opendaylight.openflowplugin.impl.services.util.ServiceException;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OfHeader;
 import org.opendaylight.yangtools.yang.binding.DataContainer;
-import org.opendaylight.yangtools.yang.common.RpcError;
+import org.opendaylight.yangtools.yang.common.ErrorTag;
+import org.opendaylight.yangtools.yang.common.ErrorType;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
+import org.opendaylight.yangtools.yang.common.Uint32;
+import org.opendaylight.yangtools.yang.common.Uint64;
+import org.opendaylight.yangtools.yang.common.Uint8;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public abstract class AbstractService<I, O> {
     private static final Logger LOG = LoggerFactory.getLogger(AbstractService.class);
 
-    private final short version;
-    private final BigInteger datapathId;
+    private final Uint8 version;
+    private final Uint64 datapathId;
     private final RequestContextStack requestContextStack;
     private final DeviceContext deviceContext;
     private final MessageSpy messageSpy;
@@ -69,11 +71,11 @@ public abstract class AbstractService<I, O> {
         this.eventIdentifier = eventIdentifier;
     }
 
-    public short getVersion() {
+    public final Uint8 getVersion() {
         return version;
     }
 
-    public BigInteger getDatapathId() {
+    public final Uint64 getDatapathId() {
         return datapathId;
     }
 
@@ -106,16 +108,16 @@ public abstract class AbstractService<I, O> {
 
     protected abstract FutureCallback<OfHeader> createCallback(RequestContext<O> context, Class<?> requestType);
 
-    public ListenableFuture<RpcResult<O>> handleServiceCall(@Nonnull final I input) {
+    public ListenableFuture<RpcResult<O>> handleServiceCall(@NonNull final I input) {
         return handleServiceCall(input, null);
     }
 
-    public ListenableFuture<RpcResult<O>> handleServiceCall(@Nonnull final I input,
+    public ListenableFuture<RpcResult<O>> handleServiceCall(@NonNull final I input,
             @Nullable final Function<OfHeader, Boolean> isComplete) {
         Preconditions.checkNotNull(input);
 
         final Class<?> requestType = input instanceof DataContainer
-            ? DataContainer.class.cast(input).getImplementedInterface()
+            ? ((DataContainer) input).implementedInterface()
             : input.getClass();
 
         getMessageSpy().spyMessage(requestType, MessageSpy.StatisticsGroup.TO_SWITCH_ENTERED);
@@ -123,16 +125,16 @@ public abstract class AbstractService<I, O> {
         LOG.trace("Handling general service call");
         final RequestContext<O> requestContext = requestContextStack.createRequestContext();
 
-        if (Objects.isNull(requestContext)) {
+        if (requestContext == null) {
             LOG.trace("Request context refused.");
             getMessageSpy().spyMessage(AbstractService.class, MessageSpy.StatisticsGroup.TO_SWITCH_DISREGARDED);
             return Futures.immediateFuture(RpcResultBuilder
                     .<O>failed()
-                    .withError(RpcError.ErrorType.APPLICATION, "", "Request quota exceeded")
+                    .withError(ErrorType.APPLICATION, ErrorTag.ACCESS_DENIED, "Request quota exceeded")
                     .build());
         }
 
-        if (Objects.isNull(requestContext.getXid())) {
+        if (requestContext.getXid() == null) {
             getMessageSpy().spyMessage(requestContext.getClass(),
                                        MessageSpy.StatisticsGroup.TO_SWITCH_RESERVATION_REJECTED);
             return RequestContextUtil
@@ -157,12 +159,11 @@ public abstract class AbstractService<I, O> {
             final OutboundQueue outboundQueue =
                     getDeviceContext().getPrimaryConnectionContext().getOutboundQueueProvider();
 
-            if (Objects.nonNull(isComplete)) {
-                outboundQueue.commitEntry(xid.getValue(),
-                                          request,
-                                          createCallback(requestContext, requestType), isComplete);
+            final Uint32 queueXid = xid.getValue();
+            if (isComplete != null) {
+                outboundQueue.commitEntry(queueXid, request, createCallback(requestContext, requestType), isComplete);
             } else {
-                outboundQueue.commitEntry(xid.getValue(), request, createCallback(requestContext, requestType));
+                outboundQueue.commitEntry(queueXid, request, createCallback(requestContext, requestType));
             }
         }