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