}
link(constructor,dest,"related",resourceBase+feed.getPath());
dest.send(constructor.createElementEnd(AtomResource.ENTRY_NAME));
}
}
DocumentLoader loader = new SAXDocumentLoader();
Iterator<TermInstance<Entry>> entries = app.getDB().getEntriesByTerm(key.dbTerm,key.value);
while (entries.hasNext()) {
TermInstance<Entry> termValue = entries.next();
Entry entry = termValue.getTarget();
boolean ok = true;
for (URI otherTerm : termSet.keySet()) {
TermQuery other = termSet.get(otherTerm);
ok = entry.hasTerm(other.dbTerm, other.value);
if (!ok) {
break;
}
}
if (ok) {
Feed feed = entry.getFeed();
String feedPath = feed.getPath();
String feedBaseURI = resourceBase.toString()+feedPath;
dest.send(constructor.createCharacters("\n"));
// get the entry representation
Representation rep = app.getStorage().getEntry(feedBaseURI,feedPath,feed.getUUID(),entry.getUUID());
// avoid thread creation because reading an output representation requires a thread
StringWriter sw = new StringWriter();
rep.write(sw);
rep.release();
loader.generate(new StringReader(sw.toString()), new RemoveDocumentFilter(dest));
}
}
}
} catch (Exception ex) {