package org.aksw.sparqlify.config.loader;
import javax.sql.DataSource;
import org.aksw.sparqlify.config.syntax.Config;
import org.aksw.sparqlify.core.sparql.QueryExecutionFactoryEx;
import org.aksw.sparqlify.util.SparqlifyUtils;
public class SparqlifyQefFactory {
private Config config = null;
private DataSource dataSource = null;
private Integer maxQueryExecutionTime = null;
private Long maxResultSetRowCount = null;
//private static Logger logger = LoggerFactory.getLogger(SparqlifyQefFactory.class);
public SparqlifyQefFactory() {
}
public Config getConfig() {
return config;
}
public void setConfig(Config config) {
this.config = config;
}
public DataSource getDataSource() {
return dataSource;
}
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
}
public void setMaxQueryExecutionTime(Integer seconds) {
this.maxQueryExecutionTime = seconds;
}
public Integer getMaxQueryExecutionTime() {
return maxQueryExecutionTime;
}
public void setMaxResultSetRowCount(Long count) {
this.maxResultSetRowCount = count;
}
public Long getMaxResultSetRowCount() {
return maxResultSetRowCount;
}
// public QueryExecutionFactoryEx create()
// throws Exception
// {
//
// QueryExecutionFactoryEx result = SparqlifyUtils.createDefaultSparqlifyEngine(dataSource, config, maxResultSetRowCount, maxQueryExecutionTime);
//
// return result;
// }
// public QueryExecutionFactory create() throws Exception {
//
// LoggerCount loggerCount = new LoggerCount(logger);
//
//
// RdfViewSystem system = new RdfViewSystem2();
// ConfiguratorRdfViewSystem.configure(config, system, loggerCount);
//
//
// logger.info("Errors: " + loggerCount.getErrorCount() + ", Warnings: " + loggerCount.getWarningCount());
//
// if(loggerCount.getErrorCount() > 0) {
// throw new RuntimeException("Encountered " + loggerCount.getErrorCount() + " errors that need to be fixed first.");
// }
// Connection conn = dataSource.getConnection();
//
// RdfViewSystemOld.loadDatatypes(conn, system.getViews());
// conn.close();
//
//
// QueryExecutionFactory<QueryExecutionStreaming> qef = new QueryExecutionFactorySparqlifyDs(system, dataSource);
//
// if(maxQueryExecutionTime != null) {
// qef = QueryExecutionFactoryTimeout.decorate(qef, maxQueryExecutionTime * 1000);
// }
//
// if(maxResultSetRowCount != null) {
// qef = QueryExecutionFactoryLimit.decorate(qef, false, maxResultSetRowCount);
// }
//
// return qef;
// }
}