+// $Id$\r
+/**\r
+ * Copyright (C) 2007 EDIT\r
+ * European Distributed Institute of Taxonomy \r
+ * http://www.e-taxonomy.eu\r
+ * \r
+ * The contents of this file are subject to the Mozilla Public License Version 1.1\r
+ * See LICENSE.TXT at the top of this package for the full license terms.\r
+ */\r
+\r
package eu.etaxonomy.cdm.api.service;\r
\r
+import java.io.IOException;\r
+import java.net.MalformedURLException;\r
+import java.net.ServerSocket;\r
+import java.net.Socket;\r
+import java.net.URI;\r
+import java.net.URL;\r
+import java.net.URLConnection;\r
import java.util.ArrayList;\r
-import java.util.Collection;\r
import java.util.List;\r
import java.util.Map;\r
import java.util.Set;\r
-import java.util.UUID;\r
\r
import org.springframework.beans.factory.annotation.Autowired;\r
import org.springframework.stereotype.Service;\r
\r
import eu.etaxonomy.cdm.api.service.pager.Pager;\r
import eu.etaxonomy.cdm.api.service.pager.impl.DefaultPagerImpl;\r
-import eu.etaxonomy.cdm.model.description.IdentificationKey;\r
+import eu.etaxonomy.cdm.common.mediaMetaData.MediaMetaData;\r
+import eu.etaxonomy.cdm.model.description.MediaKey;\r
import eu.etaxonomy.cdm.model.location.NamedArea;\r
import eu.etaxonomy.cdm.model.media.Media;\r
-import eu.etaxonomy.cdm.model.media.MediaRepresentation;\r
-import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;\r
+import eu.etaxonomy.cdm.model.media.Rights;\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
import eu.etaxonomy.cdm.persistence.dao.media.IMediaDao;\r
-import eu.etaxonomy.cdm.persistence.dao.media.IMediaRepresentationDao;\r
-import eu.etaxonomy.cdm.persistence.dao.media.IMediaRepresentationPartDao;\r
+import eu.etaxonomy.cdm.persistence.query.OrderHint;\r
\r
@Service\r
-@Transactional\r
-public class MediaServiceImpl extends AnnotatableServiceBase<Media,IMediaDao> implements IMediaService {\r
- \r
- @Autowired\r
- private IMediaRepresentationDao mediaRepresentationDao;\r
- \r
- @Autowired\r
- private IMediaRepresentationPartDao mediaRepresentationPartDao; \r
- \r
- @Transactional(readOnly = false)\r
- public Map<UUID, Media> saveMediaAll(Collection<Media> mediaCollection){\r
- return saveCdmObjectAll(mediaCollection);\r
- //TODO: Fix saveAll() types\r
-// return mediaDao.saveAll(mediaCollection);\r
- }\r
-\r
- public List<Media> getAllMedia(int limit, int start){\r
- return dao.list(limit, start);\r
- }\r
-\r
- public List<MediaRepresentation> getAllMediaRepresentations(int limit, int start){\r
- return mediaRepresentationDao.list(limit, start);\r
- }\r
-\r
- public List<MediaRepresentationPart> getAllMediaRepresentationParts(int limit, int start){\r
- return mediaRepresentationPartDao.list(limit, start);\r
- }\r
+@Transactional(readOnly=true)\r
+public class MediaServiceImpl extends IdentifiableServiceBase<Media,IMediaDao> implements IMediaService {\r
\r
@Autowired\r
protected void setDao(IMediaDao dao) {\r
this.dao = dao;\r
}\r
\r
- public Pager<IdentificationKey> getIdentificationKeys(Set<Taxon> taxonomicScope, Set<NamedArea> geoScopes, Integer pageSize, Integer pageNumber) {\r
- Integer numberOfResults = dao.countIdentificationKeys(taxonomicScope, geoScopes);\r
+ public Pager<MediaKey> getMediaKeys(Set<Taxon> taxonomicScope, Set<NamedArea> geoScopes, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {\r
+ Integer numberOfResults = dao.countMediaKeys(taxonomicScope, geoScopes);\r
\r
- List<IdentificationKey> results = new ArrayList<IdentificationKey>();\r
+ List<MediaKey> results = new ArrayList<MediaKey>();\r
if(numberOfResults > 0) { // no point checking again\r
- results = dao.getIdentificationKeys(taxonomicScope, geoScopes, pageSize, pageNumber); \r
+ results = dao.getMediaKeys(taxonomicScope, geoScopes, pageSize, pageNumber, propertyPaths); \r
}\r
\r
- return new DefaultPagerImpl<IdentificationKey>(pageNumber, numberOfResults, pageSize, results);\r
+ return new DefaultPagerImpl<MediaKey>(pageNumber, numberOfResults, pageSize, results);\r
+ }\r
+ \r
+ public Pager<Rights> getRights(Media t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {\r
+ Integer numberOfResults = dao.countRights(t);\r
+ \r
+ List<Rights> results = new ArrayList<Rights>();\r
+ if(numberOfResults > 0) { // no point checking again\r
+ results = dao.getRights(t, pageSize, pageNumber,propertyPaths); \r
+ }\r
+ \r
+ return new DefaultPagerImpl<Rights>(pageNumber, numberOfResults, pageSize, results);\r
+ }\r
+ \r
+ public Pager<Media> search(Class<? extends Media> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {\r
+ Integer numberOfResults = dao.count(clazz,queryString);\r
+ \r
+ List<Media> results = new ArrayList<Media>();\r
+ if(numberOfResults > 0) { // no point checking again\r
+ results = dao.search(clazz,queryString, pageSize, pageNumber, orderHints, propertyPaths); \r
+ }\r
+ \r
+ return new DefaultPagerImpl<Media>(pageNumber, numberOfResults, pageSize, results);\r
+ }\r
+\r
+ public void generateTitleCache() {\r
+ // TODO Auto-generated method stub\r
+ \r
+ }\r
+ \r
+ public Map<String,String> getImageMetaData(URI uri, Integer timeOut){\r
+ \r
+ Map <String,String> results ;\r
+ results = dao.getMediaMetaData(uri, timeOut);\r
+ return results;\r
}\r
}\r