/** * */ package org.inbio.m3s.gwt.server.rpcimpl; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; import org.inbio.gwt.galleries.client.dto.DisplayInfo; import org.inbio.m3s.gwt.client.exception.RPCIllegalArgumentException; import org.inbio.m3s.gwt.client.rpcinterface.SearchMediaRPC; import org.inbio.m3s.gwt.client.widgets.galleries.SearchCriteriaTriplet; import org.inbio.m3s.gwt.server.factories.DisplayInfoFactory; import org.inbio.m3s.manager.SearchManager; import org.inbio.m3s.util.ServiceUtil; import org.inbio.m3s.dao.core.MediaDAO; import org.inbio.m3s.dto.lite.MediaLite; import com.google.gwt.core.client.GWT; import com.google.gwt.user.server.rpc.RemoteServiceServlet; /** * @author jgutierrez * */ public class SearchMediaRPCImpl extends RemoteServiceServlet implements SearchMediaRPC { private static final long serialVersionUID = -5281193521083493788L; private static Logger logger = Logger.getLogger(SearchMediaRPCImpl.class); /** * */ public List<DisplayInfo> getLastPublicMedia(int quantity) throws RPCIllegalArgumentException { logger.debug("getLastPublicMedia"); System.out.println("getLastPublicMedia"); MediaDAO mediaDAO = (MediaDAO) ServiceUtil.appContext.getBean("mediaDAO"); List<MediaLite> mediaLiteList = mediaDAO.getLastPublicMedia(quantity); System.out.println("Cantidad de resulatados> "+mediaLiteList.size()); return DisplayInfoFactory.createDisplayInfoList(mediaLiteList); } /** * @param searchCriteria * with a list of SearchCriteriaTriplet's * * @return the total of results gotten * @deprecated must be checked if its ok! */ public Integer getTotalResults(List<SearchCriteriaTriplet> searchCriteria) throws RPCIllegalArgumentException { logger.debug("numero de tripletas " + searchCriteria.size()); try { return SearchManager.getTotalResults(searchCriteria); } catch (Exception e) { throw new RPCIllegalArgumentException(e.getMessage()); } } /** * Gets a subset of the results of a given query * * @param searchCriteria * @param first * @param quantity * @return a list of DisplayInfoBrief * @throws RPCIllegalArgumentException * @deprecated must be checked if its ok! */ @SuppressWarnings("unchecked") public List<DisplayInfo> getResults(List searchCriteria, int first, int quantity) throws RPCIllegalArgumentException { try { List<Integer> mediaIds = SearchManager.getResults(searchCriteria, first, quantity); MediaDAO mediaDAO = (MediaDAO) ServiceUtil.appContext.getBean("mediaDAO"); List<MediaLite> mediaLiteList = new ArrayList<MediaLite>(); for(Integer mediaId : mediaIds) mediaLiteList.add(mediaDAO.getMediaLite(mediaId)); return DisplayInfoFactory.createDisplayInfoList(mediaLiteList); //return (List) SearchManager.getResults(searchCriteria, first, quantity); } catch (Exception e) { throw new RPCIllegalArgumentException(e.getMessage()); } } /** * * @param mediaId * @return a List with the neded info for creating a simple thumb * @deprecated must be checked if its ok! */ public List<String> getThumbInfo(Integer mediaId) { List<String> result = new ArrayList<String>(); MediaDAO mediaDAO = (MediaDAO) ServiceUtil.appContext.getBean("mediaDAO"); MediaLite mediaLite = mediaDAO.getMediaLite(mediaId); // TODO // en pos 0: URL // result.add(ImageDispatcher.getImageAddress(mediaId, // ImageDispatcher.THUMP_IMAGE)); result.add(GWT.getModuleBaseURL() + "getImage?size=thumb&link=false&id=" + mediaId); // en pos 1: media Title //result.add(MultimediaDAO.getTitle(mediaId)); result.add(mediaLite.getTitle()); // en pos3: media Description //result.add(MultimediaDAO.getDescription(mediaId)); result.add(mediaLite.getDescription()); return result; } /** * * @param mediaId * @return a List with the neded info for creating a simple big * @deprecated must be checked if its ok! */ public List<String> getBigInfo(Integer mediaId) { List<String> result = new ArrayList<String>(); MediaDAO mediaDAO = (MediaDAO) ServiceUtil.appContext.getBean("mediaDAO"); MediaLite mediaLite = mediaDAO.getMediaLite(mediaId); // TODO // en pos 0: URL result.add(GWT.getModuleBaseURL() + "getImage?size=big&link=false&id=" + mediaId); // en pos 1: media Title //result.add(MultimediaDAO.getTitle(mediaId)); result.add(mediaLite.getTitle()); // en pos3: media Description //result.add(MultimediaDAO.getDescription(mediaId)); result.add(mediaLite.getDescription()); return result; } }