This is an automated email from the git hooks/post-receive script. New change to branch feature/7493_corrige_action_validation_serveur_distant in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git from 6b1e172 Corrige la source utilisée pour la récupération des données à valider new a7c7c6c Gere la désérialisation de proprieté d'objet de type AbstractReference (ex.: ValidateResultForDto) new c6ae8f1 Corrige l'enregistrement de decorateur de type DataDto The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit c6ae8f1d81e3174d39ddc34815d9eead583c47c5 Author: Samuel Maisonneuve <maisonneuve@codelutin.com> Date: Fri Aug 19 14:30:20 2016 +0200 Corrige l'enregistrement de decorateur de type DataDto On a besoin d'un DataReferenceDecorateur pour l'interface de validation des données refs #7493 commit a7c7c6cb6bcee1f3396ae4c79f2500c65f37466c Author: Samuel Maisonneuve <maisonneuve@codelutin.com> Date: Fri Aug 19 14:27:37 2016 +0200 Gere la désérialisation de proprieté d'objet de type AbstractReference (ex.: ValidateResultForDto) Ajout d'un adapteur (UnknownReferenceAdapter) qui détermine le type de la référence en fonction du dto porté par la référence refs #7493 Summary of changes: .../swing/decoration/DecoratorService.java | 8 +-- .../services/dto/gson/ObserveDtoGsonSupplier.java | 3 + .../gson/reference/UnknownReferenceAdapter.java | 69 ++++++++++++++++++++++ .../dto/reference/DataReferenceSetDefinitions.java | 3 + .../binder/data/TransmittingBuoyBinder.java | 8 ++- 5 files changed, 85 insertions(+), 6 deletions(-) create mode 100644 observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/reference/UnknownReferenceAdapter.java -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7493_corrige_action_validation_serveur_distant in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit a7c7c6cb6bcee1f3396ae4c79f2500c65f37466c Author: Samuel Maisonneuve <maisonneuve@codelutin.com> Date: Fri Aug 19 14:27:37 2016 +0200 Gere la désérialisation de proprieté d'objet de type AbstractReference (ex.: ValidateResultForDto) Ajout d'un adapteur (UnknownReferenceAdapter) qui détermine le type de la référence en fonction du dto porté par la référence refs #7493 --- .../services/dto/gson/ObserveDtoGsonSupplier.java | 3 + .../gson/reference/UnknownReferenceAdapter.java | 69 ++++++++++++++++++++++ 2 files changed, 72 insertions(+) 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 6b055db..c30a6d5 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,12 +28,14 @@ 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.AbstractReference; 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.actions.report.ReportVariable; 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.UnknownReferenceAdapter; 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; @@ -98,6 +100,7 @@ public class ObserveDtoGsonSupplier implements Supplier<Gson> { gsonBuilder.registerTypeAdapter(DataReference.class, new DataReferenceAdapter()); gsonBuilder.registerTypeAdapter(ReferentialReference.class, new ReferentialReferenceAdapter()); + gsonBuilder.registerTypeAdapter(AbstractReference.class, new UnknownReferenceAdapter()); gsonBuilder.registerTypeAdapter(DataReferenceSet.class, new DataReferenceSetAdapter()); gsonBuilder.registerTypeAdapter(ReferentialReferenceSet.class, new ReferentialReferenceSetAdapter()); diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/reference/UnknownReferenceAdapter.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/reference/UnknownReferenceAdapter.java new file mode 100644 index 0000000..9b9dd79 --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/reference/UnknownReferenceAdapter.java @@ -0,0 +1,69 @@ +package fr.ird.observe.services.dto.gson.reference; + +/*- + * #%L + * ObServe :: Services model + * %% + * Copyright (C) 2008 - 2016 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.JsonObject; +import com.google.gson.JsonParseException; +import fr.ird.observe.services.dto.AbstractReference; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.dto.referential.ReferentialReference; + +import java.lang.reflect.Type; + +/** + * Cet adapter est destiné à permettre la désérialisation des objets Observe contenant + * des propriétés de tye AbstractReference. + * + * Par exemple : ValidateResultForDto possède une propriété dto de type AbstractReference + * + * Au moment de la désérialisation, il faut déterminer le type concret de la référence (DataReference, ReferentialReference..) + * afin de permettre la désérialisation. + * (AbstractReference étant une classe abstraite, elle n'est pas instanciable) + * + * @author smaisonneuve + * Created on 19/08/16. + */ +public class UnknownReferenceAdapter<D extends IdDto, R extends AbstractReference<D>> implements JsonDeserializer<R> { + + @Override + public final R deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { + R reference; + + JsonObject jsonObject = json.getAsJsonObject(); + + Class<D> dtoType = context.deserialize(jsonObject.get(AbstractReference.PROPERTY_TYPE), Class.class); + + if (ReferentialDto.class.isAssignableFrom(dtoType)) { + reference = context.deserialize(json, ReferentialReference.class); + } else { + reference = context.deserialize(json, DataReference.class); + } + + return reference; + } +} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7493_corrige_action_validation_serveur_distant in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit c6ae8f1d81e3174d39ddc34815d9eead583c47c5 Author: Samuel Maisonneuve <maisonneuve@codelutin.com> Date: Fri Aug 19 14:30:20 2016 +0200 Corrige l'enregistrement de decorateur de type DataDto On a besoin d'un DataReferenceDecorateur pour l'interface de validation des données refs #7493 --- .../observe/application/swing/decoration/DecoratorService.java | 8 ++++---- .../services/dto/reference/DataReferenceSetDefinitions.java | 3 +++ .../ird/observe/services/binder/data/TransmittingBuoyBinder.java | 8 ++++++-- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/observe-application-swing-decoration/src/main/java/fr/ird/observe/application/swing/decoration/DecoratorService.java b/observe-application-swing-decoration/src/main/java/fr/ird/observe/application/swing/decoration/DecoratorService.java index 0706a18..75c343f 100644 --- a/observe-application-swing-decoration/src/main/java/fr/ird/observe/application/swing/decoration/DecoratorService.java +++ b/observe-application-swing-decoration/src/main/java/fr/ird/observe/application/swing/decoration/DecoratorService.java @@ -515,8 +515,8 @@ public class DecoratorService extends DecoratorProvider { "${species/scientificLabel}$s##${length}$f##${count}$d", "${species}$s##${length}$f##${count}$d"); - registerObserveDecorator(TransmittingBuoyDto.class, - "${transmittingBuoyType/label}$s##${transmittingBuoyOperation/label}$s##${code}$s"); + registerDataAndDataReferenceDecorator(TransmittingBuoyDto.class, + "${transmittingBuoyType/label}$s##${transmittingBuoyOperation/label}$s##${code}$s"); registerDataAndDataReferenceDecorator(FloatingObjectDto.class, "DCP ${objectType/" + libelle + "}$s", "DCP ${objectType}$s", " - "); @@ -569,7 +569,7 @@ public class DecoratorService extends DecoratorProvider { registerDataAndDataReferenceDecorator(TdrDto.class, "${homeId}$s"); //FIXME how to decorate ? - registerObserveDecorator(GearUseFeaturesMeasurementSeineDto.class, "${id}$s"); + registerDataAndDataReferenceDecorator(GearUseFeaturesMeasurementSeineDto.class, "${id}$s"); registerDataAndDataReferenceDecorator(EncounterDto.class, "${encounterType/label}$s##${species/label}$s", @@ -648,7 +648,7 @@ public class DecoratorService extends DecoratorProvider { protected <T extends IdDto> void registerDataAndDataReferenceDecorator(Class<T> referenceType, String expression, String referenceExpression) { registerDataReferenceDecorator(referenceType, referenceExpression); - registerObserveDecorator(referenceType, referenceExpression, " "); + registerObserveDecorator(referenceType, expression, " "); } protected <T extends IdDto> void registerDataAndDataReferenceDecorator(Class<T> referenceType, String expression, String referenceExpression, String separator) { 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 index 5817d7e..ff07bc4 100644 --- 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 @@ -33,6 +33,7 @@ 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.referential.ReferentialReference; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.dto.seine.FloatingObjectDto; import fr.ird.observe.services.dto.seine.NonTargetCatchDto; @@ -106,6 +107,8 @@ public enum DataReferenceSetDefinitions { TRANSMITTING_BUYO(newDefinitionBuilder(TransmittingBuoyDto.class) .addProperty(String.class, TransmittingBuoyDto.PROPERTY_CODE) .addProperty(String.class, TransmittingBuoyDto.PROPERTY_BRAND) + .addProperty(ReferentialReference.class, TransmittingBuoyDto.PROPERTY_TRANSMITTING_BUOY_TYPE) + .addProperty(ReferentialReference.class, TransmittingBuoyDto.PROPERTY_TRANSMITTING_BUOY_OPERATION) ), diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/binder/data/TransmittingBuoyBinder.java b/observe-services-topia/src/main/java/fr/ird/observe/services/binder/data/TransmittingBuoyBinder.java index b2ccc3b..678c1d5 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/binder/data/TransmittingBuoyBinder.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/binder/data/TransmittingBuoyBinder.java @@ -74,12 +74,16 @@ public class TransmittingBuoyBinder extends DataBinderSupport<TransmittingBuoy, @Override public DataReference<TransmittingBuoyDto> toDataReference(ReferentialLocale referentialLocale, TransmittingBuoy entity) { - return toDataReference(entity, entity.getCode(), entity.getBrand()); + return toDataReference(entity, + entity.getCode(), + entity.getBrand(), + toReferentialReference(referentialLocale, entity.getTransmittingBuoyType(), TransmittingBuoyTypeDto.class), + toReferentialReference(referentialLocale, entity.getTransmittingBuoyOperation(), TransmittingBuoyOperationDto.class)); } @Override public DataReference<TransmittingBuoyDto> toDataReference(ReferentialLocale referentialLocale, TransmittingBuoyDto dto) { - return toDataReference(dto, dto.getCode(), dto.getBrand()); + return toDataReference(dto, dto.getCode(), dto.getBrand(), dto.getTransmittingBuoyType(), dto.getTransmittingBuoyOperation()); } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm