private void addPredicateToken(String theResourceName, String theParamName, List<? extends IQueryParameterType> theList) { if (theList.get(0).getMissing() != null) { Join<ResourceTable, ResourceIndexedSearchParamToken> join = createOrReuseJoin(JoinEnum.TOKEN, theParamName); addPredicateParamMissing(theResourceName, theParamName, theList.get(0).getMissing(), join); return; } List<Predicate> codePredicates = new ArrayList<>(); Join<ResourceTable, ResourceIndexedSearchParamToken> join = null; for (IQueryParameterType nextOr : theList) { if (nextOr instanceof TokenParam) { TokenParam id = (TokenParam) nextOr; if (id.isText()) { addPredicateString(theResourceName, theParamName, theList); break; } } if (join == null) { join = createOrReuseJoin(JoinEnum.TOKEN, theParamName); } Predicate singleCode = createPredicateToken(nextOr, theResourceName, theParamName, myBuilder, join); codePredicates.add(singleCode); } if (codePredicates.isEmpty()) { return; } Predicate spPredicate = myBuilder.or(toArray(codePredicates)); myPredicates.add(spPredicate); }
if (theParameter instanceof TokenParam) { TokenParam id = (TokenParam) theParameter; if (!id.isText()) { throw new IllegalStateException("Trying to process a text search on a non-text token parameter");
private void addPredicateToken(String theResourceName, String theParamName, List<? extends IQueryParameterType> theList) { if (theList.get(0).getMissing() != null) { Join<ResourceTable, ResourceIndexedSearchParamToken> join = createOrReuseJoin(JoinEnum.TOKEN, theParamName); addPredicateParamMissing(theResourceName, theParamName, theList.get(0).getMissing(), join); return; } List<Predicate> codePredicates = new ArrayList<>(); Join<ResourceTable, ResourceIndexedSearchParamToken> join = null; for (IQueryParameterType nextOr : theList) { if (nextOr instanceof TokenParam) { TokenParam id = (TokenParam) nextOr; if (id.isText()) { addPredicateString(theResourceName, theParamName, theList); break; } } if (join == null) { join = createOrReuseJoin(JoinEnum.TOKEN, theParamName); } Predicate singleCode = createPredicateToken(nextOr, theResourceName, theParamName, myBuilder, join); codePredicates.add(singleCode); } if (codePredicates.isEmpty()) { return; } Predicate spPredicate = myBuilder.or(toArray(codePredicates)); myPredicates.add(spPredicate); }
if (theParameter instanceof TokenParam) { TokenParam id = (TokenParam) theParameter; if (!id.isText()) { throw new IllegalStateException("Trying to process a text search on a non-text token parameter");