You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2013/11/05 14:10:25 UTC

svn commit: r1538980 - in /jena/trunk/jena-arq/src/main/java/org/apache/jena/riot: RDFDataMgr.java SysRIOT.java

Author: andy
Date: Tue Nov  5 13:10:24 2013
New Revision: 1538980

URL: http://svn.apache.org/r1538980
Log:
Put sorting out a base URI all in one place (SysRIOT).

Modified:
    jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RDFDataMgr.java
    jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/SysRIOT.java

Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RDFDataMgr.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RDFDataMgr.java?rev=1538980&r1=1538979&r2=1538980&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RDFDataMgr.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RDFDataMgr.java Tue Nov  5 13:10:24 2013
@@ -29,7 +29,10 @@ import org.apache.jena.atlas.web.TypedIn
 import org.apache.jena.riot.lang.LangRDFXML ;
 import org.apache.jena.riot.lang.LangRIOT ;
 import org.apache.jena.riot.stream.StreamManager ;
-import org.apache.jena.riot.system.* ;
+import org.apache.jena.riot.system.ErrorHandlerFactory ;
+import org.apache.jena.riot.system.RiotLib ;
+import org.apache.jena.riot.system.StreamRDF ;
+import org.apache.jena.riot.system.StreamRDFLib ;
 import org.apache.jena.riot.tokens.Tokenizer ;
 import org.apache.jena.riot.tokens.TokenizerFactory ;
 import org.apache.jena.riot.writer.NQuadsWriter ;
@@ -670,7 +673,7 @@ public class RDFDataMgr
         if ( uri == null )
             throw new IllegalArgumentException("URI to read from is null") ;
         if ( base == null )
-            base = IRIResolver.resolveFileURL(uri) ;
+            base = SysRIOT.chooseBaseIRI(uri) ;
         if ( hintLang == null )
             hintLang = RDFLanguages.filenameToLang(uri) ;
         TypedInputStream in = open(uri, context) ;

Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/SysRIOT.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/SysRIOT.java?rev=1538980&r1=1538979&r2=1538980&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/SysRIOT.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/SysRIOT.java Tue Nov  5 13:10:24 2013
@@ -18,11 +18,15 @@
 
 package org.apache.jena.riot;
 
+import java.io.File ;
+
 import org.apache.jena.riot.system.IRILib ;
 import org.apache.jena.riot.system.IRIResolver ;
 import org.slf4j.Logger ;
 import org.slf4j.LoggerFactory ;
 
+import com.hp.hpl.jena.util.FileUtils ;
+
 public class SysRIOT
 {
     public static final String riotLoggerName = "org.apache.jena.riot" ;
@@ -33,6 +37,8 @@ public class SysRIOT
     
     public static final String BNodeGenIdPrefix = "genid" ;
     
+    public static final boolean isWindows = (File.pathSeparatorChar == ';' ) ;
+    
     static public String fmtMessage(String message, long line, long col)
     {
         if ( col == -1 && line == -1 )
@@ -55,6 +61,18 @@ public class SysRIOT
         return IRIResolver.chooseBaseURI().toString() ;
     }
     
+    /** Return a URI suitable for a baseURI, based on some input (which may be null) */
+    public static String chooseBaseIRI(String baseURI)
+    {
+      String scheme = FileUtils.getScheme(baseURI) ;
+      // Assume scheme of one letter are Windows drive letters. 
+      if ( scheme != null && scheme.length() == 1 ) 
+          scheme = "file" ;
+      if ( scheme != null && scheme.equals("file") )
+          return IRILib.filenameToIRI(baseURI) ;
+      return IRIResolver.resolveString(baseURI) ;
+    }
+
     public static String filename2baseIRI(String filename)
     {
         if ( filename == null || filename.equals("-") )