You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by rv...@apache.org on 2013/04/30 20:25:23 UTC
svn commit: r1477754 - in /jena/trunk:
jena-arq/src/main/java/com/hp/hpl/jena/sparql/util/
jena-core/src/test/java/com/hp/hpl/jena/rdf/arp/ jena-core/testing/arp/
Author: rvesse
Date: Tue Apr 30 18:25:23 2013
New Revision: 1477754
URL: http://svn.apache.org/r1477754
Log:
A new RDF/XML test case for an interesting corner case of RDF/XML I ran into which confirms ARP already correctly handled it
Additional utility methods on NodeFactoryExtra for converting dates and times into nodes
Added:
jena/trunk/jena-core/testing/arp/xml-prop.rdf
Modified:
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/util/NodeFactoryExtra.java
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/util/Utils.java
jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/arp/MoreTests.java
Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/util/NodeFactoryExtra.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/util/NodeFactoryExtra.java?rev=1477754&r1=1477753&r2=1477754&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/util/NodeFactoryExtra.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/util/NodeFactoryExtra.java Tue Apr 30 18:25:23 2013
@@ -18,6 +18,8 @@
package com.hp.hpl.jena.sparql.util;
+import java.util.Calendar;
+
import org.apache.jena.riot.RiotException ;
import org.apache.jena.riot.system.PrefixMap ;
import org.apache.jena.riot.system.PrefixMapFactory ;
@@ -33,11 +35,22 @@ import com.hp.hpl.jena.graph.impl.Litera
import com.hp.hpl.jena.query.QueryParseException ;
import com.hp.hpl.jena.sparql.sse.SSE ;
+/**
+ * Various convenience helper methods for converting to and from nodes
+ *
+ */
public class NodeFactoryExtra
{
private static final PrefixMap prefixMappingDefault = PrefixMapFactory.createForInput(SSE.getDefaultPrefixMapRead()) ;
- /** Parse a node - with convenience prefix mapping */
+ /**
+ * Parse a node - with convenience prefix mapping
+ * <p>
+ * Allows surrounding white space
+ * </p>
+ * @param nodeString Node string to parse
+ *
+ */
public static Node parseNode(String nodeString)
{
return parseNode(nodeString, prefixMappingDefault) ;
@@ -46,8 +59,13 @@ public class NodeFactoryExtra
private static PrefixMap pmapEmpty = PrefixMapFactory.create() ;
/** Parse a string into a node.
- * Pass null for the prefix mapping to indicate using no defined mappings
+ * <p>
* Allows surrounding white space.
+ * </p>
+ * @param nodeString Node string to parse
+ * @param pmap Prefix Map, null to use no prefix mappings
+ * @return Parsed Node
+ * @throws RiotException Thrown if a valid node cannot be parsed
*/
public static Node parseNode(String nodeString, PrefixMap pmap)
{
@@ -151,6 +169,24 @@ public class NodeFactoryExtra
{
return com.hp.hpl.jena.graph.NodeFactory.createLiteral(Double.toString(value), "", XSDDatatype.XSDdouble) ;
}
+
+ public static Node dateTimeToNode(Calendar c)
+ {
+ String lex = Utils.calendarToXSDDateTimeString(c);
+ return com.hp.hpl.jena.graph.NodeFactory.createLiteral(lex, null, XSDDatatype.XSDdateTime);
+ }
+
+ public static Node dateToNode(Calendar c)
+ {
+ String lex = Utils.calendarToXSDDateString(c);
+ return com.hp.hpl.jena.graph.NodeFactory.createLiteral(lex, null, XSDDatatype.XSDdate);
+ }
+
+ public static Node timeToNode(Calendar c)
+ {
+ String lex = Utils.calendarToXSDTimeString(c);
+ return com.hp.hpl.jena.graph.NodeFactory.createLiteral(lex, null, XSDDatatype.XSDtime);
+ }
public static Node nowAsDateTime()
{
Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/util/Utils.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/util/Utils.java?rev=1477754&r1=1477753&r2=1477754&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/util/Utils.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/util/Utils.java Tue Apr 30 18:25:23 2013
@@ -95,6 +95,11 @@ public class Utils
return calendarToXSDString(cal, "yyyy-MM-dd") ;
}
+ public static String calendarToXSDTimeString(Calendar cal)
+ {
+ return calendarToXSDString(cal, "HH:mm:ss.SSS");
+ }
+
private static String calendarToXSDString(Calendar cal, String fmt)
{
// c.f. Constructor on Jena's XSDDateTime
Modified: jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/arp/MoreTests.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/arp/MoreTests.java?rev=1477754&r1=1477753&r2=1477754&view=diff
==============================================================================
--- jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/arp/MoreTests.java (original)
+++ jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/rdf/arp/MoreTests.java Tue Apr 30 18:25:23 2013
@@ -100,6 +100,14 @@ public class MoreTests extends TestCase
// ensure the ont doc manager is in a consistent state
OntDocumentManager.getInstance().reset(true);
}
+
+ public void testXMLProperty() throws IOException {
+ Model m = createMemModel();
+ InputStream in = new FileInputStream("testing/arp/xml-prop.rdf");
+ m.read(in, "");
+ assertEquals(1, m.size());
+ }
+
public void testWineDefaultNS() throws IOException {
testWineNS(createMemModel());
@@ -113,7 +121,7 @@ public class MoreTests extends TestCase
assertEquals("http://www.w3.org/TR/2003/CR-owl-guide-20030818/wine#", m
.getNsPrefixURI(""));
}
-
+
public void testLatin1() throws IOException {
Model m = createMemModel();
RDFReader rdr = m.getReader();
Added: jena/trunk/jena-core/testing/arp/xml-prop.rdf
URL: http://svn.apache.org/viewvc/jena/trunk/jena-core/testing/arp/xml-prop.rdf?rev=1477754&view=auto
==============================================================================
--- jena/trunk/jena-core/testing/arp/xml-prop.rdf (added)
+++ jena/trunk/jena-core/testing/arp/xml-prop.rdf Tue Apr 30 18:25:23 2013
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <rdf:Description rdf:about="http://example.org/Test">
+ <xml:property rdf:resource="http://example.org/Value" />
+ </rdf:Description>
+</rdf:RDF>
\ No newline at end of file