From b498076a0bb714af85c548fba1fe628a6f1de0bf Mon Sep 17 00:00:00 2001 From: "ben.clark" Date: Fri, 22 Jan 2010 16:24:52 +0000 Subject: [PATCH] Added WorkingSetDao & Service --- .gitattributes | 2 ++ .../cdm/api/service/IWorkingSetService.java | 27 +++++++++++++++ .../cdm/api/service/WorkingSetService.java | 33 +++++++++++++++++++ 3 files changed, 62 insertions(+) create mode 100644 cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IWorkingSetService.java create mode 100644 cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/WorkingSetService.java diff --git a/.gitattributes b/.gitattributes index db1e5a424c..55ef7fa539 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2309,6 +2309,7 @@ cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/ITermService.java -te cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IUserService.java -text cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IVersionableService.java -text cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IVocabularyService.java -text +cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IWorkingSetService.java -text cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IdentifiableServiceBase.java -text cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IdentificationKeyServiceImpl.java -text cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/LocationServiceImpl.java -text @@ -2325,6 +2326,7 @@ cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/TermServiceImpl.java cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/UserService.java -text cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/VersionableServiceBase.java -text cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/VocabularyServiceImpl.java -text +cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/WorkingSetService.java -text cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/config/IIdentifiableEntityServiceConfigurator.java -text cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/config/INameServiceConfigurator.java -text cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/config/ITaxonServiceConfigurator.java -text diff --git a/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IWorkingSetService.java b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IWorkingSetService.java new file mode 100644 index 0000000000..1de1dc0550 --- /dev/null +++ b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IWorkingSetService.java @@ -0,0 +1,27 @@ +package eu.etaxonomy.cdm.api.service; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +import eu.etaxonomy.cdm.model.description.DescriptionBase; +import eu.etaxonomy.cdm.model.description.DescriptionElementBase; +import eu.etaxonomy.cdm.model.description.Feature; +import eu.etaxonomy.cdm.model.description.WorkingSet; +import eu.etaxonomy.cdm.persistence.query.OrderHint; + +public interface IWorkingSetService extends IAnnotatableService { + /** + * Returns a Map of descriptions each with the descriptionelements that match the supplied features (or all description elements if no features are supplied) + * + * @param workingSet the working set which the descriptions belong to + * @param features restrict the returned description elements to those which have features in this set + * @param pageSize The maximum number of descriptions returned (can be null for all descriptions that belong to the working set) + * @param pageNumber The offset (in pageSize chunks) from the start of the result set (0 - based, + * can be null, equivalent of starting at the beginning of the recordset). Descriptions are sorted by titleCache + * @param propertyPaths properties to be initialized (applied to the descriptionElements) + * @return + */ + public Map> getDescriptionElements(WorkingSet workingSet, Set features, Integer pageSize, Integer pageNumber, List propertyPaths); + +} diff --git a/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/WorkingSetService.java b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/WorkingSetService.java new file mode 100644 index 0000000000..c3a16e06cb --- /dev/null +++ b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/WorkingSetService.java @@ -0,0 +1,33 @@ +package eu.etaxonomy.cdm.api.service; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; + +import eu.etaxonomy.cdm.model.description.DescriptionBase; +import eu.etaxonomy.cdm.model.description.DescriptionElementBase; +import eu.etaxonomy.cdm.model.description.Feature; +import eu.etaxonomy.cdm.model.description.WorkingSet; +import eu.etaxonomy.cdm.persistence.dao.description.IWorkingSetDao; + +@Service +@Transactional(propagation = Propagation.SUPPORTS, readOnly = true) +public class WorkingSetService extends + AnnotatableServiceBase implements IWorkingSetService { + + @Override + @Autowired + protected void setDao(IWorkingSetDao dao) { + this.dao = dao; + } + + public Map> getDescriptionElements(WorkingSet workingSet, Set features, Integer pageSize, Integer pageNumber, + List propertyPaths) { + return dao.getDescriptionElements(workingSet, features, pageSize, pageNumber, propertyPaths); + } +} -- 2.34.1