org.esco.portlets.news.web.FilterDeleteController.java Source code

Java tutorial

Introduction

Here is the source code for org.esco.portlets.news.web.FilterDeleteController.java

Source

/**
 * ESUP-Portail News - Copyright (c) 2009 ESUP-Portail consortium
 * For any information please refer to http://esup-helpdesk.sourceforge.net
 * You may obtain a copy of the licence at http://www.esup-portail.org/license/
 */
package org.esco.portlets.news.web;

import java.util.List;
import java.util.Map;

import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.esco.portlets.news.domain.Filter;
import org.esco.portlets.news.domain.FilterType;
import org.esco.portlets.news.services.EntityManager;
import org.esco.portlets.news.services.UserManager;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.ObjectRetrievalFailureException;
import org.springframework.util.Assert;
import org.springframework.web.portlet.ModelAndView;
import org.springframework.web.portlet.mvc.AbstractController;
import org.uhp.portlets.news.NewsConstants;
import org.uhp.portlets.news.domain.RolePerm;
import org.uhp.portlets.news.web.support.Constants;

/**
 *
 * @author GIP RECIA - Gribonvald Julien
 * 21 mai 2010
 */
public class FilterDeleteController extends AbstractController implements InitializingBean {

    /** Logger. */
    private static final Log LOG = LogFactory.getLog(FilterDeleteController.class);

    /** The Entity Manager.*/
    @Autowired
    private EntityManager em;
    /** The User manager. */
    @Autowired
    private UserManager um;

    /** Permet de savoir si l'action du delete a t effectue correctement. */
    private boolean deleted;
    /** Message d'erreur  mapper dans le fichier messages.properties. */
    private String msgKey;
    /** */
    private Long entityId;

    /**
     * Constructor of FilterDeleteController.java.
     */
    public FilterDeleteController() {
        super();
    }

    /**
     * @param request
     * @param response
     * @throws Exception
     * @see org.springframework.web.portlet.mvc.AbstractController#
     * handleActionRequest(javax.portlet.ActionRequest, javax.portlet.ActionResponse)
     */
    @Override
    public void handleActionRequest(final ActionRequest request, final ActionResponse response) throws Exception {
        Long filterId = Long.valueOf(request.getParameter(Constants.ATT_FILTER_ID));
        entityId = Long.valueOf(request.getParameter(Constants.ATT_ENTITY_ID));
        if (!this.um.isSuperAdmin(request.getRemoteUser())) {
            msgKey = "news.alert.superUserOnly";
        } else if (this.em.deleteFilterOfEntity(filterId, entityId)) {
            if (LOG.isDebugEnabled()) {
                LOG.debug("Filter [ filterId=" + filterId + ", entityId=" + entityId + " ] is removed.");
            }
            this.deleted = true;
        } else {
            if (LOG.isWarnEnabled()) {
                LOG.warn("Filter [ filterId=" + filterId + ", entityId=" + entityId + " ] wasn't found.");
            }
            msgKey = "news.alert.TypeNotDetached";
        }
    }

    /**
     * @param request
     * @param response
     * @return <code>ModelAndView</code>
     * @throws Exception
     * @see org.springframework.web.portlet.mvc.AbstractController#
     * handleRenderRequest(javax.portlet.RenderRequest, javax.portlet.RenderResponse)
     */
    @Override
    public ModelAndView handleRenderRequest(final RenderRequest request, final RenderResponse response)
            throws Exception {
        if (this.deleted) {
            if (LOG.isDebugEnabled()) {
                LOG.debug("FilterViewController:: entering method handleRenderRequestInternal - entityId="
                        + entityId);
            }
            final Map<FilterType, List<Filter>> filters = this.getEm().getFiltersByTypeOfEntity(entityId);
            if (filters != null && !filters.isEmpty()) {
                ModelAndView mav = new ModelAndView(Constants.ACT_VIEW_FILTERS);
                mav.addObject(Constants.ATT_FILTER_MAP, filters);
                mav.addObject(Constants.OBJ_ENTITY, this.em.getEntityById(entityId));
                mav.addObject(Constants.ATT_PM,
                        RolePerm.valueOf(
                                this.um.getUserRoleInCtx(entityId, NewsConstants.CTX_E, request.getRemoteUser()))
                                .getMask());
                return mav;
            }
            throw new ObjectRetrievalFailureException(Filter.class, "entityId=" + entityId);
        }
        return new ModelAndView("Errors", "message", getMessageSourceAccessor().getMessage(msgKey));
    }

    /**
     * Getter du membre em.
     * @return <code>EntityManager</code> le membre em.
     */
    public EntityManager getEm() {
        return em;
    }

    /**
     * Setter du membre em.
     * @param em la nouvelle valeur du membre em. 
     */
    public void setEm(final EntityManager em) {
        this.em = em;
    }

    /**
     * Getter du membre um.
     * @return <code>UserManager</code> le membre um.
     */
    public UserManager getUm() {
        return um;
    }

    /**
     * Setter du membre um.
     * @param um la nouvelle valeur du membre um. 
     */
    public void setUm(final UserManager um) {
        this.um = um;
    }

    /**
     * @throws Exception
     * @see org.springframework.beans.factory.InitializingBean#afterPropertiesSet()
     */
    public void afterPropertiesSet() throws Exception {
        Assert.notNull(this.getEm(),
                "The property EntityManager em in class " + getClass().getSimpleName() + " must not be null.");
        Assert.notNull(this.getUm(),
                "The property UserManager um in class " + getClass().getSimpleName() + " must not be null.");
    }
}