private void handleSearchMethodBinding(ConformanceRestComponent rest, ConformanceRestResourceComponent resource, String resourceName, RuntimeResourceDefinition def, TreeSet<String> includes, SearchMethodBinding searchMethodBinding) { includes.addAll(searchMethodBinding.getIncludes()); List<IParameter> params = searchMethodBinding.getParameters(); List<SearchParameter> searchParameters = new ArrayList<SearchParameter>(); for (IParameter nextParameter : params) {
ourLog.trace("Method {} doesn't match because request type is {}", getMethod()); return false; ourLog.trace("Method {} doesn't match because it is for compartment {} but request is compartment {}", new Object[] { getMethod(), myCompartmentName, theRequest.getCompartmentName() }); return false; for (int i = 0; i < this.getParameters().size(); i++) { if (!(getParameters().get(i) instanceof BaseQueryParameter)) { continue; BaseQueryParameter temp = (BaseQueryParameter) getParameters().get(i); String name = temp.getName(); if (temp.isRequired()) { QualifierDetails qualifiers = extractQualifiersFromParameterName(name); if (qualifiers.passes(temp.getQualifierWhitelist(), temp.getQualifierBlacklist())) { methodParamsTemp.add(name); qualifiedNames = processWhitelistAndBlacklist(qualifiedNames, temp.getQualifierWhitelist(), temp.getQualifierBlacklist()); methodParamsTemp.addAll(qualifiedNames); ourLog.trace("Method {} doesn't match param '{}' is not present", getMethod().getName(), name); return false; QualifierDetails qualifiers = extractQualifiersFromParameterName(name); if (qualifiers.passes(temp.getQualifierWhitelist(), temp.getQualifierBlacklist())) { methodParamsTemp.add(name); qualifiedNames = processWhitelistAndBlacklist(qualifiedNames, temp.getQualifierWhitelist(), temp.getQualifierBlacklist());
if (isNotBlank(binding.getDescription())) { op.setDescription(binding.getDescription()); if (isBlank(binding.getResourceProviderResourceName())) { op.setSystem(true); } else { op.setType(true); op.addResourceElement().setValue(binding.getResourceProviderResourceName()); op.setCode(binding.getQueryName()); for (IParameter nextParamUntyped : binding.getParameters()) { if (nextParamUntyped instanceof SearchParameter) { SearchParameter nextParam = (SearchParameter) nextParamUntyped;
private String createNamedQueryName(SearchMethodBinding searchMethodBinding) { StringBuilder retVal = new StringBuilder(); if (searchMethodBinding.getResourceName() != null) { retVal.append(searchMethodBinding.getResourceName()); } retVal.append("-query-"); retVal.append(searchMethodBinding.getQueryName()); return retVal.toString(); }
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; }
if (methodBinding.getQueryName() != null) { String queryName = myNamedSearchMethodBindingToName.get(methodBinding); if (operationNames.add(queryName)) { rest.addOperation().setName(methodBinding.getQueryName()).setDefinition(("OperationDefinition/" + queryName));
private String createNamedQueryName(SearchMethodBinding searchMethodBinding) { StringBuilder retVal = new StringBuilder(); if (searchMethodBinding.getResourceName() != null) { retVal.append(searchMethodBinding.getResourceName()); } retVal.append("-query-"); retVal.append(searchMethodBinding.getQueryName()); return retVal.toString(); }
QualifierDetails qualifiers = SearchMethodBinding.extractQualifiersFromParameterName(nextName);
if (methodBinding.getQueryName() != null) { String queryName = myNamedSearchMethodBindingToName.get(methodBinding); if (operationNames.add(queryName)) { rest.addOperation().setName(methodBinding.getQueryName()).setDefinition(("OperationDefinition/" + queryName));
private void handleNamelessSearchMethodBinding(CapabilityStatementRestComponent rest, CapabilityStatementRestResourceComponent resource, String resourceName, RuntimeResourceDefinition def, TreeSet<String> includes, SearchMethodBinding searchMethodBinding) { includes.addAll(searchMethodBinding.getIncludes()); List<IParameter> params = searchMethodBinding.getParameters(); List<SearchParameter> searchParameters = new ArrayList<SearchParameter>(); for (IParameter nextParameter : params) {
if (isNotBlank(binding.getDescription())) { op.setDescription(binding.getDescription()); if (isBlank(binding.getResourceProviderResourceName())) { op.setSystem(true); } else { op.setType(true); op.addResourceElement().setValue(binding.getResourceProviderResourceName()); op.setCode(binding.getQueryName()); for (IParameter nextParamUntyped : binding.getParameters()) { if (nextParamUntyped instanceof SearchParameter) { SearchParameter nextParam = (SearchParameter) nextParamUntyped;
ourLog.trace("Method {} doesn't match because request type is {}", getMethod()); return false; ourLog.trace("Method {} doesn't match because it is for compartment {} but request is compartment {}", new Object[] { getMethod(), myCompartmentName, theRequest.getCompartmentName() }); return false; for (int i = 0; i < this.getParameters().size(); i++) { if (!(getParameters().get(i) instanceof BaseQueryParameter)) { continue; BaseQueryParameter temp = (BaseQueryParameter) getParameters().get(i); String name = temp.getName(); if (temp.isRequired()) { QualifierDetails qualifiers = extractQualifiersFromParameterName(name); if (qualifiers.passes(temp.getQualifierWhitelist(), temp.getQualifierBlacklist())) { methodParamsTemp.add(name); qualifiedNames = processWhitelistAndBlacklist(qualifiedNames, temp.getQualifierWhitelist(), temp.getQualifierBlacklist()); methodParamsTemp.addAll(qualifiedNames); ourLog.trace("Method {} doesn't match param '{}' is not present", getMethod().getName(), name); return false; QualifierDetails qualifiers = extractQualifiersFromParameterName(name); if (qualifiers.passes(temp.getQualifierWhitelist(), temp.getQualifierBlacklist())) { methodParamsTemp.add(name); qualifiedNames = processWhitelistAndBlacklist(qualifiedNames, temp.getQualifierWhitelist(), temp.getQualifierBlacklist());
private String createNamedQueryName(SearchMethodBinding searchMethodBinding) { StringBuilder retVal = new StringBuilder(); if (searchMethodBinding.getResourceName() != null) { retVal.append(searchMethodBinding.getResourceName()); } retVal.append("-query-"); retVal.append(searchMethodBinding.getQueryName()); return retVal.toString(); }
@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 (methodBinding.getQueryName() != null) { String queryName = myNamedSearchMethodBindingToName.get(methodBinding); if (operationNames.add(queryName)) { rest.addOperation().setName(methodBinding.getQueryName()).setDefinition(new Reference("OperationDefinition/" + queryName));
private void handleSearchMethodBinding(ConformanceRestComponent rest, ConformanceRestResourceComponent resource, String resourceName, RuntimeResourceDefinition def, TreeSet<String> includes, SearchMethodBinding searchMethodBinding) { includes.addAll(searchMethodBinding.getIncludes()); List<IParameter> params = searchMethodBinding.getParameters(); List<SearchParameter> searchParameters = new ArrayList<SearchParameter>(); for (IParameter nextParameter : params) {
if (isNotBlank(binding.getDescription())) { op.setDescription(binding.getDescription()); if (isBlank(binding.getResourceProviderResourceName())) { op.setSystem(true); } else { op.setType(true); op.addResourceElement().setValue(binding.getResourceProviderResourceName()); op.setCode(binding.getQueryName()); for (IParameter nextParamUntyped : binding.getParameters()) { if (nextParamUntyped instanceof SearchParameter) { SearchParameter nextParam = (SearchParameter) nextParamUntyped;
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; }
private void handleSearchMethodBinding(Rest rest, RestResource resource, String resourceName, RuntimeResourceDefinition def, TreeSet<String> includes, SearchMethodBinding searchMethodBinding) { includes.addAll(searchMethodBinding.getIncludes()); List<IParameter> params = searchMethodBinding.getParameters(); List<SearchParameter> searchParameters = new ArrayList<SearchParameter>(); for (IParameter nextParameter : params) {
QualifierDetails qualifiers = SearchMethodBinding.extractQualifiersFromParameterName(nextName);