/* * Copyright Aduna (http://www.aduna-software.com/) (c) 2007. * * Licensed under the Aduna BSD-style license. */ package org.openrdf.sail.config; import org.openrdf.sail.Sail; /** * A SailFactory takes care of creating and initializing a specific type of * {@link Sail}s based on RDF configuration data. SailFactory's are used by the * {@link org.openrdf.repository.sail.SailRepositoryFactory} to create specific * Sails and to initialize them based on the configuration data that iis * supplied to it, for example in a server environment. * * @author Arjohn Kampman */ public interface SailFactory { /** * Returns the type of the Sails that this factory creates. Sail types are * used for identification and should uniquely identify specific * implementations of the Sail API. This type <em>can</em> be equal to the * fully qualified class name of the Sail, but this is not required. */ public String getSailType(); public SailImplConfig getConfig(); /** * Returns a Sail instance that has been initialized using the supplied * configuration data. * @param config TODO * * @return The created (but un-initialized) Sail. * @throws SailConfigException * If no Sail could be created due to invalid or incomplete * configuration data. */ public Sail getSail(SailImplConfig config) throws SailConfigException; }