Subversion Repositories bacoAlunos

Rev

Rev 1312 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package pt.estgp.estgweb.services.announcements;

import org.apache.log4j.Logger;
import pt.estgp.estgweb.utils.Globals;
import pt.estgp.estgweb.domain.Announcement;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.domain.views.AnnouncementView;
import pt.estgp.estgweb.utils.ConfigProperties;
import pt.utl.ist.berserk.logic.serviceManager.IService;

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

/**
 * @author Jorge Machado
 * @date 4/Mar/2008
 * @time 19:48:46
 * @see pt.estgp.estgweb.services.announcements
 */

public class LoadTypeMaxAnnouncementsService implements IService
{
   private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(LoadTypeMaxAnnouncementsService.class);
    private static final int MAX_ANNOUNCEMENTS = ConfigProperties.getIntProperty("announcements.max.visible");
    private static final int MAX_ANNOUNCEMENTS_NEWS = ConfigProperties.getIntProperty("announcements.max.news.visible");

    public List<AnnouncementView> run(1.5.0/docs/api/java/lang/String.html">String type, 1.5.0/docs/api/java/lang/String.html">String subTarget, UserSession userSession)
    {
        List<String> targetRoles = null;
        if(userSession.getUser() != null)
            targetRoles = userSession.getUser().getRolesList();
        boolean internal = true;
        if (userSession.getUser() == null)
            internal = false;
        int max = MAX_ANNOUNCEMENTS;
        if(type != null && type.equals(Globals.ANNOUNCEMENT_TYPE_NEWS))
            max = MAX_ANNOUNCEMENTS_NEWS;
        List<Announcement> announcements = DaoFactory.getAnnouncementDaoImpl().findAnnouncements(max,targetRoles,type,subTarget,internal);
        if(announcements == null)
            return null;
        List<AnnouncementView> announcementViews = new ArrayList<AnnouncementView>();
        for(Announcement announcement: announcements)
        {
            AnnouncementView announcementView = new AnnouncementView(announcement);
            announcementViews.add(announcementView);
        }
        logger.info("Loading announcement views");
        return announcementViews;
    }

    public List<AnnouncementView> load(1.5.0/docs/api/java/lang/String.html">String type, 1.5.0/docs/api/java/lang/String.html">String subTarget, int count, UserSession userSession)
    {
        List<String> targetRoles = null;
        if(userSession.getUser() != null)
            targetRoles = userSession.getUser().getRolesList();
        boolean internal = true;
        if (userSession.getUser() == null)
            internal = false;

        List<Announcement> announcements = DaoFactory.getAnnouncementDaoImpl().findAnnouncements(count,targetRoles,type,subTarget,internal);
        if(announcements == null)
            return null;
        List<AnnouncementView> announcementViews = new ArrayList<AnnouncementView>();
        for(Announcement announcement: announcements)
        {
            AnnouncementView announcementView = new AnnouncementView(announcement);
            announcementViews.add(announcementView);
        }
        logger.info("Loading announcement views");
        return announcementViews;
    }
}