/* This file is part of Cyclos (www.cyclos.org). A project of the Social Trade Organisation (www.socialtrade.org). Cyclos is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Cyclos is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Cyclos; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ package nl.strohalm.cyclos.services.stats; import nl.strohalm.cyclos.entities.reports.StatisticalActivityQuery; /** * Service interface for Activity Statistics. * @author rinke */ public interface StatisticalActivityService extends StatisticalService { /** * gets a data value object for the comparison of the gross product per member for two periods. It should get the values for the two periods, the * relative growth percentage between them, and the p-value (indicating if the difference was statistically significant). A value for a period * consists of the median amount, plus a number indication the 95%-confidence interval. * @param queryParameters the form parameters * @return a common result value object storing the data */ StatisticalResultDTO getComparePeriodsGrossProduct(StatisticalActivityQuery queryParameters); /** * gets the frequency of logging in of members (per week), comparing the two periods. It should get the values for the two periods, the relative * growth percentage between them, and the p-value (indicating if the difference was statistically significant). A value for a period consists of * the median amount, plus a number indication the 95%-confidence interval. * @param queryParameters the form params * @return a common result value object storing the data */ StatisticalResultDTO getComparePeriodsLoginTimes(StatisticalActivityQuery queryParameters); /** * gets the data for comparison of the number of transactions for two periods. It should get the values for the two periods, the relative growth * percentage between them, and the p-value (indicating if the difference was statistically significant). A value for a period consists of the * median amount, plus a number indication the 95%-confidence interval. * @param queryParameters the form params * @return a common result value object storing the data */ StatisticalResultDTO getComparePeriodsNumberTransactions(StatisticalActivityQuery queryParameters); /** * gets the data on the percentage of members which is not trading, for comparing these. over two periods. It should get the values for the two * periods, the relative growth percentage between them, and the p-value (indicating if the difference was statistically significant). A value for * a period consists of the median amount, plus a number indication the 95%-confidence interval. * @param queryParameters the form params * @return a common result value object storing the data */ StatisticalResultDTO getComparePeriodsPercentageNoTrade(StatisticalActivityQuery queryParameters); /** * gets the data for creating a histogram of the distribution of gross product over the members. This data should split up a set of numbers (for * each member the personal gross product), and split this set up into reasonable categories, indicating the number of members found in each * categorie. This splitting up is done by the class <code>HistogramDTOFactory</code>. * @param queryParameters the form params * @return a common result value object storing the data * @see HistogramDTOFactory */ StatisticalResultDTO getHistogramGrossProduct(StatisticalActivityQuery queryParameters); /** * gets the data for creating a histogram of the distribution of login frequency over the members. This data should split up a set of numbers (for * each member the personal login frequency per week), and split this set up into reasonable categories, indicating the number of members found in * each categorie. This splitting up is done by the class <code>HistogramDTOFactory</code>. * @param queryParameters the form params * @return a common result value object storing the data * @see HistogramDTOFactory */ StatisticalResultDTO getHistogramLoginTimes(StatisticalActivityQuery queryParameters); /** * gets the data for creating a histogram of the distribution of the number of transactions over the members. This data should split up a set of * numbers (for each member the personal number of transactions), and split this set up into reasonable categories, indicating the number of * members found in each categorie. This splitting up is done by the class <code>HistogramDTOFactory</code>. * @param queryParameters the form params * @return a common result value object storing the data * @see HistogramDTOFactory */ StatisticalResultDTO getHistogramNumberTransactions(StatisticalActivityQuery queryParameters); /** * gets the data value object for the gross product of a single period. A value for a period consists of the median amount, plus a number * indication the 95%-confidence interval. * @param queryParameters the form parameters * @return a common result value object storing the data */ StatisticalResultDTO getSinglePeriodGrossProduct(StatisticalActivityQuery queryParameters); /** * gets the data value object for the frequency of logging in of members on a single period. A value for the period consists of the median amount, * plus a number indication the 95%-confidence interval. * @param queryParameters the form params * @return a common result value object storing the data */ StatisticalResultDTO getSinglePeriodLoginTimes(StatisticalActivityQuery queryParameters); /** * gets the data value object for the number of transactions of a single period. A value for a period consists of the median amount, plus a number * indication the 95%-confidence interval. * @param queryParameters the form params * @return a common result value object storing the data */ StatisticalResultDTO getSinglePeriodNumberTransactions(StatisticalActivityQuery queryParameters); /** * gets the data value object for the percentage of members which is not trading. A value for the period consists of the median amount, plus a * number indication the 95%-confidence interval. * @param queryParameters the form params * @return a common result value object storing the data */ StatisticalResultDTO getSinglePeriodPercentageNoTrade(StatisticalActivityQuery queryParameters); /** * gets the data for the gross product per member, for all available years. A value for a year consists of the median amount, plus a number * indication the 95%-confidence interval. * @param queryParameters the form params * @return a common result value object storing the data */ StatisticalResultDTO getThroughTheTimeGrossProduct(final StatisticalActivityQuery queryParameters); /** * gets the data for the login frequency per member, for all available years. A value for a year consists of the median amount, plus a number * indication the 95%-confidence interval. * @param queryParameters the form params * @return a common result value object storing the data */ StatisticalResultDTO getThroughTheTimeLoginTimes(StatisticalActivityQuery queryParameters); /** * gets the data for the number of transactions per member, for all available years. A value for a year consists of the median amount, plus a * number indication the 95%-confidence interval. * @param queryParameters the form params * @return a common result value object storing the data */ StatisticalResultDTO getThroughTheTimeNumberTransactions(StatisticalActivityQuery queryParameters); /** * gets the data for the percentage of members not trading during that specific year, for all available years. A value for a year consists of the * median amount, plus a number indication the 95%-confidence interval. * @param queryParameters the form params * @return a common result value object storing the data */ StatisticalResultDTO getThroughTheTimePercentageNoTrade(StatisticalActivityQuery queryParameters); /** * Top 10 for persons: who are the most active members, for personal gross product. * @param queryParameters the form params * @return a common result valur object storing the data */ StatisticalResultDTO getToptenPersonalGrossProduct(final StatisticalActivityQuery queryParameters); /** * Top 10 for persons: who are the most active members, for personal login times. * @param queryParameters the form params * @return a common result valur object storing the data */ StatisticalResultDTO getToptenPersonalLoginTimes(final StatisticalActivityQuery queryParameters); /** * Top 10 for persons: who are the most active members, for personal number transactions. * @param queryParameters the form params * @return a common result valur object storing the data */ StatisticalResultDTO getToptenPersonalNumberTransactions(final StatisticalActivityQuery queryParameters); }