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 c7844b60d94eadadeb1171dd133b3e605289aa1d Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Nov 8 09:55:02 2015 +0100 Correction de l'algorithme de transformation des propriétés Entity <-> Dto --- .../ird/observe/services/builder/DtoToEntityBuilder.java | 12 ++++++++++++ .../ird/observe/services/dto/ObserveDtosInitializer.java | 15 +++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/DtoToEntityBuilder.java b/observe-services-topia/src/main/java/fr/ird/observe/services/builder/DtoToEntityBuilder.java index d80a253..4fc9ea9 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/DtoToEntityBuilder.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/builder/DtoToEntityBuilder.java @@ -22,12 +22,14 @@ package fr.ird.observe.services.builder; * #L% */ +import com.google.common.base.Function; import com.google.common.base.Preconditions; import com.google.common.collect.Maps; import com.google.common.reflect.TypeToken; import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.IdDto; import fr.ird.observe.services.dto.ObserveDtoBinders; +import fr.ird.observe.services.dto.ObserveDtosInitializer; import fr.ird.observe.services.dto.ReferenceDto; import org.apache.commons.lang3.StringUtils; import org.nuiton.topia.persistence.TopiaEntity; @@ -185,6 +187,8 @@ public class DtoToEntityBuilder<D extends IdDto, E extends TopiaEntity> implemen } + propertyValue = transform(propertyValue); + // simple property addProperty(propertyName, propertyValue, entityProperties); @@ -258,4 +262,12 @@ public class DtoToEntityBuilder<D extends IdDto, E extends TopiaEntity> implemen entitiesProperties.put(propertyName, propertyValue); } + + protected static Object transform(Object propertyValue) { + Function function = ObserveDtosInitializer.getDtoToEntityFunction(propertyValue); + if (function != null) { + propertyValue = function.apply(propertyValue); + } + return propertyValue; + } } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java index 7714707..96eecd4 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java @@ -327,6 +327,21 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { return function; } + public static Function getDtoToEntityFunction(Object propertyValue) { + Function function = null; + if (propertyValue!=null) { + for (Map.Entry<Class, Function> entry : DTO_TO_ENTITY_FUNCTIONS.entrySet()) { + Class type = entry.getKey(); + + if (type.isAssignableFrom(propertyValue.getClass())) { + function = entry.getValue(); + break; + } + } + } + return function; + } + @Override public void start() { DTO_TO_ENTITY_TYPE_BUILDER = new ImmutableMap.Builder<>(); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.