示例#1
0
 private void addRepresentation(
     Response response, RestMethod restMethod, Representation representation) {
   representation = resolveRepresentation(representation);
   List<Long> status = null;
   if (isWADL11) {
     status = response.getStatus();
   } else {
     Node n = representation.getDomNode().getAttributes().getNamedItem("status");
     if (n != null) {
       status = new ArrayList<Long>();
       for (String s : n.getNodeValue().split(" ")) {
         status.add(Long.parseLong(s));
       }
     }
   }
   boolean fault = false;
   if (status != null && status.size() > 0) {
     fault = true;
     for (Long s : status) {
       if (s < 400) {
         fault = false;
         break;
       }
     }
   }
   RestRepresentation.Type type =
       fault ? RestRepresentation.Type.FAULT : RestRepresentation.Type.RESPONSE;
   addRepresentationFromConfig(restMethod, representation, type, status);
 }
示例#2
0
  private RestMethod initMethod(RestResource newResource, Method method) {
    // build name
    String name = getFirstTitle(method.getDocList(), method.getName());
    String id = method.getId();
    if (StringUtils.hasContent(id) && !id.trim().equals(name.trim())) {
      name += " - " + method.getId();
    }

    // ensure unique name
    if (newResource.getRestMethodByName(name) != null) {
      int cnt = 0;
      String orgName = name;

      while (newResource.getRestMethodByName(name) != null) {
        cnt++;
        name = orgName + "-" + cnt;
      }
    }

    // add to resource
    RestMethod restMethod = newResource.addNewMethod(name);
    restMethod.setMethod(RestRequestInterface.HttpMethod.valueOf(method.getName()));

    if (method.getRequest() != null) {
      for (Param param : method.getRequest().getParamList()) {
        param = resolveParameter(param);
        if (param != null) {
          RestParamProperty p = restMethod.addProperty(param.getName());
          initParam(param, p);
        }
      }

      for (Representation representation : method.getRequest().getRepresentationList()) {
        representation = resolveRepresentation(representation);
        addRepresentationFromConfig(
            restMethod, representation, RestRepresentation.Type.REQUEST, null);
      }
    }

    for (Response response : method.getResponseList()) {
      for (Representation representation : response.getRepresentationList()) {
        addRepresentation(response, restMethod, representation);
      }
      if (!isWADL11) {
        NodeList children = response.getDomNode().getChildNodes();
        for (int i = 0; i < children.getLength(); i++) {
          Node n = children.item(i);
          if ("fault".equals(n.getNodeName())) {
            String content = XmlUtils.serialize(n, false);
            try {
              Map<Object, Object> map = new HashMap<Object, Object>();
              XmlCursor cursor = response.newCursor();
              cursor.getAllNamespaces(map);
              cursor.dispose();
              XmlOptions options = new XmlOptions();
              options.setLoadAdditionalNamespaces(map);
              // XmlObject obj = XmlObject.Factory.parse(
              // content.replaceFirst( "<(([a-z]+:)?)fault ",
              // "<$1representation " ), options );
              XmlObject obj =
                  XmlUtils.createXmlObject(
                      content.replaceFirst("<(([a-z]+:)?)fault ", "<$1representation "), options);
              RepresentationDocument representation =
                  (RepresentationDocument) obj.changeType(RepresentationDocument.type);
              addRepresentation(response, restMethod, representation.getRepresentation());
            } catch (XmlException e) {
            }
          }
        }
      }
    }

    restMethod.addNewRequest("Request 1");
    return restMethod;
  }