branch develop updated (9269054 -> 4e9a504)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository observe. See http://git.codelutin.com/observe.git from 9269054 Merge branch 'feature/7677' into develop new 4e9a504 ajout d'un adaptateur Gson pour les formDto The 1 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 4e9a504873e88335f9c7a7cc46bf6d686235427a Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Fri Nov 6 08:46:53 2015 +0100 ajout d'un adaptateur Gson pour les formDto Summary of changes: .../java/fr/ird/observe/services/dto/FormDto.java | 4 +++ .../observe/services/dto/gson/FormDtoAdapter.java | 38 ++++++++++++++++++++++ .../services/dto/gson/ObserveDtoGsonSupplier.java | 2 ++ 3 files changed, 44 insertions(+) create mode 100644 observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/FormDtoAdapter.java -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit 4e9a504873e88335f9c7a7cc46bf6d686235427a Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Fri Nov 6 08:46:53 2015 +0100 ajout d'un adaptateur Gson pour les formDto --- .../java/fr/ird/observe/services/dto/FormDto.java | 4 +++ .../observe/services/dto/gson/FormDtoAdapter.java | 38 ++++++++++++++++++++++ .../services/dto/gson/ObserveDtoGsonSupplier.java | 2 ++ 3 files changed, 44 insertions(+) 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 index 64077af..72d6bbb 100644 --- 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 @@ -32,6 +32,10 @@ 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"; + protected final Class<R> type; protected R form; 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 new file mode 100644 index 0000000..67bdc08 --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/gson/FormDtoAdapter.java @@ -0,0 +1,38 @@ +package fr.ird.observe.services.dto.gson; + +import com.google.common.collect.Lists; +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 fr.ird.observe.services.dto.ReferenceSetDto; + +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); + + JsonElement jsonFrom = jsonObject.get(FormDto.PROPERTY_FORM); + IdDto form = context.deserialize(jsonFrom, dtoType); + + JsonElement jsonLabels = jsonObject.get(FormDto.PROPERTY_LABELS); + + ReferenceSetDto[] labels = context.deserialize(jsonLabels, ReferenceSetDto[].class); + + FormDto<?> formDto = FormDtos.newFormDto(dtoType, form, Lists.newArrayList(labels)); + + 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 383c93e..9ba5b93 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,6 +28,7 @@ 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.actions.report.ReportVariable; import fr.ird.observe.services.dto.referential.ReferentialReferenceDto; @@ -94,6 +95,7 @@ public class ObserveDtoGsonSupplier implements Supplier<Gson> { gsonBuilder.registerTypeAdapter(ImmutableMap.class, new ImmutableMapAdapter()); gsonBuilder.registerTypeAdapter(ReferenceDto.class, new ReferenceDtoAdapter()); gsonBuilder.registerTypeAdapter(ReferentialReferenceDto.class, new ReferentialReferenceDtoAdapter()); + gsonBuilder.registerTypeAdapter(FormDto.class, new FormDtoAdapter()); gsonBuilder.registerTypeAdapter(ReportVariable.class, new ReportVariableAdapter()); gsonBuilder.registerTypeAdapter(Version.class, new VersionAdapter()); gsonBuilder.enableComplexMapKeySerialization(); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
participants (1)
-
codelutin.com scm