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