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 2012/09/02 19:01:44 UTC

svn commit: r1380007 - in /jena/trunk/jena-arq/src: main/java/org/openjena/riot/Lang.java test/java/org/openjena/riot/TS_Riot.java test/java/org/openjena/riot/TestLangFileExtensions.java

Author: andy
Date: Sun Sep  2 17:01:44 2012
New Revision: 1380007

URL: http://svn.apache.org/viewvc?rev=1380007&view=rev
Log:
JENA-312

Added:
    jena/trunk/jena-arq/src/test/java/org/openjena/riot/TestLangFileExtensions.java
Modified:
    jena/trunk/jena-arq/src/main/java/org/openjena/riot/Lang.java
    jena/trunk/jena-arq/src/test/java/org/openjena/riot/TS_Riot.java

Modified: jena/trunk/jena-arq/src/main/java/org/openjena/riot/Lang.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/openjena/riot/Lang.java?rev=1380007&r1=1380006&r2=1380007&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/openjena/riot/Lang.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/openjena/riot/Lang.java Sun Sep  2 17:01:44 2012
@@ -29,20 +29,38 @@ import com.hp.hpl.jena.util.FileUtils ;
 
 public enum Lang
 {
-    RDFXML(     "RDF/XML",      true, langRDFXML, langRDFXMLAbbrev) ,
-    NTRIPLES(   "N-Triples",    true, langNTriples, langNTriple) ,
-    N3(         "N3",           true) ,
-    TURTLE(     "Turtle",       true, langTTL) ,
-    RDFJSON(	"RDF/JSON",		true) ,
+    RDFXML (    "RDF/XML",      true,  
+                new String[]{ "rdf", "owl", "xml" },    
+                langRDFXML, langRDFXMLAbbrev) ,
+                
+    NTRIPLES (  "N-Triples",    true,
+                new String[]{ "nt" },  
+                langNTriples, langNTriple) ,
+                
+    N3 (        "N3",           true,
+                new String[]{ "n3" }) ,
+    
+    TURTLE (    "Turtle",       true,
+                new String[]{ "ttl" },   
+                langTTL) ,
+                
+    RDFJSON (   "RDF/JSON",		true,
+            	new String[]{ "rj", "json" }) ,
    
-    NQUADS(     "N-Quads",      false, langNQuads) ,
-    TRIG(       "TriG",         false) ,
+    NQUADS (    "N-Quads",      false,
+                new String[]{ "nq" },
+                langNQuads) ,
+                
+    TRIG (      "TriG",         false,
+                new String[]{ "trig" }) ,
+                
     //TUPLE("rdf-tuples", true, langNTuple)
     ;
     
     private final String name ;
     private final boolean isTriples ;
     private final String[] altNames ;
+    private final String[] fileExtensions;
 
 //    public static final String langXML          = langXML ;
 //    public static final String langNTriple      = langNTriple ; // FileUtils is wrong.
@@ -52,26 +70,32 @@ public enum Lang
 //    public static final String langNQuads       = "N-QUADS" ;
 //    public static final String langTrig         = "TRIG" ;
 
-    // File extension names
-    private static final String[] extRDFXML      = { "rdf", "owl", "xml" } ;
-    private static final String[] extNTriples    = { "nt" } ;
-    private static final String[] extNTurtle     = { "ttl" } ;
-    private static final String[] extN3          = { "n3" } ;
-    private static final String[] extNQuads      = { "nq" } ;
-    private static final String[] extTrig        = { "trig" } ;
-    private static final String[] extRdfJson	 = { "rj", "json" } ;
-    
-    private Lang(String name, boolean isTriples, String...altNames)
+//    
+    private Lang(String name, boolean isTriples, String[] fileExtensions, String...altNames )
     {
         this.name = name ;
         this.isTriples = isTriples ;
         this.altNames = altNames ;
+        this.fileExtensions = fileExtensions;
     }
     
     public String getName() { return name ; }
     
-    public boolean isTriples() { return isTriples ; }
-    public boolean isQuads() { return ! isTriples ; }
+    /** get the list of potential file extensions. */
+    public String[] getFileExtensions()
+    {
+    	return fileExtensions; 	
+    }
+    
+    /** Get the default file extension. */
+    public String getDefaultFileExtension() {
+        if ( getFileExtensions() == null )
+            return null ;
+    	return getFileExtensions()[0];
+    }
+    
+    public boolean isTriples()  { return isTriples ; }
+    public boolean isQuads()    { return ! isTriples ; }
     
     public String getContentType() { return WebContent.mapLangToContentType(this) ; }
     
@@ -138,15 +162,12 @@ public enum Lang
             resourceIRI = resourceIRI.substring(0, resourceIRI.length()-".gz".length()) ;
             ext = FileUtils.getFilenameExt(resourceIRI).toLowerCase() ;
         }
-        
-        if ( isOneOf(ext, extRDFXML) )      return RDFXML ;
-        if ( isOneOf(ext, extNTriples) )    return NTRIPLES ;
-        if ( isOneOf(ext, extNTurtle) )     return TURTLE ;
-        if ( isOneOf(ext, extN3) )          return N3 ;
-        if ( isOneOf(ext, extNQuads) )      return NQUADS ;
-        if ( isOneOf(ext, extTrig) )        return TRIG ;
-        if ( isOneOf(ext, extRdfJson) )		return RDFJSON ;
-        return null ;
+        for (Lang lang : Lang.values())
+        {
+        	if (isOneOf( ext, lang.fileExtensions))
+        		return lang;
+        }
+        return null;
     }
 
     private static boolean isOneOf(String ext, String[] names)

Modified: jena/trunk/jena-arq/src/test/java/org/openjena/riot/TS_Riot.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/org/openjena/riot/TS_Riot.java?rev=1380007&r1=1380006&r2=1380007&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/test/java/org/openjena/riot/TS_Riot.java (original)
+++ jena/trunk/jena-arq/src/test/java/org/openjena/riot/TS_Riot.java Sun Sep  2 17:01:44 2012
@@ -65,6 +65,7 @@ import org.openjena.riot.tokens.TestToke
     , TestOutputRDFJSON.class
     , TestLangTag.class
     , TestNormalization.class
+    , TestLangFileExtensions.class
 })
 
 public class TS_Riot

Added: jena/trunk/jena-arq/src/test/java/org/openjena/riot/TestLangFileExtensions.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/org/openjena/riot/TestLangFileExtensions.java?rev=1380007&view=auto
==============================================================================
--- jena/trunk/jena-arq/src/test/java/org/openjena/riot/TestLangFileExtensions.java (added)
+++ jena/trunk/jena-arq/src/test/java/org/openjena/riot/TestLangFileExtensions.java Sun Sep  2 17:01:44 2012
@@ -0,0 +1,52 @@
+package org.openjena.riot;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.openjena.atlas.junit.BaseTest;
+import org.openjena.riot.Lang;
+
+public class TestLangFileExtensions extends BaseTest
+{
+
+	@Test
+	public void testFileExtensionsProvided()
+	{
+		for (Lang l : Lang.values())
+		{
+			String ext = l.getDefaultFileExtension();
+			Assert.assertFalse( l+" does not have default extension defined",  ext==null||ext.isEmpty() );
+			Assert.assertNotNull( l+" does not have file extensions defined", l.getFileExtensions());
+			Assert.assertTrue( l+" does not have file extensions defined", l.getFileExtensions().length > 0);
+		}
+	}
+	
+	@Test
+	public void testFileExtensionUnique()
+	{
+		Collection<String> exts = new ArrayList<String>();
+		for (Lang l : Lang.values())
+		{
+			for (String ext : l.getFileExtensions())
+			{
+				Assert.assertFalse( "The "+ext+" file extensions in "+l+" was already used",
+						exts.contains(ext));
+			}
+			exts.addAll( Arrays.asList(l.getFileExtensions()));
+		}
+		
+	}
+	
+	@Test
+	public void testDefaultInExtensions()
+	{
+		for (Lang l : Lang.values())
+		{
+			Assert.assertTrue( l+" default extension not in file extensions list", Arrays.asList( l.getFileExtensions()).contains( l.getDefaultFileExtension())  );
+		}
+	}
+	
+}