Exemplo n.º 1
0
  public Object[] decode(Method targetMethod, String paramsToken, Map<String, Mapper> mappers)
      throws MapperNotFoundException {
    if (paramsToken == null || paramsToken.trim().length() < 1) {
      return null;
    } else {
      String rawParams[] = paramsToken.trim().split(TcpRestProtocol.PATH_SEPERATOR);
      List<Object> paramsHolder = new ArrayList<Object>();
      int i = 0;
      for (String rawParam : rawParams) {
        String thisParam = decodeParam(rawParam);
        logger.debug("param types: " + targetMethod.getParameterTypes()[i]);
        Mapper mapper = getMapper(mappers, targetMethod.getParameterTypes()[i]);

        Object param = mapper.stringToObject(thisParam);

        if (thisParam.equals(TcpRestProtocol.NULL)) {
          param = null;
        }

        paramsHolder.add(param);
        i++;
      }
      return paramsHolder.toArray();
    }
  }