package eu.dnetlib.shared;

import com.google.gwt.user.client.rpc.IsSerializable;
import eu.dnetlib.goldoa.domain.stats.*;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by stefania on 11/20/15.
 */
public class StatsData implements IsSerializable {

    private Numbers numbers;

    private List<Triple<String, Integer, Integer>> requestsPerCountry = new ArrayList<>();
    private List<Triple<String, Float, Float>> fundsPerCountry = new ArrayList<>();
    private List<Quintuple<String, Integer, Integer, Float, Float>> countriesFullInfo = new ArrayList<>();

    private List<Triple<String, Integer, Integer>> requestsPerPublisher = new ArrayList<>();
    private List<Triple<String, Float, Float>> fundsPerPublisher = new ArrayList<>();
    private List<Quintuple<String, Integer, Integer, Float, Float>> publishersFullInfo = new ArrayList<>();

    private List<Triple<String, Integer, Integer>> requestsPerOrganisation = new ArrayList<>();
    private List<Triple<String, Float, Float>> fundsPerOrganisation = new ArrayList<>();
    private List<Quintuple<String, Integer, Integer, Float, Float>> organisationsFullInfo = new ArrayList<>();

    private Browse browse;
    private DateSeriesData dateSeriesData;

    private List<Quadruple<String, Integer, Float, Float>> statusesDistribution = new ArrayList<>();
    private List<Quadruple<String, Integer, Float, Float>> publicationTypeDistribution = new ArrayList<>();

    public StatsData() {
    }

    public Numbers getNumbers() {
        return numbers;
    }

    public void setNumbers(Numbers numbers) {
        this.numbers = numbers;
    }

    public List<Triple<String, Integer, Integer>> getRequestsPerCountry() {
        return requestsPerCountry;
    }

    public void setRequestsPerCountry(List<Triple<String, Integer, Integer>> requestsPerCountry) {
        this.requestsPerCountry = requestsPerCountry;
    }

    public List<Triple<String, Float, Float>> getFundsPerCountry() {
        return fundsPerCountry;
    }

    public void setFundsPerCountry(List<Triple<String, Float, Float>> fundsPerCountry) {
        this.fundsPerCountry = fundsPerCountry;
    }

    public List<Quintuple<String, Integer, Integer, Float, Float>> getCountriesFullInfo() {
        return countriesFullInfo;
    }

    public void setCountriesFullInfo(List<Quintuple<String, Integer, Integer, Float, Float>> countriesFullInfo) {
        this.countriesFullInfo = countriesFullInfo;
    }

    public List<Triple<String, Integer, Integer>> getRequestsPerPublisher() {
        return requestsPerPublisher;
    }

    public void setRequestsPerPublisher(List<Triple<String, Integer, Integer>> requestsPerPublisher) {
        this.requestsPerPublisher = requestsPerPublisher;
    }

    public List<Triple<String, Float, Float>> getFundsPerPublisher() {
        return fundsPerPublisher;
    }

    public void setFundsPerPublisher(List<Triple<String, Float, Float>> fundsPerPublisher) {
        this.fundsPerPublisher = fundsPerPublisher;
    }

    public List<Quintuple<String, Integer, Integer, Float, Float>> getPublishersFullInfo() {
        return publishersFullInfo;
    }

    public void setPublishersFullInfo(List<Quintuple<String, Integer, Integer, Float, Float>> publishersFullInfo) {
        this.publishersFullInfo = publishersFullInfo;
    }

    public List<Triple<String, Integer, Integer>> getRequestsPerOrganisation() {
        return requestsPerOrganisation;
    }

    public void setRequestsPerOrganisation(List<Triple<String, Integer, Integer>> requestsPerOrganisation) {
        this.requestsPerOrganisation = requestsPerOrganisation;
    }

    public List<Triple<String, Float, Float>> getFundsPerOrganisation() {
        return fundsPerOrganisation;
    }

    public void setFundsPerOrganisation(List<Triple<String, Float, Float>> fundsPerOrganisation) {
        this.fundsPerOrganisation = fundsPerOrganisation;
    }

    public List<Quintuple<String, Integer, Integer, Float, Float>> getOrganisationsFullInfo() {
        return organisationsFullInfo;
    }

    public void setOrganisationsFullInfo(List<Quintuple<String, Integer, Integer, Float, Float>> organisationsFullInfo) {
        this.organisationsFullInfo = organisationsFullInfo;
    }

    public Browse getBrowse() {
        return browse;
    }

    public void setBrowse(Browse browse) {
        this.browse = browse;
    }

    public DateSeriesData getDateSeriesData() {
        return dateSeriesData;
    }

    public void setDateSeriesData(DateSeriesData dateSeriesData) {
        this.dateSeriesData = dateSeriesData;
    }

    public List<Quadruple<String, Integer, Float, Float>> getStatusesDistribution() {
        return statusesDistribution;
    }

    public void setStatusesDistribution(List<Quadruple<String, Integer, Float, Float>> statusesDistribution) {
        this.statusesDistribution = statusesDistribution;
    }

    public List<Quadruple<String, Integer, Float, Float>> getPublicationTypeDistribution() {
        return publicationTypeDistribution;
    }

    public void setPublicationTypeDistribution(List<Quadruple<String, Integer, Float, Float>> publicationTypeDistribution) {
        this.publicationTypeDistribution = publicationTypeDistribution;
    }
}
