Example #1
0
  /**
   * @param rmd see {@link ResourceMethodDescriptor}
   * @param wadlResourceParams for adding parameters which must be in parent
   * @return {@link org.exoplatform.services.rest.wadl.research.Request}
   */
  private org.exoplatform.services.rest.wadl.research.Request processRequest(
      ResourceMethodDescriptor rmd, Map<String, Param> wadlResourceParams) {
    org.exoplatform.services.rest.wadl.research.Request wadlRequest = wadlGenerator.createRequest();
    for (MethodParameter methodParameter : rmd.getMethodParameters()) {
      if (methodParameter.getAnnotation() == null) {
        for (MediaType mediaType : rmd.consumes()) {
          RepresentationType wadlRepresentation =
              wadlGenerator.createRequestRepresentation(mediaType);
          wadlRequest.getRepresentation().add(wadlRepresentation);
        }
      }
      Param wadlParam = processParam(methodParameter);
      if (wadlParam != null) {
        if (wadlParam.getStyle() == ParamStyle.QUERY || wadlParam.getStyle() == ParamStyle.HEADER
        /* || wadlParam.getStyle() == ParamStyle.MATRIX */ ) {
          wadlRequest.getParam().add(wadlParam);
        } else {
          // If matrix or path template parameter then add in map for add in
          // parent element
          wadlResourceParams.put(wadlParam.getName(), wadlParam);
        }
      }
    }

    // NOTE If there are no any representation and parameters then request is
    // null.
    return wadlRequest.getRepresentation().isEmpty() && wadlRequest.getParam().isEmpty()
        ? null
        : wadlRequest;
  }