1 5 6 package com.hp.hpl.jena.util; 7 8 import org.apache.commons.logging.*; 9 10 import com.hp.hpl.jena.rdf.model.*; 11 import com.hp.hpl.jena.shared.*; 12 13 import com.hp.hpl.jena.db.*; 14 15 22 23 public class ModelLoader 24 { 25 static Log log = LogFactory.getLog(ModelLoader.class) ; 26 27 28 public static final String langXML = FileUtils.langXML ; 29 30 31 public static final String langXMLAbbrev = FileUtils.langXMLAbbrev ; 32 33 34 public static final String langNTriple = FileUtils.langNTriple ; 35 36 37 public static final String langN3 = FileUtils.langN3 ; 38 40 public static final String langBDB = FileUtils.langBDB ; 41 42 public static final String langSQL = FileUtils.langSQL ; 43 44 45 49 50 public static Model loadModel(String urlStr) { return loadModel(urlStr, null) ; } 51 52 57 58 public static Model loadModel(String urlStr, String lang) 59 { 60 try { 61 return FileManager.get().loadModel(urlStr, lang) ; 62 } catch (JenaException ex) { return null ; } 63 } 64 65 78 79 80 public static Model loadModel(String urlStr, String lang, 81 String dbUser, String dbPassword, 82 String modelName, String dbType, String driver) 83 { 84 if ( lang == null ) 86 lang = guessLang(urlStr) ; 87 88 if ( lang == null ) 89 lang = FileUtils.langXML ; 90 91 if ( lang.equals(FileUtils.langBDB) ) 92 { 93 LogFactory.getLog(ModelLoader.class).fatal("Failed to open Berkeley database") ; 95 return null ; 96 117 } 118 119 if ( lang.equals(FileUtils.langSQL) ) 120 return connectToDB(urlStr, dbUser, dbPassword, modelName, dbType, driver) ; 121 122 Model m = ModelFactory.createDefaultModel() ; 125 126 m.setReaderClassName(FileUtils.langXML, com.hp.hpl.jena.rdf.arp.JenaReader.class.getName()); 127 m.setReaderClassName(FileUtils.langXMLAbbrev, com.hp.hpl.jena.rdf.arp.JenaReader.class.getName()); 128 129 132 try { 133 FileManager.get().readModel(m, urlStr, null, lang) ; 134 } catch (JenaException rdfEx) 135 { 136 log.warn("Error loading data source", rdfEx); 137 return null ; 138 } 139 return m ; 140 } 141 142 148 149 public static Model loadModel(Model model, String urlStr) 150 { 151 return loadModel(model, urlStr, null) ; 152 } 153 160 161 public static Model loadModel(Model model, String urlStr, String lang) 162 { 163 try { 164 return FileManager.get().readModel(model, urlStr, null, lang) ; 165 } 166 catch (Exception e) 167 { 168 LogFactory.getLog(ModelLoader.class).warn("No such data source: "+urlStr); 169 return null ; 170 } 171 } 172 173 182 183 public static Model connectToDB(String urlStr, 184 String dbUser, String dbPassword, 185 String modelName, 186 String dbType, String driverName) 187 { 188 try { 190 if ( driverName != null ) 191 Class.forName(driverName).newInstance(); 192 } catch (Exception ex) {} 193 194 try { 195 IDBConnection conn = 196 ModelFactory.createSimpleRDBConnection(urlStr, dbUser, dbPassword, dbType) ; 197 return ModelRDB.open(conn, modelName) ; 198 } catch (JenaException rdfEx) 199 { 200 LogFactory.getLog(ModelLoader.class).error("Failed to open SQL database: ModelLoader.connectToDB", rdfEx) ; 201 throw rdfEx ; 202 } 203 } 204 218 219 public static String guessLang( String urlStr, String defaultLang ) 220 { 221 if ( urlStr.startsWith("jdbc:") || urlStr.startsWith("JDBC:") ) 222 return FileUtils.langSQL ; 223 else 224 return FileUtils.guessLang( urlStr, defaultLang ); 225 } 226 227 240 241 public static String guessLang(String urlStr) 242 { 243 return FileUtils.guessLang(urlStr) ; 244 } 245 } 246 247 248 274 | Popular Tags |