com.bigdata.rdf.sail.config.BigdataSailConfig Maven / Gradle / Ivy
package com.bigdata.rdf.sail.config;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;
import org.openrdf.model.Graph;
import org.openrdf.model.Literal;
import org.openrdf.model.Resource;
import org.openrdf.model.util.GraphUtil;
import org.openrdf.model.util.GraphUtilException;
import org.openrdf.sail.config.SailConfigException;
import org.openrdf.sail.config.SailImplConfigBase;
public class BigdataSailConfig extends SailImplConfigBase {
/*-----------*
* Variables *
*-----------*/
private String propertiesFile;
/*--------------*
* Constructors *
*--------------*/
public BigdataSailConfig(final String type) {
super(type);
}
/*---------*
* Methods *
*---------*/
public String getPropertiesFile() {
return propertiesFile;
}
public void setPropertiesFile(String propertiesFile) {
this.propertiesFile = propertiesFile;
}
public Properties getProperties()
throws FileNotFoundException, IOException {
if (propertiesFile == null) {
return new Properties();
}
FileInputStream is = new FileInputStream(new File(propertiesFile));
Properties props = new Properties();
props.load(is);
return props;
}
@Override
public Resource export(Graph graph)
{
Resource implNode = super.export(graph);
if (propertiesFile != null) {
graph.add(implNode, BigdataConfigSchema.PROPERTIES,
graph.getValueFactory().createLiteral(propertiesFile));
}
return implNode;
}
@Override
public void parse(Graph graph, Resource implNode)
throws SailConfigException
{
super.parse(graph, implNode);
try {
Literal propertiesLit = GraphUtil.getOptionalObjectLiteral(
graph, implNode, BigdataConfigSchema.PROPERTIES);
if (propertiesLit != null) {
setPropertiesFile((propertiesLit).getLabel());
} else {
throw new SailConfigException("Properties file required");
}
}
catch (GraphUtilException e) {
throw new SailConfigException(e.getMessage(), e);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy