package cz.cuni.mff.d3s.been.storage; import cz.cuni.mff.d3s.been.persistence.DAOException; import cz.cuni.mff.d3s.been.persistence.QueryRedactor; /** * Factory for {@link QueryExecutor} instances. Uses configured {@link QueryRedactor} to create executors. The main purpose of this factory is to inject a database instance for the executors to use when querying. * * @author darklight */ public interface QueryExecutorFactory { /** * Use a configured {@link QueryRedactor} to create a {@link QueryExecutor} * * @param redactor Redactor to inspect for query executor creation * * @return The {@link QueryExecutor} * * @throws DAOException When the executor cannot be created */ QueryExecutor createExecutor(QueryRedactor redactor) throws DAOException; }