/** * The contents of this file are subject to the license and copyright * detailed in the LICENSE and NOTICE files at the root of the source * tree and available online at * * http://www.dspace.org/license/ */ package org.dspace.statistics.content; import org.dspace.statistics.Dataset; import org.dspace.statistics.content.filter.StatisticsFilter; import org.dspace.core.Context; import org.apache.solr.client.solrj.SolrServerException; import java.util.List; import java.util.ArrayList; import java.sql.SQLException; import java.io.IOException; import java.text.ParseException; /** * Abstract "factory" for statistical queries. * @author kevinvandevelde at atmire.com * Date: 23-feb-2009 * Time: 12:37:04 */ public abstract class StatisticsData { private Dataset dataset; private List<DatasetGenerator> datasetgenerators; private List<StatisticsFilter> filters; /** Construct a blank query factory. */ protected StatisticsData() { datasetgenerators = new ArrayList<DatasetGenerator>(2); filters = new ArrayList<StatisticsFilter>(); } /** Wrap an existing Dataset in an unconfigured query factory. */ protected StatisticsData(Dataset dataset) { this.dataset = dataset; datasetgenerators = new ArrayList<DatasetGenerator>(2); filters = new ArrayList<StatisticsFilter>(); } /** Augment the list of facets (generators). */ public void addDatasetGenerator(DatasetGenerator set){ datasetgenerators.add(set); } /** Augment the list of filters. */ public void addFilters(StatisticsFilter filter){ filters.add(filter); } /** Return the current list of generators. */ public List<DatasetGenerator> getDatasetGenerators() { return datasetgenerators; } /** Return the current list of filters. */ public List<StatisticsFilter> getFilters() { return filters; } /** Return the existing query result if there is one. */ public Dataset getDataset() { return dataset; } /** Jam an existing query result in. */ public void setDataset(Dataset dataset) { this.dataset = dataset; } /** Run the accumulated query and return its results. */ public abstract Dataset createDataset(Context context) throws SQLException, SolrServerException, IOException, ParseException; }