Exemple #1
0
  private void initParam(Param param, RestParamProperty prop) {
    prop.setDefaultValue(param.getDefault());
    prop.setValue(param.getDefault());
    ParamStyle.Enum paramStyle = param.getStyle();
    if (paramStyle == null) {
      paramStyle = ParamStyle.QUERY;
    }

    prop.setStyle(ParameterStyle.valueOf(paramStyle.toString().toUpperCase()));
    prop.setRequired(param.getRequired());
    QName paramType = param.getType();
    prop.setType(paramType);

    String[] options = new String[param.sizeOfOptionArray()];
    for (int c = 0; c < options.length; c++) {
      options[c] = param.getOptionArray(c).getValue();
    }

    if (options.length > 0) {
      prop.setOptions(options);
    }
  }
Exemple #2
0
  public static String extractParams(URL param, RestParamsPropertyHolder params) {
    String path = param.getPath();
    String[] items = path.split("/");

    int templateParamCount = 0;
    StringBuffer resultPath = new StringBuffer();

    for (int i = 0; i < items.length; i++) {
      String item = items[i];
      try {
        String[] matrixParams = item.split(";");
        if (matrixParams.length > 0) {
          item = matrixParams[0];
          for (int c = 1; c < matrixParams.length; c++) {
            String matrixParam = matrixParams[c];

            int ix = matrixParam.indexOf('=');
            if (ix == -1) {
              params
                  .addProperty(URLDecoder.decode(matrixParam, "Utf-8"))
                  .setStyle(ParameterStyle.MATRIX);
            } else {
              String name = matrixParam.substring(0, ix);
              RestParamProperty property = params.addProperty(URLDecoder.decode(name, "Utf-8"));
              property.setStyle(ParameterStyle.MATRIX);
              property.setValue(URLDecoder.decode(matrixParam.substring(ix + 1), "Utf-8"));
            }
          }
        }

        Integer.parseInt(item);
        RestParamProperty prop = params.addProperty("param" + templateParamCount++);
        prop.setStyle(ParameterStyle.TEMPLATE);
        prop.setValue(item);

        item = "{" + prop.getName() + "}";
      } catch (Exception e) {
      }

      if (StringUtils.hasContent(item)) {
        resultPath.append('/').append(item);
      }
    }

    String query = ((URL) param).getQuery();
    if (StringUtils.hasContent(query)) {
      items = query.split("&");
      for (String item : items) {
        try {
          int ix = item.indexOf('=');
          if (ix == -1) {
            params.addProperty(URLDecoder.decode(item, "Utf-8")).setStyle(ParameterStyle.QUERY);
          } else {
            String name = item.substring(0, ix);
            RestParamProperty property = params.addProperty(URLDecoder.decode(name, "Utf-8"));
            property.setStyle(ParameterStyle.QUERY);
            property.setValue(URLDecoder.decode(item.substring(ix + 1), "Utf-8"));
          }
        } catch (UnsupportedEncodingException e) {
          e.printStackTrace();
        }
      }
    }

    return resultPath.toString();
  }