@Override public Object translateQueryParametersIntoServerArgument(RequestDetails theRequest, BaseMethodBinding<?> theMethodBinding) throws InternalErrorException, InvalidRequestException { List<QualifiedParamList> paramList = new ArrayList<>(); 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 {}", new Object[] { getName(), qualified, getQualifierWhitelist() }); if (handlesMissing()) { return parse(theRequest.getFhirContext(), paramList); } return null; } return parse(theRequest.getFhirContext(), paramList); }
private void parseParams(RequestDetails theRequest, List<QualifiedParamList> paramList, String theQualifiedParamName, String theQualifier) { QualifierDetails qualifiers = QualifierDetails.extractQualifiersFromParameterName(theQualifier); if (!qualifiers.passes(getQualifierWhitelist(), getQualifierBlacklist())) { return; } String[] value = theRequest.getParameters().get(theQualifiedParamName); if (value != null) { for (String nextParam : value) { if (nextParam.contains(",") == false) { paramList.add(QualifiedParamList.singleton(theQualifier, nextParam)); } else { paramList.add(QualifiedParamList.splitQueryStringByCommasIgnoreEscape(theQualifier, nextParam)); } } } }
String name = temp.getName(); if (temp.isRequired()) { if (qualifiers.passes(temp.getQualifierWhitelist(), temp.getQualifierBlacklist())) { methodParamsTemp.add(name); qualifiedNames = processWhitelistAndBlacklist(qualifiedNames, temp.getQualifierWhitelist(), temp.getQualifierBlacklist()); methodParamsTemp.addAll(qualifiedNames); if (qualifiedParamNames.contains(name)) { QualifierDetails qualifiers = extractQualifiersFromParameterName(name); if (qualifiers.passes(temp.getQualifierWhitelist(), temp.getQualifierBlacklist())) { methodParamsTemp.add(name); qualifiedNames = processWhitelistAndBlacklist(qualifiedNames, temp.getQualifierWhitelist(), temp.getQualifierBlacklist()); methodParamsTemp.addAll(qualifiedNames);
String name = temp.getName(); if (temp.isRequired()) { if (qualifiers.passes(temp.getQualifierWhitelist(), temp.getQualifierBlacklist())) { methodParamsTemp.add(name); qualifiedNames = processWhitelistAndBlacklist(qualifiedNames, temp.getQualifierWhitelist(), temp.getQualifierBlacklist()); methodParamsTemp.addAll(qualifiedNames); if (qualifiedParamNames.contains(name)) { QualifierDetails qualifiers = extractQualifiersFromParameterName(name); if (qualifiers.passes(temp.getQualifierWhitelist(), temp.getQualifierBlacklist())) { methodParamsTemp.add(name); qualifiedNames = processWhitelistAndBlacklist(qualifiedNames, temp.getQualifierWhitelist(), temp.getQualifierBlacklist()); methodParamsTemp.addAll(qualifiedNames);
@Override public Object translateQueryParametersIntoServerArgument(RequestDetails theRequest, BaseMethodBinding<?> theMethodBinding) throws InternalErrorException, InvalidRequestException { List<QualifiedParamList> paramList = new ArrayList<>(); 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 {}", new Object[] { getName(), qualified, getQualifierWhitelist() }); if (handlesMissing()) { return parse(theRequest.getFhirContext(), paramList); } return null; } return parse(theRequest.getFhirContext(), paramList); }
private void parseParams(RequestDetails theRequest, List<QualifiedParamList> paramList, String theQualifiedParamName, String theQualifier) { QualifierDetails qualifiers = QualifierDetails.extractQualifiersFromParameterName(theQualifier); if (!qualifiers.passes(getQualifierWhitelist(), getQualifierBlacklist())) { return; } String[] value = theRequest.getParameters().get(theQualifiedParamName); if (value != null) { for (String nextParam : value) { if (nextParam.contains(",") == false) { paramList.add(QualifiedParamList.singleton(theQualifier, nextParam)); } else { paramList.add(QualifiedParamList.splitQueryStringByCommasIgnoreEscape(theQualifier, nextParam)); } } } }