
org.dspace.rdf.conversion.RDFConverterImpl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of dspace-api Show documentation
Show all versions of dspace-api Show documentation
DSpace core data model and service APIs.
The newest version!
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.rdf.conversion;
import java.sql.SQLException;
import java.util.List;
import org.apache.jena.rdf.model.Model;
import org.apache.jena.rdf.model.ModelFactory;
import org.apache.logging.log4j.Logger;
import org.dspace.authorize.AuthorizeException;
import org.dspace.content.DSpaceObject;
import org.dspace.core.Context;
import org.dspace.services.ConfigurationService;
import org.springframework.beans.factory.annotation.Autowired;
/**
* @author Pascal-Nicolas Becker (dspace -at- pascal -hyphen- becker -dot- de)
*/
public class RDFConverterImpl implements RDFConverter {
private static final Logger log = org.apache.logging.log4j.LogManager.getLogger(RDFConverterImpl.class);
protected ConfigurationService configurationService;
protected List plugins;
@Autowired(required = true)
public void setConfigurationService(ConfigurationService configurationService) {
this.configurationService = configurationService;
}
@Autowired(required = true)
public void setPlugins(List plugins) {
this.plugins = plugins;
if (log.isDebugEnabled()) {
StringBuilder pluginNames = new StringBuilder();
for (ConverterPlugin plugin : plugins) {
if (pluginNames.length() > 0) {
pluginNames.append(", ");
}
pluginNames.append(plugin.getClass().getCanonicalName());
}
log.debug("Loaded the following plugins: " + pluginNames.toString());
}
}
public List getConverterPlugins() {
return this.plugins;
}
@Override
public Model convert(Context context, DSpaceObject dso)
throws SQLException, AuthorizeException {
if (this.plugins.isEmpty()) {
log.warn("No RDFConverterPlugins were loaded, cannot convert any data!");
return null;
}
Model model = ModelFactory.createDefaultModel();
for (ConverterPlugin plugin : this.plugins) {
if (plugin.supports(dso.getType())) {
Model convertedData = plugin.convert(context, dso);
if (convertedData != null) {
model.setNsPrefixes(convertedData);
model.add(convertedData);
convertedData.close();
}
}
}
if (model.isEmpty()) {
model.close();
return null;
} else {
return model;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy