public String toLongString() { String x = "Lang:" + label + " " + getContentType() ; if (getAltNames().size() > 0) x = x + " " + getAltNames() ; if (getAltContentTypes().size() > 0) x = x + " " + getAltContentTypes() ; if (getFileExtensions().size() > 0) x = x + " " + getFileExtensions() ; return x ; }
public String toLongString() { String x = "Lang:" + label + " " + getContentType() ; if (getAltNames().size() > 0) x = x + " " + getAltNames() ; if (getAltContentTypes().size() > 0) x = x + " " + getAltContentTypes() ; if (getFileExtensions().size() > 0) x = x + " " + getFileExtensions() ; return x ; } }
@Test public void testDefaultInExtensions() { for (Lang lang : RDFLanguages.getRegisteredLanguages() ) { if ( lang.getFileExtensions() == null || lang.getFileExtensions().isEmpty()) continue ; Assert.assertTrue( lang+" default extension not in file extensions list", lang.getFileExtensions().contains( lang.getFileExtensions().get(0)) ); } }
public static String getFormatFromExtension(String filename) { String format = "TURTLE"; try { // try to get if from Jena first String extension; Lang jenaLang = RDFLanguages.filenameToLang(filename); if (jenaLang != null) { extension = jenaLang.getFileExtensions().get(0); } else { int index = filename.lastIndexOf('.'); extension = filename.substring(index + 1, filename.length()); } SerializationFormat f = FormatService.getInputFormat(extension); if (f != null) { format = f.getName(); } } catch (Exception e) { log.debug("No format found, using the default one", e); return "TURTLE"; } return format; } }
public static String getFormatFromExtension(String filename) { String format = "TURTLE"; try { // try to get if from Jena first String extension; Lang jenaLang = RDFLanguages.filenameToLang(filename); if (jenaLang != null) { extension = jenaLang.getFileExtensions().get(0); } else { int index = filename.lastIndexOf('.'); extension = filename.substring(index + 1, filename.length()); } SerializationFormat f = FormatService.getInputFormat(extension); if (f != null) { format = f.getName(); } } catch (Exception e) { log.debug("No format found, using the default one", e); return "TURTLE"; } return format; } }
/** Remove a registration of a language - this also removes all recorded mapping * of content types and file extensions. */ public static void unregister(Lang lang) { if ( lang == null ) throw new IllegalArgumentException("null for language") ; checkRegistration(lang) ; mapLabelToLang.remove(canonicalKey(lang.getLabel())) ; mapContentTypeToLang.remove(canonicalKey(lang.getContentType().getContentType())) ; for ( String ct : lang.getAltContentTypes() ) mapContentTypeToLang.remove(canonicalKey(ct)) ; for ( String ext : lang.getFileExtensions() ) mapFileExtToLang.remove(canonicalKey(ext)) ; }
/** Remove a regsitration of a language - this also removes all recorded mapping * of content types and file extensions. */ public static void unregister(Lang lang) { if ( lang == null ) throw new IllegalArgumentException("null for language") ; checkRegistration(lang) ; mapLabelToLang.remove(canonicalKey(lang.getLabel())) ; mapContentTypeToLang.remove(canonicalKey(lang.getContentType().getContentType())) ; for ( String ct : lang.getAltContentTypes() ) mapContentTypeToLang.remove(canonicalKey(ct)) ; for ( String ext : lang.getFileExtensions() ) mapFileExtToLang.remove(canonicalKey(ext)) ; }
private static void checkRegistration(Lang lang) { if ( lang == null ) return ; String label = canonicalKey(lang.getLabel()) ; Lang lang2 = mapLabelToLang.get(label) ; if ( lang2 == null ) return ; if ( lang.equals(lang2) ) return ; // Content type. if ( mapContentTypeToLang.containsKey(lang.getContentType().getContentType())) { String k = lang.getContentType().getContentType() ; error("Language overlap: " +lang+" and "+mapContentTypeToLang.get(k)+" on content type "+k) ; } for (String altName : lang.getAltNames() ) if ( mapLabelToLang.containsKey(altName) ) error("Language overlap: " +lang+" and "+mapLabelToLang.get(altName)+" on name "+altName) ; for (String ct : lang.getAltContentTypes() ) if ( mapContentTypeToLang.containsKey(ct) ) error("Language overlap: " +lang+" and "+mapContentTypeToLang.get(ct)+" on content type "+ct) ; for (String ext : lang.getFileExtensions() ) if ( mapFileExtToLang.containsKey(ext) ) error("Language overlap: " +lang+" and "+mapFileExtToLang.get(ext)+" on file extension type "+ext) ; }
/** Register a language. * To create a {@link Lang} object use {@link LangBuilder}. * See also * {@link RDFParserRegistry#registerLang} * for registering a language and it's RDF parser factory. * * @see RDFParserRegistry */ public static void register(Lang lang) { if ( lang == null ) throw new IllegalArgumentException("null for language") ; checkRegistration(lang) ; mapLabelToLang.put(canonicalKey(lang.getLabel()), lang) ; for (String altName : lang.getAltNames() ) mapLabelToLang.put(canonicalKey(altName), lang) ; mapContentTypeToLang.put(canonicalKey(lang.getContentType().getContentType()), lang) ; for ( String ct : lang.getAltContentTypes() ) mapContentTypeToLang.put(canonicalKey(ct), lang) ; for ( String ext : lang.getFileExtensions() ) { if ( ext.startsWith(".") ) ext = ext.substring(1) ; mapFileExtToLang.put(canonicalKey(ext), lang) ; } }
/** Register a language. * To create a {@link Lang} object use {@link LangBuilder}. * See also * {@link RDFParserRegistry#registerLang} * for registering a language and it's RDF parser fatory. * * @see RDFParserRegistry */ public static void register(Lang lang) { if ( lang == null ) throw new IllegalArgumentException("null for language") ; checkRegistration(lang) ; mapLabelToLang.put(canonicalKey(lang.getLabel()), lang) ; for (String altName : lang.getAltNames() ) mapLabelToLang.put(canonicalKey(altName), lang) ; mapContentTypeToLang.put(canonicalKey(lang.getContentType().getContentType()), lang) ; for ( String ct : lang.getAltContentTypes() ) mapContentTypeToLang.put(canonicalKey(ct), lang) ; for ( String ext : lang.getFileExtensions() ) { if ( ext.startsWith(".") ) ext = ext.substring(1) ; mapFileExtToLang.put(canonicalKey(ext), lang) ; } }
private static void checkRegistration(Lang lang) { if ( lang == null ) return ; String label = canonicalKey(lang.getLabel()) ; Lang lang2 = mapLabelToLang.get(label) ; if ( lang2 == null ) return ; if ( lang.equals(lang2) ) return ; // Content type. if ( mapContentTypeToLang.containsKey(lang.getContentType().getContentType())) { String k = lang.getContentType().getContentType() ; error("Language overlap: " +lang+" and "+mapContentTypeToLang.get(k)+" on content type "+k) ; } for (String altName : lang.getAltNames() ) if ( mapLabelToLang.containsKey(altName) ) error("Language overlap: " +lang+" and "+mapLabelToLang.get(altName)+" on name "+altName) ; for (String ct : lang.getAltContentTypes() ) if ( mapContentTypeToLang.containsKey(ct) ) error("Language overlap: " +lang+" and "+mapContentTypeToLang.get(ct)+" on content type "+ct) ; for (String ext : lang.getFileExtensions() ) if ( mapFileExtToLang.containsKey(ext) ) error("Language overlap: " +lang+" and "+mapFileExtToLang.get(ext)+" on file extension type "+ext) ; }
@Test public void testFileExtensionUnique() { Map<String, Lang> exts = new HashMap<>(); for (Lang lang1 : RDFLanguages.getRegisteredLanguages() ) { for (String ext : lang1.getFileExtensions()) { Lang lang2 = exts.get(ext) ; Assert.assertTrue( "The "+ext+" file extensions in "+lang1+" was already used", lang2 == null || lang1 == lang2) ; exts.put(ext, lang1) ; } } }
@Test public void testFileExtensionsProvided() { for (Lang l : RDFLanguages.getRegisteredLanguages() ) { if ( RDFLanguages.RDFNULL.equals(l) ) continue ; if ( ResultSetLang.SPARQLResultSetNone.equals(l) ) continue ; Assert.assertNotNull( l+" does not have file extensions defined", l.getFileExtensions()); Assert.assertTrue( l+" does not have file extensions defined", l.getFileExtensions().size() > 0); } }