Esempio n. 1
0
  @Override
  public Object translateQueryParametersIntoServerArgument(
      RequestDetails theRequest, byte[] theRequestContents, BaseMethodBinding<?> theMethodBinding)
      throws InternalErrorException, InvalidRequestException {

    List<QualifiedParamList> paramList = new ArrayList<QualifiedParamList>();
    String name = getName();
    parseParams(theRequest, paramList, name, null);

    List<String> qualified = theRequest.getUnqualifiedToQualifiedNames().get(name);
    if (qualified != null) {
      for (String nextQualified : qualified) {
        parseParams(theRequest, paramList, nextQualified, nextQualified.substring(name.length()));
      }
    }

    if (paramList.isEmpty()) {

      ourLog.debug(
          "No value for parameter '{}' - Qualified names {} and qualifier whitelist {}",
          getName(),
          qualified,
          getQualifierWhitelist());

      if (handlesMissing()) {
        return parse(theRequest.getServer().getFhirContext(), paramList);
      } else {
        return null;
      }
    }

    return parse(theRequest.getServer().getFhirContext(), paramList);
  }