try { if (value.equalsIgnoreCase("true") || value.equalsIgnoreCase("false")) { return parseByDatatype(value, Boolean.class); return parseByDatatype(value, UUID.class); } catch (Exception ignored) { return parseByDatatype(value, Date.class); } catch (ParseException ignored) { return parseByDatatype(value, Time.class); } catch (ParseException ignored) { return parseByDatatype(value, java.sql.Date.class); } catch (ParseException ignored) { return parseByDatatype(value, BigDecimal.class); } catch (ParseException ignored) { return parseByDatatype(value, Double.class); } catch (ParseException ignored) {
private Object parseQueryParameter(String paramKey, String paramValue, Map<String, String[]> queryParams) { String[] typeName = queryParams.get(paramKey + "_type"); //if the type is specified if (typeName != null && typeName.length == 1) { return ParseUtils.parseByTypename(paramValue, typeName[0]); } //if the type is not specified else if (typeName == null) { return ParseUtils.tryParse(paramValue); } //if several types have been declared else { throw new IllegalStateException("Too many parameters in request"); } }
public Object invokeMethod() throws RestServiceException, InvocationTargetException, IllegalAccessException, ParseException { validate(); Object service = AppBeans.get(serviceName); Method serviceMethod = findMethod(service); this.methodReturnType = serviceMethod.getReturnType(); List<Object> paramValues = new ArrayList<>(); Class<?>[] types = serviceMethod.getParameterTypes(); for (int i = 0; i < types.length; i++) { Class<?> aClass = types[i]; paramValues.add(ParseUtils.toObject(aClass, paramValuesString.get(i), converter)); } return serviceMethod.invoke(service, paramValues.toArray()); }
value = ParseUtils.parseByTypename(paramValue, parameter.getString("type")); } else { value = ParseUtils.tryParse(paramValue);