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 pt.estgp.estgweb.domain.views.AnnouncementView;
import pt.estgp.estgweb.domain.Announcement;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.UserSessionImpl;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.utils.Globals;
import org.apache.log4j.Logger;

import java.util.List;

/**
 * @author Jorge Machado
 * @date 28/Mar/2008
 * @time 18:01:54
 * @see pt.estgp.estgweb.web
 */

public class LoadTopFlashNewsIterateService implements IService
{

    private static final 1.5.0/docs/api/java/lang/String.html">String flashNewsIterator = "flashNewsIterator";

    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(LoadTopFlashNewsIterateService.class);


    public AnnouncementView run(1.5.0/docs/api/java/lang/String.html">String subTarget, UserSession sess)
    {
        1.5.0/docs/api/java/lang/Integer.html">Integer iterator = (1.5.0/docs/api/java/lang/Integer.html">Integer) ((UserSessionImpl) sess).get(flashNewsIterator);
        if (iterator == null)
            iterator = 0;

        boolean internal = true;
        if (sess.getUser() == null)
            internal = false;
       
        int size = DaoFactory.getAnnouncementDaoImpl().countAnnouncements(1, null, Globals.ANNOUNCEMENT_TYPE_TOP_FLASH_NEWS, null, internal);
        if (size != 0)
        {
            iterator = iterator % size;
            List<Announcement> announcements = DaoFactory.getAnnouncementDaoImpl().findAnnouncements(iterator, 1, null, Globals.ANNOUNCEMENT_TYPE_TOP_FLASH_NEWS, subTarget, internal);
            iterator++;
            ((UserSessionImpl) sess).put(flashNewsIterator, iterator);

            if (announcements == null)
                return null;
            logger.info("Loading announcement top flash iterator");
            if (announcements.size() > 0)
            {
                return new AnnouncementView(announcements.get(0));
            }
        }
        return null;
    }

    //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[]{};
        AnnouncementView announcementView = (AnnouncementView) sm.execute("testecookie", "LoadTopFlashNewsIterate", arguments, names);
        1.5.0/docs/api/java/lang/System.html">System.out.println("-->" + announcementView.getTitle());


    }
}