/**
* Load data according to the specification given in the configuration from all directories and files specified
* in the configuration. Returns the handler used for importing (in case further operations should be performed).
*/
public LoaderHandler load() throws RDFHandlerException {
LoaderHandler handler = getLoader();
if(configuration.containsKey(LoaderOptions.CONTEXT)) {
handler = new ContextHandler(handler, new URIImpl(configuration.getString(LoaderOptions.CONTEXT)));
}
if(configuration.containsKey(LoaderOptions.STATISTICS_ENABLED)) {
handler = new StatisticsHandler(handler, configuration);
}
handler.initialise();
if(configuration.containsKey(LoaderOptions.DIRS)) {
for(String dirname : configuration.getStringArray(LoaderOptions.DIRS)) {
File dir = new File(dirname);
try {
loadDirectory(dir, handler, getRDFFormat(configuration.getString(LoaderOptions.FORMAT)), configuration.getString(LoaderOptions.COMPRESSION));
} catch (RDFParseException | IOException e) {
log.warn("error importing directory {}: {}", dir, e.getMessage());
}
}
}
if(configuration.containsKey(LoaderOptions.ARCHIVES)) {
for(String archiveName : configuration.getStringArray(LoaderOptions.ARCHIVES)) {
File archive = new File(archiveName);
try {
loadArchive(archive, handler, getRDFFormat(configuration.getString(LoaderOptions.FORMAT)));
} catch (RDFParseException | IOException | ArchiveException e) {
log.warn("error importing directory {}: {}", archive, e.getMessage());
}
}
}
if(configuration.containsKey(LoaderOptions.FILES)) {
for(String fname : configuration.getStringArray(LoaderOptions.FILES)) {
File f = new File(fname);
try {
loadFile(f, handler, getRDFFormat(configuration.getString(LoaderOptions.FORMAT)), configuration.getString(LoaderOptions.COMPRESSION));
} catch (RDFParseException | IOException e) {
log.warn("error importing file {}: {}", f, e.getMessage());
}
}
}
handler.shutdown();
return handler;
}