Subversion Repositories bacoAlunos

Rev

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

package pt.estgp.estgweb.services.announcements;

import pt.utl.ist.berserk.logic.serviceManager.IService;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
import org.apache.log4j.Logger;
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.estgp.estgweb.utils.Globals;

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

/**
 * Created by IntelliJ IDEA.
 * User: Fabio
 * Date: 28/Mar/2008
 * Time: 11:42:28
 * To change this template use File | Settings | File Templates.
 */

public class LoadRoleTypeMaxAnnouncementsService 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(LoadRoleTypeMaxAnnouncementsService.class);
    private static final int MAX_ANNOUNCEMENTS = ConfigProperties.getIntProperty("announcements.max.visible");

    public List<AnnouncementView> run(1.5.0/docs/api/java/lang/String.html">String roles,1.5.0/docs/api/java/lang/String.html">String typeNews,1.5.0/docs/api/java/lang/String.html">String subTarget,UserSession sess)
    {
        List<String> targetRoles = new ArrayList<String>();
        if (roles.contains(","))
        {
            1.5.0/docs/api/java/lang/String.html">String[] rolesRequestSplited = roles.split(",");
            for (1.5.0/docs/api/java/lang/String.html">String role : rolesRequestSplited)
            {
                targetRoles.add(role);
            }
        }
        else
        {
            targetRoles.add(roles);
        }
        boolean internal = true;
        if(sess.getUser() == null)
            internal = false;

        List<Announcement> announcements = DaoFactory.getAnnouncementDaoImpl().findAnnouncements(MAX_ANNOUNCEMENTS,targetRoles,typeNews,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;
    }

    //tens de ter cuidado com o nome que metes no servico, tavas a meter LoadRoleTypeMaxAnnouncements e no XML estava LoadRoleTypeMaxAnnouncementsService, o nome nao tem de ser igual a classe mas convem, por norma eu tenho tirado a palavra service do nome do servico
    //ou seja esta LoadRoleTypeMaxAnnouncements para a classe LoadRoleTypeMaxAnnouncementsService logo no sm.execute tem de estar LoadRoleTypeMaxAnnouncements
    //mudei a propriedade logresults.file build.properties para logresults.file=${data.dir}/estgweb.logresults assim ja nao da o erro do logresults
    //adicionei as libs jsp-api.jar da pasta tomcat/common/lib para nao te falhar os imports nas TAGS aqui no Intellij
    //adiciona sempre todos os jars da common aqui no Intellij faltava-te o activation.jar do jaxb e era preciso para o MimeTypeGuesser
    public static void main(1.5.0/docs/api/java/lang/String.html">String[] args) throws 1.5.0/docs/api/java/lang/Throwable.html">Throwable {
        IServiceManager sm = ServiceManager.getInstance();
        1.5.0/docs/api/java/lang/String.html">String[] names = new 1.5.0/docs/api/java/lang/String.html">String[]{};
        5+0%2Fdocs%2Fapi+Object">Object[] arguments = new 5+0%2Fdocs%2Fapi+Object">Object[]{"student", Globals.ANNOUNCEMENT_TYPE_BOTTOM_FLASH_NEWS};
        List<AnnouncementView> announcementViews = (List<AnnouncementView>) sm.execute("testecookie", "LoadRoleTypeMaxAnnouncements",arguments,names);
        1.5.0/docs/api/java/lang/System.html">System.out.println("-->"+announcementViews.size());


    }
}