package pt.estgp.estgweb.services.announcements;
import org.apache.log4j.Logger;
import pt.estgp.estgweb.Globals;
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.utl.ist.berserk.logic.serviceManager.IService;
import java.util.ArrayList;
import java.util.List;
/**
* @author Jorge Machado
* @date 4/Mar/2008
* @time 19:48:46
* @see pt.estgp.estgweb.services.announcements
*/
public class LoadTypeMaxAnnouncementsService
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(LoadTypeMaxAnnouncementsService.
class);
private static final int MAX_ANNOUNCEMENTS = ConfigProperties.
getIntProperty("announcements.max.visible");
private static final int MAX_ANNOUNCEMENTS_NEWS = ConfigProperties.
getIntProperty("announcements.max.news.visible");
public List
<AnnouncementView
> run
(1.5.0/docs/api/java/lang/String.html">String type,
1.5.0/docs/api/java/lang/String.html">String subTarget, UserSession userSession
)
{
List
<String
> targetRoles =
null;
if(userSession.
getUser() !=
null)
targetRoles = userSession.
getUser().
getRolesList();
boolean internal =
true;
if (userSession.
getUser() ==
null)
internal =
false;
int max = MAX_ANNOUNCEMENTS
;
if(type
!=
null && type.
equals(Globals.
ANNOUNCEMENT_TYPE_NEWS))
max = MAX_ANNOUNCEMENTS_NEWS
;
List
<Announcement
> announcements = DaoFactory.
getAnnouncementDaoImpl().
findAnnouncements(max,targetRoles,type,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
;
}
public List
<AnnouncementView
> load
(1.5.0/docs/api/java/lang/String.html">String type,
1.5.0/docs/api/java/lang/String.html">String subTarget,
int count, UserSession userSession
)
{
List
<String
> targetRoles =
null;
if(userSession.
getUser() !=
null)
targetRoles = userSession.
getUser().
getRolesList();
boolean internal =
true;
if (userSession.
getUser() ==
null)
internal =
false;
List
<Announcement
> announcements = DaoFactory.
getAnnouncementDaoImpl().
findAnnouncements(count,targetRoles,type,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
;
}
}