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();
}
}