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()) );
+ }
+ }
+
+}