cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From serg...@apache.org
Subject git commit: [CXF-5593] Passing parameter annotations to ParamConverterprovider
Date Wed, 05 Mar 2014 11:22:39 GMT
Repository: cxf
Updated Branches:
  refs/heads/master 8c6f01701 -> b218997b9


[CXF-5593] Passing parameter annotations to ParamConverterprovider


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/b218997b
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/b218997b
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/b218997b

Branch: refs/heads/master
Commit: b218997b9bfe0f4a7475e25d2c1efaac0e5bf9e5
Parents: 8c6f017
Author: Sergey Beryozkin <sberyozkin@talend.com>
Authored: Wed Mar 5 11:22:17 2014 +0000
Committer: Sergey Beryozkin <sberyozkin@talend.com>
Committed: Wed Mar 5 11:22:17 2014 +0000

----------------------------------------------------------------------
 .../cxf/jaxrs/provider/ProviderFactory.java     |  5 +-
 .../apache/cxf/jaxrs/utils/InjectionUtils.java  |  5 +-
 .../cxf/jaxrs/provider/ProviderFactoryTest.java |  2 +-
 .../apache/cxf/jaxrs/client/AbstractClient.java | 34 +++----
 .../cxf/jaxrs/client/ClientProxyImpl.java       | 94 +++++++++++---------
 .../org/apache/cxf/jaxrs/client/WebClient.java  |  4 +-
 6 files changed, 77 insertions(+), 67 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/b218997b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java
b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java
index 2f180e7..1810743 100644
--- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java
+++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java
@@ -267,11 +267,12 @@ public abstract class ProviderFactory {
         return null;
     }
     
-    public <T> ParamConverter<T> createParameterHandler(Class<T> paramType)
{
+    public <T> ParamConverter<T> createParameterHandler(Class<T> paramType,
Annotation[] anns) {
         
         if (newParamConverters != null) {
+            anns = anns != null ? anns : new Annotation[]{};
             for (ParamConverterProvider newParamConverter : newParamConverters) {
-                ParamConverter<T> converter = newParamConverter.getConverter(paramType,
null, null);
+                ParamConverter<T> converter = newParamConverter.getConverter(paramType,
paramType, anns);
                 if (converter != null) {
                     return converter;
                 }

http://git-wip-us.apache.org/repos/asf/cxf/blob/b218997b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java
b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java
index badeead..de587dd 100644
--- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java
+++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/utils/InjectionUtils.java
@@ -350,7 +350,7 @@ public final class InjectionUtils {
         
         value = decodeValue(value, decoded, pType);
         
-        Object result = createFromParameterHandler(value, pClass, message);
+        Object result = createFromParameterHandler(value, pClass, paramAnns, message);
         if (result != null) {
             return pClass.cast(result);
         }
@@ -435,11 +435,12 @@ public final class InjectionUtils {
     
     private static <T> T createFromParameterHandler(String value, 
                                                     Class<T> pClass,
+                                                    Annotation[] anns,
                                                     Message message) {
         T result = null;
         if (message != null) {
             ServerProviderFactory pf = ServerProviderFactory.getInstance(message);
-            ParamConverter<T> pm = pf.createParameterHandler(pClass);
+            ParamConverter<T> pm = pf.createParameterHandler(pClass, anns);
             if (pm != null) {
                 result = pm.fromString(value);
             }

http://git-wip-us.apache.org/repos/asf/cxf/blob/b218997b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/ProviderFactoryTest.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/ProviderFactoryTest.java
b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/ProviderFactoryTest.java
index 3d1f769..0f5631c 100644
--- a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/ProviderFactoryTest.java
+++ b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/ProviderFactoryTest.java
@@ -272,7 +272,7 @@ public class ProviderFactoryTest extends Assert {
         ProviderFactory pf = ServerProviderFactory.getInstance();
         ParamConverterProvider h = new CustomerParameterHandler();
         pf.registerUserProvider(h);
-        ParamConverter<Customer> h2 = pf.createParameterHandler(Customer.class);
+        ParamConverter<Customer> h2 = pf.createParameterHandler(Customer.class, null);
         assertSame(h2, h);
     }
     

http://git-wip-us.apache.org/repos/asf/cxf/blob/b218997b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java
----------------------------------------------------------------------
diff --git a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java
index fd52e37..e57488a 100644
--- a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java
+++ b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/AbstractClient.java
@@ -116,7 +116,7 @@ public abstract class AbstractClient implements Client {
      * {@inheritDoc}
      */
     public Client query(String name, Object ...values) {
-        addMatrixQueryParamsToBuilder(getCurrentBuilder(), name, ParameterType.QUERY, values);
+        addMatrixQueryParamsToBuilder(getCurrentBuilder(), name, ParameterType.QUERY, null,
values);
         return this;
     }
     
@@ -131,10 +131,10 @@ public abstract class AbstractClient implements Client {
             if (values.length > 1) {
                 throw new IllegalArgumentException("Content-Type can have a single value
only");
             }
-            type(convertParamValue(values[0]));
+            type(convertParamValue(values[0], null));
         } else {
             for (Object o : values) {
-                possiblyAddHeader(name, convertParamValue(o));
+                possiblyAddHeader(name, convertParamValue(o, null));
             }
         }
         return this;
@@ -651,6 +651,7 @@ public abstract class AbstractClient implements Client {
     protected void addMatrixQueryParamsToBuilder(UriBuilder ub, 
                                                  String paramName, 
                                                  ParameterType pt,
+                                                 Annotation[] anns,
                                                  Object... pValues) {
         if (pt != ParameterType.MATRIX && pt != ParameterType.QUERY) {
             throw new IllegalArgumentException("This method currently deal "
@@ -663,10 +664,10 @@ public abstract class AbstractClient implements Client {
                         Collection<?> c = pValue.getClass().isArray() 
                             ? Arrays.asList((Object[]) pValue) : (Collection<?>) pValue;
                         for (Iterator<?> it = c.iterator(); it.hasNext();) {
-                            convertMatrixOrQueryToBuilder(ub, paramName, it.next(), pt);
+                            convertMatrixOrQueryToBuilder(ub, paramName, it.next(), pt, anns);
                         }
                     } else { 
-                        convertMatrixOrQueryToBuilder(ub, paramName, pValue, pt); 
+                        convertMatrixOrQueryToBuilder(ub, paramName, pValue, pt, anns); 
                     }
                 }
             } else {
@@ -678,7 +679,7 @@ public abstract class AbstractClient implements Client {
                 InjectionUtils.extractValuesFromBean(pValue, "");
             for (Map.Entry<String, List<Object>> entry : values.entrySet()) {
                 for (Object v : entry.getValue()) {
-                    convertMatrixOrQueryToBuilder(ub, entry.getKey(), v, pt);
+                    convertMatrixOrQueryToBuilder(ub, entry.getKey(), v, pt, anns);
                 }
             }
         }
@@ -687,8 +688,9 @@ public abstract class AbstractClient implements Client {
     private void convertMatrixOrQueryToBuilder(UriBuilder ub, 
                                            String paramName, 
                                            Object pValue,
-                                           ParameterType pt) {
-        Object convertedValue = convertParamValue(pValue);
+                                           ParameterType pt,
+                                           Annotation[] anns) {
+        Object convertedValue = convertParamValue(pValue, anns);
         addMatrixOrQueryToBuilder(ub, paramName, pt, convertedValue);
     }
     
@@ -704,24 +706,16 @@ public abstract class AbstractClient implements Client {
     }
     
     
-    protected String convertParamValue(Object pValue) {
+    protected String convertParamValue(Object pValue, Annotation[] anns) {
         if (pValue == null) {
             return null;
         }
-        Class<?> pClass = pValue.getClass();
-        if (pClass == String.class || pClass.isPrimitive()) {
-            return pValue.toString();
-        }
-        
-        // A little scope for some optimization exists, particularly,
-        // it is feasible a complex object may need to be repeatedly converted
-        // so we can keep a map of ParamConverter on the bus, that said
-        // it seems an over-optimization at this stage, it's a 5% case;
-        // typical requests have a limited number of simple URI parameters
         ProviderFactory pf = ClientProviderFactory.getInstance(cfg.getBus());
         if (pf != null) {
+            Class<?> pClass = pValue.getClass();
+            
             @SuppressWarnings("unchecked")
-            ParamConverter<Object> prov = (ParamConverter<Object>)pf.createParameterHandler(pClass);
+            ParamConverter<Object> prov = (ParamConverter<Object>)pf.createParameterHandler(pClass,
anns);
             if (prov != null) {
                 return prov.toString(pValue);
             }

http://git-wip-us.apache.org/repos/asf/cxf/blob/b218997b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java
----------------------------------------------------------------------
diff --git a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java
index f373d62..62a4dbd 100644
--- a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java
+++ b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/ClientProxyImpl.java
@@ -160,11 +160,11 @@ public class ClientProxyImpl extends AbstractClient implements
             reportInvalidResourceMethod(m, "INVALID_RESOURCE_METHOD");
         }
         
-        MultivaluedMap<ParameterType, Parameter> types = getParametersInfo(params,
ori);
+        MultivaluedMap<ParameterType, Parameter> types = getParametersInfo(m, params,
ori);
         List<Parameter> beanParamsList =  getParameters(types, ParameterType.BEAN);
         
         
-        List<Object> pathParams = getPathParamValues(types, beanParamsList, params,
ori);
+        List<Object> pathParams = getPathParamValues(m, params, types, beanParamsList,
ori);
         
         int bodyIndex = getBodyIndex(types, ori);
         
@@ -174,15 +174,15 @@ public class ClientProxyImpl extends AbstractClient implements
         }
         addNonEmptyPath(builder, ori.getURITemplate().getValue());
         
-        handleMatrixes(types, beanParamsList, params, builder);
-        handleQueries(types, beanParamsList, params, builder);
+        handleMatrixes(m, params, types, beanParamsList, builder);
+        handleQueries(m, params, types, beanParamsList, builder);
         
         URI uri = builder.buildFromEncoded(pathParams.toArray()).normalize();
         
         MultivaluedMap<String, String> headers = getHeaders();
         MultivaluedMap<String, String> paramHeaders = new MetadataMap<String, String>();
-        handleHeaders(paramHeaders, beanParamsList, types, params);
-        handleCookies(paramHeaders, beanParamsList, types, params);
+        handleHeaders(m, params, paramHeaders, beanParamsList, types);
+        handleCookies(m, params, paramHeaders, beanParamsList, types);
                 
         if (ori.isSubResourceLocator()) {
             ClassResourceInfo subCri = cri.getSubResource(m.getReturnType(), m.getReturnType());
@@ -228,7 +228,7 @@ public class ClientProxyImpl extends AbstractClient implements
         }
     }
     
-    private static MultivaluedMap<ParameterType, Parameter> getParametersInfo(
+    private static MultivaluedMap<ParameterType, Parameter> getParametersInfo(Method
m,
         Object[] params, OperationResourceInfo ori) {
         MultivaluedMap<ParameterType, Parameter> map = 
             new MetadataMap<ParameterType, Parameter>();
@@ -240,7 +240,7 @@ public class ClientProxyImpl extends AbstractClient implements
         int requestBodyParam = 0;
         int multipartParam = 0;
         for (Parameter p : parameters) {
-            if (isIgnorableParameter(ori, p)) {
+            if (isIgnorableParameter(m, p)) {
                 continue;
             }
             if (p.getType() == ParameterType.REQUEST_BODY) {
@@ -263,16 +263,13 @@ public class ClientProxyImpl extends AbstractClient implements
         return map;
     }
     
-    private static boolean isIgnorableParameter(OperationResourceInfo ori, Parameter p) {
+    private static boolean isIgnorableParameter(Method m, Parameter p) {
         if (p.getType() == ParameterType.CONTEXT) {
             return true;
         }
-        if (p.getType() == ParameterType.REQUEST_BODY) { 
-            Method m = ori.getAnnotatedMethod();
-            if (m != null 
-                && m.getParameterTypes()[p.getIndex()] == AsyncResponse.class) {
-                return true;
-            }
+        if (p.getType() == ParameterType.REQUEST_BODY 
+            && m.getParameterTypes()[p.getIndex()] == AsyncResponse.class) {
+            return true;
         }
         return false;
     }
@@ -384,9 +381,10 @@ public class ClientProxyImpl extends AbstractClient implements
         return types;
     }
     
-    private List<Object> getPathParamValues(MultivaluedMap<ParameterType, Parameter>
map,
-                                            List<Parameter> beanParams,
+    private List<Object> getPathParamValues(Method m,
                                             Object[] params,
+                                            MultivaluedMap<ParameterType, Parameter>
map,
+                                            List<Parameter> beanParams,
                                             OperationResourceInfo ori) {
         List<Object> list = new LinkedList<Object>();
         if (isRoot) {
@@ -416,9 +414,9 @@ public class ClientProxyImpl extends AbstractClient implements
         for (String varName : methodVars) {
             Parameter p = paramsMap.remove(varName);
             if (p != null) {
-                list.add(convertParamValue(params[p.getIndex()]));
+                list.add(convertParamValue(params[p.getIndex()], getParamAnnotations(m, p)));
             } else if (beanParamValues.containsKey(varName)) {
-                list.add(convertParamValue(beanParamValues.get(varName)));
+                list.add(convertParamValue(beanParamValues.get(varName), null));
             }
         }
         
@@ -428,7 +426,7 @@ public class ClientProxyImpl extends AbstractClient implements
                 for (Iterator<String> it = valuesMap.keySet().iterator(); it.hasNext();
index++) {
                     if (it.next().equals(p.getName()) && index < list.size())
{
                         list.remove(index);
-                        list.add(index, convertParamValue(params[p.getIndex()]));
+                        list.add(index, convertParamValue(params[p.getIndex()], null));
                         break;
                     }
                 }
@@ -439,27 +437,34 @@ public class ClientProxyImpl extends AbstractClient implements
         return list;
     }
     
+    private static Annotation[] getParamAnnotations(Method m, Parameter p) {
+        return m.getParameterAnnotations()[p.getIndex()];
+    }
+    
     @SuppressWarnings("unchecked")
     private static List<Parameter> getParameters(MultivaluedMap<ParameterType, Parameter>
map, 
                                            ParameterType key) {
         return  map.get(key) == null ? Collections.EMPTY_LIST : map.get(key);
     }
     
-    private void handleQueries(MultivaluedMap<ParameterType, Parameter> map,
-                               List<Parameter> beanParams,
+    private void handleQueries(Method m,
                                Object[] params,
+                               MultivaluedMap<ParameterType, Parameter> map,
+                               List<Parameter> beanParams,
                                UriBuilder ub) {
         List<Parameter> qs = getParameters(map, ParameterType.QUERY);
         for (Parameter p : qs) {
             if (params[p.getIndex()] != null) {
-                addMatrixQueryParamsToBuilder(ub, p.getName(), ParameterType.QUERY, params[p.getIndex()]);
+                addMatrixQueryParamsToBuilder(ub, p.getName(), ParameterType.QUERY, 
+                                              getParamAnnotations(m, p), params[p.getIndex()]);
             }
         }
         for (Parameter p : beanParams) {
             Map<String, Object> values = getValuesFromBeanParam(params[p.getIndex()],
QueryParam.class);
             for (Map.Entry<String, Object> entry : values.entrySet()) {
                 if (entry.getValue() != null) {
-                    addMatrixQueryParamsToBuilder(ub, entry.getKey(), ParameterType.QUERY,
entry.getValue());
+                    addMatrixQueryParamsToBuilder(ub, entry.getKey(), ParameterType.QUERY,

+                                                  getParamAnnotations(m, p), entry.getValue());
                 }
             }
         }
@@ -485,21 +490,24 @@ public class ClientProxyImpl extends AbstractClient implements
         return values;
     }
     
-    private void handleMatrixes(MultivaluedMap<ParameterType, Parameter> map,
-                                List<Parameter> beanParams,
+    private void handleMatrixes(Method m,
                                 Object[] params,
+                                MultivaluedMap<ParameterType, Parameter> map,
+                                List<Parameter> beanParams,
                                 UriBuilder ub) {
         List<Parameter> mx = getParameters(map, ParameterType.MATRIX);
         for (Parameter p : mx) {
             if (params[p.getIndex()] != null) {
-                addMatrixQueryParamsToBuilder(ub, p.getName(), ParameterType.MATRIX, params[p.getIndex()]);
+                addMatrixQueryParamsToBuilder(ub, p.getName(), ParameterType.MATRIX, 
+                                              getParamAnnotations(m, p), params[p.getIndex()]);
             }
         }
         for (Parameter p : beanParams) {
             Map<String, Object> values = getValuesFromBeanParam(params[p.getIndex()],
MatrixParam.class);
             for (Map.Entry<String, Object> entry : values.entrySet()) {
                 if (entry.getValue() != null) {
-                    addMatrixQueryParamsToBuilder(ub, entry.getKey(), ParameterType.MATRIX,
entry.getValue());
+                    addMatrixQueryParamsToBuilder(ub, entry.getKey(), ParameterType.MATRIX,

+                                                  getParamAnnotations(m, p), entry.getValue());
                 }
             }
         }
@@ -531,10 +539,11 @@ public class ClientProxyImpl extends AbstractClient implements
                 Collection<?> c = pValue.getClass().isArray() 
                     ? Arrays.asList((Object[]) pValue) : (Collection<?>) pValue;
                 for (Iterator<?> it = c.iterator(); it.hasNext();) {
-                    FormUtils.addPropertyToForm(form, name, convertParamValue(it.next()));
+                    FormUtils.addPropertyToForm(form, name, convertParamValue(it.next(),
null));
                 }
             } else { 
-                FormUtils.addPropertyToForm(form, name, name.isEmpty() ? pValue : convertParamValue(pValue));

+                FormUtils.addPropertyToForm(form, name, name.isEmpty() 
+                                            ? pValue : convertParamValue(pValue, null));

             }
             
         }
@@ -556,21 +565,23 @@ public class ClientProxyImpl extends AbstractClient implements
         return atts;        
     }
     
-    private void handleHeaders(MultivaluedMap<String, String> headers,
+    private void handleHeaders(Method m,
+                               Object[] params,
+                               MultivaluedMap<String, String> headers,
                                List<Parameter> beanParams,
-                               MultivaluedMap<ParameterType, Parameter> map, 
-                               Object[] params) {
+                               MultivaluedMap<ParameterType, Parameter> map) {
         List<Parameter> hs = getParameters(map, ParameterType.HEADER);
         for (Parameter p : hs) {
             if (params[p.getIndex()] != null) {
-                headers.add(p.getName(), convertParamValue(params[p.getIndex()]));
+                headers.add(p.getName(), convertParamValue(params[p.getIndex()], getParamAnnotations(m,
p)));
             }
         }
         for (Parameter p : beanParams) {
             Map<String, Object> values = getValuesFromBeanParam(params[p.getIndex()],
HeaderParam.class);
             for (Map.Entry<String, Object> entry : values.entrySet()) {
                 if (entry.getValue() != null) {
-                    headers.add(entry.getKey(), convertParamValue(entry.getValue()));
+                    headers.add(entry.getKey(), 
+                                convertParamValue(entry.getValue(), getParamAnnotations(m,
p)));
                 }
             }
         }
@@ -582,15 +593,17 @@ public class ClientProxyImpl extends AbstractClient implements
             aMethod.getParameterAnnotations()[index], Multipart.class) : null;
     }
     
-    private void handleCookies(MultivaluedMap<String, String> headers,
+    private void handleCookies(Method m, 
+                               Object[] params,
+                               MultivaluedMap<String, String> headers,
                                List<Parameter> beanParams,
-                               MultivaluedMap<ParameterType, Parameter> map, 
-                               Object[] params) {
+                               MultivaluedMap<ParameterType, Parameter> map) {
         List<Parameter> cs = getParameters(map, ParameterType.COOKIE);
         for (Parameter p : cs) {
             if (params[p.getIndex()] != null) {
                 headers.add(HttpHeaders.COOKIE, 
-                            p.getName() + '=' + convertParamValue(params[p.getIndex()].toString()));
+                            p.getName() + '=' 
+                            + convertParamValue(params[p.getIndex()].toString(), getParamAnnotations(m,
p)));
             }
         }
         for (Parameter p : beanParams) {
@@ -598,7 +611,8 @@ public class ClientProxyImpl extends AbstractClient implements
             for (Map.Entry<String, Object> entry : values.entrySet()) {
                 if (entry.getValue() != null) {
                     headers.add(HttpHeaders.COOKIE, 
-                                entry.getKey() + "=" +  convertParamValue(entry.getValue()));
+                                entry.getKey() + "=" 
+                                + convertParamValue(entry.getValue(), getParamAnnotations(m,
p)));
                 }
             }
         }

http://git-wip-us.apache.org/repos/asf/cxf/blob/b218997b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java
----------------------------------------------------------------------
diff --git a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java
index 3560cd8..9ef890e 100644
--- a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java
+++ b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java
@@ -614,7 +614,7 @@ public class WebClient extends AbstractClient {
      * @return updated WebClient
      */
     public WebClient path(Object path) {
-        getCurrentBuilder().path(convertParamValue(path));
+        getCurrentBuilder().path(convertParamValue(path, null));
         
         return this;
     }
@@ -643,7 +643,7 @@ public class WebClient extends AbstractClient {
      * @return updated WebClient
      */
     public WebClient matrix(String name, Object ...values) {
-        addMatrixQueryParamsToBuilder(getCurrentBuilder(), name, ParameterType.MATRIX, values);
+        addMatrixQueryParamsToBuilder(getCurrentBuilder(), name, ParameterType.MATRIX, null,
values);
         return this;
     }
     


Mime
View raw message