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

Source Code of org.dspace.app.webui.cris.controller.statistics.StatisticsController

/**
* 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.controller.statistics;

import java.io.IOException;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.dspace.app.cris.integration.statistics.IStatsComponent;
import org.dspace.app.cris.integration.statistics.StatComponentsService;
import org.dspace.app.cris.model.StatSubscription;
import org.dspace.app.cris.statistics.bean.ResultBean;
import org.dspace.app.cris.statistics.bean.TreeKeyMap;
import org.dspace.app.cris.statistics.bean.TwoKeyMap;
import org.dspace.app.webui.cris.components.statistics.StatsComponent;
import org.dspace.app.webui.util.UIUtil;
import org.dspace.content.DSpaceObject;
import org.dspace.core.Context;
import org.dspace.eperson.EPerson;
import org.dspace.handle.HandleManager;
import org.springframework.web.servlet.ModelAndView;

public class StatisticsController extends AStatisticsController
{
  
    /** log4j logger */
    private static Logger log = Logger
            .getLogger(StatisticsController.class);
   
    public ModelAndView handleRequest(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException
    {

        String id = getId(request);
        String type = request.getParameter("type");
        ModelAndView modelAndView = new ModelAndView(success);
        try
        {
            Map<String, Object> data = new HashMap<String, Object>();
            data.put(_ID_LABEL, id);
            data.put(_JSP_KEY, jspKey);
            HttpSolrServer solrServer = new HttpSolrServer(getSolrConfig().getStatisticsCore());

            Map<String, IStatsComponent> components = statsComponentsService.getComponents();
            TwoKeyMap label = new TwoKeyMap();
            TreeKeyMap dataBeans = new TreeKeyMap();
            IStatsComponent statcomponent = null;
           
            if(components.containsKey(type)) {
                statcomponent = components.get(type);
            }
            else {
                type = StatComponentsService._SELECTED_OBJECT;
                statcomponent = (IStatsComponent)statsComponentsService.getSelectedObjectComponent();
            }
           
            dataBeans.putAll(statcomponent.query(id, solrServer));               
            label.putAll(statcomponent.getLabels(UIUtil.obtainContext(request),type));
           
            ResultBean result = new ResultBean(dataBeans, statsComponentsService.getCommonsParams());
            data.put(_RESULT_BEAN, result);
            data.put("label",label);
            data.put("title", getTitle(request));
            data.put("object", getObject(request));           
            modelAndView.addObject("data", data);
            addSubscriptionStatus(modelAndView, request);

        }
        catch (Exception e)
        {
            log.error(e.getMessage(), e);
            modelAndView = new ModelAndView(error);
        }
        return modelAndView;
    }


 
    @Override
    public String getId(HttpServletRequest request)
    {
        String id = request.getParameter("handle");
        if (StringUtils.isNotEmpty(id))
        {          
            return Integer.toString(_getObject(request, id).getID());
        }
        return null;
    }
   

    @Override
    public DSpaceObject getObject(HttpServletRequest request)
    {
        String id = request.getParameter("handle");
        if (StringUtils.isNotEmpty(id))
        {
            return _getObject(request, id);
        }
        return null;
    }
   
    private DSpaceObject _getObject(HttpServletRequest request, String id)
    {
        DSpaceObject dso;
        try
        {
            dso = HandleManager.resolveToObject(
                    UIUtil.obtainContext(request), id);
        }
        catch (SQLException e)
        {
            return null;
        }
        return dso;
    }

    @Override
    public String getTitle(HttpServletRequest request)
    {
        String id = request.getParameter("handle");
        if (StringUtils.isNotEmpty(id))
        {         
            return _getObject(request, id).getName();
        }
        return null;

    }
   

   
 

}
TOP

Related Classes of org.dspace.app.webui.cris.controller.statistics.StatisticsController

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.