/** * Used to write Resources for a Subject. Resources will use "ObjectNode" method. * * @param predicate PredicateNode * @param object Literal * @param writer PrintWriter * @throws GraphException */ protected void writeStatement( Graph graph, SubjectNode subject, PredicateNode predicate, Literal object, PrintWriter writer) throws GraphException { // determine if the Literal has a datatype URI datatype = object.getDatatypeURI(); // Get the lexical form of the literal String literalObject = object.getLexicalForm(); // Create the StringBuffer to hold the resultant string StringBuffer buffer = new StringBuffer(); // Escape the XML string StringUtil.quoteAV(literalObject, buffer); if (datatype != null) { // write as: <predicateURI rdf:datatype="datatype">"Literal value" // </predicateURI> writer.println( " <" + this.getURI(predicate) + " " + RDF_PREFIX + ":datatype=\"" + datatype + "\">" + buffer.toString() + "</" + this.getURI(predicate) + ">"); } else { // write as: <predicateURI>"Literal value"</predicateURI> writer.println( " <" + this.getURI(predicate) + ">" + buffer.toString() + "</" + this.getURI(predicate) + ">"); } }
@Test public void testInfoStamp() { String versionString = "E3.14159", commentString = "gloopSmurfale"; String resourceString = "_x eye:assumed 'ABC'; _x eye:checked 'DEF'; _x eye:version '%v'; _x eye:comment '%c'" .replaceAll("%v", versionString) .replaceAll("%c", commentString); InfoStamp i = new InfoStamp(resourceInModel(resourceString)); Calendar now = Calendar.getInstance(); Resource root = i.stamp(now); Model stamp = root.getModel(); Literal dateLiteral = ModelFactory.createDefaultModel().createTypedLiteral(now); String dateString = "'" + dateLiteral.getLexicalForm() + "'" + dateLiteral.getDatatypeURI(); String expectedFormat = "[eye:assumed 'ABC' & eye:checked 'DEF' & eye:dated <date>" + " & eye:comment '<comment>' & eye:version '<version>']"; String expectedString = expectedFormat .replaceAll("<date>", dateString) .replaceAll("<version>", versionString) .replaceAll("<comment>", commentString); Model expected = model(expectedString); assertIsoModels(expected, stamp); }