This is an automated email from the git hooks/post-receive script. New commit to branch feature/refactor_reference in repository tutti. See http://git.codelutin.com/tutti.git commit 67fe01b9b450f83c56db13e218a39b83b3dfa2ce Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Nov 29 15:15:12 2015 +0100 Suppression des dto Reference, ReferenceSet et Form --- .../services/service/ObserveReferentialCache.java | 151 +++----- .../services/service/ReferenceSetService.java | 28 -- .../services/service/ReferenceSetsRequest.java | 37 ++ .../services/service/ReferentialService.java | 25 +- .../actions/validate/ValidateResultForDto.java | 8 +- .../actions/validate/ValidateResultForDtoType.java | 4 +- .../longline/ActivityLongLineEncouterService.java | 4 +- .../ActivityLongLineSensorUsedService.java | 4 +- .../service/longline/ActivityLonglineService.java | 14 +- .../service/longline/BranchlineService.java | 4 +- .../service/longline/SetLonglineCatchService.java | 4 +- .../SetLonglineDetailCompositionService.java | 4 +- .../SetLonglineGlobalCompositionService.java | 4 +- .../service/longline/SetLonglineService.java | 10 +- .../services/service/longline/TdrService.java | 4 +- .../longline/TripLonglineGearUseService.java | 4 +- .../service/longline/TripLonglineService.java | 16 +- .../seine/ActivitySeineObservedSystemService.java | 4 +- .../service/seine/ActivitySeineService.java | 14 +- .../service/seine/FloatingObjectService.java | 14 +- .../service/seine/NonTargetCatchService.java | 4 +- .../service/seine/NonTargetSampleService.java | 4 +- .../seine/ObjectObservedSpeciesService.java | 4 +- .../service/seine/ObjectSchoolEstimateService.java | 4 +- .../services/service/seine/RouteService.java | 14 +- .../service/seine/SchoolEstimateService.java | 4 +- .../services/service/seine/SetSeineService.java | 10 +- .../services/service/seine/TargetCatchService.java | 4 +- .../service/seine/TargetSampleService.java | 4 +- .../seine/TransmittingBuoyOperationService.java | 4 +- .../service/seine/TripSeineGearUseService.java | 4 +- .../services/service/seine/TripSeineService.java | 16 +- .../observe/services/dto/AbstractReference.java | 163 +++++++++ .../observe/services/dto/AbstractReferenceSet.java | 68 ++++ .../fr/ird/observe/services/dto/DataReference.java | 71 ++++ ...otFoundException.java => DataReferenceSet.java} | 41 +-- .../java/fr/ird/observe/services/dto/Form.java | 95 +++++ .../java/fr/ird/observe/services/dto/FormDto.java | 171 --------- .../java/fr/ird/observe/services/dto/FormDtos.java | 44 --- .../java/fr/ird/observe/services/dto/IdDtos.java | 28 +- .../fr/ird/observe/services/dto/ReferenceDto.java | 181 ---------- .../fr/ird/observe/services/dto/ReferenceDtos.java | 128 ------- .../ird/observe/services/dto/ReferenceSetDto.java | 126 ------- .../ird/observe/services/dto/ReferenceSetDtos.java | 86 ----- .../services/dto/constants/ReferentialLocale.java | 26 +- .../observe/services/dto/gson/FormDtoAdapter.java | 34 -- .../services/dto/gson/ObserveDtoGsonSupplier.java | 29 +- .../dto/gson/ObserveReferenceSetAdapter.java | 122 ------- .../services/dto/gson/ReferenceDtoAdapter.java | 133 ------- .../dto/gson/ReferentialReferenceDtoAdapter.java | 57 --- .../services/dto/gson/ReportVariableAdapter.java | 13 +- .../gson/reference/AbstractReferenceAdapter.java | 131 +++++++ .../reference/AbstractReferenceSetAdapter.java | 83 +++++ .../dto/gson/reference/DataReferenceAdapter.java | 49 +++ .../gson/reference/DataReferenceSetAdapter.java | 37 ++ .../reference/ReferentialReferenceAdapter.java | 100 ++++++ .../reference/ReferentialReferenceSetAdapter.java | 50 +++ .../dto/longline/ActivityLonglineDtos.java | 24 -- .../dto/longline/LonglinePositionAwareDto.java | 14 +- .../services/dto/longline/TripLonglineDtos.java | 27 -- .../dto/reference/DataReferenceSetDefinitions.java | 163 +++++++++ .../services/dto/reference/ObserveReference.java | 61 ---- .../dto/reference/ObserveReferenceSet.java | 125 ------- .../dto/reference/ObserveReferenceSetRequest.java | 43 --- .../dto/reference/ObserveReferenceSetResult.java | 72 ---- .../dto/reference/ObserveReferentialReference.java | 89 ----- ...Definition.java => ReferenceSetDefinition.java} | 14 +- ...ava => ReferentialReferenceSetDefinitions.java} | 82 +++-- .../builder/AbstractToReferenceBuilder.java | 110 ++++++ .../reference/builder/DataToReferenceBuilder.java | 47 +++ .../builder/ReferentialToReferenceBuilder.java | 97 +++++ .../ObserveReferenceSetRequestDefinition.java | 53 --- .../ObserveReferenceSetRequestDefinitions.java | 391 --------------------- .../request/ReferenceSetRequestDefinition.java | 87 +++++ .../request/ReferenceSetRequestDefinitions.java | 371 +++++++++++++++++++ .../ReferenceSetRequestKeyDefinition.java} | 30 +- .../dto/referential/I18nReferentialDtos.java | 42 +++ .../services/dto/referential/PersonDtos.java | 31 +- .../services/dto/referential/ProgramDtos.java | 32 +- .../services/dto/referential/ReferentialDtos.java | 16 +- .../dto/referential/ReferentialReference.java | 93 +++++ .../dto/referential/ReferentialReferenceDto.java | 120 ------- .../dto/referential/ReferentialReferenceDtos.java | 48 --- .../dto/referential/ReferentialReferenceSet.java | 68 ++++ .../services/dto/result/SaveResultDtos.java | 2 +- .../services/dto/seine/ActivitySeineDtos.java | 22 -- .../services/dto/seine/FloatingObjectDtos.java | 26 -- .../seine/FloatingObjectTransmittingBuoyDto.java | 4 +- .../ird/observe/services/dto/seine/RouteDtos.java | 21 -- .../observe/services/dto/seine/TripSeineDtos.java | 28 -- 90 files changed, 2300 insertions(+), 2652 deletions(-) diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/ObserveReferentialCache.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/ObserveReferentialCache.java index e6facfd..6f89b3f 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/ObserveReferentialCache.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/ObserveReferentialCache.java @@ -1,16 +1,12 @@ package fr.ird.observe.services.service; import com.google.common.collect.ImmutableMap; -import fr.ird.observe.services.dto.FormDto; -import fr.ird.observe.services.dto.ReferenceSetDto; -import fr.ird.observe.services.dto.reference.ObserveReference; -import fr.ird.observe.services.dto.reference.ObserveReferenceSet; -import fr.ird.observe.services.dto.reference.ObserveReferenceSetRequest; -import fr.ird.observe.services.dto.reference.ObserveReferenceSetResult; -import fr.ird.observe.services.dto.reference.ObserveReferentialReference; -import fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetRequestDefinition; -import fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetRequestDefinitions; -import fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetRequestKeyDefinition; +import com.google.common.collect.ImmutableSet; +import fr.ird.observe.services.dto.reference.ReferenceSetDefinition; +import fr.ird.observe.services.dto.reference.request.ReferenceSetRequestDefinition; +import fr.ird.observe.services.dto.reference.request.ReferenceSetRequestDefinitions; +import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.dto.referential.ReferentialReferenceSet; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -18,10 +14,11 @@ import java.io.Closeable; import java.io.Serializable; import java.util.Date; import java.util.LinkedHashMap; -import java.util.LinkedHashSet; import java.util.Map; /** + * Un cache de référentiels. + * * Created on 10/11/15. * * @author Tony Chemit - chemit@codelutin.com @@ -33,61 +30,68 @@ public class ObserveReferentialCache implements Closeable, Serializable { /** Logger. */ private static final Log log = LogFactory.getLog(ObserveReferentialCache.class); - private final Map<ObserveReferenceSetRequestKeyDefinition<?>, ReferenceSetDto<?>> cache; + private final Map<Class<? extends ReferentialDto>, ReferentialReferenceSet<?>> cache; public ObserveReferentialCache() { this.cache = new LinkedHashMap<>(); } - public void loadReferenceSets(ReferenceSetService referenceSetService, FormDto<?> formDto) { + public <D extends ReferentialDto> ReferentialReferenceSet<D> getReferentialReferenceSet(ReferentialService referentialService, Class<D> type) { + + ReferentialReferenceSet<D> referenceSetDto = (ReferentialReferenceSet<D>) cache.get(type); + + Date lastUpdate = null; + if (referenceSetDto != null) { + lastUpdate = referenceSetDto.getLastUpdate(); + } + + ReferentialReferenceSet<D> lastReferenceSetDto = referentialService.getReferenceSet(type, lastUpdate); + if (lastReferenceSetDto != null) { + + cache.put(type, lastReferenceSetDto); + referenceSetDto = lastReferenceSetDto; + + } + + return referenceSetDto; + + } + + public ImmutableMap<Class<?>, ReferentialReferenceSet<?>> loadReferenceSets(ReferentialService referentialService, String referentialRequestName) { - LinkedHashSet<ReferenceSetDto> values = new LinkedHashSet<>(); + ImmutableMap.Builder<Class<?>, ReferentialReferenceSet<?>> result = ImmutableMap.builder(); - String referentialRequestName = formDto.getReferentialReferenceSetRequestName(); if (referentialRequestName != null) { if (log.isInfoEnabled()) { log.info("Loading referantialReferenceSetRequest: " + referentialRequestName); } - ImmutableMap<String, Date> lastUpdateDates = getLastUpdateDates(referentialRequestName); + ReferenceSetRequestDefinition requestDefinition = ReferenceSetRequestDefinitions.get(referentialRequestName); - ObserveReferenceSetRequest request = new ObserveReferenceSetRequest(); + ImmutableMap<Class<?>, Date> lastUpdateDates = getLastUpdateDates(referentialRequestName); + + ReferenceSetsRequest request = new ReferenceSetsRequest(); request.setRequestName(referentialRequestName); request.setLastUpdateDates(lastUpdateDates); - ObserveReferenceSetResult<ObserveReferentialReference> referenceSetResult = referenceSetService.loadReferentialReferenceSets(request); + ImmutableSet<ReferentialReferenceSet<?>> referenceSetResult = referentialService.getReferentialReferenceSets(request); - ImmutableMap<String, ReferenceSetDto<?>> referenceSets = loadReferenceSets(referenceSetResult); - values.addAll(referenceSets.values()); - } + for (ReferentialReferenceSet<?> referentialReferenceSet : referenceSetResult) { - String dataRequestName = formDto.getDataReferenceSetRequestName(); - if (dataRequestName != null) { + cache.put(referentialReferenceSet.getType(), referentialReferenceSet); - if (log.isInfoEnabled()) { - log.info("Loading dataReferenceSetRequest: " + dataRequestName); } - ObserveReferenceSetRequest request = new ObserveReferenceSetRequest(); - request.setRequestName(dataRequestName); - request.setLastUpdateDates(ImmutableMap.<String, Date>of()); - ObserveReferenceSetResult<ObserveReference> referenceSetResult = referenceSetService.loadDataReferenceSets(request); - ImmutableMap<String, ObserveReferenceSet<?, ObserveReference>> referenceSets = referenceSetResult.getReferenceSets(); + for (ReferenceSetDefinition<? extends ReferentialDto> referentialReferenceSetDefinition : requestDefinition.getReferentialReferenceSetDefinitions()) { - ObserveReferenceSetRequestDefinition requestDefinition = ObserveReferenceSetRequestDefinitions.get(dataRequestName); - for (ObserveReferenceSetRequestKeyDefinition requestKeyDefinition : requestDefinition.getKeys()) { - - String requestKeyDefinitionName = requestKeyDefinition.getName(); - ObserveReferenceSet<?, ObserveReference> referenceSet = referenceSets.get(requestKeyDefinitionName); - - ReferenceSetDto<?> referenceSetDto = referenceSet.toReferenceSetDto(requestKeyDefinitionName); - values.add(referenceSetDto); + Class<? extends ReferentialDto> type = referentialReferenceSetDefinition.getType(); + ReferentialReferenceSet<?> referentialReferenceSet = cache.get(type); + result.put(type, referentialReferenceSet); } - } - formDto.setLabels(values); + return result.build(); } @@ -97,18 +101,19 @@ public class ObserveReferentialCache implements Closeable, Serializable { * @param requestName le nom de la requète * @return le dictionnaire des dates de dernières mises à jour pour chaque ensemble de référentiels */ - public ImmutableMap<String, Date> getLastUpdateDates(String requestName) { + public ImmutableMap<Class<?>, Date> getLastUpdateDates(String requestName) { - ObserveReferenceSetRequestDefinition requestDefinition = ObserveReferenceSetRequestDefinitions.get(requestName); + ReferenceSetRequestDefinition requestDefinition = ReferenceSetRequestDefinitions.get(requestName); - ImmutableMap.Builder<String, Date> builder = ImmutableMap.builder(); + ImmutableMap.Builder<Class<?>, Date> builder = ImmutableMap.builder(); - for (ObserveReferenceSetRequestKeyDefinition requestKeyDefinition : requestDefinition.getKeys()) { + for (ReferenceSetDefinition<? extends ReferentialDto> referentialSetDefinition : requestDefinition.getReferentialReferenceSetDefinitions()) { - ReferenceSetDto<?> referenceSetDto = cache.get(requestKeyDefinition); + Class<? extends ReferentialDto> type = referentialSetDefinition.getType(); + ReferentialReferenceSet<?> referenceSetDto = cache.get(type); if (referenceSetDto != null) { Date lastUpdate = referenceSetDto.getLastUpdate(); - builder.put(requestKeyDefinition.getName(), lastUpdate); + builder.put(type, lastUpdate); } } @@ -117,61 +122,9 @@ public class ObserveReferentialCache implements Closeable, Serializable { } - /** - * Pour récupérer les ensembles de référentiels à partir du résultat d'une requète. - * - * Le cache sera mis à jour si nécessaire avec les données entrantes. - * - * @param referenceSetResult le résultat de la requète de demande d'ensemble de référentiels - * @return le dictionnaire des ensembles de référentiels complêt - */ - public ImmutableMap<String, ReferenceSetDto<?>> loadReferenceSets(ObserveReferenceSetResult<ObserveReferentialReference> referenceSetResult) { - - ObserveReferenceSetRequestDefinition requestDefinition = ObserveReferenceSetRequestDefinitions.get(referenceSetResult.getRequestName()); - - ImmutableMap.Builder<String, ReferenceSetDto<?>> builder = ImmutableMap.builder(); - - // Les référentiels mis à jour via la requète - ImmutableMap<String, ObserveReferenceSet<?, ObserveReferentialReference>> referenceSets = referenceSetResult.getReferenceSets(); - - for (ObserveReferenceSetRequestKeyDefinition requestKeyDefinition : requestDefinition.getKeys()) { - - ReferenceSetDto<?> referenceSetDto; - - String requestKeyDefinitionName = requestKeyDefinition.getName(); - ObserveReferenceSet<?, ObserveReferentialReference> referenceSet = referenceSets.get(requestKeyDefinitionName); - - if (referenceSet != null) { - - // on met à jour le cache avec les données entrantes - referenceSetDto = referenceSet.toReferenceSetDto(requestKeyDefinitionName); - cache.put(requestKeyDefinition, referenceSetDto); - - if (log.isInfoEnabled()) { - log.info("Update cache entry for " + requestKeyDefinition); - } - - } else { - - // on récupère du cache, rien n'a changé pour cette entrée - referenceSetDto = cache.get(requestKeyDefinition); - - if (log.isInfoEnabled()) { - log.info("Get cache entry for " + requestKeyDefinition); - } - - } - - builder.put(requestKeyDefinitionName, referenceSetDto); - - } - - return builder.build(); - - } - @Override public void close() { cache.clear(); } + } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetService.java deleted file mode 100644 index 2ce25b3..0000000 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetService.java +++ /dev/null @@ -1,28 +0,0 @@ -package fr.ird.observe.services.service; - -import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.dto.ReferenceSetDto; -import fr.ird.observe.services.dto.reference.ObserveReference; -import fr.ird.observe.services.dto.reference.ObserveReferenceSetRequest; -import fr.ird.observe.services.dto.reference.ObserveReferentialReference; -import fr.ird.observe.services.dto.reference.ObserveReferenceSetResult; -import fr.ird.observe.services.spi.ReadDataPermission; -import fr.ird.observe.services.spi.ReadReferentialPermission; - -/** - * Pour gérer les {@link ReferenceSetDto}. - * - * Created on 11/11/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public interface ReferenceSetService extends ObserveService { - - @ReadDataPermission - ObserveReferenceSetResult<ObserveReference> loadDataReferenceSets(ObserveReferenceSetRequest request); - - @ReadReferentialPermission - ObserveReferenceSetResult<ObserveReferentialReference> loadReferentialReferenceSets(ObserveReferenceSetRequest request); - - -} diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetsRequest.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetsRequest.java new file mode 100644 index 0000000..1551b41 --- /dev/null +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferenceSetsRequest.java @@ -0,0 +1,37 @@ +package fr.ird.observe.services.service; + +import com.google.common.collect.ImmutableMap; + +import java.util.Date; + +/** + * Pour demander plusieurs ensembles de références dans un même appel. + * + * Created on 10/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @see ReferentialService#getReferentialReferenceSets(ReferenceSetsRequest) + */ +public class ReferenceSetsRequest { + + private String requestName; + + private ImmutableMap<Class<?>, Date> lastUpdateDates; + + public String getRequestName() { + return requestName; + } + + public void setRequestName(String requestName) { + this.requestName = requestName; + } + + public ImmutableMap<Class<?>, Date> getLastUpdateDates() { + return lastUpdateDates; + } + + public void setLastUpdateDates(ImmutableMap<Class<?>, Date> lastUpdateDates) { + this.lastUpdateDates = lastUpdateDates; + } + +} 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 dc35e0e..d5c4bf6 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 @@ -22,12 +22,13 @@ package fr.ird.observe.services.service; * #L% */ +import com.google.common.collect.ImmutableSet; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.dto.DtoMap; -import fr.ird.observe.services.dto.FormDto; -import fr.ird.observe.services.dto.ReferenceDto; -import fr.ird.observe.services.dto.ReferenceSetDto; +import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.dto.referential.ReferentialReferenceSet; import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.spi.DeleteRequest; import fr.ird.observe.services.spi.PostRequest; @@ -47,28 +48,23 @@ import java.util.Date; public interface ReferentialService extends ObserveService { @ReadReferentialPermission - <R extends ReferentialDto> ReferenceSetDto<R> getReferentialReferenceSetWithTechnicalInformations(Class<R> type); + <R extends ReferentialDto> ReferentialReferenceSet<R> getReferenceSet(Class<R> type, Date lastUpdateDate); @ReadReferentialPermission - <R extends ReferentialDto> ReferenceSetDto<R> getReferentialReferenceSet(Class<R> type); - - @ReadReferentialPermission - <R extends ReferentialDto> ReferenceSetDto<R> getReferentialReferenceSetIfModify(Class<R> type, Date updateAfter); + ImmutableSet<ReferentialReferenceSet<?>> getReferentialReferenceSets(ReferenceSetsRequest request); + //FIXME charger cela dans le cache côté applicatif @ReadReferentialPermission SpeciesDto loadSpecies(String id); @ReadReferentialPermission - <R extends ReferentialDto> FormDto<R> loadToRead(Class<R> type, String id) throws DataNotFoundException; + <R extends ReferentialDto> Form<R> loadForm(Class<R> type, String id) throws DataNotFoundException; @ReadReferentialPermission - <R extends ReferentialDto> ReferenceDto<R> loadReferenceToRead(Class<R> programDtoClass, String id) throws DataNotFoundException; - - @WriteReferentialPermission - <R extends ReferentialDto> FormDto<R> loadToEdit(Class<R> type, String id) throws DataNotFoundException; + <R extends ReferentialDto> ReferentialReference<R> loadReference(Class<R> type, String id) throws DataNotFoundException; @WriteReferentialPermission - <R extends ReferentialDto> FormDto<R> preCreate(Class<R> type); + <R extends ReferentialDto> Form<R> preCreate(Class<R> type); @WriteReferentialPermission @Write @@ -85,6 +81,7 @@ public interface ReferentialService extends ObserveService { @DeleteRequest <R extends ReferentialDto> void delete(Class<R> type, Collection<String> ids) throws DataNotFoundException; + //FIXME Pfff, on ne veut pas récuperer des dto, mais des références @ReadReferentialPermission @ReadDataPermission <R extends ReferentialDto> DtoMap findAllUsages(R bean) throws DataNotFoundException; diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/validate/ValidateResultForDto.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/validate/ValidateResultForDto.java index b11a126..ed4e4d0 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/validate/ValidateResultForDto.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/validate/ValidateResultForDto.java @@ -23,9 +23,9 @@ package fr.ird.observe.services.service.actions.validate; */ import com.google.common.collect.ImmutableSet; +import fr.ird.observe.services.dto.AbstractReference; import fr.ird.observe.services.dto.IdDto; import fr.ird.observe.services.dto.ObserveDto; -import fr.ird.observe.services.dto.ReferenceDto; /** * Les résultats de la validation d'un dto. @@ -37,16 +37,16 @@ import fr.ird.observe.services.dto.ReferenceDto; */ public class ValidateResultForDto<D extends IdDto> implements ObserveDto { - protected final ReferenceDto<D> dto; + protected final AbstractReference<D> dto; protected final ImmutableSet<ValidationMessage> messages; - public ValidateResultForDto(ReferenceDto<D> dto, ImmutableSet<ValidationMessage> messages) { + public ValidateResultForDto(AbstractReference<D> dto, ImmutableSet<ValidationMessage> messages) { this.dto = dto; this.messages = messages; } - public ReferenceDto<D> getDto() { + public AbstractReference<D> getDto() { return dto; } diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/validate/ValidateResultForDtoType.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/validate/ValidateResultForDtoType.java index ce86dd3..21b8d49 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/validate/ValidateResultForDtoType.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/actions/validate/ValidateResultForDtoType.java @@ -26,9 +26,9 @@ import com.google.common.base.Optional; import com.google.common.base.Predicate; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; +import fr.ird.observe.services.dto.AbstractReference; import fr.ird.observe.services.dto.IdDto; import fr.ird.observe.services.dto.ObserveDto; -import fr.ird.observe.services.dto.ReferenceDto; /** * Le résultat d'une validation d'un type de dto donné. @@ -52,7 +52,7 @@ public class ValidateResultForDtoType<D extends IdDto> implements ObserveDto { return validateResultForDto; } - public ValidateResultForDto<D> getValidateResult(final ReferenceDto<D> referenceDto) { + public ValidateResultForDto<D> getValidateResult(final AbstractReference<D> referenceDto) { Optional<ValidateResultForDto<D>> resultForDtoOptional = Iterables.tryFind(validateResultForDto, new Predicate<ValidateResultForDto<D>>() { @Override public boolean apply(ValidateResultForDto<D> input) { diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLongLineEncouterService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLongLineEncouterService.java index 1fb7ecb..5fe4fe9 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLongLineEncouterService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLongLineEncouterService.java @@ -23,7 +23,7 @@ package fr.ird.observe.services.service.longline; */ import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.longline.ActivityLonglineEncouterDto; import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.spi.PostRequest; @@ -37,7 +37,7 @@ import fr.ird.observe.services.spi.WriteDataPermission; public interface ActivityLongLineEncouterService extends ObserveService { @ReadDataPermission - FormDto<ActivityLonglineEncouterDto> loadForm(String activityLonglineId); + Form<ActivityLonglineEncouterDto> loadForm(String activityLonglineId); @WriteDataPermission @Write diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLongLineSensorUsedService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLongLineSensorUsedService.java index 223e3b8..08e08a2 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLongLineSensorUsedService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLongLineSensorUsedService.java @@ -23,7 +23,7 @@ package fr.ird.observe.services.service.longline; */ import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.longline.ActivityLonglineSensorUsedDto; import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.spi.PostRequest; @@ -37,7 +37,7 @@ import fr.ird.observe.services.spi.WriteDataPermission; public interface ActivityLongLineSensorUsedService extends ObserveService { @ReadDataPermission - FormDto<ActivityLonglineSensorUsedDto> loadForm(String activityLonglineId); + Form<ActivityLonglineSensorUsedDto> loadForm(String activityLonglineId); @WriteDataPermission @Write diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLonglineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLonglineService.java index c8d5776..82eb34b 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLonglineService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/ActivityLonglineService.java @@ -23,9 +23,9 @@ package fr.ird.observe.services.service.longline; */ import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.dto.FormDto; -import fr.ird.observe.services.dto.ReferenceDto; -import fr.ird.observe.services.dto.ReferenceSetDto; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.result.TripChildSaveResultDto; import fr.ird.observe.services.spi.DeleteRequest; @@ -42,25 +42,25 @@ import java.util.List; public interface ActivityLonglineService extends ObserveService { @ReadDataPermission - ReferenceSetDto<ActivityLonglineDto> getActivityLonglineByTripLongline(String tripLonglineId); + DataReferenceSet<ActivityLonglineDto> getActivityLonglineByTripLongline(String tripLonglineId); @ReadDataPermission int getActivityLonglinePositionInTripLongline(String tripLonglineId, String activityLonglineId); @ReadDataPermission - FormDto<ActivityLonglineDto> loadForm(String activityLonglineId); + Form<ActivityLonglineDto> loadForm(String activityLonglineId); @ReadDataPermission ActivityLonglineDto loadDto(String activityLonglineId); @ReadDataPermission - ReferenceDto<ActivityLonglineDto> loadReferenceToRead(String activityLonglineId); + DataReference<ActivityLonglineDto> loadReferenceToRead(String activityLonglineId); @ReadDataPermission boolean exists(String activityLonglineId); @WriteDataPermission - FormDto<ActivityLonglineDto> preCreate(String tripLonglineId); + Form<ActivityLonglineDto> preCreate(String tripLonglineId); @Write @WriteDataPermission diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/BranchlineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/BranchlineService.java index f3e5f1b..f6583d7 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/BranchlineService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/BranchlineService.java @@ -1,7 +1,7 @@ package fr.ird.observe.services.service.longline; import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.longline.BranchlineDto; import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; @@ -14,7 +14,7 @@ import fr.ird.observe.services.spi.WriteDataPermission; public interface BranchlineService extends ObserveService { @ReadDataPermission - FormDto<BranchlineDto> loadForm(String branchlineId); + Form<BranchlineDto> loadForm(String branchlineId); @Write @WriteDataPermission diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineCatchService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineCatchService.java index 5558aa6..ff30a20 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineCatchService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineCatchService.java @@ -23,7 +23,7 @@ package fr.ird.observe.services.service.longline; */ import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.longline.SetLonglineCatchDto; import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.spi.PostRequest; @@ -37,7 +37,7 @@ import fr.ird.observe.services.spi.WriteDataPermission; public interface SetLonglineCatchService extends ObserveService { @ReadDataPermission - FormDto<SetLonglineCatchDto> loadForm(String setLonglineId); + Form<SetLonglineCatchDto> loadForm(String setLonglineId); @Write @WriteDataPermission diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineDetailCompositionService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineDetailCompositionService.java index 40d41e8..996ec6b 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineDetailCompositionService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineDetailCompositionService.java @@ -23,7 +23,7 @@ package fr.ird.observe.services.service.longline; */ import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.longline.SetLonglineDetailCompositionDto; import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.spi.PostRequest; @@ -37,7 +37,7 @@ import fr.ird.observe.services.spi.WriteDataPermission; public interface SetLonglineDetailCompositionService extends ObserveService { @ReadDataPermission - FormDto<SetLonglineDetailCompositionDto> loadForm(String setLonglineId); + Form<SetLonglineDetailCompositionDto> loadForm(String setLonglineId); @WriteDataPermission boolean canDeleteSection(String sectionId); diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineGlobalCompositionService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineGlobalCompositionService.java index 29d5536..bbeaa4e 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineGlobalCompositionService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineGlobalCompositionService.java @@ -23,7 +23,7 @@ package fr.ird.observe.services.service.longline; */ import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionDto; import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.spi.PostRequest; @@ -37,7 +37,7 @@ import fr.ird.observe.services.spi.WriteDataPermission; public interface SetLonglineGlobalCompositionService extends ObserveService { @ReadDataPermission - FormDto<SetLonglineGlobalCompositionDto> loadForm(String setLonglineId); + Form<SetLonglineGlobalCompositionDto> loadForm(String setLonglineId); @Write @WriteDataPermission diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineService.java index 3e8ada7..b94c047 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/SetLonglineService.java @@ -23,8 +23,8 @@ package fr.ird.observe.services.service.longline; */ import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.dto.FormDto; -import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.longline.SetLonglineDto; import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.spi.DeleteRequest; @@ -39,19 +39,19 @@ import fr.ird.observe.services.spi.WriteDataPermission; public interface SetLonglineService extends ObserveService { @ReadDataPermission - FormDto<SetLonglineDto> loadForm(String setLonglineId); + Form<SetLonglineDto> loadForm(String setLonglineId); @ReadDataPermission SetLonglineDto loadDto(String setLonglineId); @ReadDataPermission - ReferenceDto<SetLonglineDto> loadReferenceToRead(String setLonglineId); + DataReference<SetLonglineDto> loadReferenceToRead(String setLonglineId); @ReadDataPermission boolean exists(String setLonglineId); @WriteDataPermission - FormDto<SetLonglineDto> preCreate(String activityLonglineId); + Form<SetLonglineDto> preCreate(String activityLonglineId); @WriteDataPermission @Write diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/TdrService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/TdrService.java index 1004972..edc36a2 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/TdrService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/TdrService.java @@ -23,7 +23,7 @@ package fr.ird.observe.services.service.longline; */ import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.longline.SetLonglineTdrDto; import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.spi.PostRequest; @@ -37,7 +37,7 @@ import fr.ird.observe.services.spi.WriteDataPermission; public interface TdrService extends ObserveService { @ReadDataPermission - FormDto<SetLonglineTdrDto> loadForm(String setLonglineId); + Form<SetLonglineTdrDto> loadForm(String setLonglineId); @Write @WriteDataPermission diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/TripLonglineGearUseService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/TripLonglineGearUseService.java index 8f5f633..839f56c 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/TripLonglineGearUseService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/TripLonglineGearUseService.java @@ -23,7 +23,7 @@ package fr.ird.observe.services.service.longline; */ import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.longline.TripLonglineGearUseDto; import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.spi.PostRequest; @@ -37,7 +37,7 @@ import fr.ird.observe.services.spi.WriteDataPermission; public interface TripLonglineGearUseService extends ObserveService { @ReadDataPermission - FormDto<TripLonglineGearUseDto> loadForm(String tripLonglineId); + Form<TripLonglineGearUseDto> loadForm(String tripLonglineId); @Write @WriteDataPermission diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/TripLonglineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/TripLonglineService.java index 2bd6ab6..9e39a0a 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/TripLonglineService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/longline/TripLonglineService.java @@ -23,9 +23,9 @@ package fr.ird.observe.services.service.longline; */ import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.dto.FormDto; -import fr.ird.observe.services.dto.ReferenceDto; -import fr.ird.observe.services.dto.ReferenceSetDto; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.TripMapDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.dto.result.SaveResultDto; @@ -43,10 +43,10 @@ import java.util.List; public interface TripLonglineService extends ObserveService { @ReadDataPermission - ReferenceSetDto<TripLonglineDto> getAllTripLongline(); + DataReferenceSet<TripLonglineDto> getAllTripLongline(); @ReadDataPermission - ReferenceSetDto<TripLonglineDto> getTripLonglineByProgram(String programId); + DataReferenceSet<TripLonglineDto> getTripLonglineByProgram(String programId); @ReadDataPermission int getTripLonglinePositionInProgram(String programId, String tripLonglineId); @@ -55,19 +55,19 @@ public interface TripLonglineService extends ObserveService { TripMapDto getTripLonglineMap(String tripLonglineId); @ReadDataPermission - FormDto<TripLonglineDto> loadForm(String tripLonglineId); + Form<TripLonglineDto> loadForm(String tripLonglineId); @ReadDataPermission TripLonglineDto loadDto(String tripLonglineId); @ReadDataPermission - ReferenceDto<TripLonglineDto> loadReferenceToRead(String tripLonglineId); + DataReference<TripLonglineDto> loadReferenceToRead(String tripLonglineId); @ReadDataPermission boolean exists(String tripLonglineId); @WriteDataPermission - FormDto<TripLonglineDto> preCreate(String programId); + Form<TripLonglineDto> preCreate(String programId); @Write @WriteDataPermission diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineObservedSystemService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineObservedSystemService.java index b053d46..4104b85 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineObservedSystemService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineObservedSystemService.java @@ -23,7 +23,7 @@ package fr.ird.observe.services.service.seine; */ import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.dto.seine.ActivitySeineObservedSystemDto; import fr.ird.observe.services.spi.PostRequest; @@ -37,7 +37,7 @@ import fr.ird.observe.services.spi.WriteDataPermission; public interface ActivitySeineObservedSystemService extends ObserveService { @ReadDataPermission - FormDto<ActivitySeineObservedSystemDto> loadForm(String activitySeineId); + Form<ActivitySeineObservedSystemDto> loadForm(String activitySeineId); @Write @WriteDataPermission diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineService.java index c6414b2..cbe696f 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ActivitySeineService.java @@ -23,9 +23,9 @@ package fr.ird.observe.services.service.seine; */ import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.dto.FormDto; -import fr.ird.observe.services.dto.ReferenceDto; -import fr.ird.observe.services.dto.ReferenceSetDto; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.spi.DeleteRequest; @@ -42,25 +42,25 @@ import java.util.List; public interface ActivitySeineService extends ObserveService { @ReadDataPermission - ReferenceSetDto<ActivitySeineDto> getActivitySeineByRoute(String routeId); + DataReferenceSet<ActivitySeineDto> getActivitySeineByRoute(String routeId); @ReadDataPermission int getActivitySeinePositionInRoute(String routeId, String activitySeineId); @ReadDataPermission - FormDto<ActivitySeineDto> loadForm(String activitySeineId); + Form<ActivitySeineDto> loadForm(String activitySeineId); @ReadDataPermission ActivitySeineDto loadDto(String activitySeineId); @ReadDataPermission - ReferenceDto<ActivitySeineDto> loadReferenceToRead(String activitySeineId); + DataReference<ActivitySeineDto> loadReferenceToRead(String activitySeineId); @ReadDataPermission boolean exists(String activitySeineId); @WriteDataPermission - FormDto<ActivitySeineDto> preCreate(String routeId); + Form<ActivitySeineDto> preCreate(String routeId); @Write @WriteDataPermission diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/FloatingObjectService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/FloatingObjectService.java index 4b105b6..cdb6479 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/FloatingObjectService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/FloatingObjectService.java @@ -23,9 +23,9 @@ package fr.ird.observe.services.service.seine; */ import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.dto.FormDto; -import fr.ird.observe.services.dto.ReferenceDto; -import fr.ird.observe.services.dto.ReferenceSetDto; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.seine.FloatingObjectDto; import fr.ird.observe.services.spi.DeleteRequest; import fr.ird.observe.services.spi.PostRequest; @@ -39,22 +39,22 @@ import fr.ird.observe.services.spi.WriteDataPermission; public interface FloatingObjectService extends ObserveService { @ReadDataPermission - ReferenceSetDto<FloatingObjectDto> getFloatingObjectByActivitySeine(String activitySeineId); + DataReferenceSet<FloatingObjectDto> getFloatingObjectByActivitySeine(String activitySeineId); @ReadDataPermission - FormDto<FloatingObjectDto> loadForm(String floatingObjectId); + Form<FloatingObjectDto> loadForm(String floatingObjectId); @ReadDataPermission FloatingObjectDto loadDto(String floatingObjectId); @ReadDataPermission - ReferenceDto<FloatingObjectDto> loadReferenceToRead(String floatingObjectId); + DataReference<FloatingObjectDto> loadReferenceToRead(String floatingObjectId); @ReadDataPermission boolean exists(String floatingObjectId); @WriteDataPermission - FormDto<FloatingObjectDto> preCreate(String activitySeineId); + Form<FloatingObjectDto> preCreate(String activitySeineId); @Write @WriteDataPermission diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/NonTargetCatchService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/NonTargetCatchService.java index 54fd2e7..df1b67b 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/NonTargetCatchService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/NonTargetCatchService.java @@ -23,7 +23,7 @@ package fr.ird.observe.services.service.seine; */ import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.dto.seine.SetSeineNonTargetCatchDto; import fr.ird.observe.services.spi.PostRequest; @@ -37,7 +37,7 @@ import fr.ird.observe.services.spi.WriteDataPermission; public interface NonTargetCatchService extends ObserveService { @ReadDataPermission - FormDto<SetSeineNonTargetCatchDto> loadForm(String setSeineId, String tripSeineId); + Form<SetSeineNonTargetCatchDto> loadForm(String setSeineId, String tripSeineId); @Write @WriteDataPermission diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/NonTargetSampleService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/NonTargetSampleService.java index 906e25b..754d06f 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/NonTargetSampleService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/NonTargetSampleService.java @@ -23,7 +23,7 @@ package fr.ird.observe.services.service.seine; */ import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.seine.NonTargetSampleDto; import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; @@ -39,7 +39,7 @@ public interface NonTargetSampleService extends ObserveService { boolean canUseNonTargetSample(String setSeineId); @ReadDataPermission - FormDto<NonTargetSampleDto> loadForm(String setSeineId); + Form<NonTargetSampleDto> loadForm(String setSeineId); @Write @WriteDataPermission diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ObjectObservedSpeciesService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ObjectObservedSpeciesService.java index 6ecd5ad..3196fb6 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ObjectObservedSpeciesService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ObjectObservedSpeciesService.java @@ -23,7 +23,7 @@ package fr.ird.observe.services.service.seine; */ import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.seine.FloatingObjectObservedSpeciesDto; import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; @@ -36,7 +36,7 @@ import fr.ird.observe.services.spi.WriteDataPermission; public interface ObjectObservedSpeciesService extends ObserveService { @ReadDataPermission - FormDto<FloatingObjectObservedSpeciesDto> loadForm(String floatingObjectId); + Form<FloatingObjectObservedSpeciesDto> loadForm(String floatingObjectId); @Write @WriteDataPermission diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ObjectSchoolEstimateService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ObjectSchoolEstimateService.java index dcc0d1c..b887381 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ObjectSchoolEstimateService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/ObjectSchoolEstimateService.java @@ -23,7 +23,7 @@ package fr.ird.observe.services.service.seine; */ import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.seine.FloatingObjectSchoolEstimateDto; import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; @@ -36,7 +36,7 @@ import fr.ird.observe.services.spi.WriteDataPermission; public interface ObjectSchoolEstimateService extends ObserveService { @ReadDataPermission - FormDto<FloatingObjectSchoolEstimateDto> loadForm(String floatingObjectId); + Form<FloatingObjectSchoolEstimateDto> loadForm(String floatingObjectId); @Write @WriteDataPermission diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/RouteService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/RouteService.java index 107dc9f..a8ee0c6 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/RouteService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/RouteService.java @@ -23,9 +23,9 @@ package fr.ird.observe.services.service.seine; */ import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.dto.FormDto; -import fr.ird.observe.services.dto.ReferenceDto; -import fr.ird.observe.services.dto.ReferenceSetDto; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.result.TripChildSaveResultDto; import fr.ird.observe.services.dto.seine.RouteDto; import fr.ird.observe.services.spi.DeleteRequest; @@ -42,25 +42,25 @@ import java.util.List; public interface RouteService extends ObserveService { @ReadDataPermission - ReferenceSetDto<RouteDto> getRouteByTripSeine(String tripSeineId); + DataReferenceSet<RouteDto> getRouteByTripSeine(String tripSeineId); @ReadDataPermission int getRoutePositionInTripSeine(String tripSeineId, String routeId); @ReadDataPermission - FormDto<RouteDto> loadForm(String routeId); + Form<RouteDto> loadForm(String routeId); @ReadDataPermission RouteDto loadDto(String routeId); @ReadDataPermission - ReferenceDto<RouteDto> loadReferenceToRead(String routeId); + DataReference<RouteDto> loadReferenceToRead(String routeId); @ReadDataPermission boolean exists(String routeId); @WriteDataPermission - FormDto<RouteDto> preCreate(String tripSeineId); + Form<RouteDto> preCreate(String tripSeineId); @Write @WriteDataPermission diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/SchoolEstimateService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/SchoolEstimateService.java index f403330..41e5c50 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/SchoolEstimateService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/SchoolEstimateService.java @@ -23,7 +23,7 @@ package fr.ird.observe.services.service.seine; */ import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.seine.SetSeineSchoolEstimateDto; import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; @@ -36,7 +36,7 @@ import fr.ird.observe.services.spi.WriteDataPermission; public interface SchoolEstimateService extends ObserveService { @ReadDataPermission - FormDto<SetSeineSchoolEstimateDto> loadForm(String setSeineId, String tripSeineId); + Form<SetSeineSchoolEstimateDto> loadForm(String setSeineId, String tripSeineId); @Write @WriteDataPermission diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/SetSeineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/SetSeineService.java index a4b2a74..d8439aa 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/SetSeineService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/SetSeineService.java @@ -23,8 +23,8 @@ package fr.ird.observe.services.service.seine; */ import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.dto.FormDto; -import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.seine.SetSeineDto; import fr.ird.observe.services.spi.DeleteRequest; import fr.ird.observe.services.spi.PostRequest; @@ -38,19 +38,19 @@ import fr.ird.observe.services.spi.WriteDataPermission; public interface SetSeineService extends ObserveService { @ReadDataPermission - FormDto<SetSeineDto> loadForm(String setSeineId); + Form<SetSeineDto> loadForm(String setSeineId); @ReadDataPermission SetSeineDto loadDto(String setSeineId); @ReadDataPermission - ReferenceDto<SetSeineDto> loadReferenceToRead(String setSeineId); + DataReference<SetSeineDto> loadReferenceToRead(String setSeineId); @ReadDataPermission boolean exists(String setSeineId); @WriteDataPermission - FormDto<SetSeineDto> preCreate(String routeId, String activitySeineId); + Form<SetSeineDto> preCreate(String routeId, String activitySeineId); @Write @WriteDataPermission diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TargetCatchService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TargetCatchService.java index e67d627..be5bdb1 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TargetCatchService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TargetCatchService.java @@ -23,7 +23,7 @@ package fr.ird.observe.services.service.seine; */ import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.dto.seine.SetSeineTargetCatchDto; import fr.ird.observe.services.spi.PostRequest; @@ -37,7 +37,7 @@ import fr.ird.observe.services.spi.WriteDataPermission; public interface TargetCatchService extends ObserveService { @ReadDataPermission - FormDto<SetSeineTargetCatchDto> loadForm(String setSeineId, boolean discarded, String tripSeineId); + Form<SetSeineTargetCatchDto> loadForm(String setSeineId, boolean discarded, String tripSeineId); @Write @WriteDataPermission diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TargetSampleService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TargetSampleService.java index 6a2a237..ed7a031 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TargetSampleService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TargetSampleService.java @@ -23,7 +23,7 @@ package fr.ird.observe.services.service.seine; */ import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.dto.seine.TargetSampleDto; import fr.ird.observe.services.spi.PostRequest; @@ -40,7 +40,7 @@ public interface TargetSampleService extends ObserveService { boolean canUseTargetSample(String setSeineId, boolean discarded); @ReadDataPermission - FormDto<TargetSampleDto> loadForm(String setSeineId, boolean discarded); + Form<TargetSampleDto> loadForm(String setSeineId, boolean discarded); @Write @WriteDataPermission diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TransmittingBuoyOperationService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TransmittingBuoyOperationService.java index b74cefd..a394c82 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TransmittingBuoyOperationService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TransmittingBuoyOperationService.java @@ -23,7 +23,7 @@ package fr.ird.observe.services.service.seine; */ import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.seine.FloatingObjectTransmittingBuoyDto; import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; @@ -36,7 +36,7 @@ import fr.ird.observe.services.spi.WriteDataPermission; public interface TransmittingBuoyOperationService extends ObserveService { @ReadDataPermission - FormDto<FloatingObjectTransmittingBuoyDto> loadForm(String floatingObjectId); + Form<FloatingObjectTransmittingBuoyDto> loadForm(String floatingObjectId); @Write @WriteDataPermission diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TripSeineGearUseService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TripSeineGearUseService.java index 3f6a426..a9618cd 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TripSeineGearUseService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TripSeineGearUseService.java @@ -23,7 +23,7 @@ package fr.ird.observe.services.service.seine; */ import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.dto.seine.TripSeineGearUseDto; import fr.ird.observe.services.spi.PostRequest; @@ -37,7 +37,7 @@ import fr.ird.observe.services.spi.WriteDataPermission; public interface TripSeineGearUseService extends ObserveService { @ReadDataPermission - FormDto<TripSeineGearUseDto> loadForm(String tripSeineId); + Form<TripSeineGearUseDto> loadForm(String tripSeineId); @Write @WriteDataPermission diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TripSeineService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TripSeineService.java index c03dc60..54f899c 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TripSeineService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/seine/TripSeineService.java @@ -23,9 +23,9 @@ package fr.ird.observe.services.service.seine; */ import fr.ird.observe.services.ObserveService; -import fr.ird.observe.services.dto.FormDto; -import fr.ird.observe.services.dto.ReferenceDto; -import fr.ird.observe.services.dto.ReferenceSetDto; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.TripMapDto; import fr.ird.observe.services.dto.result.SaveResultDto; import fr.ird.observe.services.dto.seine.TripSeineDto; @@ -43,10 +43,10 @@ import java.util.List; public interface TripSeineService extends ObserveService { @ReadDataPermission - ReferenceSetDto<TripSeineDto> getAllTripSeine(); + DataReferenceSet<TripSeineDto> getAllTripSeine(); @ReadDataPermission - ReferenceSetDto<TripSeineDto> getTripSeineByProgram(String programId); + DataReferenceSet<TripSeineDto> getTripSeineByProgram(String programId); @ReadDataPermission int getTripSeinePositionInProgram(String programId, String tripSeineId); @@ -55,19 +55,19 @@ public interface TripSeineService extends ObserveService { TripMapDto getTripSeineMap(String tripSeineId); @ReadDataPermission - FormDto<TripSeineDto> loadForm(String tripSeineId); + Form<TripSeineDto> loadForm(String tripSeineId); @ReadDataPermission TripSeineDto loadDto(String tripSeineId); @ReadDataPermission - ReferenceDto<TripSeineDto> loadReferenceToRead(String tripSeineId); + DataReference<TripSeineDto> loadReferenceToRead(String tripSeineId); @ReadDataPermission boolean exists(String tripSeineId); @WriteDataPermission - FormDto<TripSeineDto> preCreate(String programId); + Form<TripSeineDto> preCreate(String programId); @Write @WriteDataPermission diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/AbstractReference.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/AbstractReference.java new file mode 100644 index 0000000..7992da5 --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/AbstractReference.java @@ -0,0 +1,163 @@ +package fr.ird.observe.services.dto; + +import com.google.common.base.Function; +import com.google.common.base.Predicate; +import com.google.common.collect.Iterables; +import com.google.common.collect.Maps; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.io.Serializable; +import java.util.Arrays; +import java.util.Collection; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * Created on 21/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public abstract class AbstractReference<D extends IdDto> implements ObserveDto, Serializable { + + public static final String PROPERTY_ID = "id"; + + public static final String PROPERTY_TYPE = "type"; + + public static final String PROPERTY_CREATE_DATE = "createDate"; + + public static final String PROPERTY_VERSION = "version"; + + public static final String PROPERTY_LABEL_PROPERTY_NAMES = "labelPropertyNames"; + + public static final String PROPERTY_LABEL_PROPERTY_VALUES = "labelPropertyValues"; + + protected static final Function<AbstractReference, String> ID_FUNCTION = newIdFunction(); + + private static final long serialVersionUID = 1L; + + /** Logger. */ + private static final Log log = LogFactory.getLog(AbstractReference.class); + + protected Class<D> type; + + protected String id; + + protected Date createDate; + + protected long version; + + protected List<String> labelPropertyNames; + + protected Serializable[] labelPropertyValues; + + public static <BeanType extends AbstractReference> Predicate<BeanType> newIdPredicate(String id) { + final String $tmp = id; + return new Predicate<BeanType>() { + + @Override + public boolean apply(BeanType input) { + return Objects.equals($tmp, input.getId()); + } + }; + + } + + public static <BeanType extends AbstractReference> Predicate<BeanType> newIdsPredicate(final Collection<String> ids) { + return new Predicate<BeanType>() { + + @Override + public boolean apply(BeanType input) { + return ids.contains(input.getId()); + } + }; + } + + public static Function<AbstractReference, String> getIdFunction() { + return ID_FUNCTION; + } + + public static <BeanType extends AbstractReference> Function<BeanType, String> newIdFunction() { + return new Function<BeanType, String>() { + + @Override + public String apply(BeanType input) { + return input.getId(); + } + }; + + } + + public static <BeanType extends AbstractReference> Map<String, BeanType> splitById(Collection<BeanType> dtos) { + return Maps.uniqueIndex(dtos, ID_FUNCTION); + } + + public static <BeanType extends AbstractReference> Iterable<BeanType> filterById(Iterable<BeanType> source, String id) { + return Iterables.filter(source, newIdPredicate(id)); + } + + public static <BeanType extends AbstractReference> BeanType find(Iterable<BeanType> source, String id) { + return Iterables.find(source, newIdPredicate(id)); + } + + public void init(Class<D> type, String[] labelPropertyNames, Serializable... labelPropertyValues) { + this.type = type; + this.labelPropertyNames = Arrays.asList(labelPropertyNames); + this.labelPropertyValues = labelPropertyValues; + } + + public Class<D> getType() { + return type; + } + + public void setType(Class<D> type) { + this.type = type; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Date getCreateDate() { + return createDate; + } + + public void setCreateDate(Date createDate) { + this.createDate = createDate; + } + + public long getVersion() { + return version; + } + + public void setVersion(long version) { + this.version = version; + } + + public Serializable getPropertyValue(String propertyName) { + int propertyIndex = getPropertyIndex(propertyName); + return labelPropertyValues[propertyIndex]; + } + + public Serializable[] getLabelPropertyValues() { + return labelPropertyValues; + } + + public List<String> getPropertyNames() { + return labelPropertyNames; + } + + protected int getPropertyIndex(String propertyName) { + int index = labelPropertyNames.indexOf(propertyName); + if (index == -1) { + throw new ReferenceValueNotFoundException(type, propertyName); + } + return index; + } +} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/AbstractReferenceSet.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/AbstractReferenceSet.java new file mode 100644 index 0000000..451626a --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/AbstractReferenceSet.java @@ -0,0 +1,68 @@ +package fr.ird.observe.services.dto; + +/* + * #%L + * ObServe :: Services model + * %% + * Copyright (C) 2008 - 2015 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Iterables; + +import java.io.Serializable; + +public abstract class AbstractReferenceSet<D extends IdDto, R extends AbstractReference<D>> implements ObserveDto, Serializable { + + public static final String PROPERTY_TYPE = "type"; + + public static final String PROPERTY_REFERENCES = "references"; + + private static final long serialVersionUID = 1L; + + protected final Class<D> type; + + protected final ImmutableSet<R> references; + + protected AbstractReferenceSet(Class<D> type, ImmutableSet<R> references) { + this.type = type; + this.references = references; + } + + public Class<D> getType() { + return type; + } + + public R getReferenceById(String id) { + R referenceDto = Iterables.find(references, AbstractReference.newIdPredicate(id)); + return referenceDto; + } + + public R getReferenceByPosition(int index) { + return Iterables.get(references, index); + } + + public int sizeReference() { + return references.size(); + } + + public ImmutableSet<R> getReferences() { + return references; + } + +} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/DataReference.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/DataReference.java new file mode 100644 index 0000000..e4e7554 --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/DataReference.java @@ -0,0 +1,71 @@ +package fr.ird.observe.services.dto; + +import com.google.common.base.MoreObjects; +import com.google.common.base.Predicate; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.io.Serializable; +import java.util.Arrays; + +/** + * Created on 21/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class DataReference<D extends DataDto> extends AbstractReference<D> { + + private static final long serialVersionUID = 1L; + + /** Logger. */ + private static final Log log = LogFactory.getLog(DataReference.class); + + public static Predicate<? super DataReference> newLabelValuePredicate(final String propertyName, final Serializable propertyValue) { + return new Predicate<DataReference>() { + + @Override + public boolean apply(DataReference input) { + return input.getPropertyNames().contains(propertyName) + && propertyValue.equals(input.getPropertyValue(propertyName)); + } + }; + } + + public static Predicate<DataReference> newTripSeinePredicate() { + return new Predicate<DataReference>() { + + @Override + public boolean apply(DataReference input) { + return IdDtos.isTripSeineId(input.getId()); + } + }; + } + + public static <BeanType extends IdDto> Predicate<BeanType> newTripLonglinePredicate() { + return new Predicate<BeanType>() { + + @Override + public boolean apply(BeanType input) { + return IdDtos.isTripLonglineId(input.getId()); + } + }; + } + + @Override + public String toString() { + MoreObjects.ToStringHelper toStringHelper = MoreObjects.toStringHelper(this) + .add(PROPERTY_TYPE, type.getSimpleName()) + .add(PROPERTY_ID, id); + + if (log.isDebugEnabled()) { + toStringHelper + .add(PROPERTY_CREATE_DATE, createDate) + .add(PROPERTY_VERSION, version) + .add(PROPERTY_LABEL_PROPERTY_VALUES, labelPropertyNames); + } + return toStringHelper + .add(PROPERTY_LABEL_PROPERTY_VALUES, Arrays.toString(labelPropertyValues)) + .toString(); + } + +} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetNotFoundException.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/DataReferenceSet.java similarity index 54% rename from observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetNotFoundException.java rename to observe-services-model/src/main/java/fr/ird/observe/services/dto/DataReferenceSet.java index 328c614..96b7049 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetNotFoundException.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/DataReferenceSet.java @@ -22,41 +22,30 @@ package fr.ird.observe.services.dto; * #L% */ -/** - * Created on 26/08/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class ReferenceSetNotFoundException extends RuntimeException { - - private static final long serialVersionUID = 1L; +import com.google.common.base.MoreObjects; +import com.google.common.collect.ImmutableSet; - protected final Class<?> dtoType; +public class DataReferenceSet<R extends DataDto> extends AbstractReferenceSet<R, DataReference<R>> { - protected final String name; + private static final long serialVersionUID = 1L; - protected final FormDto formDto; + public static <R extends DataDto> DataReferenceSet<R> of(Class<R> type, + ImmutableSet<DataReference<R>> references) { - public ReferenceSetNotFoundException(FormDto formDto, Class<?> dtoType, String name) { - this.dtoType = dtoType; - this.formDto = formDto; - this.name = name; - } + DataReferenceSet<R> referenceSet = new DataReferenceSet<>(type, references); + return referenceSet; - public Class<?> getDtoType() { - return dtoType; } - public FormDto getFormDto() { - return formDto; + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add(PROPERTY_TYPE, type.getSimpleName()) + .toString(); } - public String getName() { - return name; + protected DataReferenceSet(Class<R> type, ImmutableSet<DataReference<R>> references) { + super(type, references); } - @Override - public String getMessage() { - return String.format("Could not find referenceSet %s (type: %s)", name, dtoType.getSimpleName()); - } } diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/Form.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/Form.java new file mode 100644 index 0000000..0048d76 --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/Form.java @@ -0,0 +1,95 @@ +package fr.ird.observe.services.dto; + +/* + * #%L + * ObServe :: Services model + * %% + * Copyright (C) 2008 - 2015 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import com.google.common.base.MoreObjects; + +import java.io.Serializable; + +public class Form<R extends IdDto> implements ObserveDto, Serializable { + + public static final String PROPERTY_TYPE = "type"; + + public static final String PROPERTY_OBJECT = "object"; + + public static final String PROPERTY_REFERENTIAL_REFERENCE_SETS_REQUEST_NAME = "referentialReferenceSetsRequestName"; + + public static final String PROPERTY_DATA_REFERENCE_SETS_REQUEST_NAME = "dataReferenceSetsRequestName"; + + private static final long serialVersionUID = 1L; + + protected final Class<R> type; + + protected final R object; + + /** + * Le nom de la requète à utiliser pour récupérer les ensembles de référentiels utilisés par ce formulaire. + */ + protected final String referentialReferenceSetsRequestName; + + /** + * Le nom de la requète à utiliser pour récupérer les ensembles de données utilisés par ce formulaire. + */ + protected final String dataReferenceSetsRequestName; + + public static <R extends IdDto> Form<R> newFormDto(Class<R> type, + R object, + String referentialReferenceSetsRequestName, + String dataReferenceSetsRequestName) { + Form<R> result = new Form<>(type, object, referentialReferenceSetsRequestName, dataReferenceSetsRequestName); + return result; + } + + protected Form(Class<R> type, R object, String referentialReferenceSetsRequestName, String dataReferenceSetsRequestName) { + this.type = type; + this.object = object; + this.referentialReferenceSetsRequestName = referentialReferenceSetsRequestName; + this.dataReferenceSetsRequestName = dataReferenceSetsRequestName; + } + + public R getObject() { + return object; + } + + public Class<R> getType() { + return type; + } + + public String getReferentialReferenceSetsRequestName() { + return referentialReferenceSetsRequestName; + } + + public String getDataReferenceSetsRequestName() { + return dataReferenceSetsRequestName; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add(PROPERTY_TYPE, type.getName()) + .add(PROPERTY_REFERENTIAL_REFERENCE_SETS_REQUEST_NAME, referentialReferenceSetsRequestName) + .add(PROPERTY_DATA_REFERENCE_SETS_REQUEST_NAME, dataReferenceSetsRequestName) + .toString(); + } + +} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/FormDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/FormDto.java deleted file mode 100644 index 1bd49ae..0000000 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/FormDto.java +++ /dev/null @@ -1,171 +0,0 @@ -package fr.ird.observe.services.dto; - -/* - * #%L - * ObServe :: Services model - * %% - * Copyright (C) 2008 - 2015 IRD, Codelutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import com.google.common.base.MoreObjects; -import com.google.common.base.Optional; -import com.google.common.base.Predicate; -import com.google.common.collect.Iterables; -import fr.ird.observe.services.dto.referential.ReferentialDto; -import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; - -public class FormDto<R extends IdDto> extends AbstractFormDto { - - private static final long serialVersionUID = 1L; - - public static final String PROPERTY_TYPE = "type"; - - public static final String PROPERTY_FORM = "form"; - - public static final String PROPERTY_REFERENTIAL_REFERENCE_SET_REQUEST_NAME = "referentialReferenceSetRequestName"; - - public static final String PROPERTY_DATA_REFERENCE_SET_REQUEST_NAME = "dataReferenceSetRequestName"; - - protected final Class<R> type; - - protected R form; - - /** - * Le nom de la requète à utiliser pour récupérer les ensembles de référentiels utilisés par ce formulaire. - */ - protected String referentialReferenceSetRequestName; - - /** - * Le nom de la requète à utiliser pour récupérer les ensembles de données utilisés par ce formulaire. - */ - protected String dataReferenceSetRequestName; - - public FormDto(Class<R> type) { - this.type = type; - } - - public void setForm(R form) { - this.form = form; - } - - public R getForm() { - return form; - } - - public Class<R> getType() { - return type; - } - - public String getReferentialReferenceSetRequestName() { - return referentialReferenceSetRequestName; - } - - public void setReferentialReferenceSetRequestName(String referentialReferenceSetRequestName) { - this.referentialReferenceSetRequestName = referentialReferenceSetRequestName; - } - - public String getDataReferenceSetRequestName() { - return dataReferenceSetRequestName; - } - - public void setDataReferenceSetRequestName(String dataReferenceSetRequestName) { - this.dataReferenceSetRequestName = dataReferenceSetRequestName; - } - - //FIXME Supprimer cette méthode et toujours utiliser celle dessous car un ReferenceSetDto porte aussi sur le nom - //FIXME éviter d'avoir des API non déterministes - @Deprecated - public <D extends IdDto> ReferenceSetDto<D> getReferenceSetDto(Class<D> type) { - - return getReferenceSetDto(type, null); - - } - - public <D extends IdDto> ReferenceSetDto<D> getReferenceSetDto(Class<D> type, String name) { - - Optional<ReferenceSetDto<D>> referenceSetDto = tryToGetReferenceSetDto(type, name); - - if (!referenceSetDto.isPresent()) { - throw new ReferenceSetNotFoundException(this, type, name); - } - - return referenceSetDto.get(); - - } - - public <D extends IdDto> Optional<ReferenceSetDto<D>> tryToGetReferenceSetDto(Class<D> type, String name) { - - Predicate<ReferenceSetDto<D>> predicate = ReferenceSetDtos.newTypeNamePredicate(type, name); - Optional<ReferenceSetDto<D>> referenceSetDto = Iterables.tryFind(getLabels(), (Predicate) predicate); - - if (!referenceSetDto.isPresent()) { - //FIXME Supprimer cela, tout referenceSet doit être nommé - predicate = ReferenceSetDtos.newTypeNamePredicate(type, null); - referenceSetDto = Iterables.tryFind(getLabels(), (Predicate) predicate); - } - - return referenceSetDto; - - } - - //FIXME Supprimer cette méthode et toujours utiliser celle dessous car un ReferenceSetDto porte aussi sur le nom - //FIXME éviter d'avoir des API non déterministes - @Deprecated - public <D extends IdDto> ReferenceDto<D> getReferenceById(Class<D> type, String id) { - - ReferenceSetDto<D> referenceSetDto = getReferenceSetDto(type); - ReferenceDto<D> referenceDto = referenceSetDto.getById(id); - return referenceDto; - - } - - public <D extends IdDto> ReferenceDto<D> getReferenceById(Class<D> type, String name, String id) { - - ReferenceSetDto<D> referenceSetDto = getReferenceSetDto(type, name); - ReferenceDto<D> referenceDto = referenceSetDto.getById(id); - return referenceDto; - - } - - //FIXME Supprimer cette méthode et toujours utiliser celle dessous car un ReferenceSetDto porte aussi sur le nom - //FIXME éviter d'avoir des API non déterministes - @Deprecated - public <D extends ReferentialDto> ReferentialReferenceDto<D> getReferentialReferenceById(Class<D> type, String id) { - - return getReferentialReferenceById(type, null, id); - - } - - public <D extends ReferentialDto> ReferentialReferenceDto<D> getReferentialReferenceById(Class<D> type, String name, String id) { - - ReferenceSetDto<D> referenceSetDto = getReferenceSetDto(type, name); - ReferentialReferenceDto<D> referenceDto = (ReferentialReferenceDto<D>) referenceSetDto.getById(id); - return referenceDto; - - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("type", type.getName()) - .add("referentialReferenceSetRequestName", referentialReferenceSetRequestName) - .add("dataReferenceSetRequestName", dataReferenceSetRequestName) - .toString(); - } - -} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/FormDtos.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/FormDtos.java deleted file mode 100644 index 8ac4ed4..0000000 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/FormDtos.java +++ /dev/null @@ -1,44 +0,0 @@ -package fr.ird.observe.services.dto; - -/* - * #%L - * ObServe :: Services model - * %% - * Copyright (C) 2008 - 2015 IRD, Codelutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -/** - * Created on 17/08/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class FormDtos extends AbstractFormDtos { - - public static <R extends IdDto> FormDto<R> newFormDto(Class<R> source, - R form, - String referentialRequestDefinitionName, - String dataRequestDefinitionName) { - FormDto<R> result = new FormDto<>(source); - result.setForm(form); - result.setReferentialReferenceSetRequestName(referentialRequestDefinitionName); - result.setDataReferenceSetRequestName(dataRequestDefinitionName); - return result; - } - - -} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/IdDtos.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/IdDtos.java index c53d3e4..6ae9d56 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/IdDtos.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/IdDtos.java @@ -46,7 +46,7 @@ public class IdDtos extends AbstractIdDtos { @Override public boolean apply(BeanType input) { - return isTripSeine(input) ; + return isTripSeineId(input.getId()) ; } }; } @@ -56,7 +56,7 @@ public class IdDtos extends AbstractIdDtos { @Override public boolean apply(BeanType input) { - return isTripLongline(input) ; + return isTripLonglineId(input.getId()) ; } }; } @@ -74,32 +74,36 @@ public class IdDtos extends AbstractIdDtos { } public static boolean isTrip(IdDto dto) { - return isTripSeine(dto) || isTripLongline(dto); + return isTripSeineId(dto.getId()) || isTripLonglineId(dto.getId()); + } + + public static boolean isTrip(AbstractReference dto) { + return isTripSeineId(dto.getId()) || isTripLonglineId(dto.getId()); } public static boolean isTripClass(Class<?> dtoClass) { return TripSeineDto.class.equals(dtoClass) || TripLonglineDto.class.equals(dtoClass); } - public static boolean isTripLongline(IdDto dto) { - return isTripLonglineId(dto.getId()); - } +// public static boolean isTripLongline(IdDto dto) { +// return isTripLonglineId(dto.getId()); +// } public static boolean isTripLonglineId(String id) { return id.contains("TripLongline"); } - public static boolean isTripSeine(IdDto dto) { - return isTripSeineId(dto.getId()); - } +// public static boolean isTripSeine(IdDto dto) { +// return isTripSeineId(dto.getId()); +// } public static boolean isTripSeineId(String id) { return id.contains("TripSeine"); } - public static boolean isRoute(IdDto dto) { - return isRouteId(dto.getId()); - } +// public static boolean isRoute(IdDto dto) { +// return isRouteId(dto.getId()); +// } public static boolean isRouteId(String id) { return id.contains("Route"); diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceDto.java deleted file mode 100644 index 06b9a3e..0000000 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceDto.java +++ /dev/null @@ -1,181 +0,0 @@ -package fr.ird.observe.services.dto; - -/* - * #%L - * ObServe :: Services model - * %% - * Copyright (C) 2008 - 2015 IRD, Codelutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import com.google.common.base.MoreObjects; -import com.google.common.base.Preconditions; -import com.google.common.collect.Lists; -import com.google.common.primitives.Primitives; -import fr.ird.observe.services.dto.longline.ActivityLonglineDto; -import fr.ird.observe.services.dto.longline.SetLonglineDto; -import fr.ird.observe.services.dto.referential.I18nReferentialDto; -import fr.ird.observe.services.dto.seine.ActivitySeineDto; -import fr.ird.observe.services.dto.seine.SetSeineDto; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.nuiton.util.beans.Binder; -import org.nuiton.util.beans.BinderFactory; - -import java.io.Serializable; -import java.util.Arrays; -import java.util.List; - -public class ReferenceDto<D extends IdDto> extends AbstractReferenceDto { - - public static final String PROPERTY_TYPE = "type"; - - public static final String PROPERTY_LABEL_PROPERTY_NAMES = "labelPropertyNames"; - - public static final String PROPERTY_LABEL_PROPERTY_VALUES = "labelPropertyValues"; - - public static final String PROPERTY_LABEL_PROPERTY_TYPES = "labelPropertyTypes"; - - private static final long serialVersionUID = 1L; - - /** Logger. */ - private static final Log log = LogFactory.getLog(ReferenceDto.class); - - protected Class<D> type; - - protected List<String> labelPropertyNames; - - protected Serializable[] labelPropertyValues; - - protected Class[] labelPropertyTypes; - - public Class<D> getType() { - return type; - } - - public void init(Class<D> type, Iterable<String> labelPropertyNames) { - init(type, false, labelPropertyNames); - } - - public void init(Class<D> type, String[] labelPropertyNames, Class[] labelPropertyTypes, Serializable... labelPropertyValues) { - this.type = type; - this.labelPropertyNames = Arrays.asList(labelPropertyNames); - this.labelPropertyValues = labelPropertyValues; - this.labelPropertyTypes = labelPropertyTypes; - } - - public void init(Class<D> type, boolean convertToReference, Iterable<String> labelPropertyNames) { - this.type = type; - this.labelPropertyNames = Lists.newArrayList(labelPropertyNames); - this.labelPropertyValues = new Serializable[this.labelPropertyNames.size()]; - this.labelPropertyTypes = new Class[this.labelPropertyNames.size()]; - Binder<D, D> ddBinder = BinderFactory.newBinder(type); - int index = 0; - for (String labelPropertyName : labelPropertyNames) { - Class<?> sourcePropertyType; - if (I18nReferentialDto.PROPERTY_LABEL.equals(labelPropertyName)) { - sourcePropertyType = String.class; - } else if (ActivityLonglineDto.PROPERTY_SET_LONGLINE.equals(labelPropertyName) && type.equals(ActivityLonglineDto.class)) { - sourcePropertyType = SetLonglineDto.class; - if (convertToReference) { - sourcePropertyType = ReferenceDto.class; - } - } else if (ActivitySeineDto.PROPERTY_SET_SEINE.equals(labelPropertyName) && type.equals(ActivitySeineDto.class)) { - sourcePropertyType = SetSeineDto.class; - if (convertToReference) { - sourcePropertyType = ReferenceDto.class; - } - } else { - sourcePropertyType = ddBinder.getSourcePropertyType(labelPropertyName); - } - if (sourcePropertyType.isPrimitive()) { - this.labelPropertyTypes[index++] = Primitives.wrap(sourcePropertyType); - } else { - this.labelPropertyTypes[index++] = sourcePropertyType; - } - } - - } - - public Serializable getPropertyValue(String propertyName) { - int propertyIndex = getPropertyIndex(propertyName); - return labelPropertyValues[propertyIndex]; - } - - public List<String> getPropertyNames() { - return labelPropertyNames; - } - - public void setPropertyValue(String propertyName, Serializable propertyValue) { - Preconditions.checkNotNull(propertyName, "propertyName parameter can't be null"); - int propertyIndex = getPropertyIndex(propertyName); - labelPropertyValues[propertyIndex] = propertyValue; - } - - public void addPropertyValue(String propertyName, Serializable propertyValue) { - Preconditions.checkNotNull(propertyName, "propertyName parameter can't be null"); - int propertyIndex = labelPropertyNames.indexOf(propertyName); - if (propertyIndex == -1) { - labelPropertyNames.add(propertyName); - - List<Serializable> labelPropertyValuesList = Lists.newArrayList(labelPropertyValues); - List<Class> labelPropertyTypesList = Lists.newArrayList(labelPropertyTypes); - - labelPropertyValuesList.add(propertyValue); - labelPropertyTypesList.add(propertyValue.getClass()); - - labelPropertyValues = labelPropertyValuesList.toArray(labelPropertyValues); - labelPropertyTypes = labelPropertyTypesList.toArray(labelPropertyTypes); - - } else { - labelPropertyValues[propertyIndex] = propertyValue; - } - - } - - protected int getPropertyIndex(String propertyName) { - int index = labelPropertyNames.indexOf(propertyName); - if (index == -1) { - throw new ReferenceValueNotFoundException(type, propertyName); - } - return index; - } - - public Serializable[] getLabelPropertyValues() { - return labelPropertyValues; - } - - public Class[] getLabelPropertyTypes() { - return labelPropertyTypes; - } - - @Override - public String toString() { - MoreObjects.ToStringHelper toStringHelper = MoreObjects.toStringHelper(this) - .add("type", type.getSimpleName()) - .add("id", id); - - if (log.isDebugEnabled()) { - toStringHelper - .add("labelPropertyNames", labelPropertyNames) - .add("labelPropertyTypes", Arrays.toString(labelPropertyTypes)); - } - return toStringHelper - .add("labelPropertyValues", Arrays.toString(labelPropertyValues)) - .toString(); - } -} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceDtos.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceDtos.java deleted file mode 100644 index e43bd09..0000000 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceDtos.java +++ /dev/null @@ -1,128 +0,0 @@ -package fr.ird.observe.services.dto; - -/* - * #%L - * ObServe :: Services model - * %% - * Copyright (C) 2008 - 2015 IRD, Codelutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import com.google.common.base.Function; -import com.google.common.base.Preconditions; -import com.google.common.base.Predicate; -import com.google.common.collect.Collections2; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.nuiton.util.beans.BeanUtil; - -import java.beans.PropertyDescriptor; -import java.io.Serializable; -import java.lang.reflect.InvocationTargetException; -import java.util.Collection; -import java.util.Set; - -public class ReferenceDtos extends AbstractReferenceDtos { - - /** - * Logger. - */ - private static final Log log = LogFactory.getLog(ReferenceDtos.class); - - public static <R extends IdDto> ReferenceDto<R> newReferenceDto(Class<R> type, Iterable<String> propertyNames) { - return newReferenceDto(type, false, propertyNames); - } - - public static <R extends IdDto> ReferenceDto<R> newReferenceDto(Class<R> type, boolean convertToReference, Iterable<String> propertyNames) { - ReferenceDto<R> dto = new ReferenceDto<>(); - dto.init(type, convertToReference, propertyNames); - return dto; - } - - public static <R extends IdDto> ReferenceDto<R> newReferenceDto(R bean, final Collection<String> propertyNames) { - Preconditions.checkNotNull(bean); - - ReferenceDto<R> reference = (ReferenceDto<R>) newReferenceDto(bean.getClass(), propertyNames); - reference.setId(bean.getId()); - - Set<PropertyDescriptor> descriptors = BeanUtil.getDescriptors(bean.getClass(), - new Predicate<PropertyDescriptor>() { - @Override - public boolean apply(PropertyDescriptor input) { - return propertyNames.contains(input.getName()); - } - }); - - for (PropertyDescriptor descriptor : descriptors) { - - try { - Object o = descriptor.getReadMethod().invoke(bean); - if (o != null) { - reference.setPropertyValue(descriptor.getName(), (Serializable) o); - } - - } catch (IllegalAccessException | InvocationTargetException e) { - if (log.isErrorEnabled()) { - log.error("Error while retrieving the property value for " + descriptor.getName() + " of " + bean, e); - } - } - } - - return reference; - } - - public static Predicate<ReferenceDto> newContainsIdPredicate(final Collection<String> ids) { - return new Predicate<ReferenceDto>() { - - @Override - public boolean apply(ReferenceDto input) { - String id = (String) input.getPropertyValue(IdDto.PROPERTY_ID); - return ids.contains(id); - } - }; - } - - public static Function<ReferenceDto, String> newReferenceDtoIdFunction() { - return new Function<ReferenceDto, String>() { - @Override - public String apply(ReferenceDto input) { - String id = (String) input.getPropertyValue(IdDto.PROPERTY_ID); - return id; - } - }; - } - - public static <R extends ReferenceDto<D>, D extends IdDto> Collection<ReferenceDto<D>> - castToCollectionOfReferenceDto(Collection<R> coll) { - return Collections2.transform(coll, new Function<R, ReferenceDto<D>>() { - @Override - public ReferenceDto<D> apply(R input) { - return input; - } - }); - } - - public static Predicate<? super ReferenceDto> newLabelValuePredicate(final String propertyName, final Serializable propertyValue) { - return new Predicate<ReferenceDto>() { - @Override - public boolean apply(ReferenceDto input) { - return input.getPropertyNames().contains(propertyName) - && propertyValue.equals(input.getPropertyValue(propertyName)); - } - }; - } -} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDto.java deleted file mode 100644 index 7a03b5b..0000000 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDto.java +++ /dev/null @@ -1,126 +0,0 @@ -package fr.ird.observe.services.dto; - -/* - * #%L - * ObServe :: Services model - * %% - * Copyright (C) 2008 - 2015 IRD, Codelutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import com.google.common.base.MoreObjects; -import com.google.common.collect.Iterables; - -import java.util.Collection; -import java.util.LinkedHashSet; - -public class ReferenceSetDto<R extends IdDto> extends AbstractReferenceSetDto { - - private static final long serialVersionUID = 1L; - - public static final String PROPERTY_TYPE = "type"; - - public static final String PROPERTY_REFERENCE = "reference"; - - protected final Class<R> type; - - protected LinkedHashSet<ReferenceDto<R>> reference; - - public ReferenceSetDto(Class<R> type) { - this.type = type; - } - - public Class<R> getType() { - return type; - } - - public ReferenceDto<R> getById(String id) { - ReferenceDto<R> referenceDto = Iterables.find(getReference(), IdDtos.newIdPredicate(id)); - return referenceDto; - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("type", type.getName()) - .add("name", name) - .add("lastUpdate", lastUpdate) - .toString(); - } - - public ReferenceDto<R> getReference(int index) { - ReferenceDto<R> o = getChild(reference, index); - return o; - } - - public boolean isReferenceEmpty() { - return reference == null || reference.isEmpty(); - } - - public int sizeReference() { - return reference == null ? 0 : reference.size(); - } - - public void addReference(ReferenceDto<R> reference) { - getReference().add(reference); - firePropertyChange(PROPERTY_REFERENCE, null, reference); - } - - public void addAllReference(Collection<ReferenceDto<R>> reference) { - getReference().addAll(reference); - firePropertyChange(PROPERTY_REFERENCE, null, reference); - } - - public boolean removeReference(ReferenceDto<R> reference) { - boolean removed = getReference().remove(reference); - if (removed) { - firePropertyChange(PROPERTY_REFERENCE, reference, null); - } - return removed; - } - - public boolean removeAllReference(Collection<ReferenceDto<R>> reference) { - boolean removed = getReference().removeAll(reference); - if (removed) { - firePropertyChange(PROPERTY_REFERENCE, reference, null); - } - return removed; - } - - public boolean containsReference(ReferenceDto<R> reference) { - boolean contains = getReference().contains(reference); - return contains; - } - - public boolean containsAllReference(Collection<ReferenceDto<R>> reference) { - boolean contains = getReference().containsAll(reference); - return contains; - } - - public LinkedHashSet<ReferenceDto<R>> getReference() { - if (reference == null) { - reference = new LinkedHashSet<>(); - } - return reference; - } - - public void setReference(LinkedHashSet<ReferenceDto<R>> reference) { - LinkedHashSet<ReferenceDto<R>> oldValue = getReference(); - this.reference = reference; - firePropertyChange(PROPERTY_REFERENCE, oldValue, reference); - } -} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDtos.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDtos.java deleted file mode 100644 index 5667457..0000000 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDtos.java +++ /dev/null @@ -1,86 +0,0 @@ -package fr.ird.observe.services.dto; - -/* - * #%L - * ObServe :: Services model - * %% - * Copyright (C) 2008 - 2015 IRD, Codelutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import com.google.common.base.Function; -import com.google.common.base.Predicate; -import com.google.common.collect.Iterables; -import com.google.common.collect.Sets; - -import java.util.Date; -import java.util.LinkedHashSet; -import java.util.Objects; -import java.util.Set; - -public class ReferenceSetDtos extends AbstractReferenceSetDtos { - - public static <D extends IdDto> ReferenceSetDto<D> newEmptyReferenceSetDto(Class<D> type, String name) { - ReferenceSetDto<D> dto = new ReferenceSetDto<>(type); - dto.setName(name); - dto.setReference(new LinkedHashSet<ReferenceDto<D>>()); - return dto; - } - - public static <D extends IdDto> ReferenceSetDto<D> newReferenceSetDto(Class<D> type, - LinkedHashSet<ReferenceDto<D>> labels, - Date lastUpdate) { - return newReferenceSetDto(type, null, labels, lastUpdate); - } - - public static <D extends IdDto> ReferenceSetDto<D> newReferenceSetDto(Class<D> type, - String name, - LinkedHashSet<ReferenceDto<D>> labels, - Date lastUpdate) { - ReferenceSetDto<D> dto = new ReferenceSetDto<>(type); - dto.setName(name); - dto.setReference(labels); - dto.setLastUpdate(lastUpdate); - return dto; - } - - public static <D extends IdDto> Predicate<ReferenceSetDto<D>> newTypeNamePredicate(final Class<D> type, final String name) { - return new Predicate<ReferenceSetDto<D>>() { - - @Override - public boolean apply(ReferenceSetDto<D> input) { - return Objects.equals(type, input.getType()) && Objects.equals(name, input.getName()); - } - }; - - } - - public static Set<Class<?>> getTypes(Iterable<ReferenceSetDto> referenceSets) { - - Set<Class<?>> types = Sets.newLinkedHashSet(Iterables.transform(referenceSets, new Function<ReferenceSetDto, Class<?>>() { - - @Override - public Class<?> apply(ReferenceSetDto input) { - return input.getType(); - } - })); - return types; - - } - - -} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/constants/ReferentialLocale.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/constants/ReferentialLocale.java index 60d3a24..303a73b 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/constants/ReferentialLocale.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/constants/ReferentialLocale.java @@ -23,6 +23,7 @@ package fr.ird.observe.services.dto.constants; import fr.ird.observe.services.dto.referential.I18nReferentialDto; +import fr.ird.observe.services.dto.referential.I18nReferentialDtos; import fr.ird.observe.services.dto.referential.ReferentialDto; import java.util.Locale; @@ -91,34 +92,41 @@ public enum ReferentialLocale { return "<ReferentialLocale: " + locale + ", index: " + name() + ">"; } - public <E extends I18nReferentialDto> void setLabel(String label, E i18nEntity) { + public <E extends I18nReferentialDto> void setLabel(String label, E i18nDto) { switch (ordinal() + 1) { case 1: - i18nEntity.setLabel1(label); + i18nDto.setLabel1(label); break; case 2: - i18nEntity.setLabel2(label); + i18nDto.setLabel2(label); break; case 3: - i18nEntity.setLabel3(label); + i18nDto.setLabel3(label); break; case 4: - i18nEntity.setLabel4(label); + i18nDto.setLabel4(label); break; case 5: - i18nEntity.setLabel5(label); + i18nDto.setLabel5(label); break; case 6: - i18nEntity.setLabel6(label); + i18nDto.setLabel6(label); break; case 7: - i18nEntity.setLabel7(label); + i18nDto.setLabel7(label); break; case 8: - i18nEntity.setLabel8(label); + i18nDto.setLabel8(label); break; } } + + public <E extends I18nReferentialDto> String getLabel(E i18nEntity) { + + String result = I18nReferentialDtos.decorate(ordinal(), i18nEntity); + return result; + + } } diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/FormDtoAdapter.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/FormDtoAdapter.java deleted file mode 100644 index d7cacc9..0000000 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/FormDtoAdapter.java +++ /dev/null @@ -1,34 +0,0 @@ -package fr.ird.observe.services.dto.gson; - -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParseException; -import fr.ird.observe.services.dto.FormDto; -import fr.ird.observe.services.dto.FormDtos; -import fr.ird.observe.services.dto.IdDto; - -import java.lang.reflect.Type; - -/** - * @author Sylvain Bavencoff - bavencoff@codelutin.com - */ -public class FormDtoAdapter implements JsonDeserializer<FormDto<?>> { - - @Override - public FormDto<?> deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { - JsonObject jsonObject = json.getAsJsonObject(); - - Class dtoType = context.deserialize(jsonObject.get(FormDto.PROPERTY_TYPE), Class.class); - String referentialRequestDefinitionName = context.deserialize(jsonObject.get(FormDto.PROPERTY_REFERENTIAL_REFERENCE_SET_REQUEST_NAME), String.class); - String dataRequestDefinitionName = context.deserialize(jsonObject.get(FormDto.PROPERTY_DATA_REFERENCE_SET_REQUEST_NAME), String.class); - - JsonElement jsonFrom = jsonObject.get(FormDto.PROPERTY_FORM); - IdDto form = context.deserialize(jsonFrom, dtoType); - - FormDto<?> formDto = FormDtos.newFormDto(dtoType, form, referentialRequestDefinitionName, dataRequestDefinitionName); - - return formDto; - } -} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ObserveDtoGsonSupplier.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ObserveDtoGsonSupplier.java index 7552723..413475a 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ObserveDtoGsonSupplier.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ObserveDtoGsonSupplier.java @@ -28,11 +28,15 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import fr.ird.observe.services.dto.FormDto; -import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.DataReferenceSet; import fr.ird.observe.services.dto.actions.report.ReportVariable; -import fr.ird.observe.services.dto.reference.ObserveReferenceSet; -import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; +import fr.ird.observe.services.dto.gson.reference.DataReferenceAdapter; +import fr.ird.observe.services.dto.gson.reference.DataReferenceSetAdapter; +import fr.ird.observe.services.dto.gson.reference.ReferentialReferenceAdapter; +import fr.ird.observe.services.dto.gson.reference.ReferentialReferenceSetAdapter; +import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.dto.referential.ReferentialReferenceSet; import org.nuiton.util.version.Version; import java.sql.Timestamp; @@ -52,10 +56,10 @@ public class ObserveDtoGsonSupplier implements Supplier<Gson> { } }; - protected GsonBuilder gsonBuilder; - protected final boolean prettyPrint; + protected GsonBuilder gsonBuilder; + protected Gson gson; public ObserveDtoGsonSupplier() { @@ -90,14 +94,17 @@ public class ObserveDtoGsonSupplier implements Supplier<Gson> { gsonBuilder.registerTypeAdapter(Timestamp.class, new DateAdapter()); gsonBuilder.registerTypeAdapter(java.sql.Date.class, new DateAdapter()); gsonBuilder.registerTypeAdapter(Class.class, new ClassAdapter()); -// gsonBuilder.registerTypeAdapter(IdDto.class, new IdDtoAdapter()); + gsonBuilder.registerTypeAdapter(ImmutableList.class, new ImmutableListAdapter()); gsonBuilder.registerTypeAdapter(ImmutableSet.class, new ImmutableSetAdapter()); gsonBuilder.registerTypeAdapter(ImmutableMap.class, new ImmutableMapAdapter()); - gsonBuilder.registerTypeAdapter(ReferenceDto.class, new ReferenceDtoAdapter()); - gsonBuilder.registerTypeAdapter(ObserveReferenceSet.class, new ObserveReferenceSetAdapter()); - gsonBuilder.registerTypeAdapter(ReferentialReferenceDto.class, new ReferentialReferenceDtoAdapter()); - gsonBuilder.registerTypeAdapter(FormDto.class, new FormDtoAdapter()); + + gsonBuilder.registerTypeAdapter(DataReference.class, new DataReferenceAdapter()); + gsonBuilder.registerTypeAdapter(ReferentialReference.class, new ReferentialReferenceAdapter()); + gsonBuilder.registerTypeAdapter(DataReferenceSet.class, new DataReferenceSetAdapter()); + gsonBuilder.registerTypeAdapter(ReferentialReferenceSet.class, new ReferentialReferenceSetAdapter()); + +// gsonBuilder.registerTypeAdapter(FormDto.class, new FormDtoAdapter()); gsonBuilder.registerTypeAdapter(ReportVariable.class, new ReportVariableAdapter()); gsonBuilder.registerTypeAdapter(Version.class, new VersionAdapter()); gsonBuilder.enableComplexMapKeySerialization(); diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ObserveReferenceSetAdapter.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ObserveReferenceSetAdapter.java deleted file mode 100644 index c37b255..0000000 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ObserveReferenceSetAdapter.java +++ /dev/null @@ -1,122 +0,0 @@ -package fr.ird.observe.services.dto.gson; - -import com.google.gson.JsonArray; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParseException; -import fr.ird.observe.services.dto.IdDto; -import fr.ird.observe.services.dto.reference.ObserveReference; -import fr.ird.observe.services.dto.reference.ObserveReferenceSet; -import fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinition; -import fr.ird.observe.services.dto.reference.ObserveReferentialReference; -import fr.ird.observe.services.dto.referential.ReferentialDto; - -import java.io.Serializable; -import java.lang.reflect.Type; -import java.util.Collection; -import java.util.Date; -import java.util.LinkedHashSet; - -/** - * Created on 13/11/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class ObserveReferenceSetAdapter implements JsonDeserializer<ObserveReferenceSet> { - - @Override - public ObserveReferenceSet deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { - - JsonObject jsonObject = json.getAsJsonObject(); - - ObserveReferenceSetDefinition definition = context.deserialize(jsonObject.get("definition"), ObserveReferenceSetDefinition.class); - - Class type = definition.getType(); - - Date lastUpdate = context.deserialize(jsonObject.get("lastUpdate"), Date.class); - - JsonArray jsonValues = jsonObject.get("values").getAsJsonArray(); - - Class[] propertyTypes = definition.getPropertyTypes(); - - ObserveReferenceSet referenceDto = new ObserveReferenceSet(); - referenceDto.setDefinition(definition); - referenceDto.setLastUpdate(lastUpdate); - - if (ReferentialDto.class.isAssignableFrom(type)) { - - Collection<ObserveReferentialReference> values = new LinkedHashSet<>(); - - for (JsonElement jsonValue : jsonValues) { - - ObserveReferentialReference ref = deserializeReferentialReference(context, jsonValue.getAsJsonObject(), propertyTypes); - values.add(ref); - } - - referenceDto.setValues(values); - - } else { - - Collection<ObserveReference> values = new LinkedHashSet<>(); - - for (JsonElement jsonValue : jsonValues) { - - ObserveReference ref = deserializeReference(context, jsonValue.getAsJsonObject(), propertyTypes); - values.add(ref); - } - - referenceDto.setValues(values); - } - - - return referenceDto; - - } - - private ObserveReferentialReference deserializeReferentialReference(JsonDeserializationContext context, JsonObject jsonObject, Class[] propertyTypes) { - - ObserveReferentialReference result = new ObserveReferentialReference(); - - deserialize0(context, jsonObject, propertyTypes, result); - - result.setVersion((long) context.deserialize(jsonObject.get(ReferentialDto.PROPERTY_VERSION), long.class)); - result.setCreateDate((Date) context.deserialize(jsonObject.get(ReferentialDto.PROPERTY_CREATE_DATE), Date.class)); - result.setLastUpdateDate((Date) context.deserialize(jsonObject.get(ReferentialDto.PROPERTY_LAST_UPDATE), Date.class)); - result.setEnabled((Boolean) context.deserialize(jsonObject.get(ReferentialDto.PROPERTY_ENABLED), boolean.class)); - result.setNeedComment((Boolean) context.deserialize(jsonObject.get(ReferentialDto.PROPERTY_NEED_COMMENT), boolean.class)); - - return result; - } - - private ObserveReference deserializeReference(JsonDeserializationContext context, JsonObject jsonObject, Class[] propertyTypes) { - - ObserveReference result = new ObserveReference(); - - deserialize0(context, jsonObject, propertyTypes, result); - - return result; - } - - private void deserialize0(JsonDeserializationContext context, JsonObject jsonObject, Class[] propertyTypes, ObserveReference result) { - - JsonArray valuesElement = jsonObject.get("values").getAsJsonArray(); - - result.setId((String) context.deserialize(jsonObject.get(IdDto.PROPERTY_ID), String.class)); - - Serializable[] values = new Serializable[propertyTypes.length]; - result.setValues(values); - - for (int i = 0, max = propertyTypes.length; i < max; i++) { - Class type = propertyTypes[i]; - JsonElement jsonValue = valuesElement.get(i); - if (jsonValue != null) { - Serializable value = context.deserialize(jsonValue, type); - values[i] = value; - } - } - - } - -} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ReferenceDtoAdapter.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ReferenceDtoAdapter.java deleted file mode 100644 index 8b9cf1e..0000000 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ReferenceDtoAdapter.java +++ /dev/null @@ -1,133 +0,0 @@ -package fr.ird.observe.services.dto.gson; - -/* - * #%L - * ObServe :: Services model - * %% - * Copyright (C) 2008 - 2015 IRD, Codelutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import com.google.gson.JsonArray; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParseException; -import com.google.gson.JsonSerializationContext; -import com.google.gson.JsonSerializer; -import fr.ird.observe.services.dto.ReferenceDto; -import fr.ird.observe.services.dto.ReferenceDtos; -import fr.ird.observe.services.dto.referential.ReferentialDto; -import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; -import fr.ird.observe.services.dto.referential.ReferentialReferenceDtos; - -import java.io.Serializable; -import java.lang.reflect.Type; -import java.util.List; -import java.util.Map; - -/** - * @author Sylvain Bavencoff - bavencoff@codelutin.com - */ -public class ReferenceDtoAdapter implements JsonDeserializer<ReferenceDto<?>>, JsonSerializer<ReferenceDto<?>> { - - @Override - public ReferenceDto<?> deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { - JsonObject jsonObject = json.getAsJsonObject(); - - Class dtoType = context.deserialize(jsonObject.get(ReferenceDto.PROPERTY_TYPE), Class.class); - String id = context.deserialize(jsonObject.get(ReferenceDto.PROPERTY_ID), String.class); - - JsonArray jsonLabelPropertyNames = jsonObject.get(ReferenceDto.PROPERTY_LABEL_PROPERTY_NAMES).getAsJsonArray(); - JsonArray jsonLabelPropertyValues = jsonObject.get(ReferenceDto.PROPERTY_LABEL_PROPERTY_VALUES).getAsJsonArray(); - JsonArray JsonLabelPropertyTypes = jsonObject.get(ReferenceDto.PROPERTY_LABEL_PROPERTY_TYPES).getAsJsonArray(); - - List<String> labelPropertyNames = Lists.newArrayList(); - Map<String, Serializable> valuesByName = Maps.newHashMap(); - - for (int i = 0; i < jsonLabelPropertyNames.size(); i++) { - String name = jsonLabelPropertyNames.get(i).getAsString(); - Class type = context.deserialize(JsonLabelPropertyTypes.get(i), Class.class); - JsonElement jsonValue = jsonLabelPropertyValues.get(i); - if (jsonValue != null && type != null) { - if (ReferentialReferenceDto.class.isAssignableFrom(type) && jsonValue.isJsonPrimitive()) { - type = String.class; - } - Serializable value = context.deserialize(jsonValue, type); - labelPropertyNames.add(name); - valuesByName.put(name, value); - } - } - - ReferenceDto<?> referenceDto; - - if (ReferentialDto.class.isAssignableFrom(dtoType)) { - ReferentialReferenceDto referentialReferenceDto = ReferentialReferenceDtos.newReferentialReferenceDto(dtoType, labelPropertyNames); - - { - JsonElement jsonElement = jsonObject.get(ReferentialReferenceDto.PROPERTY_NEED_COMMENT); - boolean needComment = jsonElement.getAsBoolean(); - referentialReferenceDto.setNeedComment(needComment); - } - { - JsonElement jsonElement = jsonObject.get(ReferentialReferenceDto.PROPERTY_ENABLED); - boolean enabled = jsonElement.getAsBoolean(); - referentialReferenceDto.setEnabled(enabled); - } - - referenceDto = referentialReferenceDto; - - } else { - referenceDto = ReferenceDtos.newReferenceDto(dtoType, labelPropertyNames); - } - - referenceDto.setId(id); - - for (Map.Entry<String, Serializable> entry : valuesByName.entrySet()) { - referenceDto.setPropertyValue(entry.getKey(), entry.getValue()); - } - - return referenceDto; - } - - protected ReferenceDto<?> newReferenceDto(Class type, Iterable<String> propertyNames) { - return ReferenceDtos.newReferenceDto(type, propertyNames); - } - - - @Override - public JsonElement serialize(ReferenceDto<?> src, Type typeOfSrc, JsonSerializationContext context) { - JsonObject jsonReference = new JsonObject(); - - jsonReference.add(ReferenceDto.PROPERTY_TYPE, context.serialize(src.getType())); - jsonReference.add(ReferenceDto.PROPERTY_ID, context.serialize(src.getId())); - jsonReference.add(ReferenceDto.PROPERTY_LABEL_PROPERTY_NAMES, context.serialize(src.getPropertyNames())); - jsonReference.add(ReferenceDto.PROPERTY_LABEL_PROPERTY_VALUES, context.serialize(src.getLabelPropertyValues())); - jsonReference.add(ReferenceDto.PROPERTY_LABEL_PROPERTY_TYPES, context.serialize(src.getLabelPropertyTypes())); - - if (src instanceof ReferentialReferenceDto) { - ReferentialReferenceDto referentialReferenceDto = (ReferentialReferenceDto) src; - jsonReference.add(ReferentialReferenceDto.PROPERTY_NEED_COMMENT, context.serialize(referentialReferenceDto.isNeedComment())); - jsonReference.add(ReferentialReferenceDto.PROPERTY_ENABLED, context.serialize(referentialReferenceDto.isEnabled())); - } - - return jsonReference; - } -} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ReferentialReferenceDtoAdapter.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ReferentialReferenceDtoAdapter.java deleted file mode 100644 index 347288c..0000000 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ReferentialReferenceDtoAdapter.java +++ /dev/null @@ -1,57 +0,0 @@ -package fr.ird.observe.services.dto.gson; - -/* - * #%L - * ObServe :: Services model - * %% - * Copyright (C) 2008 - 2015 IRD, Codelutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonParseException; -import com.google.gson.JsonSerializationContext; -import com.google.gson.JsonSerializer; -import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; - -import java.lang.reflect.Type; - -/** - * @author Sylvain Bavencoff - bavencoff@codelutin.com - */ -public class ReferentialReferenceDtoAdapter implements JsonDeserializer<ReferentialReferenceDto<?>>, JsonSerializer<ReferentialReferenceDto<?>> { - - ReferenceDtoAdapter referenceDtoAdapter = new ReferenceDtoAdapter(); - - @Override - public ReferentialReferenceDto<?> deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { - - ReferentialReferenceDto<?> referentialReferenceDto = (ReferentialReferenceDto) referenceDtoAdapter.deserialize(json, typeOfT, context); - - return referentialReferenceDto; - - } - - @Override - public JsonElement serialize(ReferentialReferenceDto<?> src, Type typeOfSrc, JsonSerializationContext context) { - JsonElement jsonElement = referenceDtoAdapter.serialize(src, typeOfSrc, context); - - return jsonElement; - } -} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ReportVariableAdapter.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ReportVariableAdapter.java index 39c039c..c0dec67 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ReportVariableAdapter.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/ReportVariableAdapter.java @@ -28,9 +28,11 @@ import com.google.gson.JsonDeserializer; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParseException; -import fr.ird.observe.services.dto.IdDto; -import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.services.dto.DataDto; +import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.actions.report.ReportVariable; +import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.dto.referential.ReferentialReference; import java.lang.reflect.Type; import java.util.Set; @@ -52,8 +54,11 @@ public class ReportVariableAdapter implements JsonDeserializer<ReportVariable> { Class valueType = type; - if (IdDto.class.isAssignableFrom(type)) { - valueType = ReferenceDto.class; + if (DataDto.class.isAssignableFrom(type)) { + valueType = DataReference.class; + } + if (ReferentialDto.class.isAssignableFrom(type)) { + valueType = ReferentialReference.class; } JsonElement valuesJson = reportVariableJson.get(ReportVariable.PROPERTY_VALUES); diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/reference/AbstractReferenceAdapter.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/reference/AbstractReferenceAdapter.java new file mode 100644 index 0000000..50f6484 --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/reference/AbstractReferenceAdapter.java @@ -0,0 +1,131 @@ +package fr.ird.observe.services.dto.gson.reference; + +/* + * #%L + * ObServe :: Services model + * %% + * Copyright (C) 2008 - 2015 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import fr.ird.observe.services.dto.AbstractReference; +import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.reference.ReferenceSetDefinition; + +import java.io.Serializable; +import java.lang.reflect.Type; +import java.util.Date; + +/** + * Note: Pour une référence, on ne sérialize pas les méta-données (noms et types des propriétés), on les récupère à la + * désérialisation via {@link ReferenceSetDefinition}. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public abstract class AbstractReferenceAdapter<D extends IdDto, R extends AbstractReference<D>> implements JsonDeserializer<R>, JsonSerializer<R> { + + @Override + public final R deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { + + JsonObject jsonObject = json.getAsJsonObject(); + + Class<D> dtoType = context.deserialize(jsonObject.get(AbstractReference.PROPERTY_TYPE), Class.class); + + ReferenceSetDefinition<D> definition = getDefinition(dtoType); + + String[] propertyNames = definition.getPropertyNames(); + Class<?>[] propertyTypes = definition.getPropertyTypes(); + + R reference = deserialize(jsonObject, context, dtoType, propertyNames, propertyTypes); + + return reference; + + } + + public R deserialize(JsonObject jsonObject, JsonDeserializationContext context, Class<D> dtoType, String[] propertyNames, Class<?>... propertyTypes) { + + JsonArray jsonPropertyValues = jsonObject.get(AbstractReference.PROPERTY_LABEL_PROPERTY_VALUES).getAsJsonArray(); + + int propertiesSize = propertyNames.length; + + Serializable[] propertyValues = new Serializable[propertiesSize]; + + for (int i = 0; i < propertiesSize; i++) { + + String name = propertyNames[i]; + Class type = propertyTypes[i]; + JsonElement jsonValue = jsonPropertyValues.get(i); + Serializable value = context.deserialize(jsonValue, type); + propertyValues[i] = value; + + } + + R reference = newReference(dtoType, propertyNames, propertyTypes, propertyValues); + + String id = context.deserialize(jsonObject.get(AbstractReference.PROPERTY_ID), String.class); + reference.setId(id); + + JsonElement versionElement = jsonObject.get(AbstractReference.PROPERTY_VERSION); + if (versionElement != null) { + long version = versionElement.getAsLong(); + reference.setVersion(version); + } + + JsonElement createDateElement = jsonObject.get(AbstractReference.PROPERTY_CREATE_DATE); + if (createDateElement != null) { + Date createDate = context.deserialize(createDateElement, Date.class); + reference.setCreateDate(createDate); + } + + return reference; + + } + + @Override + public JsonObject serialize(R src, Type typeOfSrc, JsonSerializationContext context) { + + JsonObject jsonReference = new JsonObject(); + + jsonReference.add(AbstractReference.PROPERTY_TYPE, context.serialize(src.getType())); + jsonReference.add(AbstractReference.PROPERTY_ID, context.serialize(src.getId())); + jsonReference.add(AbstractReference.PROPERTY_LABEL_PROPERTY_VALUES, context.serialize(src.getLabelPropertyValues())); + + if (src.getVersion() != 0) { + jsonReference.add(AbstractReference.PROPERTY_VERSION, context.serialize(src.getVersion())); + } + + if (src.getCreateDate() != null) { + jsonReference.add(AbstractReference.PROPERTY_CREATE_DATE, context.serialize(src.getCreateDate())); + } + + return jsonReference; + + } + + protected abstract ReferenceSetDefinition<D> getDefinition(Class<D> dtoType); + + protected abstract R newReference(Class<D> dtoType, String[] propertyNames, Class<?>[] propertyTypes, Serializable... propertyValues); + +} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/reference/AbstractReferenceSetAdapter.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/reference/AbstractReferenceSetAdapter.java new file mode 100644 index 0000000..8571046 --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/reference/AbstractReferenceSetAdapter.java @@ -0,0 +1,83 @@ +package fr.ird.observe.services.dto.gson.reference; + +/* + * #%L + * ObServe :: Services model + * %% + * Copyright (C) 2008 - 2015 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import com.google.common.collect.ImmutableSet; +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import fr.ird.observe.services.dto.AbstractReference; +import fr.ird.observe.services.dto.AbstractReferenceSet; +import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.reference.ReferenceSetDefinition; + +import java.lang.reflect.Type; + +/** + * Note: Pour une référence, on ne sérialize pas les méta-données (noms et types des propriétés), on les récupère à la + * désérialisation via {@link ReferenceSetDefinition}. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public abstract class AbstractReferenceSetAdapter<D extends IdDto, R extends AbstractReference<D>, S extends AbstractReferenceSet<D, R>> implements JsonDeserializer<S> { + + @Override + public final S deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { + + JsonObject jsonObject = json.getAsJsonObject(); + + Class<D> dtoType = context.deserialize(jsonObject.get(AbstractReferenceSet.PROPERTY_TYPE), Class.class); + + ReferenceSetDefinition<D> definition = getDefintion(dtoType); + + String[] propertyNames = definition.getPropertyNames(); + Class<?>[] propertyTypes = definition.getPropertyTypes(); + + JsonArray jsonPropertyValues = jsonObject.get(AbstractReferenceSet.PROPERTY_REFERENCES).getAsJsonArray(); + + int referencesSize = jsonPropertyValues.size(); + + ImmutableSet.Builder<R> references = ImmutableSet.builder(); + + for (int i = 0; i < referencesSize; i++) { + + R reference = deserializeReference(jsonPropertyValues.get(i), context, dtoType, propertyNames, propertyTypes); + references.add(reference); + + } + + S referenceSet = newReferenceSet(dtoType, references.build(), jsonObject, context); + return referenceSet; + + } + + protected abstract ReferenceSetDefinition<D> getDefintion(Class<D> dtoType); + + protected abstract R deserializeReference(JsonElement referenceJsonElement, JsonDeserializationContext context, Class<D> dtoType, String[] propertyNames, Class<?>... propertyTypes); + + protected abstract S newReferenceSet(Class<D> dtoType, ImmutableSet<R> references, JsonObject jsonObject, JsonDeserializationContext context); + +} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/reference/DataReferenceAdapter.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/reference/DataReferenceAdapter.java new file mode 100644 index 0000000..9f673b6 --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/reference/DataReferenceAdapter.java @@ -0,0 +1,49 @@ +package fr.ird.observe.services.dto.gson.reference; + +/* + * #%L + * ObServe :: Services model + * %% + * Copyright (C) 2008 - 2015 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ird.observe.services.dto.DataDto; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.reference.DataReferenceSetDefinitions; +import fr.ird.observe.services.dto.reference.ReferenceSetDefinition; + +import java.io.Serializable; + +/** + * @author Tony Chemit - chemit@codelutin.com + */ +public class DataReferenceAdapter<D extends DataDto> extends AbstractReferenceAdapter<D, DataReference<D>> { + + @Override + protected ReferenceSetDefinition<D> getDefinition(Class<D> dtoType) { + return DataReferenceSetDefinitions.getDefinition(dtoType); + } + + @Override + protected DataReference<D> newReference(Class<D> dtoType, String[] propertyNames, Class<?>[] propertyTypes, Serializable... propertyValues) { + DataReference<D> reference = new DataReference<>(); + reference.init(dtoType, propertyNames, propertyTypes, propertyValues); + return reference; + } + +} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/reference/DataReferenceSetAdapter.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/reference/DataReferenceSetAdapter.java new file mode 100644 index 0000000..2193654 --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/reference/DataReferenceSetAdapter.java @@ -0,0 +1,37 @@ +package fr.ird.observe.services.dto.gson.reference; + +import com.google.common.collect.ImmutableSet; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import fr.ird.observe.services.dto.DataDto; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.DataReferenceSet; +import fr.ird.observe.services.dto.reference.ReferenceSetDefinition; + +/** + * Created on 23/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class DataReferenceSetAdapter<D extends DataDto> extends AbstractReferenceSetAdapter<D, DataReference<D>, DataReferenceSet<D>> { + + protected final DataReferenceAdapter<D> referenceAdapter = new DataReferenceAdapter<>(); + + @Override + protected ReferenceSetDefinition<D> getDefintion(Class<D> dtoType) { + return referenceAdapter.getDefinition(dtoType); + } + + @Override + protected DataReferenceSet<D> newReferenceSet(Class<D> dtoType, ImmutableSet<DataReference<D>> references, JsonObject jsonObject, JsonDeserializationContext context) { + return DataReferenceSet.of(dtoType, references); + } + + @Override + protected DataReference<D> deserializeReference(JsonElement referenceJsonElement, JsonDeserializationContext context, Class<D> dtoType, String[] propertyNames, Class<?>... propertyTypes) { + DataReference<D> reference = referenceAdapter.deserialize(referenceJsonElement, dtoType, context); + return reference; + } + +} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/reference/ReferentialReferenceAdapter.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/reference/ReferentialReferenceAdapter.java new file mode 100644 index 0000000..8636358 --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/reference/ReferentialReferenceAdapter.java @@ -0,0 +1,100 @@ +package fr.ird.observe.services.dto.gson.reference; + +/* + * #%L + * ObServe :: Services model + * %% + * Copyright (C) 2008 - 2015 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonSerializationContext; +import fr.ird.observe.services.dto.reference.ReferenceSetDefinition; +import fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions; +import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.dto.referential.ReferentialReference; + +import java.io.Serializable; +import java.lang.reflect.Type; +import java.util.Date; + +/** + * @author Tony Chemit - chemit@codelutin.com + */ +public class ReferentialReferenceAdapter<D extends ReferentialDto> extends AbstractReferenceAdapter<D, ReferentialReference<D>> { + + @Override + public ReferentialReference<D> deserialize(JsonObject jsonObject, JsonDeserializationContext context, Class<D> dtoType, String[] propertyNames, Class<?>... propertyTypes) { + ReferentialReference<D> reference = super.deserialize(jsonObject, context, dtoType, propertyNames, propertyTypes); + + + JsonElement neddCommentElement = jsonObject.get(ReferentialReference.PROPERTY_NEED_COMMENT); + if (neddCommentElement != null) { + boolean neddComment = neddCommentElement.getAsBoolean(); + reference.setNeedComment(neddComment); + } + + JsonElement enabledElement = jsonObject.get(ReferentialReference.PROPERTY_NEED_COMMENT); + if (enabledElement != null) { + boolean enabled = enabledElement.getAsBoolean(); + reference.setEnabled(enabled); + } + + JsonElement lastUpdateElement = jsonObject.get(ReferentialReference.PROPERTY_LAST_UPDATE); + if (lastUpdateElement != null) { + Date lastUpdate = context.deserialize(lastUpdateElement, Date.class); + reference.setLastUpdate(lastUpdate); + } + + return reference; + } + + @Override + public JsonObject serialize(ReferentialReference<D> src, Type typeOfSrc, JsonSerializationContext context) { + + JsonObject jsonReference = super.serialize(src, typeOfSrc, context); + + if (src.isNeedComment()) { + jsonReference.add(ReferentialReference.PROPERTY_NEED_COMMENT, context.serialize(src.isNeedComment())); + } + if (src.isEnabled()) { + jsonReference.add(ReferentialReference.PROPERTY_ENABLED, context.serialize(src.isEnabled())); + } + if (src.getLastUpdate() != null) { + jsonReference.add(ReferentialReference.PROPERTY_LAST_UPDATE, context.serialize(src.getLastUpdate())); + } + + return jsonReference; + + } + + @Override + protected ReferenceSetDefinition<D> getDefinition(Class<D> dtoType) { + return ReferentialReferenceSetDefinitions.getDefinition(dtoType); + } + + @Override + protected ReferentialReference<D> newReference(Class<D> dtoType, String[] propertyNames, Class<?>[] propertyTypes, Serializable... propertyValues) { + ReferentialReference<D> reference = new ReferentialReference<>(); + reference.init(dtoType, propertyNames, propertyTypes, propertyValues); + return reference; + } + +} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/reference/ReferentialReferenceSetAdapter.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/reference/ReferentialReferenceSetAdapter.java new file mode 100644 index 0000000..6e8d08c --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/reference/ReferentialReferenceSetAdapter.java @@ -0,0 +1,50 @@ +package fr.ird.observe.services.dto.gson.reference; + +import com.google.common.collect.ImmutableSet; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import fr.ird.observe.services.dto.reference.ReferenceSetDefinition; +import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.dto.referential.ReferentialReferenceSet; + +import java.util.Date; + +/** + * Created on 23/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ReferentialReferenceSetAdapter<D extends ReferentialDto> extends AbstractReferenceSetAdapter<D, ReferentialReference<D>, ReferentialReferenceSet<D>> { + + protected final ReferentialReferenceAdapter<D> referenceAdapter = new ReferentialReferenceAdapter<>(); + + @Override + protected ReferentialReferenceSet<D> newReferenceSet(Class<D> dtoType, ImmutableSet<ReferentialReference<D>> references, JsonObject jsonObject, JsonDeserializationContext context) { + + JsonElement lastUpdateElement = jsonObject.get(ReferentialReferenceSet.PROPERTY_LAST_UPDATE); + Date lastUpdate = null; + if (lastUpdateElement != null) { + lastUpdate = context.deserialize(lastUpdateElement, Date.class); + } + + ReferentialReferenceSet<D> referenceSet = ReferentialReferenceSet.of(dtoType, references, lastUpdate); + + return referenceSet; + } + + @Override + protected ReferentialReference<D> deserializeReference(JsonElement referenceJsonElement, JsonDeserializationContext context, Class<D> dtoType, String[] propertyNames, Class<?>... propertyTypes) { + + ReferentialReference<D> reference = referenceAdapter.deserialize(referenceJsonElement, dtoType, context); + return reference; + + } + + @Override + protected ReferenceSetDefinition<D> getDefintion(Class<D> dtoType) { + return referenceAdapter.getDefinition(dtoType); + } + +} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/longline/ActivityLonglineDtos.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/longline/ActivityLonglineDtos.java deleted file mode 100644 index 64f3e37..0000000 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/longline/ActivityLonglineDtos.java +++ /dev/null @@ -1,24 +0,0 @@ -package fr.ird.observe.services.dto.longline; - -import com.google.common.collect.Lists; -import fr.ird.observe.services.dto.ReferenceDto; -import fr.ird.observe.services.dto.ReferenceDtos; -import fr.ird.observe.services.dto.referential.longline.VesselActivityLonglineDto; - -public class ActivityLonglineDtos extends AbstractActivityLonglineDtos { - - public static ReferenceDto<ActivityLonglineDto> newReferenceDto(ActivityLonglineDto activityLongline) { - - ReferenceDto<ActivityLonglineDto> referenceDto = ReferenceDtos.newReferenceDto( - ActivityLonglineDto.class, - Lists.newArrayList(ActivityLonglineDto.PROPERTY_TIME_STAMP, - ActivityLonglineDto.PROPERTY_VESSEL_ACTIVITY_LONGLINE)); - - referenceDto.setId(activityLongline.getId()); - referenceDto.setPropertyValue(ActivityLonglineDto.PROPERTY_TIME_STAMP, activityLongline.getTimeStamp()); - referenceDto.setPropertyValue(ActivityLonglineDto.PROPERTY_VESSEL_ACTIVITY_LONGLINE, activityLongline.getVesselActivityLongline().getPropertyValue(VesselActivityLonglineDto.PROPERTY_LABEL)); - - return referenceDto; - - } -} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/longline/LonglinePositionAwareDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/longline/LonglinePositionAwareDto.java index 2d81e05..2b2dadf 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/longline/LonglinePositionAwareDto.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/longline/LonglinePositionAwareDto.java @@ -22,7 +22,7 @@ package fr.ird.observe.services.dto.longline; * #L% */ -import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.services.dto.DataReference; import java.beans.PropertyChangeListener; @@ -34,17 +34,17 @@ import java.beans.PropertyChangeListener; */ public interface LonglinePositionAwareDto { - void setSection(ReferenceDto<SectionDto> section); + void setSection(DataReference<SectionDto> section); - ReferenceDto<SectionDto> getSection(); + DataReference<SectionDto> getSection(); - void setBasket(ReferenceDto<BasketDto> basket); + void setBasket(DataReference<BasketDto> basket); - ReferenceDto<BasketDto> getBasket(); + DataReference<BasketDto> getBasket(); - void setBranchline(ReferenceDto<BranchlineDto> branchline); + void setBranchline(DataReference<BranchlineDto> branchline); - ReferenceDto<BranchlineDto> getBranchline(); + DataReference<BranchlineDto> getBranchline(); void addPropertyChangeListener(PropertyChangeListener listener); diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/longline/TripLonglineDtos.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/longline/TripLonglineDtos.java deleted file mode 100644 index da4cb65..0000000 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/longline/TripLonglineDtos.java +++ /dev/null @@ -1,27 +0,0 @@ -package fr.ird.observe.services.dto.longline; - -import com.google.common.collect.Lists; -import fr.ird.observe.services.dto.ReferenceDto; -import fr.ird.observe.services.dto.ReferenceDtos; -import fr.ird.observe.services.dto.referential.PersonDtos; -import fr.ird.observe.services.dto.referential.VesselDto; - -public class TripLonglineDtos extends AbstractTripLonglineDtos { - - public static ReferenceDto<TripLonglineDto> newReferenceDto(TripLonglineDto tripLongline) { - - ReferenceDto<TripLonglineDto> referenceDto = ReferenceDtos.newReferenceDto(TripLonglineDto.class, - Lists.newArrayList(TripLonglineDto.PROPERTY_START_DATE, - TripLonglineDto.PROPERTY_END_DATE, - TripLonglineDto.PROPERTY_VESSEL, - TripLonglineDto.PROPERTY_OBSERVER)); - - referenceDto.setId(tripLongline.getId()); - referenceDto.setPropertyValue(TripLonglineDto.PROPERTY_START_DATE, tripLongline.getStartDate()); - referenceDto.setPropertyValue(TripLonglineDto.PROPERTY_END_DATE, tripLongline.getEndDate()); - referenceDto.setPropertyValue(TripLonglineDto.PROPERTY_VESSEL, tripLongline.getVessel().getPropertyValue(VesselDto.PROPERTY_LABEL)); - referenceDto.setPropertyValue(TripLonglineDto.PROPERTY_OBSERVER, PersonDtos.getNames(tripLongline.getObserver())); - - return referenceDto; - } -} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/DataReferenceSetDefinitions.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/DataReferenceSetDefinitions.java new file mode 100644 index 0000000..7d3c16e --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/DataReferenceSetDefinitions.java @@ -0,0 +1,163 @@ +package fr.ird.observe.services.dto.reference; + +import com.google.common.base.Preconditions; +import fr.ird.observe.services.dto.DataDto; +import fr.ird.observe.services.dto.longline.ActivityLonglineDto; +import fr.ird.observe.services.dto.longline.BasketDto; +import fr.ird.observe.services.dto.longline.BranchlineDto; +import fr.ird.observe.services.dto.longline.CatchLonglineDto; +import fr.ird.observe.services.dto.longline.EncounterDto; +import fr.ird.observe.services.dto.longline.SectionDto; +import fr.ird.observe.services.dto.longline.SetLonglineDto; +import fr.ird.observe.services.dto.longline.TripLonglineDto; +import fr.ird.observe.services.dto.seine.ActivitySeineDto; +import fr.ird.observe.services.dto.seine.FloatingObjectDto; +import fr.ird.observe.services.dto.seine.NonTargetCatchDto; +import fr.ird.observe.services.dto.seine.RouteDto; +import fr.ird.observe.services.dto.seine.SchoolEstimateDto; +import fr.ird.observe.services.dto.seine.SetSeineDto; +import fr.ird.observe.services.dto.seine.TargetLengthDto; +import fr.ird.observe.services.dto.seine.TransmittingBuoyDto; +import fr.ird.observe.services.dto.seine.TripSeineDto; + +import java.util.Date; +import java.util.Map; +import java.util.TreeMap; + +/** + * Contient les définitions de tous les ensembles de références (de type donnée) reconnus dans l'application. + * + * Created on 11/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public enum DataReferenceSetDefinitions { + + // -------------------------------------------------------------------------------------------------------------- // + // -- SEINE ----------------------------------------------------------------------------------------------------- // + // -------------------------------------------------------------------------------------------------------------- // + + TRIP_SEINE(newDefinitionBuilder(TripSeineDto.class) + .addProperty(Date.class, TripSeineDto.PROPERTY_START_DATE) + .addProperty(Date.class, TripSeineDto.PROPERTY_END_DATE) + .addProperty(String.class, TripSeineDto.PROPERTY_VESSEL) + .addProperty(String.class, TripSeineDto.PROPERTY_OBSERVER)), + + ROUTE(newDefinitionBuilder(RouteDto.class) + .addProperty(Date.class, RouteDto.PROPERTY_DATE) + .addProperty(String.class, RouteDto.PROPERTY_COMMENT)), + + FLOATING_OBJECT(newDefinitionBuilder(FloatingObjectDto.class) + .addProperty(String.class, FloatingObjectDto.PROPERTY_OBJECT_TYPE)), + + NON_TARGET_CATCH(newDefinitionBuilder(NonTargetCatchDto.class) + .addProperty(String.class, NonTargetCatchDto.PROPERTY_SPECIES) + .addProperty(String.class, NonTargetCatchDto.PROPERTY_SPECIES_FATE)), + + SCHOOL_ESTIMATE(newDefinitionBuilder(SchoolEstimateDto.class) + .addProperty(String.class, SchoolEstimateDto.PROPERTY_SPECIES) + .addProperty(String.class, SchoolEstimateDto.PROPERTY_MEAN_WEIGHT) + .addProperty(String.class, SchoolEstimateDto.PROPERTY_TOTAL_WEIGHT) + ), + + TARGET_LENGTH(newDefinitionBuilder(TargetLengthDto.class) + .addProperty(String.class, TargetLengthDto.PROPERTY_SPECIES) + .addProperty(String.class, TargetLengthDto.PROPERTY_LENGTH) + .addProperty(String.class, TargetLengthDto.PROPERTY_COUNT) + ), + + ACTIVITY_SEINE(newDefinitionBuilder(ActivitySeineDto.class) + .addProperty(String.class, ActivitySeineDto.PROPERTY_TIME) + .addProperty(String.class, ActivitySeineDto.PROPERTY_VESSEL_ACTIVITY_SEINE) +// .addProperty(String.class, ActivitySeineDto.PROPERTY_SET_SEINE) + ), + + SET_SEINE(newDefinitionBuilder(SetSeineDto.class) + .addProperty(String.class, SetSeineDto.PROPERTY_COMMENT)), + + ENCOUNTER(newDefinitionBuilder(EncounterDto.class) + .addProperty(String.class, EncounterDto.PROPERTY_ENCOUNTER_TYPE) + .addProperty(String.class, EncounterDto.PROPERTY_SPECIES) + ), + + TRANSMITTING_BUYO(newDefinitionBuilder(TransmittingBuoyDto.class) + .addProperty(String.class, TransmittingBuoyDto.PROPERTY_CODE) + .addProperty(String.class, TransmittingBuoyDto.PROPERTY_BRAND) + ), + + + // -------------------------------------------------------------------------------------------------------------- // + // -- LONGLINE -------------------------------------------------------------------------------------------------- // + // -------------------------------------------------------------------------------------------------------------- // + + TRIP_LONGLINE(newDefinitionBuilder(TripLonglineDto.class) + .addProperty(Date.class, TripLonglineDto.PROPERTY_START_DATE) + .addProperty(Date.class, TripLonglineDto.PROPERTY_END_DATE) + .addProperty(String.class, TripLonglineDto.PROPERTY_VESSEL) + .addProperty(String.class, TripLonglineDto.PROPERTY_OBSERVER)), + + ACTIVITY_LONGLINE(newDefinitionBuilder(ActivityLonglineDto.class) + .addProperty(Date.class, ActivityLonglineDto.PROPERTY_TIME_STAMP) + .addProperty(String.class, ActivityLonglineDto.PROPERTY_VESSEL_ACTIVITY_LONGLINE) +// .addProperty(DataReference.class, ActivityLonglineDto.PROPERTY_SET_LONGLINE) + ), + + CATCH_LONGLINE(newDefinitionBuilder(CatchLonglineDto.class) + .addProperty(String.class, CatchLonglineDto.PROPERTY_HOME_ID)), + + //FIXME Voir ce qu'on ajouter d'autre (peut-être utiliser l'activité ?) + SET_LONGLINE(newDefinitionBuilder(SetLonglineDto.class) + .addProperty(String.class, SetLonglineDto.PROPERTY_HOME_ID)), + + SECTION(newDefinitionBuilder(SectionDto.class) + .addProperty(Integer.class, SectionDto.PROPERTY_HAULING_IDENTIFIER) + .addProperty(Integer.class, SectionDto.PROPERTY_SETTING_IDENTIFIER)), + + BASKET(newDefinitionBuilder(BasketDto.class) + .addProperty(Integer.class, BasketDto.PROPERTY_HAULING_IDENTIFIER) + .addProperty(Integer.class, BasketDto.PROPERTY_SETTING_IDENTIFIER)), + + BRANCHLINE(newDefinitionBuilder(BranchlineDto.class) + .addProperty(Integer.class, BranchlineDto.PROPERTY_HAULING_IDENTIFIER) + .addProperty(Integer.class, BranchlineDto.PROPERTY_SETTING_IDENTIFIER)),; + + public static final Map<String, ReferenceSetDefinition> MAPPING = new TreeMap<>(); + + static { + + for (DataReferenceSetDefinitions definitions : DataReferenceSetDefinitions.values()) { + + ReferenceSetDefinition<? extends DataDto> definition = definitions.getDefinition(); + MAPPING.put(definition.getType().getName(), definition); + + } + } + + private final ReferenceSetDefinition definition; + + protected static <R extends DataDto> ReferenceSetDefinition.Builder newDefinitionBuilder(Class<R> type) { + ReferenceSetDefinition.Builder<R> builder = ReferenceSetDefinition.builder(type); + return builder; + } + + public static <D extends DataDto> ReferenceSetDefinition<D> getDefinition(Class<D> type) { + ReferenceSetDefinition<D> referenceSetDefinition = MAPPING.get(type.getName()); + Preconditions.checkNotNull(referenceSetDefinition, "Could not find definition for type: " + type); + return referenceSetDefinition; + } + + public static <D extends DataDto> ReferenceSetDefinition<D> getDefinition(String name) { + ReferenceSetDefinition<D> referenceSetDefinition = MAPPING.get(name); + Preconditions.checkNotNull(referenceSetDefinition, "Could not find definition for type: " + name); + return referenceSetDefinition; + } + + DataReferenceSetDefinitions(ReferenceSetDefinition.Builder builder) { + this.definition = builder.build(); + } + + public <D extends DataDto> ReferenceSetDefinition<D> getDefinition() { + return definition; + } + +} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReference.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReference.java deleted file mode 100644 index 95038a1..0000000 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReference.java +++ /dev/null @@ -1,61 +0,0 @@ -package fr.ird.observe.services.dto.reference; - -import com.google.common.base.MoreObjects; - -import java.io.Serializable; -import java.util.Arrays; -import java.util.Objects; - -/** - * Created on 13/11/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class ObserveReference implements Serializable { - - public static final String PROPERTY_ID = "id"; - - private static final long serialVersionUID = 1L; - - protected String id; - - protected Serializable[] values; - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public Serializable[] getValues() { - return values; - } - - public void setValues(Serializable... values) { - this.values = values; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (!(o instanceof ObserveReference)) return false; - ObserveReference that = (ObserveReference) o; - return !(id == null || that.id == null) && Objects.equals(id, that.id); - } - - @Override - public int hashCode() { - return Objects.hash(id); - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(this) - .add("id", id) - .add("values", Arrays.asList(values)) - .toString(); - } - -} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSet.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSet.java deleted file mode 100644 index 9abd500..0000000 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSet.java +++ /dev/null @@ -1,125 +0,0 @@ -package fr.ird.observe.services.dto.reference; - -import com.google.common.base.MoreObjects; -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.reference.definition.ObserveReferenceSetDefinition; -import fr.ird.observe.services.dto.referential.ReferentialDto; -import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import java.io.Serializable; -import java.util.Collection; -import java.util.Date; - -/** - * Created on 13/11/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class ObserveReferenceSet<D extends IdDto, R extends ObserveReference> implements Serializable { - - private static final long serialVersionUID = 1L; - - /** Logger. */ - private static final Log log = LogFactory.getLog(ObserveReferenceSet.class); - - protected ObserveReferenceSetDefinition<D> definition; - - protected Collection<R> values; - - protected Date lastUpdate; - - public static <D extends IdDto, R extends ObserveReference> ObserveReferenceSet<D, R> of(ObserveReferenceSetDefinition<D> definition, - Collection<R> labels, - Date lastUpdate) { - ObserveReferenceSet<D, R> dto = new ObserveReferenceSet<>(); - - dto.setDefinition(definition); - dto.setValues(labels); - dto.setLastUpdate(lastUpdate); - return dto; - } - - public ObserveReferenceSetDefinition<D> getDefinition() { - return definition; - } - - public void setDefinition(ObserveReferenceSetDefinition<D> definition) { - this.definition = definition; - } - - public Collection<R> getValues() { - return values; - } - - public void setValues(Collection<R> values) { - this.values = values; - } - - public Date getLastUpdate() { - return lastUpdate; - } - - public void setLastUpdate(Date lastUpdate) { - this.lastUpdate = lastUpdate; - } - - public ReferenceSetDto<D> toReferenceSetDto(String name) { - - Class<D> type = definition.getType(); - String[] propertyNames = definition.getPropertyNames(); - Class<?>[] propertyTypes = definition.getPropertyTypes(); - - ReferenceSetDto<D> result = new ReferenceSetDto<>(type); - result.setLastUpdate(lastUpdate); - result.setName(name); - - boolean referential = ReferentialDto.class.isAssignableFrom(type); - - for (R value : values) { - - if (referential) { - - ObserveReferentialReference referentialValue = (ObserveReferentialReference) value; - ReferentialReferenceDto referenceDto = new ReferentialReferenceDto<>(); - referenceDto.init(type, propertyNames, propertyTypes, value.getValues()); - referenceDto.setId(value.getId()); - referenceDto.setCreateDate(referentialValue.getCreateDate()); - referenceDto.setEnabled(referentialValue.isEnabled()); - referenceDto.setLastUpdate(referentialValue.getLastUpdateDate()); - referenceDto.setNeedComment(referentialValue.isNeedComment()); - referenceDto.setVersion(referentialValue.getVersion()); - result.addReference(referenceDto); - - } else { - - ReferenceDto<D> referenceDto = new ReferenceDto<>(); - referenceDto.setId(value.getId()); - referenceDto.init(type, propertyNames, propertyTypes, value.getValues()); - result.addReference(referenceDto); - - } - - } - - return result; - - } - - @Override - public String toString() { - MoreObjects.ToStringHelper toStringHelper = MoreObjects.toStringHelper(this); - if (log.isDebugEnabled()) { - toStringHelper.add("definition", definition); - } else { - toStringHelper.add("type", definition.getType().getSimpleName()); - } - return toStringHelper - .add("values", values == null ? 0 : values.size()) - .add("lastUpdate", lastUpdate) - .toString(); - } -} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSetRequest.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSetRequest.java deleted file mode 100644 index 69cbda3..0000000 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSetRequest.java +++ /dev/null @@ -1,43 +0,0 @@ -package fr.ird.observe.services.dto.reference; - -import com.google.common.collect.ImmutableMap; - -import java.util.Date; - -/** - * Created on 10/11/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class ObserveReferenceSetRequest { - - private String requestName; - - private boolean loadTechnicalInformations; - - private ImmutableMap<String, Date> lastUpdateDates; - - public String getRequestName() { - return requestName; - } - - public ImmutableMap<String, Date> getLastUpdateDates() { - return lastUpdateDates; - } - - public void setRequestName(String requestName) { - this.requestName = requestName; - } - - public void setLastUpdateDates(ImmutableMap<String, Date> lastUpdateDates) { - this.lastUpdateDates = lastUpdateDates; - } - - public boolean isLoadTechnicalInformations() { - return loadTechnicalInformations; - } - - public void setLoadTechnicalInformations(boolean loadTechnicalInformations) { - this.loadTechnicalInformations = loadTechnicalInformations; - } -} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSetResult.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSetResult.java deleted file mode 100644 index 8eb4bf1..0000000 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferenceSetResult.java +++ /dev/null @@ -1,72 +0,0 @@ -package fr.ird.observe.services.dto.reference; - -import com.google.common.collect.ImmutableMap; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import java.util.Date; -import java.util.Map; - -/** - * Created on 10/11/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class ObserveReferenceSetResult<R extends ObserveReference> { - - /** Logger. */ - private static final Log log = LogFactory.getLog(ObserveReferenceSetResult.class); - - private final String requestName; - - private final ImmutableMap<String, ObserveReferenceSet<?, R>> referenceSets; - - public static <R extends ObserveReference> Builder<R> builder(String requestName) { - return new Builder<>(requestName); - } - - public ObserveReferenceSetResult(String requestName, ImmutableMap<String, ObserveReferenceSet<?, R>> referenceSets) { - this.requestName = requestName; - this.referenceSets = referenceSets; - } - - public String getRequestName() { - return requestName; - } - - public ImmutableMap<String, ObserveReferenceSet<?, R>> getReferenceSets() { - return referenceSets; - } - - public ImmutableMap<String,Date> getLastUpdateDates() { - ImmutableMap.Builder<String,Date> builder = ImmutableMap.builder(); - for (Map.Entry<String, ObserveReferenceSet<?, R>> entry : referenceSets.entrySet()) { - builder.put(entry.getKey(), entry.getValue().getLastUpdate()); - } - return builder.build(); - } - public static class Builder<R extends ObserveReference> { - - private final String requestName; - - private final ImmutableMap.Builder<String, ObserveReferenceSet<?, R>> referenceSetsMapBuilder; - - public Builder(String requestName) { - this.requestName = requestName; - this.referenceSetsMapBuilder = ImmutableMap.builder(); - } - - public Builder addReferenceSet(String name, ObserveReferenceSet<?, R> referenceSet) { - if (log.isInfoEnabled()) { - log.info(String.format("Add reference set : %s", referenceSet)); - } - referenceSetsMapBuilder.put(name, referenceSet); - return this; - } - - public ObserveReferenceSetResult<R> build() { - return new ObserveReferenceSetResult<>(requestName, referenceSetsMapBuilder.build()); - } - } - -} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferentialReference.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferentialReference.java deleted file mode 100644 index 083eccb..0000000 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ObserveReferentialReference.java +++ /dev/null @@ -1,89 +0,0 @@ -package fr.ird.observe.services.dto.reference; - -import com.google.common.base.MoreObjects; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import java.util.Arrays; -import java.util.Date; - -/** - * Created on 13/11/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class ObserveReferentialReference extends ObserveReference { - - private static final long serialVersionUID = 1L; - - /** Logger. */ - private static final Log log = LogFactory.getLog(ObserveReferentialReference.class); - - protected boolean needComment; - - protected boolean enabled; - - protected Date createDate; - - protected Date lastUpdateDate; - - protected long version; - - public boolean isNeedComment() { - return needComment; - } - - public void setNeedComment(boolean needComment) { - this.needComment = needComment; - } - - public boolean isEnabled() { - return enabled; - } - - public void setEnabled(boolean enabled) { - this.enabled = enabled; - } - - public Date getLastUpdateDate() { - return lastUpdateDate; - } - - public void setLastUpdateDate(Date lastUpdateDate) { - this.lastUpdateDate = lastUpdateDate; - } - - public Date getCreateDate() { - return createDate; - } - - public void setCreateDate(Date createDate) { - this.createDate = createDate; - } - - public long getVersion() { - return version; - } - - public void setVersion(long version) { - this.version = version; - } - - @Override - public String toString() { - MoreObjects.ToStringHelper toStringHelper = MoreObjects.toStringHelper(this) - .add("id", id); - - if (log.isDebugEnabled()) { - toStringHelper - .add("needComment", needComment) - .add("enabled", enabled) - .add("version", version) - .add("createDate", createDate) - .add("lastUpdate", lastUpdateDate); - } - return toStringHelper - .add("values", Arrays.asList(values)) - .toString(); - } -} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetDefinition.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ReferenceSetDefinition.java similarity index 77% rename from observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetDefinition.java rename to observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ReferenceSetDefinition.java index b510ab4..628eb06 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetDefinition.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ReferenceSetDefinition.java @@ -1,4 +1,4 @@ -package fr.ird.observe.services.dto.reference.definition; +package fr.ird.observe.services.dto.reference; import com.google.common.base.MoreObjects; import fr.ird.observe.services.dto.IdDto; @@ -16,16 +16,16 @@ import java.util.LinkedList; * * @author Tony Chemit - chemit@codelutin.com */ -public class ObserveReferenceSetDefinition<D extends IdDto> implements Serializable { +public class ReferenceSetDefinition<D extends IdDto> implements Serializable { private static final long serialVersionUID = 1L; /** Logger. */ - private static final Log log = LogFactory.getLog(ObserveReferenceSetDefinition.class); + private static final Log log = LogFactory.getLog(ReferenceSetDefinition.class); /** * Le type du dto qui doit être transformé en références. - * {@link ObserveReferenceSetDefinition#getType()}. + * {@link ReferenceSetDefinition#getType()}. */ private final Class<D> type; @@ -37,7 +37,7 @@ public class ObserveReferenceSetDefinition<D extends IdDto> implements Serializa return new Builder<>(type); } - protected ObserveReferenceSetDefinition(Class<D> type, Class<?>[] propertyTypes, String... propertyNames) { + protected ReferenceSetDefinition(Class<D> type, Class<?>[] propertyTypes, String... propertyNames) { this.type = type; this.propertyTypes = propertyTypes; this.propertyNames = propertyNames; @@ -87,8 +87,8 @@ public class ObserveReferenceSetDefinition<D extends IdDto> implements Serializa return this; } - public ObserveReferenceSetDefinition<D> build() { - return new ObserveReferenceSetDefinition<>(type, propertyTypes.toArray(new Class[propertyTypes.size()]), propertyNames.toArray(new String[propertyNames.size()])); + public ReferenceSetDefinition<D> build() { + return new ReferenceSetDefinition<>(type, propertyTypes.toArray(new Class[propertyTypes.size()]), propertyNames.toArray(new String[propertyNames.size()])); } } diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetDefinitions.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ReferentialReferenceSetDefinitions.java similarity index 81% rename from observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetDefinitions.java rename to observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ReferentialReferenceSetDefinitions.java index 2bba077..caa0854 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetDefinitions.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/ReferentialReferenceSetDefinitions.java @@ -1,10 +1,7 @@ -package fr.ird.observe.services.dto.reference.definition; +package fr.ird.observe.services.dto.reference; -import fr.ird.observe.services.dto.IdDto; +import com.google.common.base.Preconditions; import fr.ird.observe.services.dto.constants.GearType; -import fr.ird.observe.services.dto.longline.BasketDto; -import fr.ird.observe.services.dto.longline.BranchlineDto; -import fr.ird.observe.services.dto.longline.SectionDto; import fr.ird.observe.services.dto.referential.CountryDto; import fr.ird.observe.services.dto.referential.FpaZoneDto; import fr.ird.observe.services.dto.referential.GearCaracteristicDto; @@ -67,26 +64,21 @@ import fr.ird.observe.services.dto.referential.seine.VesselActivitySeineDto; import fr.ird.observe.services.dto.referential.seine.WeightCategoryDto; import fr.ird.observe.services.dto.referential.seine.WindDto; +import java.util.Map; +import java.util.TreeMap; + /** - * Contient les définitions de tous les ensembles de référence reconnus dans l'application. + * Contient les définitions de tous les ensembles de références (de type référentiel) reconnus dans l'application. * * Created on 11/11/15. * * @author Tony Chemit - chemit@codelutin.com */ -public enum ObserveReferenceSetDefinitions { - - SECTION(newDataDefinitionBuilder(SectionDto.class) - .addProperty(Integer.class, SectionDto.PROPERTY_HAULING_IDENTIFIER) - .addProperty(Integer.class, SectionDto.PROPERTY_SETTING_IDENTIFIER)), - - BASKET(newDataDefinitionBuilder(BasketDto.class) - .addProperty(Integer.class, BasketDto.PROPERTY_HAULING_IDENTIFIER) - .addProperty(Integer.class, BasketDto.PROPERTY_SETTING_IDENTIFIER)), +public enum ReferentialReferenceSetDefinitions { - BRANCHLINE(newDataDefinitionBuilder(BranchlineDto.class) - .addProperty(Integer.class, BranchlineDto.PROPERTY_HAULING_IDENTIFIER) - .addProperty(Integer.class, BranchlineDto.PROPERTY_SETTING_IDENTIFIER)), + // -------------------------------------------------------------------------------------------------------------- // + // -- REFERENTIAL COMMON ---------------------------------------------------------------------------------------- // + // -------------------------------------------------------------------------------------------------------------- // COUNTRY(newDefaultDefinitionBuilder(CountryDto.class)), @@ -108,6 +100,7 @@ public enum ObserveReferenceSetDefinitions { .addProperty(String.class, LengthWeightParameterDto.PROPERTY_CODE) .addProperty(String.class, LengthWeightParameterDto.PROPERTY_OCEAN) .addProperty(String.class, LengthWeightParameterDto.PROPERTY_SPECIES) + .addProperty(String.class, LengthWeightParameterDto.PROPERTY_SEX) .addProperty(String.class, LengthWeightParameterDto.PROPERTY_LENGTH_WEIGHT_FORMULA) .addProperty(String.class, LengthWeightParameterDto.PROPERTY_WEIGHT_LENGTH_FORMULA)), @@ -119,8 +112,8 @@ public enum ObserveReferenceSetDefinitions { .addProperty(String.class, PersonDto.PROPERTY_FIRST_NAME) .addProperty(String.class, PersonDto.PROPERTY_LAST_NAME) .addProperty(boolean.class, PersonDto.PROPERTY_CAPTAIN) - .addProperty(boolean.class, PersonDto.PROPERTY_DATA_ENTRY_OPERATOR) - .addProperty(boolean.class, PersonDto.PROPERTY_OBSERVER)), + .addProperty(boolean.class, PersonDto.PROPERTY_OBSERVER) + .addProperty(boolean.class, PersonDto.PROPERTY_DATA_ENTRY_OPERATOR)), PROGRAM(newDefinitionBuilder(ProgramDto.class) .addProperty(GearType.class, ProgramDto.PROPERTY_GEAR_TYPE) @@ -129,6 +122,8 @@ public enum ObserveReferenceSetDefinitions { SEX(newDefaultDefinitionBuilder(SexDto.class)), SPECIES(newDefinitionBuilder(SpeciesDto.class) + .addProperty(String.class, SpeciesDto.PROPERTY_LABEL) + .addProperty(String.class, SpeciesDto.PROPERTY_FAO_CODE) .addProperty(String.class, SpeciesDto.PROPERTY_SCIENTIFIC_LABEL) .addProperty(String.class, SpeciesDto.PROPERTY_HOME_ID) .addProperty(String.class, SpeciesDto.PROPERTY_LENGTH_MEASURE_TYPE)), @@ -138,6 +133,7 @@ public enum ObserveReferenceSetDefinitions { SPECIES_LIST(newDefaultDefinitionBuilder(SpeciesListDto.class)), VESSEL_SIZE_CATEGORY(newDefinitionBuilder(VesselSizeCategoryDto.class) + .addProperty(String.class, VesselSizeCategoryDto.PROPERTY_CODE) .addProperty(String.class, VesselSizeCategoryDto.PROPERTY_GAUGE_LABEL) .addProperty(String.class, VesselSizeCategoryDto.PROPERTY_CAPACITY_LABEL)), @@ -182,6 +178,7 @@ public enum ObserveReferenceSetDefinitions { MITIGATION_TYPE(newDefaultDefinitionBuilder(MitigationTypeDto.class)), SENSOR_BRAND(newDefinitionBuilder(SensorBrandDto.class) + .addProperty(String.class, SensorBrandDto.PROPERTY_CODE) .addProperty(String.class, SensorBrandDto.PROPERTY_BRAND_NAME)), SENSOR_DATA_FORMAT(newDefaultDefinitionBuilder(SensorDataFormatDto.class)), @@ -241,18 +238,42 @@ public enum ObserveReferenceSetDefinitions { .addProperty(String.class, WindDto.PROPERTY_SPEED_RANGE) ); - private final ObserveReferenceSetDefinition definition; + public static final Map<String, ReferenceSetDefinition> MAPPING = new TreeMap<>(); - protected static <R extends ReferentialDto> ObserveReferenceSetDefinition.Builder newDefinitionBuilder(Class<R> type) { - ObserveReferenceSetDefinition.Builder<R> builder = ObserveReferenceSetDefinition.builder(type); + static { + + for (ReferentialReferenceSetDefinitions definitions : ReferentialReferenceSetDefinitions.values()) { + + ReferenceSetDefinition<? extends ReferentialDto> definition = definitions.getDefinition(); + MAPPING.put(definition.getType().getName(), definition); + + } + } + + private final ReferenceSetDefinition<? extends ReferentialDto> definition; + + public static <D extends ReferentialDto> ReferenceSetDefinition<D> getDefinition(Class<D> type) { + ReferenceSetDefinition<D> referenceSetDefinition = MAPPING.get(type.getName()); + Preconditions.checkNotNull(referenceSetDefinition, "Could not find definition for type: " + type); + return referenceSetDefinition; + } + + public static <D extends ReferentialDto> ReferenceSetDefinition<D> getDefinition(String name) { + ReferenceSetDefinition<D> referenceSetDefinition = MAPPING.get(name); + Preconditions.checkNotNull(referenceSetDefinition, "Could not find definition for type: " + name); + return referenceSetDefinition; + } + + protected static <R extends ReferentialDto> ReferenceSetDefinition.Builder newDefinitionBuilder(Class<R> type) { + ReferenceSetDefinition.Builder<R> builder = ReferenceSetDefinition.builder(type); if (I18nReferentialDto.class.isAssignableFrom(type)) { builder.addProperty(String.class, I18nReferentialDto.PROPERTY_LABEL); } return builder; } - protected static <R extends ReferentialDto> ObserveReferenceSetDefinition.Builder newDefaultDefinitionBuilder(Class<R> type) { - ObserveReferenceSetDefinition.Builder<R> builder = ObserveReferenceSetDefinition + protected static <R extends ReferentialDto> ReferenceSetDefinition.Builder newDefaultDefinitionBuilder(Class<R> type) { + ReferenceSetDefinition.Builder<R> builder = ReferenceSetDefinition .builder(type) .addProperty(String.class, ReferentialDto.PROPERTY_CODE); if (I18nReferentialDto.class.isAssignableFrom(type)) { @@ -261,17 +282,12 @@ public enum ObserveReferenceSetDefinitions { return builder; } - protected static <R extends IdDto> ObserveReferenceSetDefinition.Builder newDataDefinitionBuilder(Class<R> type) { - ObserveReferenceSetDefinition.Builder<R> builder = ObserveReferenceSetDefinition.builder(type); - return builder; - } - - ObserveReferenceSetDefinitions(ObserveReferenceSetDefinition.Builder definition) { + ReferentialReferenceSetDefinitions(ReferenceSetDefinition.Builder definition) { this.definition = definition.build(); } - public ObserveReferenceSetDefinition<?> getDefinition() { - return definition; + public <D extends ReferentialDto> ReferenceSetDefinition<D> getDefinition() { + return (ReferenceSetDefinition<D>) definition; } } diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/builder/AbstractToReferenceBuilder.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/builder/AbstractToReferenceBuilder.java new file mode 100644 index 0000000..c75fb35 --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/builder/AbstractToReferenceBuilder.java @@ -0,0 +1,110 @@ +package fr.ird.observe.services.dto.reference.builder; + +import com.google.common.base.Defaults; +import com.google.common.base.Preconditions; +import fr.ird.observe.services.dto.AbstractReference; +import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.constants.ReferentialLocale; +import fr.ird.observe.services.dto.reference.ReferenceSetDefinition; +import fr.ird.observe.services.dto.referential.I18nReferentialDto; +import fr.ird.observe.services.dto.referential.ReferentialReference; +import org.nuiton.util.ReflectUtil; + +import java.io.Serializable; +import java.util.List; + +/** + * Created on 13/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public abstract class AbstractToReferenceBuilder<D extends IdDto, R extends AbstractReference<D>> { + + protected ReferenceSetDefinition<D> definition; + + protected List<String> propertyNames; + + protected Class<?>[] propertyTypes; + + protected Serializable[] propertyValues; + + protected String id; + + protected ReferentialLocale referenceLocale; + + public AbstractToReferenceBuilder<D, R> addProperty(String propertyName, Serializable propertyValue) { + + int i = propertyNames.indexOf(propertyName); + Preconditions.checkState(i > -1, String.format("Property %s is not defined for type: %s, possible names are: %s", propertyName, definition.getType(), propertyNames)); + Class<?> propertyType = propertyTypes[i]; + + if (propertyValue == null) { + + if (propertyType.isPrimitive()) { + propertyValue = (Serializable) Defaults.defaultValue(propertyType); + } + + } + + checkType(propertyName, propertyValue, propertyType); + propertyValues[i] = propertyValue; + + return this; + + } + + public AbstractToReferenceBuilder<D, R> addIdIfNotNull(String propertyName, IdDto propertyValue) { + + if (propertyValue != null) { + + addProperty(propertyName, propertyValue.getId()); + + } + + return this; + + } + + public AbstractToReferenceBuilder<D, R> addLabelIfNotNull(String propertyName, I18nReferentialDto propertyValue) { + + if (propertyValue != null) { + + addProperty(propertyName, referenceLocale.getLabel(propertyValue)); + + } + + return this; + + } + + public AbstractToReferenceBuilder<D, R> addLabelIfNotNull(String propertyName, ReferentialReference propertyValue) { + + if (propertyValue != null) { + + String label = (String) propertyValue.getPropertyValue(ReferentialReference.PROPERTY_LABEL); + addProperty(propertyName, label); + + } + + return this; + + } + + public AbstractToReferenceBuilder<D, R> addId(String id) { + + this.id = id; + return this; + + } + + public abstract R build(); + + protected void checkType(String propertyName, Serializable propertyValue, Class<?> propertyType) { + if (propertyType.isPrimitive()) { + Preconditions.checkState(ReflectUtil.boxType(propertyType).isAssignableFrom(propertyValue.getClass()), "Le type de la propriété " + propertyName + " devrait être du type " + propertyType.getName() + " mais vaut: " + propertyValue); + } else { + Preconditions.checkState(propertyType.isAssignableFrom(propertyValue.getClass()), "Le type de la propriété " + propertyName + " devrait être du type " + propertyType.getName() + " mais vaut: " + propertyValue); + } + } + +} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/builder/DataToReferenceBuilder.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/builder/DataToReferenceBuilder.java new file mode 100644 index 0000000..74e97a5 --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/builder/DataToReferenceBuilder.java @@ -0,0 +1,47 @@ +package fr.ird.observe.services.dto.reference.builder; + +import fr.ird.observe.services.dto.DataDto; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.constants.ReferentialLocale; +import fr.ird.observe.services.dto.reference.DataReferenceSetDefinitions; +import fr.ird.observe.services.dto.reference.ReferenceSetDefinition; + +import java.io.Serializable; +import java.util.Arrays; + +/** + * Created on 13/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class DataToReferenceBuilder<D extends DataDto> extends AbstractToReferenceBuilder<D, DataReference<D>> { + + public static <D extends DataDto> DataToReferenceBuilder<D> builder(DataReferenceSetDefinitions def, + ReferentialLocale referenceLocale) { + + ReferenceSetDefinition<D> definition = def.getDefinition(); + + DataToReferenceBuilder<D> referenceDtoBuilder = new DataToReferenceBuilder<>(); + + referenceDtoBuilder.definition = definition; + referenceDtoBuilder.referenceLocale = referenceLocale; + referenceDtoBuilder.propertyNames = Arrays.asList(definition.getPropertyNames()); + referenceDtoBuilder.propertyTypes = definition.getPropertyTypes(); + referenceDtoBuilder.propertyValues = new Serializable[referenceDtoBuilder.propertyTypes.length]; + + return referenceDtoBuilder; + + } + + @Override + public DataReference<D> build() { + + DataReference<D> reference = new DataReference<>(); + reference.init(definition.getType(), definition.getPropertyNames(), propertyTypes, propertyValues); + reference.setId(id); + + return reference; + + } + +} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/builder/ReferentialToReferenceBuilder.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/builder/ReferentialToReferenceBuilder.java new file mode 100644 index 0000000..f0cf6be --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/builder/ReferentialToReferenceBuilder.java @@ -0,0 +1,97 @@ +package fr.ird.observe.services.dto.reference.builder; + +import fr.ird.observe.services.dto.constants.ReferentialLocale; +import fr.ird.observe.services.dto.reference.ReferenceSetDefinition; +import fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions; +import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.dto.referential.ReferentialReference; + +import java.io.Serializable; +import java.util.Arrays; +import java.util.Date; + +/** + * Created on 13/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ReferentialToReferenceBuilder<D extends ReferentialDto> extends AbstractToReferenceBuilder<D, ReferentialReference<D>> { + + protected Date lastUpdate; + + protected boolean needComment; + + protected boolean enabled; + + protected long version; + + public static <D extends ReferentialDto> ReferentialToReferenceBuilder<D> builder(ReferentialReferenceSetDefinitions def, + ReferentialLocale referenceLocale) { + + return builder(def.<D>getDefinition(), referenceLocale); + + } + + public static <D extends ReferentialDto> ReferentialToReferenceBuilder<D> builder(ReferenceSetDefinition<D> definition, + ReferentialLocale referenceLocale) { + + ReferentialToReferenceBuilder<D> referenceDtoBuilder = new ReferentialToReferenceBuilder<>(); + + referenceDtoBuilder.definition = definition; + referenceDtoBuilder.referenceLocale = referenceLocale; + referenceDtoBuilder.propertyNames = Arrays.asList(definition.getPropertyNames()); + referenceDtoBuilder.propertyTypes = definition.getPropertyTypes(); + referenceDtoBuilder.propertyValues = new Serializable[referenceDtoBuilder.propertyTypes.length]; + + return referenceDtoBuilder; + + } + + public ReferentialToReferenceBuilder<D> setLastUpdate(Date lastUpdate) { + this.lastUpdate = lastUpdate; + return this; + } + + public ReferentialToReferenceBuilder<D> setNeedComment(boolean needComment) { + this.needComment = needComment; + return this; + } + + public ReferentialToReferenceBuilder<D> setEnabled(boolean enabled) { + this.enabled = enabled; + return this; + } + + public ReferentialToReferenceBuilder<D> setVersion(long version) { + this.version = version; + return this; + } + + public ReferentialReference<D> build() { + + ReferentialReference<D> reference = new ReferentialReference<>(); + reference.init(definition.getType(), definition.getPropertyNames(), propertyTypes, propertyValues); + reference.setId(id); + reference.setLastUpdate(lastUpdate); + reference.setEnabled(enabled); + reference.setNeedComment(needComment); + reference.setVersion(version); + + reset(); + + return reference; + + } + + protected void reset() { + + id = null; + lastUpdate = null; + enabled = false; + needComment = false; + version = 0; + Arrays.fill(propertyValues, null); + + } + +} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestDefinition.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestDefinition.java deleted file mode 100644 index d3aa77c..0000000 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestDefinition.java +++ /dev/null @@ -1,53 +0,0 @@ -package fr.ird.observe.services.dto.reference.definition; - -import com.google.common.collect.ImmutableSet; -import fr.ird.observe.services.dto.IdDto; - -import java.io.Serializable; - -/** - * Pour définir une demande de récupération d'ensemble de références. - * - * Created on 11/11/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class ObserveReferenceSetRequestDefinition implements Serializable { - - private static final long serialVersionUID = 1L; - - private final ImmutableSet<ObserveReferenceSetRequestKeyDefinition> keys; - - public static <D extends IdDto> Builder<D> builder(Class<D> type) { - return new Builder<>(type); - } - - public ObserveReferenceSetRequestDefinition(ImmutableSet<ObserveReferenceSetRequestKeyDefinition> keys) { - this.keys = keys; - } - - public ImmutableSet<ObserveReferenceSetRequestKeyDefinition> getKeys() { - return keys; - } - - public static class Builder<D extends IdDto> { - - private final Class<D> parentType; - - private final ImmutableSet.Builder<ObserveReferenceSetRequestKeyDefinition> keysBuilder; - - public Builder(Class<D> parentType) { - this.parentType = parentType; - this.keysBuilder = ImmutableSet.builder(); - } - - public Builder<D> addKey(String name, ObserveReferenceSetDefinitions propertyDefinition) { - keysBuilder.add(new ObserveReferenceSetRequestKeyDefinition<>(parentType, propertyDefinition.getDefinition(), name)); - return this; - } - - public ObserveReferenceSetRequestDefinition build() { - return new ObserveReferenceSetRequestDefinition(keysBuilder.build()); - } - } -} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestDefinitions.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestDefinitions.java deleted file mode 100644 index 3bcb184..0000000 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestDefinitions.java +++ /dev/null @@ -1,391 +0,0 @@ -package fr.ird.observe.services.dto.reference.definition; - -import fr.ird.observe.services.dto.IdDto; -import fr.ird.observe.services.dto.longline.ActivityLonglineDto; -import fr.ird.observe.services.dto.longline.ActivityLonglineEncouterDto; -import fr.ird.observe.services.dto.longline.ActivityLonglineSensorUsedDto; -import fr.ird.observe.services.dto.longline.BaitsCompositionDto; -import fr.ird.observe.services.dto.longline.BranchlineDto; -import fr.ird.observe.services.dto.longline.BranchlinesCompositionDto; -import fr.ird.observe.services.dto.longline.CatchLonglineDto; -import fr.ird.observe.services.dto.longline.EncounterDto; -import fr.ird.observe.services.dto.longline.FloatlinesCompositionDto; -import fr.ird.observe.services.dto.longline.GearUseFeaturesLonglineDto; -import fr.ird.observe.services.dto.longline.GearUseFeaturesMeasurementLonglineDto; -import fr.ird.observe.services.dto.longline.HooksCompositionDto; -import fr.ird.observe.services.dto.longline.SensorUsedDto; -import fr.ird.observe.services.dto.longline.SetLonglineCatchDto; -import fr.ird.observe.services.dto.longline.SetLonglineDetailCompositionDto; -import fr.ird.observe.services.dto.longline.SetLonglineDto; -import fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionDto; -import fr.ird.observe.services.dto.longline.SetLonglineTdrDto; -import fr.ird.observe.services.dto.longline.SizeMeasureDto; -import fr.ird.observe.services.dto.longline.TdrDto; -import fr.ird.observe.services.dto.longline.TripLonglineDto; -import fr.ird.observe.services.dto.longline.TripLonglineGearUseDto; -import fr.ird.observe.services.dto.longline.WeightMeasureDto; -import fr.ird.observe.services.dto.referential.GearCaracteristicDto; -import fr.ird.observe.services.dto.referential.GearDto; -import fr.ird.observe.services.dto.referential.HarbourDto; -import fr.ird.observe.services.dto.referential.LengthWeightParameterDto; -import fr.ird.observe.services.dto.referential.OrganismDto; -import fr.ird.observe.services.dto.referential.PersonDto; -import fr.ird.observe.services.dto.referential.ProgramDto; -import fr.ird.observe.services.dto.referential.SpeciesDto; -import fr.ird.observe.services.dto.referential.SpeciesListDto; -import fr.ird.observe.services.dto.referential.VesselDto; -import fr.ird.observe.services.dto.referential.seine.WeightCategoryDto; -import fr.ird.observe.services.dto.seine.ActivitySeineDto; -import fr.ird.observe.services.dto.seine.ActivitySeineObservedSystemDto; -import fr.ird.observe.services.dto.seine.FloatingObjectDto; -import fr.ird.observe.services.dto.seine.FloatingObjectObservedSpeciesDto; -import fr.ird.observe.services.dto.seine.FloatingObjectTransmittingBuoyDto; -import fr.ird.observe.services.dto.seine.GearUseFeaturesMeasurementSeineDto; -import fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto; -import fr.ird.observe.services.dto.seine.NonTargetCatchDto; -import fr.ird.observe.services.dto.seine.NonTargetLengthDto; -import fr.ird.observe.services.dto.seine.NonTargetSampleDto; -import fr.ird.observe.services.dto.seine.ObjectObservedSpeciesDto; -import fr.ird.observe.services.dto.seine.SchoolEstimateDto; -import fr.ird.observe.services.dto.seine.SetSeineDto; -import fr.ird.observe.services.dto.seine.SetSeineNonTargetCatchDto; -import fr.ird.observe.services.dto.seine.SetSeineSchoolEstimateDto; -import fr.ird.observe.services.dto.seine.SetSeineTargetCatchDto; -import fr.ird.observe.services.dto.seine.TargetCatchDto; -import fr.ird.observe.services.dto.seine.TargetLengthDto; -import fr.ird.observe.services.dto.seine.TargetSampleDto; -import fr.ird.observe.services.dto.seine.TransmittingBuoyDto; -import fr.ird.observe.services.dto.seine.TripSeineDto; -import fr.ird.observe.services.dto.seine.TripSeineGearUseDto; - -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.BAIT_HAULING_STATUS; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.BAIT_SETTING_STATUS; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.BAIT_TYPE; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.BASKET; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.BRANCHLINE; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.CATCH_FATE_LONGLINE; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.COUNTRY; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.DETECTION_MODE; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.ENCOUNTER_TYPE; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.FPA_ZONE; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.GEAR; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.GEAR_CARACTERISTIC; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.GEAR_CARACTERISTIC_TYPE; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.HARBOUR; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.HEALTHNESS; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.HOOK_POSITION; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.HOOK_SIZE; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.HOOK_TYPE; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.ITEM_HORIZONTAL_POSITION; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.ITEM_VERTICAL_POSITION; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.LIGHTSTICKS_COLOR; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.LIGHTSTICKS_TYPE; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.LINE_TYPE; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.MATURITY_STATUS; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.MITIGATION_TYPE; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.OBJECT_FATE; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.OBJECT_OPERATION; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.OBJECT_TYPE; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.OBSERVED_SYSTEM; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.OCEAN; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.ORGANISM; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.PERSON; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.PROGRAM; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.REASON_FOR_DISCARD; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.REASON_FOR_NO_FISHING; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.REASON_FOR_NULL_SET; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.SECTION; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.SENSOR_BRAND; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.SENSOR_DATA_FORMAT; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.SENSOR_TYPE; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.SETTING_SHAPE; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.SEX; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.SIZE_MEASURE_TYPE; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.SPECIES; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.SPECIES_FATE; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.SPECIES_GROUP; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.SPECIES_STATUS; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.STOMAC_FULLNESS; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.SURROUNDING_ACTIVITY; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.TRANSMITTING_BUOY_OPERATION; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.TRANSMITTING_BUOY_TYPE; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.TRIP_TYPE; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.VESSEL; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.VESSEL_ACTIVITY_LONGLINE; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.VESSEL_ACTIVITY_SEINE; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.VESSEL_SIZE_CATEGORY; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.VESSEL_TYPE; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.WEIGHT_CATEGORY; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.WEIGHT_MEASURE_TYPE; -import static fr.ird.observe.services.dto.reference.definition.ObserveReferenceSetDefinitions.WIND; - -/** - * Contient les définitions de tous les requêtes que les services proposent. - * - * Created on 11/11/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public enum ObserveReferenceSetRequestDefinitions { - - // LONGLINE DATA - - TRIP_LONGLINE_FORM(newBuilder(TripLonglineDto.class) - .addKey(TripLonglineDto.PROPERTY_TRIP_TYPE, TRIP_TYPE) - .addKey(TripLonglineDto.PROPERTY_OBSERVER, PERSON) - .addKey(TripLonglineDto.PROPERTY_VESSEL, VESSEL) - .addKey(TripLonglineDto.PROPERTY_CAPTAIN, PERSON) - .addKey(TripLonglineDto.PROPERTY_DATA_ENTRY_OPERATOR, PERSON) - .addKey(TripLonglineDto.PROPERTY_PROGRAM, PROGRAM) - .addKey(TripLonglineDto.PROPERTY_OCEAN, OCEAN) - .addKey(TripLonglineDto.PROPERTY_DEPARTURE_HARBOUR, HARBOUR) - .addKey(TripLonglineDto.PROPERTY_LANDING_HARBOUR, HARBOUR) - ), - - TRIP_LONGLINE_GEAR_USE_FORM(newBuilder(TripLonglineGearUseDto.class) - .addKey(GearUseFeaturesLonglineDto.PROPERTY_GEAR, GEAR) - .addKey(GearUseFeaturesMeasurementLonglineDto.PROPERTY_GEAR_CARACTERISTIC, GEAR_CARACTERISTIC) - ), - - ACTIVITY_LONGLINE_FORM(newBuilder(ActivityLonglineDto.class) - .addKey(ActivityLonglineDto.PROPERTY_FPA_ZONE, FPA_ZONE) - .addKey(ActivityLonglineDto.PROPERTY_VESSEL_ACTIVITY_LONGLINE, VESSEL_ACTIVITY_LONGLINE) - ), - - ACTIVITY_LONGLINE_SENSOR_USED_FORM(newBuilder(ActivityLonglineSensorUsedDto.class) - .addKey(SensorUsedDto.PROPERTY_SENSOR_TYPE, SENSOR_TYPE) - .addKey(SensorUsedDto.PROPERTY_SENSOR_BRAND, SENSOR_BRAND) - .addKey(SensorUsedDto.PROPERTY_SENSOR_DATA_FORMAT, SENSOR_DATA_FORMAT) - ), - - ACTIVITY_LONGLINE_ENCOUTER_FORM(newBuilder(ActivityLonglineEncouterDto.class) - .addKey(EncounterDto.PROPERTY_ENCOUNTER_TYPE, ENCOUNTER_TYPE) - .addKey(EncounterDto.PROPERTY_SPECIES, SPECIES) - ), - - BRANCHLINE_FORM(newBuilder(BranchlineDto.class) - .addKey(BranchlineDto.PROPERTY_BAIT_SETTING_STATUS, BAIT_SETTING_STATUS) - .addKey(BranchlineDto.PROPERTY_HOOK_SIZE, HOOK_SIZE) - .addKey(BranchlineDto.PROPERTY_BAIT_HAULING_STATUS, BAIT_HAULING_STATUS) - .addKey(BranchlineDto.PROPERTY_HOOK_TYPE, HOOK_TYPE) - .addKey(BranchlineDto.PROPERTY_TRACELINE_TYPE, LINE_TYPE) - .addKey(BranchlineDto.PROPERTY_TOP_TYPE, LINE_TYPE) - .addKey(BranchlineDto.PROPERTY_BAIT_TYPE, BAIT_TYPE) - ), - - SET_LONGLINE_GLOBAL_COMPOSITION_FORM(newBuilder(SetLonglineGlobalCompositionDto.class) - .addKey(SetLonglineGlobalCompositionDto.PROPERTY_MITIGATION_TYPE, MITIGATION_TYPE) - .addKey(FloatlinesCompositionDto.PROPERTY_LINE_TYPE, LINE_TYPE) - .addKey(BranchlinesCompositionDto.PROPERTY_TOP_TYPE, LINE_TYPE) - .addKey(BranchlinesCompositionDto.PROPERTY_TRACELINE_TYPE, LINE_TYPE) - .addKey(HooksCompositionDto.PROPERTY_HOOK_TYPE, HOOK_TYPE) - .addKey(HooksCompositionDto.PROPERTY_HOOK_SIZE, HOOK_SIZE) - .addKey(BaitsCompositionDto.PROPERTY_BAIT_SETTING_STATUS, BAIT_SETTING_STATUS) - .addKey(BaitsCompositionDto.PROPERTY_BAIT_TYPE, BAIT_TYPE) - ), - - SET_LONGLINE_DETAIL_COMPOSITION_FORM(newBuilder(SetLonglineDetailCompositionDto.class) - .addKey(BranchlineDto.PROPERTY_TOP_TYPE, LINE_TYPE) - .addKey(BranchlineDto.PROPERTY_TRACELINE_TYPE, LINE_TYPE) - .addKey(BranchlineDto.PROPERTY_HOOK_TYPE, HOOK_TYPE) - .addKey(BranchlineDto.PROPERTY_HOOK_SIZE, HOOK_SIZE) - .addKey(BranchlineDto.PROPERTY_BAIT_TYPE, BAIT_TYPE) - .addKey(BranchlineDto.PROPERTY_BAIT_SETTING_STATUS, BAIT_SETTING_STATUS) - .addKey(BranchlineDto.PROPERTY_BAIT_HAULING_STATUS, BAIT_HAULING_STATUS) - ), - - SET_LONGLINE_FORM(newBuilder(SetLonglineDto.class) - .addKey(SetLonglineDto.PROPERTY_SETTING_SHAPE, SETTING_SHAPE) - .addKey(SetLonglineDto.PROPERTY_LINE_TYPE, LINE_TYPE) - .addKey(SetLonglineDto.PROPERTY_LIGHTSTICKS_TYPE, LIGHTSTICKS_TYPE) - .addKey(SetLonglineDto.PROPERTY_LIGHTSTICKS_COLOR, LIGHTSTICKS_COLOR) - ), - - SET_LONGLINE_CATCH_FORM(newBuilder(SetLonglineCatchDto.class) - .addKey(CatchLonglineDto.PROPERTY_SPECIES_CATCH, SPECIES) - .addKey(CatchLonglineDto.PROPERTY_CATCH_HEALTHNESS, HEALTHNESS) - .addKey(CatchLonglineDto.PROPERTY_HOOK_POSITION, HOOK_POSITION) - .addKey(CatchLonglineDto.PROPERTY_CATCH_FATE_LONGLINE, CATCH_FATE_LONGLINE) - .addKey(CatchLonglineDto.PROPERTY_DISCARD_HEALTHNESS, HEALTHNESS) - .addKey(CatchLonglineDto.PROPERTY_PREDATOR, SPECIES) - .addKey(CatchLonglineDto.PROPERTY_STOMAC_FULLNESS, STOMAC_FULLNESS) - .addKey(CatchLonglineDto.PROPERTY_SEX, SEX) - .addKey(CatchLonglineDto.PROPERTY_MATURITY_STATUS, MATURITY_STATUS) - .addKey(SizeMeasureDto.PROPERTY_SIZE_MEASURE_TYPE, SIZE_MEASURE_TYPE) - .addKey(WeightMeasureDto.PROPERTY_WEIGHT_MEASURE_TYPE, WEIGHT_MEASURE_TYPE) - .addKey(CatchLonglineDto.PROPERTY_SECTION, SECTION) - .addKey(CatchLonglineDto.PROPERTY_BASKET, BASKET) - .addKey(CatchLonglineDto.PROPERTY_BRANCHLINE, BRANCHLINE) - .addKey(BranchlineDto.PROPERTY_BAIT_HAULING_STATUS, BAIT_HAULING_STATUS) - ), - - SET_LONGLINE_TDR_FORM(newBuilder(SetLonglineTdrDto.class) - .addKey(TdrDto.PROPERTY_SENSOR_BRAND, SENSOR_BRAND) - .addKey(TdrDto.PROPERTY_ITEM_HORIZONTAL_POSITION, ITEM_HORIZONTAL_POSITION) - .addKey(TdrDto.PROPERTY_ITEM_VERTICAL_POSITION, ITEM_VERTICAL_POSITION) - .addKey(TdrDto.PROPERTY_SPECIES, SPECIES) - .addKey(TdrDto.PROPERTY_SECTION, SECTION) - .addKey(TdrDto.PROPERTY_BASKET, BASKET) - .addKey(TdrDto.PROPERTY_BRANCHLINE, BRANCHLINE) - ), - - // SEINE DATA - - TRIP_SEINE_FORM(newBuilder(TripSeineDto.class) - .addKey(TripSeineDto.PROPERTY_OBSERVER, PERSON) - .addKey(TripSeineDto.PROPERTY_CAPTAIN, PERSON) - .addKey(TripSeineDto.PROPERTY_DATA_ENTRY_OPERATOR, PERSON) - .addKey(TripSeineDto.PROPERTY_VESSEL, VESSEL) - .addKey(TripSeineDto.PROPERTY_OCEAN, OCEAN) - .addKey(TripSeineDto.PROPERTY_DEPARTURE_HARBOUR, HARBOUR) - .addKey(TripSeineDto.PROPERTY_LANDING_HARBOUR, HARBOUR) - .addKey(TripSeineDto.PROPERTY_PROGRAM, PROGRAM) - ), - - TRIP_SEINE_GEAR_USE_FORM(newBuilder(TripSeineGearUseDto.class) - .addKey(GearUseFeaturesSeineDto.PROPERTY_GEAR, GEAR) - .addKey(GearUseFeaturesMeasurementSeineDto.PROPERTY_GEAR_CARACTERISTIC, GEAR_CARACTERISTIC) - ), - - ACTIVITY_SEINE_FORM(newBuilder(ActivitySeineDto.class) - .addKey(ActivitySeineDto.PROPERTY_VESSEL_ACTIVITY_SEINE, VESSEL_ACTIVITY_SEINE) - .addKey(ActivitySeineDto.PROPERTY_SURROUNDING_ACTIVITY, SURROUNDING_ACTIVITY) - .addKey(ActivitySeineDto.PROPERTY_WIND, WIND) - .addKey(ActivitySeineDto.PROPERTY_DETECTION_MODE, DETECTION_MODE) - .addKey(ActivitySeineDto.PROPERTY_REASON_FOR_NO_FISHING, REASON_FOR_NO_FISHING) - .addKey(ActivitySeineDto.PROPERTY_PREVIOUS_FPA_ZONE, FPA_ZONE) - .addKey(ActivitySeineDto.PROPERTY_CURRENT_FPA_ZONE, FPA_ZONE) - .addKey(ActivitySeineDto.PROPERTY_NEXT_FPA_ZONE, FPA_ZONE) - ), - - ACTIVITY_SEINE_OBSERVED_SYSTEM_FORM(newBuilder(ActivitySeineObservedSystemDto.class) - .addKey(ActivitySeineObservedSystemDto.PROPERTY_OBSERVED_SYSTEM, OBSERVED_SYSTEM) - ), - - SET_SEINE_FORM(newBuilder(SetSeineDto.class) - .addKey(SetSeineDto.PROPERTY_REASON_FOR_NULL_SET, REASON_FOR_NULL_SET) - ), - - SET_SEINE_SCHOOL_ESTIMATE_FORM(newBuilder(SetSeineSchoolEstimateDto.class) - .addKey(SchoolEstimateDto.PROPERTY_SPECIES, SPECIES) - ), - - SET_SEINE_TARGET_CATCH_FORM(newBuilder(SetSeineTargetCatchDto.class) - .addKey(TargetCatchDto.PROPERTY_SPECIES, SPECIES) - .addKey(TargetCatchDto.PROPERTY_REASON_FOR_DISCARD, REASON_FOR_DISCARD) - .addKey(TargetCatchDto.PROPERTY_WEIGHT_CATEGORY, WEIGHT_CATEGORY) - ), - - SET_SEINE_NON_TARGET_CATCH_FORM(newBuilder(SetSeineNonTargetCatchDto.class) - .addKey(NonTargetCatchDto.PROPERTY_SPECIES, SPECIES) - .addKey(NonTargetCatchDto.PROPERTY_SPECIES_FATE, SPECIES_FATE) - .addKey(NonTargetCatchDto.PROPERTY_REASON_FOR_DISCARD, REASON_FOR_DISCARD) - ), - - TARGET_SAMPLE_FORM(newBuilder(TargetSampleDto.class) - .addKey(TargetLengthDto.PROPERTY_SPECIES, SPECIES) - ), - - NON_TARGET_SAMPLE_FORM(newBuilder(NonTargetSampleDto.class) - .addKey(NonTargetLengthDto.PROPERTY_SPECIES, SPECIES) - .addKey(NonTargetLengthDto.PROPERTY_SEX, SEX) - ), - - FLOATING_OBJECT_FORM(newBuilder(FloatingObjectDto.class) - .addKey(FloatingObjectDto.PROPERTY_OBJECT_TYPE, OBJECT_TYPE) - .addKey(FloatingObjectDto.PROPERTY_OBJECT_OPERATION, OBJECT_OPERATION) - .addKey(FloatingObjectDto.PROPERTY_OBJECT_FATE, OBJECT_FATE) - ), - - FLOATING_OBJECT_OBSERVED_SPECIES_FORM(newBuilder(FloatingObjectObservedSpeciesDto.class) - .addKey(ObjectObservedSpeciesDto.PROPERTY_SPECIES, SPECIES) - .addKey(ObjectObservedSpeciesDto.PROPERTY_SPECIES_STATUS, SPECIES_STATUS) - ), - - FLOATING_OBJECT_SCHOOL_ESTIMATE_FORM(newBuilder(SchoolEstimateDto.class) - .addKey(ObjectObservedSpeciesDto.PROPERTY_SPECIES, SPECIES) - ), - - FLOATING_OBJECT_TRANSMITTING_BUOY_FORM(newBuilder(FloatingObjectTransmittingBuoyDto.class) - .addKey(TransmittingBuoyDto.PROPERTY_TRANSMITTING_BUOY_OPERATION, TRANSMITTING_BUOY_OPERATION) - .addKey(TransmittingBuoyDto.PROPERTY_TRANSMITTING_BUOY_TYPE, TRANSMITTING_BUOY_TYPE) - .addKey(TransmittingBuoyDto.PROPERTY_COUNTRY, COUNTRY) - ), - - // REFERENTIAL - - GEAR_CARACTERISTIC_FORM(newBuilder(GearCaracteristicDto.class) - .addKey(GearCaracteristicDto.PROPERTY_GEAR_CARACTERISTIC_TYPE, GEAR_CARACTERISTIC_TYPE) - ), - - GEAR_FORM(newBuilder(GearDto.class) - .addKey(GearDto.PROPERTY_GEAR_CARACTERISTIC, GEAR_CARACTERISTIC) - ), - - HARBOUR_FORM(newBuilder(HarbourDto.class) - .addKey(HarbourDto.PROPERTY_COUNTRY, COUNTRY) - ), - - LENGTH_WEIGHT_PARAMETER_FORM(newBuilder(LengthWeightParameterDto.class) - .addKey(LengthWeightParameterDto.PROPERTY_SPECIES, SPECIES) - .addKey(LengthWeightParameterDto.PROPERTY_OCEAN, OCEAN) - .addKey(LengthWeightParameterDto.PROPERTY_SEX, SEX) - ), - - ORGANISM_FORM(newBuilder(OrganismDto.class) - .addKey(OrganismDto.PROPERTY_COUNTRY, COUNTRY) - ), - - PERSON_FORM(newBuilder(PersonDto.class) - .addKey(PersonDto.PROPERTY_COUNTRY, COUNTRY) - ), - - PROGRAM_FORM(newBuilder(ProgramDto.class) - .addKey(ProgramDto.PROPERTY_ORGANISM, ORGANISM) - ), - - SPECIES_FORM(newBuilder(SpeciesDto.class) - .addKey(SpeciesDto.PROPERTY_OCEAN, OCEAN) - .addKey(SpeciesDto.PROPERTY_SPECIES_GROUP, SPECIES_GROUP) - ), - - SPECIES_LIST_FORM(newBuilder(SpeciesListDto.class) - .addKey(SpeciesListDto.PROPERTY_SPECIES, SPECIES) - ), - - VESSEL_FORM(newBuilder(VesselDto.class) - .addKey(VesselDto.PROPERTY_FLAG_COUNTRY, COUNTRY) - .addKey(VesselDto.PROPERTY_VESSEL_TYPE, VESSEL_TYPE) - .addKey(VesselDto.PROPERTY_VESSEL_SIZE_CATEGORY, VESSEL_SIZE_CATEGORY) - ), - - WEIGHT_CATEGORY_FORM(newBuilder(WeightCategoryDto.class) - .addKey(WeightCategoryDto.PROPERTY_SPECIES, SPECIES) - ); - - public final ObserveReferenceSetRequestDefinition definition; - - public static <D extends IdDto> ObserveReferenceSetRequestDefinition.Builder<D> newBuilder(Class<D> parentType) { - return new ObserveReferenceSetRequestDefinition.Builder<>(parentType); - } - - ObserveReferenceSetRequestDefinitions(ObserveReferenceSetRequestDefinition.Builder definitionBuilder) { - this.definition = definitionBuilder.build(); - } - - public ObserveReferenceSetRequestDefinition getDefinition() { - return definition; - } - - public static ObserveReferenceSetRequestDefinition get(String definitionName) { - - ObserveReferenceSetRequestDefinitions requestDefinitions = valueOf(definitionName); - if (requestDefinitions == null) { - throw new IllegalArgumentException("No definition with name " + definitionName + "registred"); - } - - return requestDefinitions.getDefinition(); - - } - -} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/request/ReferenceSetRequestDefinition.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/request/ReferenceSetRequestDefinition.java new file mode 100644 index 0000000..32796d3 --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/request/ReferenceSetRequestDefinition.java @@ -0,0 +1,87 @@ +package fr.ird.observe.services.dto.reference.request; + +import com.google.common.collect.ImmutableSet; +import fr.ird.observe.services.dto.DataDto; +import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.reference.ReferenceSetDefinition; +import fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions; +import fr.ird.observe.services.dto.referential.ReferentialDto; + +import java.io.Serializable; + +/** + * Pour définir une demande de récupération d'ensemble de références. + * + * Created on 11/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ReferenceSetRequestDefinition implements Serializable { + + private static final long serialVersionUID = 1L; + + private final ImmutableSet<ReferenceSetDefinition<? extends DataDto>> dataReferenceSetDefinitions; + + private final ImmutableSet<ReferenceSetRequestKeyDefinition<?>> propertyDefinitions; + + private final ImmutableSet<ReferenceSetDefinition<? extends ReferentialDto>> referentialReferenceSetDefinitions; + + public static Builder builder() { + return new Builder(); + } + + public ReferenceSetRequestDefinition(ImmutableSet<ReferenceSetRequestKeyDefinition<?>> propertyDefinitions, ImmutableSet<ReferenceSetDefinition<? extends ReferentialDto>> referentialReferenceSetDefinitions, + ImmutableSet<ReferenceSetDefinition<? extends DataDto>> dataReferenceSetDefinitions) { + this.propertyDefinitions = propertyDefinitions; + this.referentialReferenceSetDefinitions = referentialReferenceSetDefinitions; + this.dataReferenceSetDefinitions = dataReferenceSetDefinitions; + } + + public ImmutableSet<ReferenceSetDefinition<? extends ReferentialDto>> getReferentialReferenceSetDefinitions() { + return referentialReferenceSetDefinitions; + } + + public ImmutableSet<ReferenceSetDefinition<? extends DataDto>> getDataReferenceSetDefinitions() { + return dataReferenceSetDefinitions; + } + + public ImmutableSet<ReferenceSetRequestKeyDefinition<?>> getPropertyDefinitions() { + return propertyDefinitions; + } + + public static class Builder { + + private final ImmutableSet.Builder<ReferenceSetRequestKeyDefinition<?>> propertiesBuilder; + + private final ImmutableSet.Builder<ReferenceSetDefinition<? extends ReferentialDto>> referentialSetsBuilder; + + private final ImmutableSet.Builder<ReferenceSetDefinition<? extends DataDto>> dataSetsBuilder; + + public Builder() { + this.propertiesBuilder = ImmutableSet.builder(); + this.referentialSetsBuilder = ImmutableSet.builder(); + this.dataSetsBuilder = ImmutableSet.builder(); + } + + public Builder addKey(String name, ReferentialReferenceSetDefinitions propertyDefinition) { + ReferenceSetDefinition definition = propertyDefinition.getDefinition(); + addKey(name, definition); + return this; + } + + public ReferenceSetRequestDefinition build() { + return new ReferenceSetRequestDefinition(propertiesBuilder.build(), referentialSetsBuilder.build(), dataSetsBuilder.build()); + } + + protected <D extends IdDto> void addKey(String name, ReferenceSetDefinition<D> definition) { + ReferenceSetRequestKeyDefinition<D> propertyDefinition = new ReferenceSetRequestKeyDefinition<>(definition, name); + propertiesBuilder.add(propertyDefinition); + if (ReferentialDto.class.isAssignableFrom(definition.getType())) { + referentialSetsBuilder.add((ReferenceSetDefinition) definition); + + } else { + dataSetsBuilder.add((ReferenceSetDefinition) definition); + } + } + } +} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/request/ReferenceSetRequestDefinitions.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/request/ReferenceSetRequestDefinitions.java new file mode 100644 index 0000000..6d9158d --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/request/ReferenceSetRequestDefinitions.java @@ -0,0 +1,371 @@ +package fr.ird.observe.services.dto.reference.request; + +import fr.ird.observe.services.dto.longline.ActivityLonglineDto; +import fr.ird.observe.services.dto.longline.BaitsCompositionDto; +import fr.ird.observe.services.dto.longline.BranchlineDto; +import fr.ird.observe.services.dto.longline.BranchlinesCompositionDto; +import fr.ird.observe.services.dto.longline.CatchLonglineDto; +import fr.ird.observe.services.dto.longline.EncounterDto; +import fr.ird.observe.services.dto.longline.FloatlinesCompositionDto; +import fr.ird.observe.services.dto.longline.GearUseFeaturesLonglineDto; +import fr.ird.observe.services.dto.longline.GearUseFeaturesMeasurementLonglineDto; +import fr.ird.observe.services.dto.longline.HooksCompositionDto; +import fr.ird.observe.services.dto.longline.SensorUsedDto; +import fr.ird.observe.services.dto.longline.SetLonglineDto; +import fr.ird.observe.services.dto.longline.SetLonglineGlobalCompositionDto; +import fr.ird.observe.services.dto.longline.SizeMeasureDto; +import fr.ird.observe.services.dto.longline.TdrDto; +import fr.ird.observe.services.dto.longline.TripLonglineDto; +import fr.ird.observe.services.dto.longline.WeightMeasureDto; +import fr.ird.observe.services.dto.referential.GearCaracteristicDto; +import fr.ird.observe.services.dto.referential.GearDto; +import fr.ird.observe.services.dto.referential.HarbourDto; +import fr.ird.observe.services.dto.referential.LengthWeightParameterDto; +import fr.ird.observe.services.dto.referential.OrganismDto; +import fr.ird.observe.services.dto.referential.PersonDto; +import fr.ird.observe.services.dto.referential.ProgramDto; +import fr.ird.observe.services.dto.referential.SpeciesDto; +import fr.ird.observe.services.dto.referential.SpeciesListDto; +import fr.ird.observe.services.dto.referential.VesselDto; +import fr.ird.observe.services.dto.referential.seine.WeightCategoryDto; +import fr.ird.observe.services.dto.seine.ActivitySeineDto; +import fr.ird.observe.services.dto.seine.ActivitySeineObservedSystemDto; +import fr.ird.observe.services.dto.seine.FloatingObjectDto; +import fr.ird.observe.services.dto.seine.GearUseFeaturesMeasurementSeineDto; +import fr.ird.observe.services.dto.seine.GearUseFeaturesSeineDto; +import fr.ird.observe.services.dto.seine.NonTargetCatchDto; +import fr.ird.observe.services.dto.seine.NonTargetLengthDto; +import fr.ird.observe.services.dto.seine.ObjectObservedSpeciesDto; +import fr.ird.observe.services.dto.seine.SchoolEstimateDto; +import fr.ird.observe.services.dto.seine.SetSeineDto; +import fr.ird.observe.services.dto.seine.TargetCatchDto; +import fr.ird.observe.services.dto.seine.TargetLengthDto; +import fr.ird.observe.services.dto.seine.TransmittingBuoyDto; +import fr.ird.observe.services.dto.seine.TripSeineDto; + +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.BAIT_HAULING_STATUS; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.BAIT_SETTING_STATUS; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.BAIT_TYPE; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.CATCH_FATE_LONGLINE; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.COUNTRY; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.DETECTION_MODE; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.ENCOUNTER_TYPE; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.FPA_ZONE; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.GEAR; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.GEAR_CARACTERISTIC; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.GEAR_CARACTERISTIC_TYPE; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.HARBOUR; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.HEALTHNESS; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.HOOK_POSITION; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.HOOK_SIZE; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.HOOK_TYPE; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.ITEM_HORIZONTAL_POSITION; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.ITEM_VERTICAL_POSITION; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.LIGHTSTICKS_COLOR; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.LIGHTSTICKS_TYPE; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.LINE_TYPE; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.MATURITY_STATUS; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.MITIGATION_TYPE; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.OBJECT_FATE; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.OBJECT_OPERATION; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.OBJECT_TYPE; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.OBSERVED_SYSTEM; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.OCEAN; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.ORGANISM; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.PERSON; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.PROGRAM; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.REASON_FOR_DISCARD; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.REASON_FOR_NO_FISHING; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.REASON_FOR_NULL_SET; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.SENSOR_BRAND; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.SENSOR_DATA_FORMAT; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.SENSOR_TYPE; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.SETTING_SHAPE; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.SEX; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.SIZE_MEASURE_TYPE; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.SPECIES; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.SPECIES_FATE; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.SPECIES_GROUP; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.SPECIES_STATUS; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.STOMAC_FULLNESS; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.SURROUNDING_ACTIVITY; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.TRANSMITTING_BUOY_OPERATION; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.TRANSMITTING_BUOY_TYPE; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.TRIP_TYPE; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.VESSEL; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.VESSEL_ACTIVITY_LONGLINE; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.VESSEL_ACTIVITY_SEINE; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.VESSEL_SIZE_CATEGORY; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.VESSEL_TYPE; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.WEIGHT_CATEGORY; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.WEIGHT_MEASURE_TYPE; +import static fr.ird.observe.services.dto.reference.ReferentialReferenceSetDefinitions.WIND; + +/** + * //FIXME Renommer et spliter car il s'agit aussi de définition + * Contient les définitions de tous les requêtes que les services proposent. + * + * Pour chaque type qui correspond à un formulaire, on décrit ici que les référentiels à utiliser, pour les données + * métier, on gère ça à la main (peu de cas au final). + * + * Created on 11/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public enum ReferenceSetRequestDefinitions { + + // LONGLINE DATA + + TRIP_LONGLINE_FORM( + newBuilder() + .addKey(TripLonglineDto.PROPERTY_TRIP_TYPE, TRIP_TYPE) + .addKey(TripLonglineDto.PROPERTY_OBSERVER, PERSON) + .addKey(TripLonglineDto.PROPERTY_VESSEL, VESSEL) + .addKey(TripLonglineDto.PROPERTY_CAPTAIN, PERSON) + .addKey(TripLonglineDto.PROPERTY_DATA_ENTRY_OPERATOR, PERSON) + .addKey(TripLonglineDto.PROPERTY_PROGRAM, PROGRAM) + .addKey(TripLonglineDto.PROPERTY_OCEAN, OCEAN) + .addKey(TripLonglineDto.PROPERTY_DEPARTURE_HARBOUR, HARBOUR) + .addKey(TripLonglineDto.PROPERTY_LANDING_HARBOUR, HARBOUR)), + + TRIP_LONGLINE_GEAR_USE_FORM( + newBuilder() + .addKey(GearUseFeaturesLonglineDto.PROPERTY_GEAR, GEAR) + .addKey(GearUseFeaturesMeasurementLonglineDto.PROPERTY_GEAR_CARACTERISTIC, GEAR_CARACTERISTIC)), + + ACTIVITY_LONGLINE_FORM( + newBuilder() + .addKey(ActivityLonglineDto.PROPERTY_FPA_ZONE, FPA_ZONE) + .addKey(ActivityLonglineDto.PROPERTY_VESSEL_ACTIVITY_LONGLINE, VESSEL_ACTIVITY_LONGLINE)), + + ACTIVITY_LONGLINE_SENSOR_USED_FORM( + newBuilder() + .addKey(SensorUsedDto.PROPERTY_SENSOR_TYPE, SENSOR_TYPE) + .addKey(SensorUsedDto.PROPERTY_SENSOR_BRAND, SENSOR_BRAND) + .addKey(SensorUsedDto.PROPERTY_SENSOR_DATA_FORMAT, SENSOR_DATA_FORMAT)), + + ACTIVITY_LONGLINE_ENCOUTER_FORM( + newBuilder() + .addKey(EncounterDto.PROPERTY_ENCOUNTER_TYPE, ENCOUNTER_TYPE) + .addKey(EncounterDto.PROPERTY_SPECIES, SPECIES)), + + BRANCHLINE_FORM( + newBuilder() + .addKey(BranchlineDto.PROPERTY_BAIT_SETTING_STATUS, BAIT_SETTING_STATUS) + .addKey(BranchlineDto.PROPERTY_HOOK_SIZE, HOOK_SIZE) + .addKey(BranchlineDto.PROPERTY_BAIT_HAULING_STATUS, BAIT_HAULING_STATUS) + .addKey(BranchlineDto.PROPERTY_HOOK_TYPE, HOOK_TYPE) + .addKey(BranchlineDto.PROPERTY_TRACELINE_TYPE, LINE_TYPE) + .addKey(BranchlineDto.PROPERTY_TOP_TYPE, LINE_TYPE) + .addKey(BranchlineDto.PROPERTY_BAIT_TYPE, BAIT_TYPE)), + + SET_LONGLINE_GLOBAL_COMPOSITION_FORM( + newBuilder() + .addKey(SetLonglineGlobalCompositionDto.PROPERTY_MITIGATION_TYPE, MITIGATION_TYPE) + .addKey(FloatlinesCompositionDto.PROPERTY_LINE_TYPE, LINE_TYPE) + .addKey(BranchlinesCompositionDto.PROPERTY_TOP_TYPE, LINE_TYPE) + .addKey(BranchlinesCompositionDto.PROPERTY_TRACELINE_TYPE, LINE_TYPE) + .addKey(HooksCompositionDto.PROPERTY_HOOK_TYPE, HOOK_TYPE) + .addKey(HooksCompositionDto.PROPERTY_HOOK_SIZE, HOOK_SIZE) + .addKey(BaitsCompositionDto.PROPERTY_BAIT_SETTING_STATUS, BAIT_SETTING_STATUS) + .addKey(BaitsCompositionDto.PROPERTY_BAIT_TYPE, BAIT_TYPE)), + + SET_LONGLINE_DETAIL_COMPOSITION_FORM( + newBuilder() + .addKey(BranchlineDto.PROPERTY_TOP_TYPE, LINE_TYPE) + .addKey(BranchlineDto.PROPERTY_TRACELINE_TYPE, LINE_TYPE) + .addKey(BranchlineDto.PROPERTY_HOOK_TYPE, HOOK_TYPE) + .addKey(BranchlineDto.PROPERTY_HOOK_SIZE, HOOK_SIZE) + .addKey(BranchlineDto.PROPERTY_BAIT_TYPE, BAIT_TYPE) + .addKey(BranchlineDto.PROPERTY_BAIT_SETTING_STATUS, BAIT_SETTING_STATUS) + .addKey(BranchlineDto.PROPERTY_BAIT_HAULING_STATUS, BAIT_HAULING_STATUS)), + + SET_LONGLINE_FORM( + newBuilder() + .addKey(SetLonglineDto.PROPERTY_SETTING_SHAPE, SETTING_SHAPE) + .addKey(SetLonglineDto.PROPERTY_LINE_TYPE, LINE_TYPE) + .addKey(SetLonglineDto.PROPERTY_LIGHTSTICKS_TYPE, LIGHTSTICKS_TYPE) + .addKey(SetLonglineDto.PROPERTY_LIGHTSTICKS_COLOR, LIGHTSTICKS_COLOR)), + + SET_LONGLINE_CATCH_FORM( + newBuilder() + .addKey(CatchLonglineDto.PROPERTY_SPECIES_CATCH, SPECIES) + .addKey(CatchLonglineDto.PROPERTY_CATCH_HEALTHNESS, HEALTHNESS) + .addKey(CatchLonglineDto.PROPERTY_HOOK_POSITION, HOOK_POSITION) + .addKey(CatchLonglineDto.PROPERTY_CATCH_FATE_LONGLINE, CATCH_FATE_LONGLINE) + .addKey(CatchLonglineDto.PROPERTY_DISCARD_HEALTHNESS, HEALTHNESS) + .addKey(CatchLonglineDto.PROPERTY_PREDATOR, SPECIES) + .addKey(CatchLonglineDto.PROPERTY_STOMAC_FULLNESS, STOMAC_FULLNESS) + .addKey(CatchLonglineDto.PROPERTY_SEX, SEX) + .addKey(CatchLonglineDto.PROPERTY_MATURITY_STATUS, MATURITY_STATUS) + .addKey(SizeMeasureDto.PROPERTY_SIZE_MEASURE_TYPE, SIZE_MEASURE_TYPE) + .addKey(WeightMeasureDto.PROPERTY_WEIGHT_MEASURE_TYPE, WEIGHT_MEASURE_TYPE) + .addKey(BranchlineDto.PROPERTY_BAIT_HAULING_STATUS, BAIT_HAULING_STATUS)), + + SET_LONGLINE_TDR_FORM( + newBuilder() + .addKey(TdrDto.PROPERTY_SENSOR_BRAND, SENSOR_BRAND) + .addKey(TdrDto.PROPERTY_ITEM_HORIZONTAL_POSITION, ITEM_HORIZONTAL_POSITION) + .addKey(TdrDto.PROPERTY_ITEM_VERTICAL_POSITION, ITEM_VERTICAL_POSITION) + .addKey(TdrDto.PROPERTY_SPECIES, SPECIES)), + + // SEINE DATA + + TRIP_SEINE_FORM( + newBuilder() + .addKey(TripSeineDto.PROPERTY_OBSERVER, PERSON) + .addKey(TripSeineDto.PROPERTY_CAPTAIN, PERSON) + .addKey(TripSeineDto.PROPERTY_DATA_ENTRY_OPERATOR, PERSON) + .addKey(TripSeineDto.PROPERTY_VESSEL, VESSEL) + .addKey(TripSeineDto.PROPERTY_OCEAN, OCEAN) + .addKey(TripSeineDto.PROPERTY_DEPARTURE_HARBOUR, HARBOUR) + .addKey(TripSeineDto.PROPERTY_LANDING_HARBOUR, HARBOUR) + .addKey(TripSeineDto.PROPERTY_PROGRAM, PROGRAM)), + + TRIP_SEINE_GEAR_USE_FORM( + newBuilder() + .addKey(GearUseFeaturesSeineDto.PROPERTY_GEAR, GEAR) + .addKey(GearUseFeaturesMeasurementSeineDto.PROPERTY_GEAR_CARACTERISTIC, GEAR_CARACTERISTIC)), + + ACTIVITY_SEINE_FORM( + newBuilder() + .addKey(ActivitySeineDto.PROPERTY_VESSEL_ACTIVITY_SEINE, VESSEL_ACTIVITY_SEINE) + .addKey(ActivitySeineDto.PROPERTY_SURROUNDING_ACTIVITY, SURROUNDING_ACTIVITY) + .addKey(ActivitySeineDto.PROPERTY_WIND, WIND) + .addKey(ActivitySeineDto.PROPERTY_DETECTION_MODE, DETECTION_MODE) + .addKey(ActivitySeineDto.PROPERTY_REASON_FOR_NO_FISHING, REASON_FOR_NO_FISHING) + .addKey(ActivitySeineDto.PROPERTY_PREVIOUS_FPA_ZONE, FPA_ZONE) + .addKey(ActivitySeineDto.PROPERTY_CURRENT_FPA_ZONE, FPA_ZONE) + .addKey(ActivitySeineDto.PROPERTY_NEXT_FPA_ZONE, FPA_ZONE)), + + ACTIVITY_SEINE_OBSERVED_SYSTEM_FORM( + newBuilder() + .addKey(ActivitySeineObservedSystemDto.PROPERTY_OBSERVED_SYSTEM, OBSERVED_SYSTEM)), + + SET_SEINE_FORM( + newBuilder() + .addKey(SetSeineDto.PROPERTY_REASON_FOR_NULL_SET, REASON_FOR_NULL_SET)), + + SET_SEINE_SCHOOL_ESTIMATE_FORM( + newBuilder() + .addKey(SchoolEstimateDto.PROPERTY_SPECIES, SPECIES)), + + SET_SEINE_TARGET_CATCH_FORM( + newBuilder() + .addKey(TargetCatchDto.PROPERTY_SPECIES, SPECIES) + .addKey(TargetCatchDto.PROPERTY_REASON_FOR_DISCARD, REASON_FOR_DISCARD) + .addKey(TargetCatchDto.PROPERTY_WEIGHT_CATEGORY, WEIGHT_CATEGORY)), + + SET_SEINE_NON_TARGET_CATCH_FORM( + newBuilder() + .addKey(NonTargetCatchDto.PROPERTY_SPECIES, SPECIES) + .addKey(NonTargetCatchDto.PROPERTY_SPECIES_FATE, SPECIES_FATE) + .addKey(NonTargetCatchDto.PROPERTY_REASON_FOR_DISCARD, REASON_FOR_DISCARD)), + + TARGET_SAMPLE_FORM( + newBuilder() + .addKey(TargetLengthDto.PROPERTY_SPECIES, SPECIES)), + + NON_TARGET_SAMPLE_FORM( + newBuilder() + .addKey(NonTargetLengthDto.PROPERTY_SPECIES, SPECIES) + .addKey(NonTargetLengthDto.PROPERTY_SEX, SEX)), + + FLOATING_OBJECT_FORM( + newBuilder() + .addKey(FloatingObjectDto.PROPERTY_OBJECT_TYPE, OBJECT_TYPE) + .addKey(FloatingObjectDto.PROPERTY_OBJECT_OPERATION, OBJECT_OPERATION) + .addKey(FloatingObjectDto.PROPERTY_OBJECT_FATE, OBJECT_FATE)), + + FLOATING_OBJECT_OBSERVED_SPECIES_FORM( + newBuilder() + .addKey(ObjectObservedSpeciesDto.PROPERTY_SPECIES, SPECIES) + .addKey(ObjectObservedSpeciesDto.PROPERTY_SPECIES_STATUS, SPECIES_STATUS)), + + FLOATING_OBJECT_SCHOOL_ESTIMATE_FORM( + newBuilder() + .addKey(ObjectObservedSpeciesDto.PROPERTY_SPECIES, SPECIES)), + + FLOATING_OBJECT_TRANSMITTING_BUOY_FORM( + newBuilder() + .addKey(TransmittingBuoyDto.PROPERTY_TRANSMITTING_BUOY_OPERATION, TRANSMITTING_BUOY_OPERATION) + .addKey(TransmittingBuoyDto.PROPERTY_TRANSMITTING_BUOY_TYPE, TRANSMITTING_BUOY_TYPE) + .addKey(TransmittingBuoyDto.PROPERTY_COUNTRY, COUNTRY)), + + // REFERENTIAL + + GEAR_CARACTERISTIC_FORM( + newBuilder() + .addKey(GearCaracteristicDto.PROPERTY_GEAR_CARACTERISTIC_TYPE, GEAR_CARACTERISTIC_TYPE)), + + GEAR_FORM( + newBuilder() + .addKey(GearDto.PROPERTY_GEAR_CARACTERISTIC, GEAR_CARACTERISTIC)), + + HARBOUR_FORM( + newBuilder() + .addKey(HarbourDto.PROPERTY_COUNTRY, COUNTRY)), + + LENGTH_WEIGHT_PARAMETER_FORM( + newBuilder() + .addKey(LengthWeightParameterDto.PROPERTY_SPECIES, SPECIES) + .addKey(LengthWeightParameterDto.PROPERTY_OCEAN, OCEAN) + .addKey(LengthWeightParameterDto.PROPERTY_SEX, SEX)), + + ORGANISM_FORM( + newBuilder() + .addKey(OrganismDto.PROPERTY_COUNTRY, COUNTRY)), + + PERSON_FORM( + newBuilder() + .addKey(PersonDto.PROPERTY_COUNTRY, COUNTRY)), + + PROGRAM_FORM( + newBuilder() + .addKey(ProgramDto.PROPERTY_ORGANISM, ORGANISM)), + + SPECIES_FORM( + newBuilder() + .addKey(SpeciesDto.PROPERTY_OCEAN, OCEAN) + .addKey(SpeciesDto.PROPERTY_SPECIES_GROUP, SPECIES_GROUP)), + + SPECIES_LIST_FORM( + newBuilder() + .addKey(SpeciesListDto.PROPERTY_SPECIES, SPECIES)), + + VESSEL_FORM( + newBuilder() + .addKey(VesselDto.PROPERTY_FLAG_COUNTRY, COUNTRY) + .addKey(VesselDto.PROPERTY_VESSEL_TYPE, VESSEL_TYPE) + .addKey(VesselDto.PROPERTY_VESSEL_SIZE_CATEGORY, VESSEL_SIZE_CATEGORY)), + + WEIGHT_CATEGORY_FORM( + newBuilder() + .addKey(WeightCategoryDto.PROPERTY_SPECIES, SPECIES)); + + private final ReferenceSetRequestDefinition definition; + + private static ReferenceSetRequestDefinition.Builder newBuilder() { + return new ReferenceSetRequestDefinition.Builder(); + } + + ReferenceSetRequestDefinitions(ReferenceSetRequestDefinition.Builder definitionBuilder) { + this.definition = definitionBuilder.build(); + } + + public ReferenceSetRequestDefinition getDefinition() { + return definition; + } + + public static ReferenceSetRequestDefinition get(String definitionName) { + + ReferenceSetRequestDefinitions requestDefinitions = valueOf(definitionName); + if (requestDefinitions == null) { + throw new IllegalArgumentException("No definition with name " + definitionName + "registred"); + } + + return requestDefinitions.getDefinition(); + + } + +} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestKeyDefinition.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/request/ReferenceSetRequestKeyDefinition.java similarity index 59% rename from observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestKeyDefinition.java rename to observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/request/ReferenceSetRequestKeyDefinition.java index 5272c90..e4d4e1b 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/definition/ObserveReferenceSetRequestKeyDefinition.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/reference/request/ReferenceSetRequestKeyDefinition.java @@ -1,7 +1,8 @@ -package fr.ird.observe.services.dto.reference.definition; +package fr.ird.observe.services.dto.reference.request; import com.google.common.base.MoreObjects; import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.reference.ReferenceSetDefinition; import fr.ird.observe.services.dto.referential.ReferentialDto; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -15,29 +16,22 @@ import java.util.Objects; * * @author Tony Chemit - chemit@codelutin.com */ -public class ObserveReferenceSetRequestKeyDefinition<D extends IdDto> implements Serializable { +public class ReferenceSetRequestKeyDefinition<D extends IdDto> implements Serializable { private static final long serialVersionUID = 1L; /** Logger. */ - private static final Log log = LogFactory.getLog(ObserveReferenceSetRequestKeyDefinition.class); + private static final Log log = LogFactory.getLog(ReferenceSetRequestKeyDefinition.class); - private final Class<? extends IdDto> parentType; - - private final ObserveReferenceSetDefinition<D> referenceSetDefinition; + private final ReferenceSetDefinition<D> referenceSetDefinition; private final String name; - public ObserveReferenceSetRequestKeyDefinition(Class<? extends IdDto> parentType, ObserveReferenceSetDefinition<D> referenceSetDefinition, String name) { - this.parentType = parentType; + public ReferenceSetRequestKeyDefinition(ReferenceSetDefinition<D> referenceSetDefinition, String name) { this.referenceSetDefinition = referenceSetDefinition; this.name = name; } - public Class<? extends IdDto> getParentType() { - return parentType; - } - public Class<D> getType() { return referenceSetDefinition.getType(); } @@ -46,23 +40,22 @@ public class ObserveReferenceSetRequestKeyDefinition<D extends IdDto> implements return name; } - public ObserveReferenceSetDefinition<D> getDefinition() { + public ReferenceSetDefinition<D> getDefinition() { return referenceSetDefinition; } @Override public boolean equals(Object o) { if (this == o) return true; - if (!(o instanceof ObserveReferenceSetRequestKeyDefinition)) return false; - ObserveReferenceSetRequestKeyDefinition that = (ObserveReferenceSetRequestKeyDefinition) o; - return Objects.equals(parentType, that.parentType) && - Objects.equals(referenceSetDefinition.getType(), that.referenceSetDefinition.getType()) && + if (!(o instanceof ReferenceSetRequestKeyDefinition)) return false; + ReferenceSetRequestKeyDefinition that = (ReferenceSetRequestKeyDefinition) o; + return Objects.equals(referenceSetDefinition.getType(), that.referenceSetDefinition.getType()) && Objects.equals(name, that.name); } @Override public int hashCode() { - return Objects.hash(parentType, referenceSetDefinition.getType(), name); + return Objects.hash(referenceSetDefinition.getType(), name); } public boolean isReferential() { @@ -73,7 +66,6 @@ public class ObserveReferenceSetRequestKeyDefinition<D extends IdDto> implements @Override public String toString() { MoreObjects.ToStringHelper toStringHelper = MoreObjects.toStringHelper(this) - .add("parentType", parentType.getSimpleName()) .add("name", name) .add("type", referenceSetDefinition.getType().getSimpleName()); if (log.isDebugEnabled()) { diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/I18nReferentialDtos.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/I18nReferentialDtos.java new file mode 100644 index 0000000..d8c5495 --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/I18nReferentialDtos.java @@ -0,0 +1,42 @@ +package fr.ird.observe.services.dto.referential; + +public class I18nReferentialDtos extends AbstractI18nReferentialDtos { + + + public static <E extends I18nReferentialDto> String decorate(int referenceLocaleOrdinal, E i18nDto) { + + String result = null; + + switch (referenceLocaleOrdinal + 1) { + case 1: + result = i18nDto.getLabel1(); + break; + case 2: + result = i18nDto.getLabel2(); + break; + case 3: + result = i18nDto.getLabel3(); + break; + case 4: + result = i18nDto.getLabel4(); + break; + case 5: + result = i18nDto.getLabel5(); + break; + case 6: + result = i18nDto.getLabel6(); + break; + case 7: + result = i18nDto.getLabel7(); + break; + case 8: + result = i18nDto.getLabel8(); + break; + } + + return result; + + } + + +} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/PersonDtos.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/PersonDtos.java index 4512497..9081309 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/PersonDtos.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/PersonDtos.java @@ -6,40 +6,37 @@ import java.util.Objects; public class PersonDtos extends AbstractPersonDtos { - public static <BeanType extends PersonDto> Predicate<ReferentialReferenceDto<BeanType>> newCaptainReferencePredicate(boolean captain) { - final boolean $tmp = captain; - return new Predicate<ReferentialReferenceDto<BeanType>>() { + public static Predicate<ReferentialReference<PersonDto>> newCaptainReferencePredicate() { + return new Predicate<ReferentialReference<PersonDto>>() { @Override - public boolean apply(ReferentialReferenceDto<BeanType> input) { + public boolean apply(ReferentialReference<PersonDto> input) { return input.getPropertyNames().contains(PersonDto.PROPERTY_CAPTAIN) - && Objects.equals($tmp, input.getPropertyValue(PersonDto.PROPERTY_CAPTAIN)); + && Objects.equals(true, input.getPropertyValue(PersonDto.PROPERTY_CAPTAIN)); } }; } - public static <BeanType extends PersonDto> Predicate<ReferentialReferenceDto<BeanType>> newDataEntryOperatorReferencePredicate(boolean dataEntryOperator) { - final boolean $tmp = dataEntryOperator; - return new Predicate<ReferentialReferenceDto<BeanType>>() { + public static Predicate<ReferentialReference<PersonDto>> newDataEntryOperatorReferencePredicate() { + return new Predicate<ReferentialReference<PersonDto>>() { @Override - public boolean apply(ReferentialReferenceDto<BeanType> input) { + public boolean apply(ReferentialReference<PersonDto> input) { return input.getPropertyNames().contains(PersonDto.PROPERTY_DATA_ENTRY_OPERATOR) - && Objects.equals($tmp, input.getPropertyValue(PersonDto.PROPERTY_DATA_ENTRY_OPERATOR)); + && Objects.equals(true, input.getPropertyValue(PersonDto.PROPERTY_DATA_ENTRY_OPERATOR)); } }; } - public static <BeanType extends PersonDto> Predicate<ReferentialReferenceDto<BeanType>> newObserverReferencePredicate(boolean observer) { - final boolean $tmp = observer; - return new Predicate<ReferentialReferenceDto<BeanType>>() { + public static Predicate<ReferentialReference<PersonDto>> newObserverReferencePredicate() { + return new Predicate<ReferentialReference<PersonDto>>() { @Override - public boolean apply(ReferentialReferenceDto<BeanType> input) { + public boolean apply(ReferentialReference<PersonDto> input) { return input.getPropertyNames().contains(PersonDto.PROPERTY_OBSERVER) - && Objects.equals($tmp, input.getPropertyValue(PersonDto.PROPERTY_OBSERVER)); + && Objects.equals(true, input.getPropertyValue(PersonDto.PROPERTY_OBSERVER)); } }; @@ -49,8 +46,8 @@ public class PersonDtos extends AbstractPersonDtos { return person.getFirstName() + " " + person.getLastName(); } - public static String getNames(ReferentialReferenceDto<PersonDto> personrRef) { + public static String getNames(ReferentialReference<?> personrRef) { return personrRef.getPropertyValue(PersonDto.PROPERTY_FIRST_NAME) + " " + personrRef.getPropertyValue(PersonDto.PROPERTY_LAST_NAME); } -} //PersonDtos +} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ProgramDtos.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ProgramDtos.java index 547b27b..e651682 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ProgramDtos.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ProgramDtos.java @@ -1,16 +1,10 @@ package fr.ird.observe.services.dto.referential; -import com.google.common.collect.Iterables; -import com.google.common.collect.Lists; -import fr.ird.observe.services.dto.ReferenceDto; -import fr.ird.observe.services.dto.ReferenceDtos; import fr.ird.observe.services.dto.constants.GearType; -import java.util.ArrayList; - public class ProgramDtos extends AbstractProgramDtos { -public static boolean isProgramLongline(ReferenceDto<ProgramDto> programDtoRef) { + public static boolean isProgramLongline(ReferentialReference<ProgramDto> programDtoRef) { boolean result = false; @@ -24,7 +18,7 @@ public static boolean isProgramLongline(ReferenceDto<ProgramDto> programDtoRef) return result; } - public static boolean isProgramSeine(ReferenceDto<ProgramDto> programDtoRef) { + public static boolean isProgramSeine(ReferentialReference<ProgramDto> programDtoRef) { boolean result = false; @@ -38,24 +32,8 @@ public static boolean isProgramLongline(ReferenceDto<ProgramDto> programDtoRef) return result; } - public static ReferenceDto<ProgramDto> newReferenceDto(ProgramDto programDto) { - ArrayList<String> propertyNames = Lists.newArrayList(ProgramDto.PROPERTY_LABEL1, - ProgramDto.PROPERTY_LABEL2, - ProgramDto.PROPERTY_LABEL3, - ProgramDto.PROPERTY_LABEL4, - ProgramDto.PROPERTY_LABEL5, - ProgramDto.PROPERTY_LABEL6, - ProgramDto.PROPERTY_LABEL7, - ProgramDto.PROPERTY_LABEL8, - ProgramDto.PROPERTY_LABEL, - ProgramDto.PROPERTY_GEAR_TYPE); - - ReferenceDto<ProgramDto> reference = ReferenceDtos.newReferenceDto(programDto, propertyNames); - return reference; - } - - public static Iterable<ReferenceDto<ProgramDto>> filterReferencesByGearType(Iterable<ReferenceDto<ProgramDto>> programs, GearType gearType) { - return Iterables.filter(programs, ReferenceDtos.newLabelValuePredicate(ProgramDto.PROPERTY_GEAR_TYPE, gearType)); - } +// public static Iterable<ReferenceDto<ProgramDto>> filterReferencesByGearType(Iterable<ReferenceDto<ProgramDto>> programs, GearType gearType) { +// return Iterables.filter(programs, ReferenceDtos.newLabelValuePredicate(ProgramDto.PROPERTY_GEAR_TYPE, gearType)); +// } } diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialDtos.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialDtos.java index 063f2e7..446d59d 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialDtos.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialDtos.java @@ -139,7 +139,7 @@ public class ReferentialDtos extends AbstractReferentialDtos { filterReferentielList(list, (Predicate<E>) IS_ACTIF_PREDICATE); } - public static <E extends ReferentialDto> void filterReferentialReferenceListByStatus(List<ReferentialReferenceDto<E>> list) { + public static <E extends ReferentialDto> void filterReferentialReferenceListByStatus(List<ReferentialReference<E>> list) { filterReferentialReferenceList(list, IS_REFERENCE_ACTIF_PREDICATE); } @@ -179,11 +179,11 @@ public class ReferentialDtos extends AbstractReferentialDtos { * @param <E> le type des entites du référentiel */ public static <E extends ReferentialDto> void filterReferentialReferenceList( - List<ReferentialReferenceDto<E>> list, - Predicate<ReferentialReferenceDto> predicate) { - Iterator<ReferentialReferenceDto<E>> itr = list.iterator(); + List<ReferentialReference<E>> list, + Predicate<ReferentialReference> predicate) { + Iterator<ReferentialReference<E>> itr = list.iterator(); while (itr.hasNext()) { - ReferentialReferenceDto<E> e = itr.next(); + ReferentialReference<E> e = itr.next(); if (!predicate.apply(e)) { // l'entite n'est pas retenue, on ne l'affiche pas @@ -205,11 +205,11 @@ public class ReferentialDtos extends AbstractReferentialDtos { } }; - public static final Predicate<ReferentialReferenceDto> IS_REFERENCE_ACTIF_PREDICATE = - new Predicate<ReferentialReferenceDto>() { + public static final Predicate<ReferentialReference> IS_REFERENCE_ACTIF_PREDICATE = + new Predicate<ReferentialReference>() { @Override - public boolean apply(ReferentialReferenceDto input) { + public boolean apply(ReferentialReference input) { return input.isEnabled(); } }; diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReference.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReference.java new file mode 100644 index 0000000..24b67df --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReference.java @@ -0,0 +1,93 @@ +package fr.ird.observe.services.dto.referential; + +import com.google.common.base.MoreObjects; +import com.google.common.collect.ImmutableSet; +import fr.ird.observe.services.dto.AbstractReference; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.util.Arrays; +import java.util.Date; + +/** + * Created on 21/11/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ReferentialReference<D extends ReferentialDto> extends AbstractReference<D> { + + public static final String PROPERTY_NEED_COMMENT = "needComment"; + + public static final String PROPERTY_ENABLED = "enabled"; + + public static final String PROPERTY_LAST_UPDATE = "lastUpdate"; + + public static final String PROPERTY_LABEL = "label"; + + public static final ImmutableSet<String> I18N_PROPERTY_NAMES = ImmutableSet.of( + I18nReferentialDto.PROPERTY_LABEL1, + I18nReferentialDto.PROPERTY_LABEL2, + I18nReferentialDto.PROPERTY_LABEL3, + I18nReferentialDto.PROPERTY_LABEL4, + I18nReferentialDto.PROPERTY_LABEL5, + I18nReferentialDto.PROPERTY_LABEL6, + I18nReferentialDto.PROPERTY_LABEL7, + I18nReferentialDto.PROPERTY_LABEL8 + ); + + private static final long serialVersionUID = 1L; + + /** Logger. */ + private static final Log log = LogFactory.getLog(ReferentialReference.class); + + protected boolean needComment; + + protected boolean enabled; + + protected Date lastUpdate; + + public boolean isNeedComment() { + return needComment; + } + + public void setNeedComment(boolean needComment) { + this.needComment = needComment; + } + + public boolean isEnabled() { + return enabled; + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } + + public Date getLastUpdate() { + return lastUpdate; + } + + public void setLastUpdate(Date lastUpdate) { + this.lastUpdate = lastUpdate; + } + + @Override + public String toString() { + MoreObjects.ToStringHelper toStringHelper = MoreObjects.toStringHelper(this) + .add(PROPERTY_TYPE, type.getSimpleName()) + .add(PROPERTY_ID, id); + + if (log.isDebugEnabled()) { + toStringHelper + .add(PROPERTY_ENABLED, enabled) + .add(PROPERTY_NEED_COMMENT, needComment) + .add(PROPERTY_CREATE_DATE, createDate) + .add(PROPERTY_LAST_UPDATE, lastUpdate) + .add(PROPERTY_VERSION, version) + .add(PROPERTY_LABEL_PROPERTY_VALUES, labelPropertyNames); + } + return toStringHelper + .add(PROPERTY_LABEL_PROPERTY_VALUES, Arrays.toString(labelPropertyValues)) + .toString(); + } + +} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceDto.java deleted file mode 100644 index 626d4bd..0000000 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceDto.java +++ /dev/null @@ -1,120 +0,0 @@ -package fr.ird.observe.services.dto.referential; - -/* - * #%L - * ObServe :: Services model - * %% - * Copyright (C) 2008 - 2015 IRD, Codelutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import com.google.common.base.MoreObjects; -import com.google.common.base.Preconditions; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableSet; -import fr.ird.observe.services.dto.constants.ReferentialLocale; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import java.io.Serializable; -import java.util.Arrays; - -public class ReferentialReferenceDto<D extends ReferentialDto> extends AbstractReferentialReferenceDto { - - private static final long serialVersionUID = 1L; - - /** Logger. */ - private static final Log log = LogFactory.getLog(ReferentialReferenceDto.class); - - public static final String PROPERTY_LABEL = "label"; - - public static final ImmutableSet<String> I18N_PROPERTY_NAMES = ImmutableSet.of( - I18nReferentialDto.PROPERTY_LABEL1, - I18nReferentialDto.PROPERTY_LABEL2, - I18nReferentialDto.PROPERTY_LABEL3, - I18nReferentialDto.PROPERTY_LABEL4, - I18nReferentialDto.PROPERTY_LABEL5, - I18nReferentialDto.PROPERTY_LABEL6, - I18nReferentialDto.PROPERTY_LABEL7, - I18nReferentialDto.PROPERTY_LABEL8 - ); - - @Override - public Class<D> getType() { - return super.getType(); - } - - @Override - public void init(Class type, String[] labelPropertyNames, Class[] labelPropertyTypes, Serializable... labelPropertyValues) { - - super.init(type, labelPropertyNames, labelPropertyTypes, labelPropertyValues); - } - - public void setPropertyValue(ReferentialLocale referentialLocale, String propertyName, Serializable propertyValue) { - Preconditions.checkNotNull(referentialLocale, "referentialLocale parameter can't be null"); - Preconditions.checkNotNull(propertyName, "propertyName parameter can't be null"); - if (I18N_PROPERTY_NAMES.contains(propertyName)) { - if (referentialLocale.getLibelle().equals(propertyName)) { - propertyName = PROPERTY_LABEL; - } else { - propertyName = null; - } - } - if (propertyName != null) { - setPropertyValue(propertyName, propertyValue); - } - } - - protected void init(Class<D> type, ReferentialLocale referentialLocale, Iterable<String> labelPropertyNames) { - - this.type = type; - String libelle = referentialLocale.getLibelle(); - ImmutableList.Builder<String> labelPropertyNamesBuilder = new ImmutableList.Builder<>(); - for (String labelPropertyName : labelPropertyNames) { - if (I18N_PROPERTY_NAMES.contains(labelPropertyName)) { - if (libelle.endsWith(labelPropertyName)) { - labelPropertyName = PROPERTY_LABEL; - } else { - continue; - } - } - labelPropertyNamesBuilder.add(labelPropertyName); - } - init(type, labelPropertyNamesBuilder.build()); - } - - @Override - public String toString() { - MoreObjects.ToStringHelper toStringHelper = MoreObjects.toStringHelper(this) - .add("type", type.getSimpleName()) - .add("id", id); - - if (log.isDebugEnabled()) { - toStringHelper - .add("enabled", enabled) - .add("needComment", needComment) - .add("createDate", createDate) - .add("lastUpdate", lastUpdate) - .add("version", version) - .add("labelPropertyNames", labelPropertyNames) - .add("labelPropertyTypes", Arrays.toString(labelPropertyTypes)); - } - return toStringHelper - .add("labelPropertyValues", Arrays.toString(labelPropertyValues)) - .toString(); - } -} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceDtos.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceDtos.java deleted file mode 100644 index 5880eef..0000000 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceDtos.java +++ /dev/null @@ -1,48 +0,0 @@ -package fr.ird.observe.services.dto.referential; - -/* - * #%L - * ObServe :: Services model - * %% - * Copyright (C) 2008 - 2015 IRD, Codelutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import fr.ird.observe.services.dto.constants.ReferentialLocale; - -import java.util.Set; - -public class ReferentialReferenceDtos extends AbstractReferentialReferenceDtos { - - public static <R extends ReferentialDto> ReferentialReferenceDto<R> newReferentialReferenceDto(Class<R> type, - ReferentialLocale referentialLocale, - Set<String> propertyNames) { - - ReferentialReferenceDto<R> dto = new ReferentialReferenceDto<>(); - dto.init(type, referentialLocale, propertyNames); - return dto; - } - - public static <R extends ReferentialDto> ReferentialReferenceDto<R> newReferentialReferenceDto(Class<R> type, - Iterable<String> propertyNames) { - - ReferentialReferenceDto<R> dto = new ReferentialReferenceDto<>(); - dto.init(type, propertyNames); - return dto; - } - -} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceSet.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceSet.java new file mode 100644 index 0000000..3ffeb12 --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialReferenceSet.java @@ -0,0 +1,68 @@ +package fr.ird.observe.services.dto.referential; + +/* + * #%L + * ObServe :: Services model + * %% + * Copyright (C) 2008 - 2015 IRD, Codelutin, Tony Chemit + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import com.google.common.base.MoreObjects; +import com.google.common.collect.ImmutableSet; +import fr.ird.observe.services.dto.AbstractReferenceSet; + +import java.util.Date; + +public class ReferentialReferenceSet<R extends ReferentialDto> extends AbstractReferenceSet<R, ReferentialReference<R>> { + + public static final String PROPERTY_LAST_UPDATE = "lastUpdate"; + + private static final long serialVersionUID = 1L; + + protected Date lastUpdate; + + public static <R extends ReferentialDto> ReferentialReferenceSet<R> of(Class<R> type, + ImmutableSet<ReferentialReference<R>> references, + Date lastUpdate) { + + ReferentialReferenceSet<R> referenceSet = new ReferentialReferenceSet<>(type, references, lastUpdate); + return referenceSet; + + } + + protected ReferentialReferenceSet(Class<R> type, ImmutableSet<ReferentialReference<R>> references, Date lastUpdate) { + super(type, references); + this.lastUpdate = lastUpdate; + } + + public Date getLastUpdate() { + return lastUpdate; + } + + public void setLastUpdate(Date lastUpdate) { + this.lastUpdate = lastUpdate; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add(PROPERTY_TYPE, type.getName()) + .add(PROPERTY_LAST_UPDATE, lastUpdate) + .toString(); + } +} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/result/SaveResultDtos.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/result/SaveResultDtos.java index 5b635ca..cd6f2fc 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/result/SaveResultDtos.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/result/SaveResultDtos.java @@ -4,7 +4,7 @@ import java.util.Date; public class SaveResultDtos extends AbstractSaveResultDtos { - public static SaveResultDto newSaveResult(String id, Date lastUpdate) { + public static SaveResultDto of(String id, Date lastUpdate) { SaveResultDto result = new SaveResultDto(); result.setId(id); result.setLastUpdate(lastUpdate); diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/ActivitySeineDtos.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/ActivitySeineDtos.java deleted file mode 100644 index adad075..0000000 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/ActivitySeineDtos.java +++ /dev/null @@ -1,22 +0,0 @@ -package fr.ird.observe.services.dto.seine; - -import com.google.common.collect.Lists; -import fr.ird.observe.services.dto.ReferenceDto; -import fr.ird.observe.services.dto.ReferenceDtos; -import fr.ird.observe.services.dto.referential.longline.VesselActivityLonglineDto; - -public class ActivitySeineDtos extends AbstractActivitySeineDtos { - - public static ReferenceDto<ActivitySeineDto> newReferenceDto(ActivitySeineDto activitySeine) { - - ReferenceDto<ActivitySeineDto> referenceDto = ReferenceDtos.newReferenceDto(ActivitySeineDto.class, - Lists.newArrayList(ActivitySeineDto.PROPERTY_TIME, - ActivitySeineDto.PROPERTY_VESSEL_ACTIVITY_SEINE)); - - referenceDto.setId(activitySeine.getId()); - referenceDto.setPropertyValue(ActivitySeineDto.PROPERTY_TIME, activitySeine.getTime()); - referenceDto.setPropertyValue(ActivitySeineDto.PROPERTY_VESSEL_ACTIVITY_SEINE, activitySeine.getVesselActivitySeine().getPropertyValue(VesselActivityLonglineDto.PROPERTY_LABEL)); - - return referenceDto; - } -} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/FloatingObjectDtos.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/FloatingObjectDtos.java deleted file mode 100644 index 1b01d00..0000000 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/FloatingObjectDtos.java +++ /dev/null @@ -1,26 +0,0 @@ -package fr.ird.observe.services.dto.seine; - -import com.google.common.collect.Lists; -import fr.ird.observe.services.dto.ReferenceDto; -import fr.ird.observe.services.dto.ReferenceDtos; -import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; - -public class FloatingObjectDtos extends AbstractFloatingObjectDtos { - - public static ReferenceDto<FloatingObjectDto> newReferenceDto(FloatingObjectDto floatingObjectDto) { - return newReferenceDto( - floatingObjectDto.getId(), - (String) floatingObjectDto.getObjectType().getPropertyValue(ReferentialReferenceDto.PROPERTY_LABEL)); - } - - public static ReferenceDto<FloatingObjectDto> newReferenceDto(String floatingObjectId, String objectTypeLabel) { - ReferenceDto<FloatingObjectDto> reference = ReferenceDtos.newReferenceDto(FloatingObjectDto.class, - Lists.newArrayList(FloatingObjectDto.PROPERTY_OBJECT_TYPE)); - - reference.setId(floatingObjectId); - reference.setPropertyValue(FloatingObjectDto.PROPERTY_OBJECT_TYPE, objectTypeLabel); - - return reference; - } - -} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/FloatingObjectTransmittingBuoyDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/FloatingObjectTransmittingBuoyDto.java index 4ae960a..37255f3 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/FloatingObjectTransmittingBuoyDto.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/FloatingObjectTransmittingBuoyDto.java @@ -2,7 +2,7 @@ package fr.ird.observe.services.dto.seine; import com.google.common.collect.Iterables; import fr.ird.observe.services.dto.constants.seine.TypeTransmittingBuoyOperation; -import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; +import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.seine.TransmittingBuoyOperationDto; import javax.annotation.Generated; @@ -31,7 +31,7 @@ public class FloatingObjectTransmittingBuoyDto extends AbstractFloatingObjectTra // - récuperation // - pose d'une nouvelle balise TransmittingBuoyDto balise = Iterables.get(transmittingBuoy, 0); - ReferentialReferenceDto<TransmittingBuoyOperationDto> objectOperation = balise.getTransmittingBuoyOperation(); + ReferentialReference<TransmittingBuoyOperationDto> objectOperation = balise.getTransmittingBuoyOperation(); String code = (String) objectOperation.getPropertyValue(TransmittingBuoyOperationDto.PROPERTY_CODE); switch (Integer.valueOf(code)) { case 1: diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/RouteDtos.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/RouteDtos.java deleted file mode 100644 index 58518ba..0000000 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/RouteDtos.java +++ /dev/null @@ -1,21 +0,0 @@ -package fr.ird.observe.services.dto.seine; - -import com.google.common.collect.Lists; -import fr.ird.observe.services.dto.ReferenceDto; -import fr.ird.observe.services.dto.ReferenceDtos; - -public class RouteDtos extends AbstractRouteDtos { - - public static ReferenceDto<RouteDto> newReferenceDto(RouteDto route) { - - ReferenceDto<RouteDto> referenceDto = ReferenceDtos.newReferenceDto(RouteDto.class, - Lists.newArrayList(RouteDto.PROPERTY_DATE, - RouteDto.PROPERTY_COMMENT)); - - referenceDto.setId(route.getId()); - referenceDto.setPropertyValue(RouteDto.PROPERTY_DATE, route.getDate()); - referenceDto.setPropertyValue(RouteDto.PROPERTY_COMMENT, route.getComment()); - - return referenceDto; - } -} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/TripSeineDtos.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/TripSeineDtos.java deleted file mode 100644 index 2636e05..0000000 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/seine/TripSeineDtos.java +++ /dev/null @@ -1,28 +0,0 @@ -package fr.ird.observe.services.dto.seine; - -import com.google.common.collect.Lists; -import fr.ird.observe.services.dto.ReferenceDto; -import fr.ird.observe.services.dto.ReferenceDtos; -import fr.ird.observe.services.dto.referential.PersonDtos; -import fr.ird.observe.services.dto.referential.VesselDto; - -public class TripSeineDtos extends AbstractTripSeineDtos { - - public static ReferenceDto<TripSeineDto> newReferenceDto(TripSeineDto tripSeine) { - - ReferenceDto<TripSeineDto> referenceDto = ReferenceDtos.newReferenceDto(TripSeineDto.class, - Lists.newArrayList(TripSeineDto.PROPERTY_START_DATE, - TripSeineDto.PROPERTY_END_DATE, - TripSeineDto.PROPERTY_VESSEL, - TripSeineDto.PROPERTY_OBSERVER)); - referenceDto.setId(tripSeine.getId()); - referenceDto.setPropertyValue(TripSeineDto.PROPERTY_START_DATE, tripSeine.getStartDate()); - referenceDto.setPropertyValue(TripSeineDto.PROPERTY_END_DATE, tripSeine.getEndDate()); - referenceDto.setPropertyValue(TripSeineDto.PROPERTY_VESSEL, tripSeine.getVessel().getPropertyValue(VesselDto.PROPERTY_LABEL)); - referenceDto.setPropertyValue(TripSeineDto.PROPERTY_OBSERVER, PersonDtos.getNames(tripSeine.getObserver())); - - return referenceDto; - - } - -} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.