Subversion Repositories bacoAlunos

Rev

Rev 1310 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package pt.estgp.estgweb.services.announcements;

import jomm.dao.impl.AbstractDao;
import org.apache.log4j.Logger;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.services.common.*;
import pt.estgp.estgweb.services.common.impl.DefaultResult;
import pt.estgp.estgweb.services.common.impl.DefaultSearchResults;
import pt.estgp.estgweb.services.common.impl.DefaultToDo;
import pt.utl.ist.berserk.logic.serviceManager.IService;

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

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

public class AnnouncementsCommonServices extends SingleSearchResults implements IService, IModuleCommonServices
{

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

    /**
     * TESTE
     * @param search 1
     * @param searchType 2
     * @param userSession 3
     * @return
     */

    public int countSearch(1.5.0/docs/api/java/lang/String.html">String search, SearchTypeEnum searchType, UserSession userSession)
    {
        return 0;  // todo To change body of implemented methods use File | Settings | File Templates.
    }

    public ISearchResults search(1.5.0/docs/api/java/lang/String.html">String search, SearchTypeEnum searchType, int page, int maxResults, UserSession userSession)
    {
        return search(null,search, searchType,page,maxResults,userSession);
    }

    public ISearchResults search(1.5.0/docs/api/java/lang/String.html">String from, 1.5.0/docs/api/java/lang/String.html">String search, SearchTypeEnum searchType, int page, int maxResults, UserSession userSession)
    {
        DefaultSearchResults searchResults = new DefaultSearchResults();
        searchResults.setModule(ModuleEnum.Announcements);
        List<String> roles;
        if (userSession == null || userSession.getUser() == null || ((UserImpl) userSession.getUser()).getRolesList() == null || ((UserImpl) userSession.getUser()).getRolesList().size() == 0)
        {
            roles = new ArrayList<String>();
            roles.add(Globals.ALL_ROLE);
        }
        else
            roles = ((UserImpl) userSession.getUser()).getRolesList();

        boolean internal = true;
        if (userSession.getUser() == null)
            internal = false;
        searchResults.setTotalResults(DaoFactory.getAnnouncementDaoImpl().countAnnouncements(search, searchType, roles, null,internal));
        if (searchResults.getTotalResults() > 0)
        {
            List<Announcement> announcements = DaoFactory.getAnnouncementDaoImpl().searchAnnouncements(search, searchType, maxResults, page, roles, null,internal);
            if (announcements == null)
                return searchResults;
            for (Announcement a : announcements)
            {
                DefaultResult defaultResult = new DefaultResult();
                defaultResult.setTitle(a.getTitle());
                defaultResult.setSubTitle("announcements.type." + a.getType());
                defaultResult.setDate(new java.text.1.5.0/docs/api/java/text/SimpleDateFormat.html">SimpleDateFormat("yyyy.MM.dd").format(a.getUpdateDate()));
                if(a.getOwner() != null)
                    defaultResult.setCreator(a.getOwner().getName());
                defaultResult.setSubTitleKey(true);
                defaultResult.setText(a.getText());
                if(from == null)
                    defaultResult.setUrl("/startLoadAnnouncement.do?id=" + a.getId());
                else
                    defaultResult.setUrl("/user/startLoadAnnouncementFrom" + from + ".do?id=" + a.getId() + "&dispatch=load");
                searchResults.addResult(defaultResult);
            }
        }
        return searchResults;
    }



    public int countToDo(UserSession userSession)
    {
        return 0;  //todo To change body of implemented methods use File | Settings | File Templates.
    }

    /**
     * Not implemented
     * @param userSession
     * @return
     */

    public IToDoCat getToDo(UserSession userSession)
    {
        return null;
    }

    public List<IToDo> getAllToDos(UserSession userSession)
    {
        List<IToDo> todos = new ArrayList<IToDo>();
        if(userSession.getUser().hasRole(Globals.ANNOUNCEMENTS_VALIDATOR_ROLES))
        {
            List<Announcement> invalidAnnouncements = DaoFactory.getAnnouncementDaoImpl().loadInvalidAnnouncements();
            for(Announcement a: invalidAnnouncements)
            {
                DefaultToDo defaultToDo = new DefaultToDo(a.getTitle(),a.getTargetRoles(),((UserImpl)a.getOwner()).getUsername(), "announcements.type." + a.getType(),"/user/startEditAnnouncementFromHome.do?id=" + a.getId());
                todos.add(defaultToDo);
            }
        }
        return todos;
    }

    /*This method is invoked from object creation*/
    public void adviseNew(DomainObject object)
    {
        //To change body of implemented methods use File | Settings | File Templates.
    }

    public void adviseUpdate(DomainObject object)
    {
        //To change body of implemented methods use File | Settings | File Templates.
    }

    public static void main(1.5.0/docs/api/java/lang/String.html">String[] args)
    {
        AbstractDao.getCurrentSession().beginTransaction();
        UserSession sess = new UserSessionImpl();
        sess.setUser(new UserImpl());
        sess.getUser().setRoles("all");
        ISearchResults searchResults = new AnnouncementsCommonServices().search("teste", SearchTypeEnum.AllWords, 0, 10, sess);
        for (IResult result : searchResults.getResults())
        {
            1.5.0/docs/api/java/lang/System.html">System.out.println("title:" + result.getTitle());
            1.5.0/docs/api/java/lang/System.html">System.out.println("subTitle:" + result.getSubTitle());
            1.5.0/docs/api/java/lang/System.html">System.out.println("text:" + result.getText());
            1.5.0/docs/api/java/lang/System.html">System.out.println("url" + result.getUrl());
            1.5.0/docs/api/java/lang/System.html">System.out.println("bestFragments" + result.getBestFragments());
        }
        AbstractDao.commit();
    }
}