package com.bigdata.rdf.sail.config; import java.util.Properties; import org.openrdf.sail.Sail; import org.openrdf.sail.config.SailConfigException; import org.openrdf.sail.config.SailFactory; import org.openrdf.sail.config.SailImplConfig; import com.bigdata.rdf.sail.BigdataSail; /** * A {@link SailFactory} that creates {@link BigdataSail}s based on RDF * configuration data. */ public class BigdataSailFactory implements SailFactory { /** * The type of sails that are created by this factory. */ public static final String TYPE = "bigdata:BigdataSail"; public String getSailType() { return TYPE; } public SailImplConfig getConfig() { return new BigdataSailConfig(TYPE); } public Sail getSail(final SailImplConfig config) throws SailConfigException { if (!TYPE.equals(config.getType())) { throw new SailConfigException( "Invalid type: " + config.getType()); } if (!(config instanceof BigdataSailConfig)) { throw new SailConfigException( "Invalid type: " + config.getClass()); } try { final BigdataSailConfig bigdataConfig = (BigdataSailConfig)config; final Properties properties = bigdataConfig.getProperties(); return new BigdataSail(properties); } catch (Exception ex) { throw new SailConfigException(ex); } } }