final DataStore store = runtime.getDataStore();
store.infoEntry(uri, base, "*/*", new DataInfo() {
public void list(URI id, String media, long lastModified)
throws IOException {
final String accept = pattern == null ? ACCEPT_XML : "*/*";
final DataReader handler = new DataReader() {
public void load(URI id, String media,
InputStream content, long len)
throws IOException {
content.close();
String name = new File(id).getName();
if (pattern == null || pattern.matcher(name).matches()) {
documents.add(parse(id.toASCIIString(), base));
}
}
};
String entry = id.toASCIIString();
if (media == null) {
store.listEachEntry(entry, entry, accept, new DataInfo() {
public void list(URI id, String media, long lastModified)
throws IOException {
String entry = id.toASCIIString();
store.readEntry(entry, entry, accept, null, handler);
}
});
} else {
store.readEntry(entry, entry, accept, null, handler);
}
}
});
} else {
try {
documents.add(parse(uri, base));
} catch (XProcException xe) {
if (runtime.transparentJSON()) {
try {
DataStore store = runtime.getDataStore();
store.readEntry(uri, base, ACCPET_JSON, null, new DataReader() {
public void load(URI id, String media, InputStream content, long len)
throws IOException {
String cs = HttpUtils.getCharset(media);
if (cs == null) {
cs = Charset.defaultCharset().name();