@Provides @Singleton @GlobalQueryParams RestParameterBindings getGlobalQueryParams(@GlobalQueryParams String encodedParams) { return bindingsSerializer.deserialize(encodedParams); } }
@Provides @Singleton @GlobalHeaderParams RestParameterBindings getGlobalHeaderParams(@GlobalHeaderParams String encodedParams) { return bindingsSerializer.deserialize(encodedParams); }
/** * Used to deserialize the bindings once on the client. Usage of GWT code is allowed. */ public RestParameterBindings deserialize(String encodedParameters) { RestParameterBindings parameters = new RestParameterBindings(); JSONObject json = JSONParser.parseStrict(encodedParameters).isObject(); for (String method : json.keySet()) { HttpMethod httpMethod = HttpMethod.valueOf(method); JSONArray jsonParameters = json.get(method).isArray(); for (int i = 0; i < jsonParameters.size(); ++i) { HttpParameter parameter = deserialize(jsonParameters.get(i).isObject()); parameters.put(httpMethod, parameter); } } return parameters; }