/** * 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."); } } }
private String logAndGetQueryText(FieldSearchQuery query, String[] resultFields) //2004.05.02 wdn5e throws SQLException, QueryParseException { StringBuffer queryText = new StringBuffer("SELECT"); if (query.getType() == FieldSearchQuery.TERMS_TYPE) { queryText.append(" doFields.pid FROM doFields" + getWhereClause(query.getTerms())); } else { StringBuffer resultFieldsString = new StringBuffer(); if (resultFields.length > 0) { String delimiter = " "; for (String element : resultFields) { String dbColumn = "doFields." + dcFixup(element); resultFieldsString.append(delimiter + dbColumn); delimiter = ", "; } } queryText.append(resultFieldsString); queryText.append(" FROM doFields"); queryText.append(getWhereClause(query.getConditions())); // disabled sorting: see bug 78 // queryText.append(" ORDER BY"); // queryText.append(resultFieldsString); } String qt = queryText.toString(); logger.debug(qt); return qt; }
/** * Convert a local {@link FieldSearchQuery} into a WSDL-style * {@link org.fcrepo.server.types.gen.FieldSearchQuery FieldSearchQuery}. */ public static org.fcrepo.server.types.gen.FieldSearchQuery convertFieldSearchQueryToGenFieldSearchQuery(FieldSearchQuery fsq) { List<org.fcrepo.server.types.gen.Condition> genConditions = fsq.getConditions() == null ? null : convertConditionsListToGenConditionsArray(fsq .getConditions()); org.fcrepo.server.types.gen.FieldSearchQuery query = new org.fcrepo.server.types.gen.FieldSearchQuery(); ObjectFactory factory = new ObjectFactory(); org.fcrepo.server.types.gen.FieldSearchQuery.Conditions conds = new org.fcrepo.server.types.gen.FieldSearchQuery.Conditions(); conds.getCondition().addAll(genConditions); query.setConditions(factory.createFieldSearchQueryConditions(conds)); return query; }
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); } }
private String logAndGetQueryText(FieldSearchQuery query, String[] resultFields) //2004.05.02 wdn5e throws SQLException, QueryParseException { StringBuffer queryText = new StringBuffer("SELECT"); if (query.getType() == FieldSearchQuery.TERMS_TYPE) { queryText.append(" doFields.pid FROM doFields" + getWhereClause(query.getTerms())); } else { StringBuffer resultFieldsString = new StringBuffer(); if (resultFields.length > 0) { String delimiter = " "; for (String element : resultFields) { String dbColumn = "doFields." + dcFixup(element); resultFieldsString.append(delimiter + dbColumn); delimiter = ", "; } } queryText.append(resultFieldsString); queryText.append(" FROM doFields"); queryText.append(getWhereClause(query.getConditions())); // disabled sorting: see bug 78 // queryText.append(" ORDER BY"); // queryText.append(resultFieldsString); } String qt = queryText.toString(); logger.debug(qt); return qt; }
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)); }