public static QualifierDetails extractQualifiersFromParameterName(String theParamName) { QualifierDetails retVal = new QualifierDetails(); if (theParamName == null || theParamName.length() == 0) { return retVal; retVal.setDotQualifier(theParamName.substring(dotIdx, colonIdx)); retVal.setColonQualifier(theParamName.substring(colonIdx)); retVal.setParamName(theParamName.substring(0, dotIdx)); retVal.setWholeQualifier(theParamName.substring(dotIdx)); } else { retVal.setColonQualifier(theParamName.substring(colonIdx, dotIdx)); retVal.setDotQualifier(theParamName.substring(dotIdx)); retVal.setParamName(theParamName.substring(0, colonIdx)); retVal.setWholeQualifier(theParamName.substring(colonIdx)); retVal.setDotQualifier(theParamName.substring(dotIdx)); retVal.setParamName(theParamName.substring(0, dotIdx)); retVal.setWholeQualifier(theParamName.substring(dotIdx)); } else if (colonIdx != -1) { retVal.setColonQualifier(theParamName.substring(colonIdx)); retVal.setParamName(theParamName.substring(0, colonIdx)); retVal.setWholeQualifier(theParamName.substring(colonIdx)); } else { retVal.setParamName(theParamName); retVal.setColonQualifier(null); retVal.setDotQualifier(null); retVal.setWholeQualifier(null);
if (nextParameter instanceof SearchParameter) { SearchParameter nextSearchParam = (SearchParameter)nextParameter; if (nextSearchParam.getName().equals(qualifiers.getParamName())) { if (qualifiers.passes(nextSearchParam.getQualifierWhitelist(), nextSearchParam.getQualifierBlacklist())) { alreadyCaptured = true; break;
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)); } } } }
@Transactional(propagation = Propagation.SUPPORTS) @Override public void translateRawParameters(Map<String, List<String>> theSource, SearchParameterMap theTarget) { if (theSource == null || theSource.isEmpty()) { return; } Map<String, RuntimeSearchParam> searchParams = mySerarchParamRegistry.getActiveSearchParams(getResourceName()); Set<String> paramNames = theSource.keySet(); for (String nextParamName : paramNames) { QualifierDetails qualifiedParamName = SearchMethodBinding.extractQualifiersFromParameterName(nextParamName); RuntimeSearchParam param = searchParams.get(qualifiedParamName.getParamName()); if (param == null) { String msg = getContext().getLocalizer().getMessage(BaseHapiFhirResourceDao.class, "invalidSearchParameter", qualifiedParamName.getParamName(), new TreeSet<String>(searchParams.keySet())); throw new InvalidRequestException(msg); } // Should not be null since the check above would have caught it RuntimeResourceDefinition resourceDef = getContext().getResourceDefinition(myResourceName); RuntimeSearchParam paramDef = mySearchParamRegistry.getSearchParamByName(resourceDef, qualifiedParamName.getParamName()); for (String nextValue : theSource.get(nextParamName)) { if (isNotBlank(nextValue)) { QualifiedParamList qualifiedParam = QualifiedParamList.splitQueryStringByCommasIgnoreEscape(qualifiedParamName.getWholeQualifier(), nextValue); List<QualifiedParamList> paramList = Collections.singletonList(qualifiedParam); IQueryParameterAnd<?> parsedParam = ParameterUtil.parseQueryParams(getContext(), paramDef, nextParamName, paramList); theTarget.add(qualifiedParamName.getParamName(), parsedParam); } } } }
private List<String> processWhitelistAndBlacklist(List<String> theQualifiedNames, Set<String> theQualifierWhitelist, Set<String> theQualifierBlacklist) { if (theQualifierWhitelist == null && theQualifierBlacklist == null) { return theQualifiedNames; } ArrayList<String> retVal = new ArrayList<String>(theQualifiedNames.size()); for (String next : theQualifiedNames) { QualifierDetails qualifiers = extractQualifiersFromParameterName(next); if (!qualifiers.passes(theQualifierWhitelist, theQualifierBlacklist)) { continue; } retVal.add(next); } return retVal; }
@Transactional(propagation = Propagation.SUPPORTS) @Override public void translateRawParameters(Map<String, List<String>> theSource, SearchParameterMap theTarget) { if (theSource == null || theSource.isEmpty()) { return; } Map<String, RuntimeSearchParam> searchParams = mySerarchParamRegistry.getActiveSearchParams(getResourceName()); Set<String> paramNames = theSource.keySet(); for (String nextParamName : paramNames) { QualifierDetails qualifiedParamName = SearchMethodBinding.extractQualifiersFromParameterName(nextParamName); RuntimeSearchParam param = searchParams.get(qualifiedParamName.getParamName()); if (param == null) { String msg = getContext().getLocalizer().getMessage(BaseHapiFhirResourceDao.class, "invalidSearchParameter", qualifiedParamName.getParamName(), new TreeSet<String>(searchParams.keySet())); throw new InvalidRequestException(msg); } // Should not be null since the check above would have caught it RuntimeResourceDefinition resourceDef = getContext().getResourceDefinition(myResourceName); RuntimeSearchParam paramDef = mySearchParamRegistry.getSearchParamByName(resourceDef, qualifiedParamName.getParamName()); for (String nextValue : theSource.get(nextParamName)) { if (isNotBlank(nextValue)) { QualifiedParamList qualifiedParam = QualifiedParamList.splitQueryStringByCommasIgnoreEscape(qualifiedParamName.getWholeQualifier(), nextValue); List<QualifiedParamList> paramList = Collections.singletonList(qualifiedParam); IQueryParameterAnd<?> parsedParam = ParameterUtil.parseQueryParams(getContext(), paramDef, nextParamName, paramList); theTarget.add(qualifiedParamName.getParamName(), parsedParam); } } } }
if (qualifiers.passes(temp.getQualifierWhitelist(), temp.getQualifierBlacklist())) { methodParamsTemp.add(name); if (qualifiedParamNames.contains(name)) { QualifierDetails qualifiers = extractQualifiersFromParameterName(name); if (qualifiers.passes(temp.getQualifierWhitelist(), temp.getQualifierBlacklist())) { methodParamsTemp.add(name);
public static QualifierDetails extractQualifiersFromParameterName(String theParamName) { QualifierDetails retVal = new QualifierDetails(); if (theParamName == null || theParamName.length() == 0) { return retVal; retVal.setDotQualifier(theParamName.substring(dotIdx, colonIdx)); retVal.setColonQualifier(theParamName.substring(colonIdx)); retVal.setParamName(theParamName.substring(0, dotIdx)); retVal.setWholeQualifier(theParamName.substring(dotIdx)); } else { retVal.setColonQualifier(theParamName.substring(colonIdx, dotIdx)); retVal.setDotQualifier(theParamName.substring(dotIdx)); retVal.setParamName(theParamName.substring(0, colonIdx)); retVal.setWholeQualifier(theParamName.substring(colonIdx)); retVal.setDotQualifier(theParamName.substring(dotIdx)); retVal.setParamName(theParamName.substring(0, dotIdx)); retVal.setWholeQualifier(theParamName.substring(dotIdx)); } else if (colonIdx != -1) { retVal.setColonQualifier(theParamName.substring(colonIdx)); retVal.setParamName(theParamName.substring(0, colonIdx)); retVal.setWholeQualifier(theParamName.substring(colonIdx)); } else { retVal.setParamName(theParamName); retVal.setColonQualifier(null); retVal.setDotQualifier(null); retVal.setWholeQualifier(null);
if (nextParameter instanceof SearchParameter) { SearchParameter nextSearchParam = (SearchParameter)nextParameter; if (nextSearchParam.getName().equals(qualifiers.getParamName())) { if (qualifiers.passes(nextSearchParam.getQualifierWhitelist(), nextSearchParam.getQualifierBlacklist())) { alreadyCaptured = true; break;
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)); } } } }
private List<String> processWhitelistAndBlacklist(List<String> theQualifiedNames, Set<String> theQualifierWhitelist, Set<String> theQualifierBlacklist) { if (theQualifierWhitelist == null && theQualifierBlacklist == null) { return theQualifiedNames; } ArrayList<String> retVal = new ArrayList<String>(theQualifiedNames.size()); for (String next : theQualifiedNames) { QualifierDetails qualifiers = extractQualifiersFromParameterName(next); if (!qualifiers.passes(theQualifierWhitelist, theQualifierBlacklist)) { continue; } retVal.add(next); } return retVal; }
public static QualifierDetails extractQualifiersFromParameterName(String theParamName) { QualifierDetails retVal = new QualifierDetails(); if (theParamName == null || theParamName.length() == 0) { return retVal; retVal.setDotQualifier(theParamName.substring(dotIdx, colonIdx)); retVal.setColonQualifier(theParamName.substring(colonIdx)); retVal.setParamName(theParamName.substring(0, dotIdx)); retVal.setWholeQualifier(theParamName.substring(dotIdx)); } else { retVal.setColonQualifier(theParamName.substring(colonIdx, dotIdx)); retVal.setDotQualifier(theParamName.substring(dotIdx)); retVal.setParamName(theParamName.substring(0, colonIdx)); retVal.setWholeQualifier(theParamName.substring(colonIdx)); retVal.setDotQualifier(theParamName.substring(dotIdx)); retVal.setParamName(theParamName.substring(0, dotIdx)); retVal.setWholeQualifier(theParamName.substring(dotIdx)); } else if (colonIdx != -1) { retVal.setColonQualifier(theParamName.substring(colonIdx)); retVal.setParamName(theParamName.substring(0, colonIdx)); retVal.setWholeQualifier(theParamName.substring(colonIdx)); } else { retVal.setParamName(theParamName); retVal.setColonQualifier(null); retVal.setDotQualifier(null); retVal.setWholeQualifier(null);
if (qualifiers.passes(temp.getQualifierWhitelist(), temp.getQualifierBlacklist())) { methodParamsTemp.add(name); if (qualifiedParamNames.contains(name)) { QualifierDetails qualifiers = extractQualifiersFromParameterName(name); if (qualifiers.passes(temp.getQualifierWhitelist(), temp.getQualifierBlacklist())) { methodParamsTemp.add(name);
public static QualifierDetails extractQualifiersFromParameterName(String theParamName) { QualifierDetails retVal = new QualifierDetails(); if (theParamName == null || theParamName.length() == 0) { return retVal; retVal.setDotQualifier(theParamName.substring(dotIdx, colonIdx)); retVal.setColonQualifier(theParamName.substring(colonIdx)); retVal.setParamName(theParamName.substring(0, dotIdx)); retVal.setWholeQualifier(theParamName.substring(dotIdx)); } else { retVal.setColonQualifier(theParamName.substring(colonIdx, dotIdx)); retVal.setDotQualifier(theParamName.substring(dotIdx)); retVal.setParamName(theParamName.substring(0, colonIdx)); retVal.setWholeQualifier(theParamName.substring(colonIdx)); retVal.setDotQualifier(theParamName.substring(dotIdx)); retVal.setParamName(theParamName.substring(0, dotIdx)); retVal.setWholeQualifier(theParamName.substring(dotIdx)); } else if (colonIdx != -1) { retVal.setColonQualifier(theParamName.substring(colonIdx)); retVal.setParamName(theParamName.substring(0, colonIdx)); retVal.setWholeQualifier(theParamName.substring(colonIdx)); } else { retVal.setParamName(theParamName); retVal.setColonQualifier(null); retVal.setDotQualifier(null); retVal.setWholeQualifier(null);