Added type parameteris. 15/17215/2
authorJozef Gloncak <jgloncak@cisco.com>
Fri, 27 Mar 2015 09:27:37 +0000 (10:27 +0100)
committerJozef Gloncak <jgloncak@cisco.com>
Fri, 27 Mar 2015 09:58:39 +0000 (10:58 +0100)
Class type parameter was added to all classes in this change.

Change-Id: I7cd27edef23b7b52bcc2d32d42f7feac3e7a9b4c
Signed-off-by: Jozef Gloncak <jgloncak@cisco.com>
openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/RequestContext.java
openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/RequestFutureContext.java
openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/rpc/RpcContext.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/rpc/RequestContextImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/rpc/RpcContextImpl.java

index b206e30a8cfa8f15ec2cdcd2412d7abb774a34d0..8d9664b3d973871e0762b59d9eae2576490ebd10 100644 (file)
@@ -16,8 +16,9 @@ import org.opendaylight.yangtools.yang.binding.DataObject;
  * <p/>
  * Created by Martin Bobak <mbobak@cisco.com> on 25.2.2015.
  */
-public interface RequestContext<T extends DataObject> extends RequestFutureContext, AutoCloseable {
+public interface RequestContext<T extends DataObject> extends RequestFutureContext<T>, AutoCloseable {
 
+    @Override
     void close();
 
 
index 7ad87ea2b1001e4dc6feb3294a121ee8045168ef..dac4ff32a6bd9e5e14895d6f142eaeb78b4a853e 100644 (file)
@@ -23,6 +23,6 @@ public interface RequestFutureContext<T extends DataObject> {
      * @param <T>
      * @return
      */
-    <T> SettableFuture<RpcResult<T>> getFuture();
+    SettableFuture<RpcResult<T>> getFuture();
 
 }
index 14c76bd579e92f1a3eb771fb4211e49757a838e3..651fe6931d469a5811cb913976a790f5740dd19e 100644 (file)
@@ -13,7 +13,6 @@ import org.opendaylight.openflowplugin.api.openflow.device.RequestContext;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.RpcService;
 import org.opendaylight.yangtools.yang.common.RpcResult;
-import java.util.concurrent.Future;
 
 /**
  * This context is registered with MD-SAL as a routed RPC provider for the inventory node backed by this switch and
@@ -27,33 +26,35 @@ public interface RpcContext extends AutoCloseable {
     <S extends RpcService> void registerRpcServiceImplementation(Class<S> serviceClass, S serviceInstance);
 
     /**
-     *  Method adds request to request queue which has limited quota. After number of requests exceeds quota limit
-     *  future will be done immediately and will contain information about exceeded request quota.
-     *
+     * Method adds request to request queue which has limited quota. After number of requests exceeds quota limit future
+     * will be done immediately and will contain information about exceeded request quota.
+     * 
      * @param data
      */
-    <T extends DataObject> SettableFuture<RpcResult<T>> storeOrFail(RequestContext data);
+    <T extends DataObject> SettableFuture<RpcResult<T>> storeOrFail(RequestContext<T> data);
 
     /**
      * Method for setting request quota value. When the Request Context quota is exceeded, incoming RPCs fail
      * immediately, with a well-defined error.
-     *
+     * 
      * @param maxRequestsPerDevice
      */
     void setRequestContextQuota(int maxRequestsPerDevice);
 
-    void forgetRequestContext(RequestContext requestContext);
+    <T extends DataObject> void forgetRequestContext(RequestContext<T> requestContext);
 
     /**
      * Method provides device context.
+     * 
      * @return
      */
     DeviceContext getDeviceContext();
 
     /**
      * Method returns new request context for current request.
+     * 
      * @return
      */
-    <T extends DataObject> RequestContext createRequestContext();
+    <T extends DataObject> RequestContext<T> createRequestContext();
 
 }
index 0704557f584141dc5eec86a7cf6ea3d8c43fb3a2..d8237c90c26ec845f3a17811c582740206b5ee0b 100644 (file)
@@ -16,7 +16,7 @@ import org.opendaylight.yangtools.yang.common.RpcResult;
 /**
  * @author joe
  */
-public class RequestContextImpl<T extends DataObject> implements RequestContext {
+public class RequestContextImpl<T extends DataObject> implements RequestContext<T> {
 
     private final RpcContext rpcContext;
     private SettableFuture<RpcResult<T>> rpcResultFuture;
index 9a8c19ec3cdc710dda9ea3787160df3107402958..047d44dd06b9b8e5a763fb8a0b8184e0cf6e01d9 100644 (file)
@@ -8,6 +8,9 @@
 package org.opendaylight.openflowplugin.impl.rpc;
 
 import com.google.common.util.concurrent.SettableFuture;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.RoutedRpcRegistration;
 import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext;
@@ -18,19 +21,17 @@ import org.opendaylight.yangtools.yang.binding.RpcService;
 import org.opendaylight.yangtools.yang.common.RpcError;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
 
 public class RpcContextImpl implements RpcContext {
 
     final ProviderContext providerContext;
 
     // TODO: add private Sal salBroker
-    private final List<RequestContext> requestContexts = new ArrayList<>();
-    private DeviceContext deviceContext;
+    private final List<RequestContext<? extends DataObject>> requestContexts = new ArrayList<>();
+    private final DeviceContext deviceContext;
     private final List<RoutedRpcRegistration> rpcRegistrations = new ArrayList<>();
-    private final List<RequestContext> synchronizedRequestsList = Collections.synchronizedList(new ArrayList<RequestContext>());
+    private final List<RequestContext<? extends DataObject>> synchronizedRequestsList = Collections
+            .<RequestContext<? extends DataObject>>synchronizedList(new ArrayList<RequestContext<? extends DataObject>>());
 
     private int maxRequestsPerDevice;
 
@@ -41,28 +42,28 @@ public class RpcContextImpl implements RpcContext {
 
     /**
      * @see org.opendaylight.openflowplugin.api.openflow.rpc.RpcContext#registerRpcServiceImplementation(java.lang.Class,
-     * org.opendaylight.yangtools.yang.binding.RpcService)
+     *      org.opendaylight.yangtools.yang.binding.RpcService)
      */
     @Override
     public <S extends RpcService> void registerRpcServiceImplementation(final Class<S> serviceClass,
-                                                                        final S serviceInstance) {
+            final S serviceInstance) {
         rpcRegistrations.add(providerContext.addRoutedRpcImplementation(serviceClass, serviceInstance));
     }
 
     @Override
-    public <T extends DataObject> SettableFuture<RpcResult<T>> storeOrFail(RequestContext requestContext) {
+    public <T extends DataObject> SettableFuture<RpcResult<T>> storeOrFail(final RequestContext<T> requestContext) {
         final SettableFuture<RpcResult<T>> rpcResultFuture = requestContext.getFuture();
 
         if (synchronizedRequestsList.size() < maxRequestsPerDevice) {
             synchronizedRequestsList.add(requestContext);
         } else {
-            RpcResult rpcResult = RpcResultBuilder.failed().withError(RpcError.ErrorType.APPLICATION, "", "Device's request queue is full.").build();
+            final RpcResult<T> rpcResult = RpcResultBuilder.<T>failed()
+                    .withError(RpcError.ErrorType.APPLICATION, "", "Device's request queue is full.").build();
             rpcResultFuture.set(rpcResult);
         }
         return rpcResultFuture;
     }
 
-
     /**
      * Unregisters all services.
      *
@@ -84,7 +85,7 @@ public class RpcContextImpl implements RpcContext {
     }
 
     @Override
-    public void forgetRequestContext(final RequestContext requestContext) {
+    public <T extends DataObject> void forgetRequestContext(final RequestContext<T> requestContext) {
         requestContexts.remove(requestContext);
     }
 
@@ -94,7 +95,7 @@ public class RpcContextImpl implements RpcContext {
     }
 
     @Override
-    public <T extends DataObject> RequestContext createRequestContext() {
+    public <T extends DataObject> RequestContext<T> createRequestContext() {
         return new RequestContextImpl<T>(this);
     }