Package org.dspace.app.webui.cris.components.statistics

Source Code of org.dspace.app.webui.cris.components.statistics.StatCrisDownloadSelectedObjectComponent

/**
* 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
*
* https://github.com/CILEA/dspace-cris/wiki/License
*/
package org.dspace.app.webui.cris.components.statistics;

import it.cilea.osd.jdyna.model.PropertiesDefinition;

import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;

import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.dspace.app.cris.model.ACrisObject;
import org.dspace.app.cris.service.ApplicationService;
import org.dspace.app.cris.statistics.bean.PieStatisticBean;
import org.dspace.app.cris.statistics.bean.StatisticDatasBeanRow;
import org.dspace.app.cris.statistics.bean.TwoKeyMap;
import org.dspace.content.DSpaceObject;
import org.dspace.core.Context;
import org.dspace.statistics.ObjectCount;
import org.dspace.statistics.SolrLogger;

public abstract class StatCrisDownloadSelectedObjectComponent extends
        StatSelectedObjectComponent
{
   
    private ApplicationService applicationService;
   
    @Override
    public TwoKeyMap getLabels(Context context, String type)
            throws SQLException
    {

        TwoKeyMap labels = new TwoKeyMap();

        PieStatisticBean myvalue = (PieStatisticBean) statisticDatasBeans
                .get("selectedObject").get("geo").get("sectionid");
        if (myvalue != null)
        {
            if (myvalue.getLimitedDataTable() != null)
            {
                for (StatisticDatasBeanRow row : myvalue.getLimitedDataTable())
                {
                    String pkey = (String)row.getLabel();
                   
                    PropertiesDefinition def = innerCall(Integer.parseInt(pkey));
                          
                    labels.addValue(row.getLabel(), "label", def.getLabel()!=null?def.getLabel():def.getShortName());
                   
                    if (def != null)
                    {
                        labels.addValue("geo", row.getLabel(), def);
                    }
                }
            }
        }
        return labels;
    }

    protected abstract PropertiesDefinition innerCall(Integer pkey);
   
   
    protected void _prepareBasicQuery(SolrQuery solrQuery, Integer yearsQuery)
    {
        _addBasicConfiguration(solrQuery, yearsQuery);
        solrQuery.addFacetField(_CONTINENT, _COUNTRY_CODE, _CITY, ID,
                _LOCATION, _FISCALYEAR, _SOLARYEAR);
        solrQuery.set("facet.missing", true);
        solrQuery.set("f." + _LOCATION + ".facet.missing", false);
        solrQuery.set("f." + ID + ".facet.missing", false);
        solrQuery.set("f." + _FISCALYEAR + ".facet.missing", false);
        solrQuery.set("f." + _SOLARYEAR + ".facet.missing", false);
        solrQuery.set("f." + _FISCALYEAR + ".facet.sort", false);
        solrQuery.set("f." + _SOLARYEAR + ".facet.sort", false);

        solrQuery.set("f." + FILE + ".facet.missing", false);
        solrQuery.set("f." + FILE + ".facet.mincount", 1);
        solrQuery.set("f." + ID + ".facet.mincount", 1);
        solrQuery.set("f." + _CONTINENT + ".facet.mincount", 1);
        solrQuery.set("f." + _COUNTRY_CODE + ".facet.mincount", 1);
        solrQuery.set("f." + _CITY + ".facet.mincount", 1);
        solrQuery.set("f." + _LOCATION + ".facet.mincount", 1);
        solrQuery.set("f." + _FISCALYEAR + ".facet.mincount", 1);
        solrQuery.set("f." + _SOLARYEAR + ".facet.mincount", 1);
        solrQuery.set("f." + _CONTINENT + ".facet.mincount", 1);
    }

    public void setApplicationService(ApplicationService applicationService)
    {
        this.applicationService = applicationService;
    }

    public ApplicationService getApplicationService()
    {
        return applicationService;
    }
   
    @Override
    public Map<String, ObjectCount[]> queryFacetDate(SolrLogger statsLogger,
            DSpaceObject object, String dateType, String dateStart,
            String dateEnd, int gap) throws SolrServerException
    {
        Map<String, ObjectCount[]> map = new HashMap<String, ObjectCount[]>();
       
        map.put(getMode(), statsLogger.queryFacetDate("search.uniqueid:" + object.getType()
                + "-" + object.getID() + " AND sectionid:[* TO *] AND time:[* TO NOW/" + dateType
                + dateEnd + dateType + "]", null, 0, dateType, dateStart,
                dateEnd, gap, true));
        return map;
    }
   
    @Override
    public String getMode()
    {    
        return DOWNLOAD;
    }
}
TOP

Related Classes of org.dspace.app.webui.cris.components.statistics.StatCrisDownloadSelectedObjectComponent

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.