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


Reply via email to