public List<URI> list(URI pdURI, Query q) throws QueryValidationException {
if ((pdURI == null) || pdURI.equals(root)) {
// OAI hierarchy is flat (no sub-directories) - only allow 'null' as pdURI!
ArrayList<URI> resultList = new ArrayList<URI>();
OaiPmhServer server = new OaiPmhServer(baseURL);
try {
RecordsList list;
if (q == null) {
list = server.listRecords(metaDataPrefix, "2009-07-12T10:50:20Z", "2009-07-14T16:38:20Z", set);
} else {
if (!(q instanceof QueryDateRange))
throw new QueryValidationException("Unsupported query type");
list = server.listRecords(metaDataPrefix, dateFormat.format(((QueryDateRange) q).getStartDate().getTime()), dateFormat.format(((QueryDateRange) q).getEndDate().getTime()), set);
}
// Prepare XPath expression
HashMap<String, String> map = new HashMap<String, String>();
map.put("pmh", "http://www.openarchives.org/OAI/2.0/");