This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit cf3d892aba1b3c12b51b0c016cd2e879c318386d Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Oct 21 11:56:00 2015 +0200 Ajout d'une méthode de service pour récupérer aussi les champs techniques sur un set de référentiels --- .../v1/ReferentialServiceController.java | 5 ++ .../services/service/ReferentialService.java | 3 + .../services/service/ReferentialServiceTopia.java | 75 +++++++++++++++++----- 3 files changed, 67 insertions(+), 16 deletions(-) diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ReferentialServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ReferentialServiceController.java index 758ceb9..03cbf95 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ReferentialServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ReferentialServiceController.java @@ -45,6 +45,11 @@ public class ReferentialServiceController extends ObserveAuthenticatedServiceCon } @Override + public <R extends ReferentialDto> ReferenceSetDto<R> getReferentialReferenceSet(Class<R> type, boolean loadTechnicalInformations) { + return service.getReferentialReferenceSet(type, loadTechnicalInformations); + } + + @Override public <R extends ReferentialDto> ReferenceSetDto<R> getReferentialReferenceSet(Class<R> type) { return service.getReferentialReferenceSet(type); } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialService.java index 4e2bd25..c283b5e 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialService.java @@ -46,6 +46,9 @@ import java.util.Date; public interface ReferentialService extends ObserveService { @ReadReferentialPermission + <R extends ReferentialDto> ReferenceSetDto<R> getReferentialReferenceSet(Class<R> type, boolean loadTechnicalInformations); + + @ReadReferentialPermission <R extends ReferentialDto> ReferenceSetDto<R> getReferentialReferenceSet(Class<R> type); @ReadReferentialPermission diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialServiceTopia.java index b6d2715..6055619 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialServiceTopia.java @@ -24,13 +24,17 @@ package fr.ird.observe.services.service; import com.google.common.base.Optional; import fr.ird.observe.entities.EntityMap; +import fr.ird.observe.entities.referentiel.ReferenceEntity; import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.DtoMap; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.IdDto; import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.ReferenceSetDto; +import fr.ird.observe.services.dto.ReferenceSetDtos; +import fr.ird.observe.services.dto.constants.ReferenceStatus; import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; import org.nuiton.topia.persistence.TopiaDao; import org.nuiton.topia.persistence.TopiaEntity; @@ -38,6 +42,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Date; +import java.util.LinkedHashSet; import java.util.List; /** @@ -48,8 +53,13 @@ import java.util.List; public class ReferentialServiceTopia extends ObserveServiceTopia implements ReferentialService { @Override - public <D extends ReferentialDto> ReferenceSetDto<D> getReferentialReferenceSet(Class<D> dtoType) { - return getReferenceSet(dtoType); + public <R extends ReferentialDto> ReferenceSetDto<R> getReferentialReferenceSet(Class<R> dtoType) { + return getReferenceSet(dtoType, false); + } + + @Override + public <D extends ReferentialDto> ReferenceSetDto<D> getReferentialReferenceSet(Class<D> dtoType, boolean loadTechnicalInformations) { + return getReferenceSet(dtoType, loadTechnicalInformations); } @Override @@ -61,7 +71,7 @@ public class ReferentialServiceTopia extends ObserveServiceTopia implements Refe Optional<Date> lastUpdateOptional = getLastUpdate(entityType); if (lastUpdateOptional.isPresent() && lastUpdateOptional.get().after(updateAfter)) { - result = getReferenceSet(dtoType); + result = getReferenceSet(dtoType, false); } return result; @@ -77,24 +87,24 @@ public class ReferentialServiceTopia extends ObserveServiceTopia implements Refe @Override public <D extends ReferentialDto> ReferenceDto<D> loadReferenceToRead(Class<D> dtoType, String id) throws DataNotFoundException { - Class<TopiaEntity> entityType = getEntityType(dtoType); - TopiaEntity entity = loadEntity(dtoType, entityType, id); + Class<ReferenceEntity> entityType = getEntityType(dtoType); + ReferenceEntity entity = loadEntity(dtoType, entityType, id); ReferenceDto<D> form = entityToReferenceDto(dtoType, entity); return form; } @Override public <D extends ReferentialDto> FormDto<D> loadToEdit(Class<D> dtoType, String id) { - Class<TopiaEntity> entityType = getEntityType(dtoType); - TopiaEntity entity = loadEntity(dtoType, entityType, id); + Class<ReferenceEntity> entityType = getEntityType(dtoType); + ReferenceEntity entity = loadEntity(dtoType, entityType, id); FormDto<D> form = entityToEditFormDto(dtoType, entityType, entity); return form; } @Override public <D extends ReferentialDto> FormDto<D> preCreate(Class<D> dtoType) { - Class<TopiaEntity> entityType = getEntityType(dtoType); - TopiaEntity entity = newEntity(entityType); + Class<ReferenceEntity> entityType = getEntityType(dtoType); + ReferenceEntity entity = newEntity(entityType); //TODO Voir selon le type d'entité si il y a des valeurs par défaut à utiliser FormDto<D> form = entityToEditFormDto(dtoType, entityType, entity); return form; @@ -102,8 +112,8 @@ public class ReferentialServiceTopia extends ObserveServiceTopia implements Refe public <D extends ReferentialDto> String save(D bean) { Class<D> dtoType = (Class<D>) bean.getClass(); - Class<TopiaEntity> entityType = getEntityType(dtoType); - TopiaEntity entity = dtoToEntity(dtoType, entityType, bean); + Class<ReferenceEntity> entityType = getEntityType(dtoType); + ReferenceEntity entity = dtoToEntity(dtoType, entityType, bean); entity = saveEntity(entityType, entity); FormDto<D> model = entityToEditFormDto(dtoType, entityType, entity); return model.getForm().getId(); @@ -111,13 +121,13 @@ public class ReferentialServiceTopia extends ObserveServiceTopia implements Refe @Override public <D extends ReferentialDto> void delete(Class<D> dtoType, String id) { - Class<? extends TopiaEntity> entityType = getEntityType(dtoType); + Class<? extends ReferenceEntity> entityType = getEntityType(dtoType); deleteEntity(dtoType, entityType, Collections.singleton(id)); } @Override public <D extends ReferentialDto> void delete(Class<D> dtoType, Collection<String> ids) { - Class<? extends TopiaEntity> entityType = getEntityType(dtoType); + Class<? extends ReferenceEntity> entityType = getEntityType(dtoType); deleteEntity(dtoType, entityType, ids); } @@ -125,10 +135,10 @@ public class ReferentialServiceTopia extends ObserveServiceTopia implements Refe public <R extends ReferentialDto> DtoMap findAllUsages(R bean) throws DataNotFoundException { Class<? extends IdDto> referentialDtoType = bean.getClass(); - Class<TopiaEntity> entityType = getEntityType(referentialDtoType); - TopiaEntity entity = loadEntity(referentialDtoType, entityType, bean.getId()); + Class<ReferenceEntity> entityType = getEntityType(referentialDtoType); + ReferenceEntity entity = loadEntity(referentialDtoType, entityType, bean.getId()); - TopiaDao<TopiaEntity> dao = getTopiaPersistenceContext().getDao(entityType); + TopiaDao<ReferenceEntity> dao = getTopiaPersistenceContext().getDao(entityType); EntityMap allUsages = new EntityMap(dao.findAllUsages(entity)); DtoMap result = new DtoMap(); @@ -156,4 +166,37 @@ public class ReferentialServiceTopia extends ObserveServiceTopia implements Refe } return dtos; } + + protected <D extends ReferentialDto, E extends ReferenceEntity> ReferenceSetDto<D> getReferenceSet( + Class<D> dtoType, + boolean loadTechnicalInformations) { + + Class<E> entityType = getEntityType(dtoType); + + Iterable<E> entities = loadEntities(entityType); + + LinkedHashSet<ReferentialReferenceDto<D>> labels = new LinkedHashSet<>(); + for (E entity : entities) { + + ReferentialReferenceDto<D> dto = (ReferentialReferenceDto<D>) entityToReferenceDto(dtoType, entity); + + if (loadTechnicalInformations) { + + dto.setVersion(entity.getTopiaVersion()); + dto.setCreateDate(entity.getTopiaCreateDate()); + dto.setLastUpdate(entity.getLastUpdate()); + dto.setStatus(ReferenceStatus.valueOf(entity.getStatus().name())); + } + labels.add(dto); + + } + + Optional<Date> lastUpdateOptional = getLastUpdate(entityType); + + ReferenceSetDto<D> labelSetDto = ReferenceSetDtos.newReferenceSetDto(dtoType, null, labels, lastUpdateOptional.orNull()); + + return labelSetDto; + + } + } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.