]> source.dussan.org Git - vaadin-framework.git/commitdiff
Use generic parameter types for server->client RPC
authorLeif Åstrand <leif@vaadin.com>
Fri, 8 Jun 2012 10:42:05 +0000 (13:42 +0300)
committerLeif Åstrand <leif@vaadin.com>
Fri, 8 Jun 2012 10:42:05 +0000 (13:42 +0300)
src/com/vaadin/terminal/gwt/server/AbstractCommunicationManager.java
src/com/vaadin/terminal/gwt/server/ClientMethodInvocation.java

index d6feba9dc073d574b7d8dfee5096eb88b2684eeb..9e3545cac5eb8729959eecaa84323c5a5a26403b 100644 (file)
@@ -935,7 +935,7 @@ public abstract class AbstractCommunicationManager implements Serializable {
                 invocationJson.put(invocation.getMethodName());
                 JSONArray paramJson = new JSONArray();
                 for (int i = 0; i < invocation.getParameterTypes().length; ++i) {
-                    Class<?> parameterType = invocation.getParameterTypes()[i];
+                    Type parameterType = invocation.getParameterTypes()[i];
                     Object referenceParameter = null;
                     // TODO Use default values for RPC parameter types
                     // if (!JsonCodec.isInternalType(parameterType)) {
index 99633a13d61b6c0bd5b6dd2e99f751aada3d14f6..ad9484723bea22e7dfa48fb4e327f3f48d696d91 100644 (file)
@@ -6,6 +6,7 @@ package com.vaadin.terminal.gwt.server;
 
 import java.io.Serializable;
 import java.lang.reflect.Method;
+import java.lang.reflect.Type;
 
 /**
  * Internal class for keeping track of pending server to client method
@@ -19,7 +20,7 @@ public class ClientMethodInvocation implements Serializable,
     private final String interfaceName;
     private final String methodName;
     private final Object[] parameters;
-    private Class<?>[] parameterTypes;
+    private Type[] parameterTypes;
 
     // used for sorting calls between different connectors in the same Root
     private final long sequenceNumber;
@@ -31,12 +32,12 @@ public class ClientMethodInvocation implements Serializable,
         this.connector = connector;
         this.interfaceName = interfaceName;
         methodName = method.getName();
-        parameterTypes = method.getParameterTypes();
+        parameterTypes = method.getGenericParameterTypes();
         this.parameters = (null != parameters) ? parameters : new Object[0];
         sequenceNumber = ++counter;
     }
 
-    public Class<?>[] getParameterTypes() {
+    public Type[] getParameterTypes() {
         return parameterTypes;
     }