use of org.apache.jena.shared.BadURIException in project jena by apache.
the class TestXMLFeatures method checkPropURI.
public void checkPropURI(String s, String p, Object val, int behaviour) throws IOException {
// create triple and graph.
// BaseXMLWriter.dbg = true;
// SystemOutAndErr.block();
// TestLogger tl = new TestLogger(BaseXMLWriter.class);
blockLogger();
Node blank = NodeFactory.createBlankNode();
Node prop = NodeFactory.createURI(s);
Graph g = Factory.createGraphMem();
g.add(Triple.create(blank, prop, blank));
// create Model
Model m = ModelFactory.createModelForGraph(g);
// serialize
RDFWriter rw = m.getWriter(lang);
if (p != null)
rw.setProperty(p, val);
try (StringWriter w = new StringWriter()) {
rw.write(m, w, "http://example.org/");
String f = w.toString();
switch(behaviour) {
case BadPropURI:
fail("Bad property URI <" + s + "> was not detected.");
return;
case BadURI:
fail("Bad URI <" + s + "> was not detected.");
return;
}
// read back in
Model m2 = createMemModel();
RDFReader rdr = m2.getReader("RDF/XML");
rdr.setProperty("error-mode", "lax");
try (StringReader sr = new StringReader(f)) {
rdr.read(m2, sr, "http://example.org/");
}
// check
switch(behaviour) {
case ExtraTriples:
assertTrue("Expecting Brickley behaviour.", m2.size() == 3);
break;
case NoError:
assertTrue("Comparing Model written out and read in.", m.isIsomorphicWith(m2));
break;
}
} catch (BadURIException e) {
if (behaviour == BadURI)
return;
throw e;
} catch (InvalidPropertyURIException je) {
if (behaviour == BadPropURI)
return;
throw je;
} catch (JenaException e) {
throw e;
} finally {
// BaseXMLWriter.dbg = false;
// tl.end();
unblockLogger();
// SystemOutAndErr.unblock();
}
}
Aggregations