/** * A {@link FieldSearchQuery} may be made from a terms string or a query * string, but not both. */ private FieldSearchQuery assembleFieldSearchQuery(String query, String terms) { if (terms != null) { return new FieldSearchQuery(terms); } else { try { return new FieldSearchQuery(Condition.getConditions(query)); } catch (QueryParseException e) { throw new ValidatorProcessUsageException("Value '" + query + "' of parameter '" + PARAMETER_QUERY + "' is not a valid query string."); } } }
public static org.fcrepo.server.search.FieldSearchQuery convertGenFieldSearchQueryToFieldSearchQuery(org.fcrepo.server.types.gen.FieldSearchQuery gen) throws org.fcrepo.server.errors.InvalidOperatorException, org.fcrepo.server.errors.QueryParseException { if (gen == null) { return null; } if (gen.getTerms() != null) { return new org.fcrepo.server.search.FieldSearchQuery(gen.getTerms() .getValue()); } else if (gen.getConditions() != null) { return new org.fcrepo.server.search.FieldSearchQuery(convertGenConditionArrayToSearchConditionList(gen .getConditions().getValue())); } else { return new org.fcrepo.server.search.FieldSearchQuery(EMPTY_STRING); } }
public static org.fcrepo.server.search.FieldSearchQuery convertGenFieldSearchQueryToFieldSearchQuery(org.fcrepo.server.types.gen.FieldSearchQuery gen) throws org.fcrepo.server.errors.InvalidOperatorException, org.fcrepo.server.errors.QueryParseException { if (gen == null) { return null; } if (gen.getTerms() != null) { return new org.fcrepo.server.search.FieldSearchQuery(gen.getTerms() .getValue()); } else if (gen.getConditions() != null) { return new org.fcrepo.server.search.FieldSearchQuery(convertGenConditionArrayToSearchConditionList(gen .getConditions().getValue())); } else { return new org.fcrepo.server.search.FieldSearchQuery(EMPTY_STRING); } }
fieldsArray, maxResults, new FieldSearchQuery(terms)); } else { fsr = fieldsArray, maxResults, new FieldSearchQuery(Condition .getConditions(query)));
fieldsArray, maxResults, new FieldSearchQuery(terms)); } else { fsr = fieldsArray, maxResults, new FieldSearchQuery(Condition .getConditions(query)));
} else { if ((terms != null) && (terms.length() != 0)) { result = m_access.findObjects(context, wantedFields, maxResults, new FieldSearchQuery(terms)); } else { result = m_access.findObjects(context, wantedFields, maxResults, new FieldSearchQuery(Condition.getConditions(query)));
} else { if ((terms != null) && (terms.length() != 0)) { result = m_access.findObjects(context, wantedFields, maxResults, new FieldSearchQuery(terms)); } else { result = m_access.findObjects(context, wantedFields, maxResults, new FieldSearchQuery(Condition.getConditions(query)));
.findObjects(new String[] {"pid"}, 1, new FieldSearchQuery(Condition .getConditions("pid='" + pid m_fieldSearch.findObjects(new String[] {"pid"}, 1, new FieldSearchQuery(Condition .getConditions("pid='" + pid + "'")))
.findObjects(s_headerAndDCFields, 100, new FieldSearchQuery(Condition .getConditions("pid='" + pid .findObjects(new String[] {"pid"}, 1, new FieldSearchQuery(Condition .getConditions("pid='" + pid + "'")))
.findObjects(new String[] {"pid"}, 1, new FieldSearchQuery(Condition .getConditions("pid='" + pid m_fieldSearch.findObjects(new String[] {"pid"}, 1, new FieldSearchQuery(Condition .getConditions("pid='" + pid + "'")))
.findObjects(s_headerAndDCFields, 100, new FieldSearchQuery(Condition .getConditions("pid='" + pid .findObjects(new String[] {"pid"}, 1, new FieldSearchQuery(Condition .getConditions("pid='" + pid + "'")))
.findObjects(s_headerFields, (int) getMaxHeaders(), new FieldSearchQuery(Condition .getConditions("dcmDate>'2000-01-01'" + getDatePart(from,
.findObjects(s_headerAndDCFields, (int) getMaxRecords(), new FieldSearchQuery(Condition .getConditions("dcmDate>'2000-01-01'" + getDatePart(from,
.findObjects(s_headerFields, (int) getMaxHeaders(), new FieldSearchQuery(Condition .getConditions("dcmDate>'2000-01-01'" + getDatePart(from,
.findObjects(s_headerAndDCFields, (int) getMaxRecords(), new FieldSearchQuery(Condition .getConditions("dcmDate>'2000-01-01'" + getDatePart(from,
@Test public void testFindOneSeveralTimesNoDC() throws Exception { init(maxResultsDefault, maxSecondsPerSessionDefault, true); // add one object to index String pid1 = "test:1"; DigitalObject obj1 = getTestObject(pid1, pid1); setDates(obj1, new Date()); m_repo.putObject(obj1); DOReader reader1 = m_repo.getReader(false, null, pid1); m_impl.update(reader1); // query for everything several times // should get 1 page w/1 result each time // and cPool shouldn't be exhausted because the impl should // release each connection immediately after the query completes FieldSearchQuery query = new FieldSearchQuery("*"); int[] expected = new int[] { 1, 1 }; for (int i = 0; i < 20; i++) { checkResults(expected, countResults(query, 10)); } }
@Test public void testIndexAndFindByDCIdentifier() throws Exception { init(maxResultsDefault, maxSecondsPerSessionDefault, true); // add one object with DC to index String pid1 = "test:1"; DigitalObject obj1 = getTestObject(pid1, pid1); String dcContent = "<dc:identifier>" + pid1 + "</dc:identifier>"; addXDatastream(obj1, "DC", getDC(dcContent)); setDates(obj1, new Date()); m_repo.putObject(obj1); DOReader reader1 = m_repo.getReader(false, null, pid1); m_impl.update(reader1); // query for it via dc:identifier FieldSearchQuery query = new FieldSearchQuery(Condition.getConditions("identifier~" + pid1)); int[] expected = new int[] { 1, 1 }; // first try with client requesting max TEN results per page // should get 1 page w/1 result checkResults(expected, countResults(query, 10)); // then try same, but with client requesting max ONE result per page // should still get 1 page w/1 result checkResults(expected, countResults(query, 1)); }