/impl/src/java/pt/estgp/estgweb/Globals.java |
---|
13,7 → 13,8 |
public class Globals |
{ |
public static final String ALL_ROLE = ConfigProperties.getProperty("user.super");; |
public static final int SEARCH_MAX_RESULTS = ConfigProperties.getIntProperty("search.max.results"); |
public static final String ALL_ROLE = ConfigProperties.getProperty("user.super"); |
public static final String ACTUAL_RELATIVE_PATH = "ACTUAL_RELATIVE_PATH"; |
public static final String ADMIN_ROLE = ConfigProperties.getProperty("user.admin"); |
public static final String SUPER_USER_ROLE = ConfigProperties.getProperty("user.super"); |
/impl/src/java/pt/estgp/estgweb/services/blogs/BlogsCommonServices.java |
---|
New file |
0,0 → 1,46 |
package pt.estgp.estgweb.services.blogs; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import pt.estgp.estgweb.services.common.IModuleCommonServices; |
import pt.estgp.estgweb.services.common.SearchTypeEnum; |
import pt.estgp.estgweb.services.common.IToDoCat; |
import pt.estgp.estgweb.services.common.ISearchResults; |
import pt.estgp.estgweb.services.announcements.AnnouncementsCommonServices; |
import pt.estgp.estgweb.domain.UserSession; |
import org.apache.log4j.Logger; |
/* |
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
/** |
* @author Jorge Machado |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
public class BlogsCommonServices implements IService, IModuleCommonServices |
{ |
private static final Logger logger = Logger.getLogger(BlogsCommonServices.class); |
public int countSearch(String search, SearchTypeEnum searchType, UserSession userSession) { |
return 0; //To change body of implemented methods use File | Settings | File Templates. |
} |
public ISearchResults search(String search, SearchTypeEnum searchType, int page, int maxResults, UserSession userSession) { |
return null; //To change body of implemented methods use File | Settings | File Templates. |
} |
public int countToDo(UserSession userSession) { |
return 0; //To change body of implemented methods use File | Settings | File Templates. |
} |
public IToDoCat getToDo(UserSession userSession) { |
return null; //To change body of implemented methods use File | Settings | File Templates. |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/blogs/LoadBlogService.java |
---|
New file |
0,0 → 1,34 |
package pt.estgp.estgweb.services.blogs; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import pt.estgp.estgweb.domain.views.BlogView; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.services.expceptions.ServiceException; |
import org.apache.log4j.Logger; |
/* |
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
/** |
* @author Jorge Machado |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
public class LoadBlogService implements IService |
{ |
private static final Logger logger = Logger.getLogger(LoadBlogService.class); |
public BlogView run(Long id, UserSession userSession) throws ServiceException |
{ |
DaoFactory.getBlogDaoImpl().get(id); |
return new BlogView(DaoFactory.getBlogDaoImpl().get(id)); |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/blogs/CreateBlogService.java |
---|
New file |
0,0 → 1,41 |
package pt.estgp.estgweb.services.blogs; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import pt.estgp.estgweb.services.expceptions.ServiceException; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.Blog; |
import pt.estgp.estgweb.domain.views.BlogView; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.Globals; |
import org.apache.log4j.Logger; |
import java.util.Date; |
/* |
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
/** |
* @author Jorge Machado |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
public class CreateBlogService implements IService |
{ |
private static final Logger logger = Logger.getLogger(CreateBlogService.class); |
public BlogView run(Blog b, UserSession userSession) throws ServiceException |
{ |
if(b.getTargetRoles() == null || b.getTargetRoles().length() == 0) |
b.setTargetRoles(Globals.ALL_ROLE); |
b.setOwner(userSession.getUser()); |
b.setSaveDate(new Date()); |
DaoFactory.getBlogDaoImpl().save(b); |
return new BlogView(b); |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/common/ISearchResults.java |
---|
New file |
0,0 → 1,16 |
package pt.estgp.estgweb.services.common; |
import java.util.List; |
/** |
* @author Jorge Machado |
* @date 24/Abr/2008 |
* @time 14:57:52 |
* @see pt.estgp.estgweb.services.common |
*/ |
public interface ISearchResults |
{ |
public ModuleEnum getModule(); |
public List<IResult> getResults(); |
public int getTotalResults(); |
} |
/impl/src/java/pt/estgp/estgweb/services/common/impl/CommonSearchResults.java |
---|
New file |
0,0 → 1,45 |
package pt.estgp.estgweb.services.common.impl; |
import pt.estgp.estgweb.services.common.ICommonSearchResults; |
import pt.estgp.estgweb.services.common.ISearchResults; |
import java.util.List; |
/** |
* @author Jorge Machado |
* @date 24/Abr/2008 |
* @time 15:51:32 |
* @see pt.estgp.estgweb.services.common.impl |
*/ |
public class CommonSearchResults implements ICommonSearchResults |
{ |
private List<ISearchResults> results; |
private int totalResults = 0; |
public List<ISearchResults> getSearchResults() |
{ |
return results; |
} |
public int getTotalResults() |
{ |
return totalResults; |
} |
public void setResults(List<ISearchResults> results) |
{ |
this.results = results; |
} |
public void setTotalResults(int totalResults) |
{ |
this.totalResults = totalResults; |
} |
public void addMoreResults(int totalResults) |
{ |
this.totalResults += totalResults; |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/common/impl/DefaultToDoCat.java |
---|
New file |
0,0 → 1,32 |
package pt.estgp.estgweb.services.common.impl; |
import pt.estgp.estgweb.services.common.IToDoCat; |
/** |
* @author Jorge Machado |
* @date 24/Abr/2008 |
* @time 16:16:52 |
* @see pt.estgp.estgweb.services.common.impl |
*/ |
public class DefaultToDoCat implements IToDoCat |
{ |
private String url; |
private int totalToDo; |
public String getUrl() { |
return url; |
} |
public void setUrl(String url) { |
this.url = url; |
} |
public int getTotalToDo() { |
return totalToDo; |
} |
public void setTotalToDo(int totalToDo) { |
this.totalToDo = totalToDo; |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/common/impl/DefaultResult.java |
---|
New file |
0,0 → 1,63 |
package pt.estgp.estgweb.services.common.impl; |
import pt.estgp.estgweb.services.common.IResult; |
/** |
* @author Jorge Machado |
* @date 24/Abr/2008 |
* @time 16:13:08 |
* @see pt.estgp.estgweb.services.common.impl |
*/ |
public class DefaultResult implements IResult |
{ |
private String title; |
private String subTitle; |
private String bestFragments; |
private String text; |
private String url; |
public DefaultResult() { |
} |
public void setTitle(String title) { |
this.title = title; |
} |
public void setUrl(String url) { |
this.url = url; |
} |
public void setText(String text) { |
this.text = text; |
} |
public void setBestFragments(String bestFragments) { |
this.bestFragments = bestFragments; |
} |
public String getTitle() { |
return title; |
} |
public String getSubTitle() { |
return subTitle; |
} |
public void setSubTitle(String subTitle) { |
this.subTitle = subTitle; |
} |
public String getBestFragments() { |
return bestFragments; |
} |
public String getText() { |
return text; |
} |
public String getUrl() { |
return url; |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/common/impl/DefaultSearchResults.java |
---|
New file |
0,0 → 1,57 |
package pt.estgp.estgweb.services.common.impl; |
import pt.estgp.estgweb.services.common.ISearchResults; |
import pt.estgp.estgweb.services.common.ModuleEnum; |
import pt.estgp.estgweb.services.common.IResult; |
import java.util.List; |
import java.util.ArrayList; |
/** |
* @author Jorge Machado |
* @date 24/Abr/2008 |
* @time 16:15:32 |
* @see pt.estgp.estgweb.services.common.impl |
*/ |
public class DefaultSearchResults implements ISearchResults |
{ |
private ModuleEnum module; |
private List<IResult> results; |
private int totalResults; |
public ModuleEnum getModule() { |
return module; |
} |
public void setModule(ModuleEnum module) { |
this.module = module; |
} |
public List<IResult> getResults() { |
return results; |
} |
public void setResults(List<IResult> results) { |
this.results = results; |
if(results != null) |
this.totalResults = results.size(); |
else |
this.totalResults = 0; |
} |
public int getTotalResults() { |
return totalResults; |
} |
public void addResult(IResult result) |
{ |
if(result != null) |
totalResults++; |
if(results == null) |
results = new ArrayList<IResult>(); |
results.add(result); |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/common/IToDoCat.java |
---|
New file |
0,0 → 1,13 |
package pt.estgp.estgweb.services.common; |
/** |
* @author Jorge Machado |
* @date 24/Abr/2008 |
* @time 15:00:05 |
* @see pt.estgp.estgweb.services.common |
*/ |
public interface IToDoCat |
{ |
public String getUrl(); |
public int getTotalToDo(); |
} |
/impl/src/java/pt/estgp/estgweb/services/common/CommonServicesManager.java |
---|
New file |
0,0 → 1,213 |
package pt.estgp.estgweb.services.common; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.views.AnnouncementView; |
import pt.estgp.estgweb.web.utils.RequestUtils; |
import pt.estgp.estgweb.web.exceptions.NoCookiesException; |
import pt.estgp.estgweb.web.exceptions.NotAuthorizedException; |
import pt.estgp.estgweb.Globals; |
import pt.estgp.estgweb.services.common.impl.CommonSearchResults; |
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager; |
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager; |
import pt.utl.ist.berserk.logic.serviceManager.exceptions.ServiceManagerException; |
import pt.utl.ist.berserk.logic.filterManager.exceptions.*; |
import java.util.List; |
import java.util.ArrayList; |
import org.apache.log4j.Logger; |
import javax.servlet.http.HttpServletRequest; |
/** |
* @author Jorge Machado |
* @date 24/Abr/2008 |
* @time 14:55:22 |
* @see pt.estgp.estgweb.services.common |
*/ |
public class CommonServicesManager { |
private static final Logger logger = Logger.getLogger(CommonServicesManager.class); |
private static CommonServicesManager ourInstance = new CommonServicesManager(); |
public static CommonServicesManager getInstance() { |
return ourInstance; |
} |
private CommonServicesManager() { |
} |
/** |
* @param request asking |
* @param query to execute |
* @param searchType see SearchTypeEnum |
* @return Cluster of Results for each Module with total module results, only return modules with results |
* @throws Throwable on notAuthorized or internal error |
*/ |
public ICommonSearchResults search(HttpServletRequest request, String query, SearchTypeEnum searchType) throws Throwable { |
return search(RequestUtils.getRequester(request), query, searchType); |
} |
/** |
* @param requester asking |
* @param query to execute |
* @param searchType see SearchTypeEnum |
* @return Cluster of Results for each Module with total module results, only return modules with results |
* @throws Throwable on notAuthorized or internal error |
*/ |
public ICommonSearchResults search(String requester, String query, SearchTypeEnum searchType) throws Throwable { |
CommonSearchResults commonSearchResults = new CommonSearchResults(); |
List<ISearchResults> results = new ArrayList<ISearchResults>(); |
for (ModuleEnum module : ModuleEnum.values()) { |
if (module.getServiceName() != null) { |
ISearchResults iSearchResults = search(requester, query, searchType, module, 0); |
if (iSearchResults.getTotalResults() > 0) { |
results.add(iSearchResults); |
commonSearchResults.addMoreResults(iSearchResults.getTotalResults()); |
} |
} |
} |
commonSearchResults.setResults(results); |
return commonSearchResults; |
} |
/** |
* The service called inside implements method |
* <p/> |
* public ISearchResults search(String search, SearchTypeEnum searchType, int page, int maxResults, UserSession userSession); |
* |
* @param request asking |
* @param query to execute |
* @param searchType see SearchTypeEnum |
* @param moduleKey to search in |
* @param page of start result |
* @return searchResults |
* @throws Throwable on not authorized and internal error |
*/ |
public ISearchResults search(HttpServletRequest request, String query, SearchTypeEnum searchType, String moduleKey, int page) throws Throwable { |
return search(RequestUtils.getRequester(request), query, searchType, ModuleEnum.parse(moduleKey), page); |
} |
/** |
* The service called inside implements method |
* <p/> |
* public ISearchResults search(String search, SearchTypeEnum searchType, int page, int maxResults, UserSession userSession); |
* |
* @param requester asking |
* @param query to execute |
* @param searchType see SearchTypeEnum |
* @param moduleKey to search in |
* @param page of start result |
* @return searchResults |
* @throws Throwable on not authorized and internal error |
*/ |
public ISearchResults search(String requester, String query, SearchTypeEnum searchType, String moduleKey, int page) throws Throwable { |
return search(requester, query, searchType, ModuleEnum.parse(moduleKey), page); |
} |
/** |
* The service called inside implements method |
* <p/> |
* public ISearchResults search(String search, SearchTypeEnum searchType, int page, int maxResults, UserSession userSession); |
* |
* @param requester asking |
* @param query to execute |
* @param searchType see SearchTypeEnum |
* @param moduleKey to search in |
* @param page of start result |
* @return searchResults |
* @throws Throwable on not authorized and internal error |
*/ |
public ISearchResults search(String requester, String query, SearchTypeEnum searchType, ModuleEnum moduleKey, int page) throws Throwable { |
IServiceManager sm; |
try { |
sm = ServiceManager.getInstance(); |
String[] names = new String[]{}; |
Object[] args = new Object[]{query, searchType, page, Globals.SEARCH_MAX_RESULTS}; |
return (ISearchResults) sm.execute(requester, moduleKey.getServiceName(), "search", args, names); |
} |
catch (FilterRetrieveException e) { |
logger.error(e, e); |
throw new NotAuthorizedException(e.toString()); |
} |
catch (Throwable e) { |
logger.error(e, e); |
throw e; |
} |
} |
public List<IToDoCat> getToDoCats(String requester) throws Throwable { |
List<IToDoCat> toDoCats = new ArrayList<IToDoCat>(); |
for (ModuleEnum module : ModuleEnum.values()) { |
if (module.getServiceName() != null) { |
IToDoCat toDoCat = getToDoCats(requester, module); |
if (toDoCat != null) { |
toDoCats.add(toDoCat); |
} |
} |
} |
return toDoCats; |
} |
public IToDoCat getToDoCats(HttpServletRequest request, String moduleKey) throws Throwable { |
return getToDoCats(RequestUtils.getRequester(request), ModuleEnum.parse(moduleKey)); |
} |
public IToDoCat getToDoCats(HttpServletRequest request, ModuleEnum module) throws Throwable { |
return getToDoCats(RequestUtils.getRequester(request), module); |
} |
/** |
* |
* @param requester asking |
* @param module to search |
* @return Number of ToDos in given module |
* @throws Throwable on Error or NotAuthorized Exception |
*/ |
public IToDoCat getToDoCats(String requester, ModuleEnum module) throws Throwable { |
IServiceManager sm; |
try { |
sm = ServiceManager.getInstance(); |
String[] names = new String[]{}; |
Object[] args = new Object[]{}; |
return (IToDoCat) sm.execute(requester, module.getServiceName(), "getToDo", args, names); |
} |
catch (FilterRetrieveException e) { |
logger.error(e, e); |
throw new NotAuthorizedException(e.toString()); |
} |
catch (Throwable e) { |
logger.error(e, e); |
throw e; |
} |
} |
public static void main(String[] args) throws Throwable |
{ |
ICommonSearchResults commonSearchResults = new CommonServicesManager().search("18D0D23A7C07FF478CE8DAFEBA58D37A","teste",SearchTypeEnum.AllWords); |
for(ISearchResults searchResults: commonSearchResults.getSearchResults()) |
{ |
System.out.println("-----------------------------------------------------"); |
System.out.println("Module" + searchResults.getModule().getMessageKey()); |
for(IResult result: searchResults.getResults()) |
{ |
System.out.println(""); |
System.out.println("\ttitle:" +result.getTitle()); |
System.out.println("\tsubTitle:" +result.getSubTitle()); |
System.out.println("\ttext:" +result.getText()); |
System.out.println("\turl:" + result.getUrl()); |
System.out.println("\tbestFragments:" + result.getBestFragments()); |
} |
} |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/common/IResult.java |
---|
New file |
0,0 → 1,16 |
package pt.estgp.estgweb.services.common; |
/** |
* @author Jorge Machado |
* @date 24/Abr/2008 |
* @time 14:58:03 |
* @see pt.estgp.estgweb.services.common |
*/ |
public interface IResult |
{ |
public String getTitle(); |
public String getSubTitle(); |
public String getBestFragments(); |
public String getText(); |
public String getUrl(); |
} |
/impl/src/java/pt/estgp/estgweb/services/common/ICommonSearchResults.java |
---|
New file |
0,0 → 1,15 |
package pt.estgp.estgweb.services.common; |
import java.util.List; |
/** |
* @author Jorge Machado |
* @date 24/Abr/2008 |
* @time 14:56:54 |
* @see pt.estgp.estgweb.services.common |
*/ |
public interface ICommonSearchResults |
{ |
public List<ISearchResults> getSearchResults(); |
public int getTotalResults(); |
} |
/impl/src/java/pt/estgp/estgweb/services/common/ModuleEnum.java |
---|
New file |
0,0 → 1,46 |
package pt.estgp.estgweb.services.common; |
/** |
* @author Jorge Machado |
* @date 24/Abr/2008 |
* @time 15:00:27 |
* @see pt.estgp.estgweb.services.common |
*/ |
public enum ModuleEnum |
{ |
Announcements("module.Announcements","AnnouncementsCommonServices"), |
Events("module.Events",null), |
Blogs("module.Blogs",null), |
Proxy("module.Proxy",null); |
String messageKey; |
String serviceName; |
private ModuleEnum(String messageKey, String serviceName) |
{ |
this.messageKey = messageKey; |
this.serviceName = serviceName; |
} |
public static ModuleEnum parse(String messageKey) |
{ |
for(ModuleEnum module: values()) |
{ |
if(messageKey.equals(module.getMessageKey())) |
return module; |
} |
return null; |
} |
public String getMessageKey() |
{ |
return messageKey; |
} |
public String getServiceName() |
{ |
return serviceName; |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/common/IModuleCommonServices.java |
---|
New file |
0,0 → 1,20 |
package pt.estgp.estgweb.services.common; |
import pt.estgp.estgweb.domain.UserSession; |
/** |
* @author Jorge Machado |
* @date 24/Abr/2008 |
* @time 14:59:16 |
* @see pt.estgp.estgweb.services.common |
*/ |
public interface IModuleCommonServices |
{ |
public int countSearch(String search, SearchTypeEnum searchType, UserSession userSession); |
public ISearchResults search(String search, SearchTypeEnum searchType, int page, int maxResults, UserSession userSession); |
public int countToDo(UserSession userSession); |
public IToDoCat getToDo(UserSession userSession); |
} |
/impl/src/java/pt/estgp/estgweb/services/common/SearchTypeEnum.java |
---|
New file |
0,0 → 1,37 |
package pt.estgp.estgweb.services.common; |
/** |
* @author Jorge Machado |
* @date 24/Abr/2008 |
* @time 15:00:50 |
* @see pt.estgp.estgweb.services.common |
*/ |
public enum SearchTypeEnum |
{ |
ExactPhrase("search.exactPhrase"), |
AnyWord("search.anyWord"), |
AllWords("search.allWords"); |
String messageKey; |
private SearchTypeEnum(String messageKey) |
{ |
this.messageKey = messageKey; |
} |
public static SearchTypeEnum parse(String messageKey) |
{ |
for(SearchTypeEnum searchTypeEnum: values()) |
{ |
if(messageKey.equals(searchTypeEnum.getMessageKey())) |
return searchTypeEnum; |
} |
return null; |
} |
public String getMessageKey() |
{ |
return messageKey; |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/announcements/AnnouncementsCommonServices.java |
---|
New file |
0,0 → 1,100 |
package pt.estgp.estgweb.services.announcements; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import pt.estgp.estgweb.domain.views.AnnouncementView; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.Announcement; |
import pt.estgp.estgweb.domain.UserImpl; |
import pt.estgp.estgweb.domain.UserSessionImpl; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.services.common.*; |
import pt.estgp.estgweb.services.common.impl.DefaultSearchResults; |
import pt.estgp.estgweb.services.common.impl.DefaultResult; |
import pt.estgp.estgweb.Globals; |
import org.apache.log4j.Logger; |
import java.io.Serializable; |
import java.util.List; |
import java.util.ArrayList; |
import jomm.dao.impl.AbstractDao; |
/* |
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
/** |
* @author Jorge Machado |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
public class AnnouncementsCommonServices implements IService, IModuleCommonServices |
{ |
private static final Logger logger = Logger.getLogger(AnnouncementsCommonServices.class); |
public int countSearch(String search, SearchTypeEnum searchType, UserSession userSession) |
{ |
return 0; //To change body of implemented methods use File | Settings | File Templates. |
} |
public ISearchResults search(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(); |
List<Announcement> announcements = DaoFactory.getAnnouncementDaoImpl().searchAnnouncements(search, searchType, maxResults, page, roles,null); |
if(announcements == null) |
return searchResults; |
for(Announcement a: announcements) |
{ |
DefaultResult defaultResult = new DefaultResult(); |
defaultResult.setTitle(a.getTitle()); |
defaultResult.setSubTitle(a.getType()); |
defaultResult.setText(a.getText()); |
defaultResult.setUrl("/loadAnnouncement.do?id=" + a.getId()+"&dispatch=load"); |
searchResults.addResult(defaultResult); |
} |
return searchResults; |
} |
public int countToDo(UserSession userSession) |
{ |
return 0; //To change body of implemented methods use File | Settings | File Templates. |
} |
public IToDoCat getToDo(UserSession userSession) |
{ |
return null; //To change body of implemented methods use File | Settings | File Templates. |
} |
public static void main(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()) |
{ |
System.out.println("title:" +result.getTitle()); |
System.out.println("subTitle:" +result.getSubTitle()); |
System.out.println("text:" +result.getText()); |
System.out.println("url" + result.getUrl()); |
System.out.println("bestFragments" + result.getBestFragments()); |
} |
AbstractDao.commit(); |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/UserImpl.java |
---|
59,17 → 59,14 |
*/ |
public List<String> getOwnerRoles() |
{ |
if(getRoles() == null) |
return null; |
String[] roles = getRoles().split(","); |
List<String> l = new ArrayList<String>(); |
for(String role: roles) |
{ |
l.add(role); |
} |
return l; |
return getRolesList(); |
} |
public List<String> getRolesList() |
{ |
return RoleManager.getRolesFromSerial(getRoles()); |
} |
public Serializable getSerializable() |
{ |
return getId(); |
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/AnnouncementDaoImpl.java |
---|
3,6 → 3,8 |
import pt.estgp.estgweb.domain.Announcement; |
import pt.estgp.estgweb.domain.User; |
import pt.estgp.estgweb.domain.GenericUser; |
import pt.estgp.estgweb.services.common.ISearchResults; |
import pt.estgp.estgweb.services.common.SearchTypeEnum; |
import java.util.List; |
import java.util.ArrayList; |
22,115 → 24,105 |
* @time 2:51:06 |
* @see pt.estgp.estgweb.domain.dao.impl |
*/ |
public class AnnouncementDaoImpl extends AnnouncementDao |
{ |
public static AnnouncementDaoImpl getInstance() |
{ |
public class AnnouncementDaoImpl extends AnnouncementDao { |
public static AnnouncementDaoImpl getInstance() { |
if (myInstance == null) |
myInstance = new AnnouncementDaoImpl(); |
return (AnnouncementDaoImpl) myInstance; |
} |
public List<Announcement> findAnnouncements(int maxAnnouncements,List<String> roles,String subTarget) |
{ |
if(roles == null) |
{ |
public List<Announcement> findAnnouncements(int maxAnnouncements, List<String> roles, String subTarget) { |
if (roles == null) { |
roles = new ArrayList<String>(); |
roles.add("all"); |
} |
Criteria criteria = createCriteria(); |
Criterion co = null; |
for(String role: roles) |
{ |
Criterion cor = like("targetRoles","%" + role + "%"); |
if(co == null) |
for (String role : roles) { |
Criterion cor = like("targetRoles", "%" + role + "%"); |
if (co == null) |
co = cor; |
else |
co = or(co,cor); |
co = or(co, cor); |
} |
Criterion coSubTargets=null; |
Criterion coSubTargets = null; |
if(subTarget==null) |
{ |
coSubTargets=isNull("subTargets"); |
if (subTarget == null) { |
coSubTargets = isNull("subTargets"); |
} |
else |
{ |
coSubTargets =eq("subTargets",subTarget); |
else { |
coSubTargets = eq("subTargets", subTarget); |
} |
MyCalendar cNow = new MyCalendar(); |
MyCalendar calendarWithOutTime = new MyCalendar(cNow.getYear(),cNow.getMonth(),cNow.getDay()); |
MyCalendar calendarWithOutTime = new MyCalendar(cNow.getYear(), cNow.getMonth(), cNow.getDay()); |
Date now = calendarWithOutTime.getTime(); |
criteria.add(co) |
.add(or(or(lt("startDate",now),eq("startDate",now)),isNull("startDate"))) |
.add(or(or(gt("expireDate",now),eq("expireDate",now)),isNull("expireDate"))) |
.add(eq("status",true)) |
.add(or(or(lt("startDate", now), eq("startDate", now)), isNull("startDate"))) |
.add(or(or(gt("expireDate", now), eq("expireDate", now)), isNull("expireDate"))) |
.add(eq("status", true)) |
.add(coSubTargets) |
.setMaxResults(maxAnnouncements) |
.addOrder(Order.desc("saveDate")); |
return criteria.list(); |
} |
public List<Announcement> findAnnouncements(int maxAnnouncements,List<String> roles,String type,String subTarget) |
{ |
return findAnnouncements(0,maxAnnouncements,roles, type,subTarget); |
public List<Announcement> findAnnouncements(int maxAnnouncements, List<String> roles, String type, String subTarget) { |
return findAnnouncements(0, maxAnnouncements, roles, type, subTarget); |
} |
public List<Announcement> findAnnouncements(int startPage, int maxAnnouncements,List<String> roles,String type,String subTarget) |
{ |
Criteria criteria = createMaxAnnouncementsRolesTypeCriteria(maxAnnouncements, roles,type,subTarget); |
return criteria.setFirstResult(maxAnnouncements*startPage).list(); |
public List<Announcement> findAnnouncements(int startPage, int maxAnnouncements, List<String> roles, String type, String subTarget) { |
Criteria criteria = createMaxAnnouncementsRolesTypeCriteria(maxAnnouncements, roles, type, subTarget); |
return criteria.setFirstResult(maxAnnouncements * startPage).list(); |
} |
public int countAnnouncements(int maxAnnouncements,List<String> roles,String type,String subTarget) |
{ |
Criteria criteria = createMaxAnnouncementsRolesTypeCriteria(Integer.MAX_VALUE, roles,type,subTarget); |
public int countAnnouncements(int maxAnnouncements, List<String> roles, String type, String subTarget) { |
Criteria criteria = createMaxAnnouncementsRolesTypeCriteria(Integer.MAX_VALUE, roles, type, subTarget); |
return criteria.list().size(); |
} |
private Criteria createMaxAnnouncementsRolesTypeCriteria(int maxAnnouncements,List<String> roles,String type,String subTarget) |
{ |
if(roles == null) |
{ |
private Criteria createMaxAnnouncementsRolesTypeCriteria(int maxAnnouncements, List<String> roles, String type, String subTarget) { |
return createMaxAnnouncementsPageRolesTypeCriteria(0, maxAnnouncements, roles, type, subTarget); |
} |
private Criteria createMaxAnnouncementsPageRolesTypeCriteria(int page, int maxAnnouncements, List<String> roles, String type, String subTarget) { |
if (roles == null) { |
roles = new ArrayList<String>(); |
roles.add("all"); |
} |
Criteria criteria = createCriteria(); |
Criterion coRole = null; |
for(String role: roles) |
{ |
Criterion cor = like("targetRoles","%" + role + "%"); |
if(coRole == null) |
for (String role : roles) { |
Criterion cor = like("targetRoles", "%" + role + "%"); |
if (coRole == null) |
coRole = cor; |
else |
coRole = or(coRole,cor); |
coRole = or(coRole, cor); |
} |
Criterion coSubTargets=null; |
Criterion coSubTargets = null; |
if(subTarget==null) |
{ |
coSubTargets=isNull("subTargets"); |
if (subTarget == null) { |
coSubTargets = isNull("subTargets"); |
} |
else |
{ |
coSubTargets =eq("subTargets",subTarget); |
else { |
coSubTargets = eq("subTargets", subTarget); |
} |
Criterion coType=eq("type",type); |
if(type != null) |
criteria.add(eq("type", type)); |
MyCalendar cNow = new MyCalendar(); |
MyCalendar calendarWithOutTime = new MyCalendar(cNow.getYear(),cNow.getMonth(),cNow.getDay()); |
MyCalendar calendarWithOutTime = new MyCalendar(cNow.getYear(), cNow.getMonth(), cNow.getDay()); |
Date now = calendarWithOutTime.getTime(); |
criteria.add(coRole) |
.add(coType) |
.add(or(or(lt("startDate",now),eq("startDate",now)),isNull("startDate"))) |
.add(or(or(gt("expireDate",now),eq("expireDate",now)),isNull("expireDate"))) |
.add(eq("status",true)) |
.add(or(or(lt("startDate", now), eq("startDate", now)), isNull("startDate"))) |
.add(or(or(gt("expireDate", now), eq("expireDate", now)), isNull("expireDate"))) |
.add(eq("status", true)) |
.add(coSubTargets) |
.setFirstResult(page * maxAnnouncements) |
.setMaxResults(maxAnnouncements) |
.addOrder(Order.desc("saveDate")); |
return criteria; |
} |
/* public static void main(String[] args) |
/* public static void main(String[] args) |
{ |
AbstractDao.getCurrentSession().beginTransaction(); |
List<String> roles = new ArrayList<String>(); |
150,4 → 142,35 |
} |
AbstractDao.getCurrentSession().beginTransaction().commit(); |
}*/ |
public List<Announcement> searchAnnouncements(String query, SearchTypeEnum searchTypeEnum, int maxAnnouncements, int page, List<String> roles, String subTarget) { |
Criterion c = null; |
if (searchTypeEnum == SearchTypeEnum.ExactPhrase) |
c = or(like("text", "%" + query + "%"), like("title", "%" + query + "%")); |
else if (searchTypeEnum == SearchTypeEnum.AllWords) { |
String[] fields = query.split(" "); |
for (String field : fields) { |
if (c == null) |
c = or(like("text", "%" + field + "%"), like("title", "%" + field + "%")); |
else |
c = and(c, or(like("text", "%" + field + "%"), like("title", "%" + field + "%"))); |
} |
} |
else { |
String[] fields = query.split(" "); |
for (String field : fields) { |
if (c == null) |
c = or(like("text", "%" + field + "%"), like("title", "%" + field + "%")); |
else |
c = or(c, or(like("text", "%" + field + "%"), like("title", "%" + field + "%"))); |
} |
} |
Criteria criteria = createMaxAnnouncementsPageRolesTypeCriteria(page, maxAnnouncements, roles, null, null); |
criteria.add(c); |
return criteria.list(); |
} |
} |
/impl/src/java/pt/estgp/estgweb/web/form/AddRolesForm.java |
---|
1,8 → 1,6 |
package pt.estgp.estgweb.web.form; |
import pt.estgp.estgweb.domain.views.BlogView; |
import pt.estgp.estgweb.Globals; |
import pt.estgp.estgweb.web.form.blog.BlogForm; |
import java.util.List; |
10,7 → 8,7 |
* @author Jorge Machado |
* @date 21/Abr/2008 |
* @time 14:28:59 |
* @see pt.estgp.estgweb.web.form.blog |
* @see pt.estgp.estgweb.web.form.blogs |
*/ |
public class AddRolesForm extends ApplicationForm |
{ |
/impl/src/java/pt/estgp/estgweb/web/form/blogs/BlogForm.java |
---|
New file |
0,0 → 1,36 |
package pt.estgp.estgweb.web.form.blogs; |
import pt.estgp.estgweb.domain.views.BlogView; |
import pt.estgp.estgweb.web.form.AddRolesForm; |
import org.apache.struts.upload.FormFile; |
/** |
* @author Jorge Machado |
* @date 21/Abr/2008 |
* @time 14:28:59 |
* @see pt.estgp.estgweb.web.form.blogs |
*/ |
public class BlogForm extends AddRolesForm |
{ |
private BlogView blogView = new BlogView(); |
private FormFile image; |
public BlogView getBlogView() { |
return blogView; |
} |
public void setBlogView(BlogView blogView) { |
this.blogView = blogView; |
} |
public FormFile getImage() { |
return image; |
} |
public void setImage(FormFile image) { |
this.image = image; |
} |
} |
/impl/src/java/pt/estgp/estgweb/web/controllers/blogs/BlogsController.java |
---|
New file |
0,0 → 1,111 |
package pt.estgp.estgweb.web.controllers.blogs; |
import pt.estgp.estgweb.web.controllers.AddRolesController; |
import pt.estgp.estgweb.web.utils.RequestUtils; |
import pt.estgp.estgweb.web.form.blogs.BlogForm; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.views.BlogView; |
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager; |
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager; |
import pt.utl.ist.berserk.logic.serviceManager.exceptions.FilterChainFailedException; |
import org.apache.log4j.Logger; |
import org.apache.struts.action.*; |
import org.apache.struts.upload.FormFile; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import javax.servlet.ServletException; |
import java.io.InputStream; |
import java.io.ByteArrayOutputStream; |
import java.util.Date; |
/** |
* @author Jorge Machado |
* @date 26/Fev/2008 |
* @time 18:01:54 |
* @see pt.estgp.estgweb.web |
*/ |
public class BlogsController extends AddRolesController { |
private static final Logger logger = Logger.getLogger(BlogsController.class); |
public ActionForward save(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws Throwable, ServletException { |
try { |
BlogForm blogForm = (BlogForm) form; |
if (blogForm.getBlogView().getId() <= 0) { |
Blog blog = DomainObjectFactory.createBlogImpl(); |
blogForm.getBlogView().persistViewInObject(blog); |
IServiceManager sm = ServiceManager.getInstance(); |
if (blogForm.getImage().getFileSize() != 0) { |
FormFile image = blogForm.getImage(); |
InputStream stream = image.getInputStream(); |
ByteArrayOutputStream b = new ByteArrayOutputStream(); |
int readedBytes; |
byte[] buf = new byte[1024]; |
while ((readedBytes = stream.read(buf)) > 0) { |
b.write(buf, 0, readedBytes); |
} |
b.close(); |
Image i = DomainObjectFactory.createImageImpl(); |
i.setImage(b.toByteArray()); |
i.setContentType(image.getContentType()); |
i.setSize(image.getFileSize()); |
i.setDescription(blog.getTitle()); |
i.setName(image.getFileName()); |
i.setSaveDate(new Date()); |
blog.setImage(i); |
} |
String[] names = new String[]{"object"}; |
Object[] args = new Object[]{blog}; |
BlogView bV = (BlogView) sm.execute(RequestUtils.getRequester(request), "CreateBlog", args, names); |
addMessage(request, "blog.created.success", "" + bV.getId()); |
request.setAttribute("BlogView", bV); |
return mapping.findForward("success"); |
} else { |
BlogView bV = blogForm.getBlogView(); |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{"object"}; |
Object[] args = new Object[]{bV}; |
bV = (BlogView) sm.execute(RequestUtils.getRequester(request), "EditBlog", args, names); |
addMessage(request, "blog.edited.success", "" + bV.getId()); |
return mapping.findForward("success"); |
} |
} |
catch (FilterChainFailedException e) { |
return mapping.findForward("error401"); |
} |
catch (Throwable e) { |
logger.error(e, e); |
throw e; |
} |
} |
public ActionForward load(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws Throwable, ServletException { |
try |
{ |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{"serializable"}; |
Object[] args = new Object[]{Long.parseLong(request.getParameter("id"))}; |
BlogView bV = (BlogView) sm.execute(RequestUtils.getRequester(request), "LoadBlog", args, names); |
request.setAttribute("BlogView", bV); |
return mapping.findForward("success"); |
} |
catch (FilterChainFailedException e) { |
return mapping.findForward("error401"); |
} |
catch (Throwable e) { |
logger.error(e, e); |
throw e; |
} |
} |
} |