branch feature/7458 updated (d07d9b2 -> c0295ec)
This is an automated email from the git hooks/post-receive script. New change to branch feature/7458 in repository observe. See http://git.codelutin.com/observe.git from d07d9b2 Permettre de générer des binders avec des types différents new 3ae2785 Utilisation de la nouvelle API sur les binder pour faire les transformations de type new c0295ec correction du nom d'une propriété 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 c0295ec93fb6a26ac63c0c1e328b5f2f2851e9f2 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Aug 19 16:06:42 2015 +0200 correction du nom d'une propriété commit 3ae2785dbe55ef96db002e542a2e36d7685446d5 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Aug 19 16:06:16 2015 +0200 Utilisation de la nouvelle API sur les binder pour faire les transformations de type Summary of changes: .../services/builder/DtoToEntityBuilder.java | 54 ++------ .../services/builder/EntityToDtoBuilder.java | 37 +---- .../services/dto/ObserveDtosInitializer.java | 153 +++++++++++++++++---- 3 files changed, 138 insertions(+), 106 deletions(-) -- 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 feature/7458 in repository observe. See http://git.codelutin.com/observe.git commit 3ae2785dbe55ef96db002e542a2e36d7685446d5 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Aug 19 16:06:16 2015 +0200 Utilisation de la nouvelle API sur les binder pour faire les transformations de type --- .../services/builder/DtoToEntityBuilder.java | 54 ++++------------------ .../services/builder/EntityToDtoBuilder.java | 37 +-------------- 2 files changed, 9 insertions(+), 82 deletions(-) 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 b6a04b4..f440a1a 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 @@ -8,21 +8,14 @@ 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.ReferenceDto; -import fr.ird.observe.services.dto.constants.GearType; -import fr.ird.observe.services.dto.constants.ReferenceStatus; -import fr.ird.observe.services.dto.constants.seine.NonTargetCatchComputedValueSource; -import fr.ird.observe.services.dto.constants.seine.Ownership; -import fr.ird.observe.services.dto.constants.seine.SchoolType; -import fr.ird.observe.services.dto.constants.seine.TypeTransmittingBuoyOperation; -import fr.ird.observe.services.dto.referential.ReferentialDto; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.util.beans.Binder; import java.io.Closeable; import java.util.ArrayList; import java.util.Collection; +import java.util.HashSet; import java.util.LinkedHashSet; -import java.util.List; import java.util.Map; /** @@ -165,55 +158,24 @@ public class DtoToEntityBuilder<D extends IdDto, E extends TopiaEntity> implemen return propertyValue instanceof Collection; } - protected Collection<Object> newCollection(Object propertyValue) { + protected Collection<Object> newCollection(Class<?> collectionType) { Collection<Object> propertyValueCollection = null; - if (propertyValue instanceof Set) { + if (LinkedHashSet.class.isAssignableFrom(collectionType)) { propertyValueCollection = new LinkedHashSet<>(); - } else - if (propertyValue instanceof Collection) { - propertyValueCollection = new LinkedHashSet<>(); - } - if (propertyValue instanceof List) { + } else if (Set.class.isAssignableFrom(collectionType)) { + propertyValueCollection = new HashSet<>(); + } else if (Collection.class.isAssignableFrom(collectionType)) { propertyValueCollection = new ArrayList<>(); } return propertyValueCollection; + } protected void addProperty(String propertyName, Object propertyValue, ImmutableMap.Builder<String, Object> entitiesPropertiesBuilder) { - if (ReferentialDto.PROPERTY_ID.equals(propertyName)) { + if (IdDto.PROPERTY_ID.equals(propertyName)) { propertyName = TopiaEntity.TOPIA_ID; - } else if (propertyValue instanceof GearType) { - - GearType entityGearType = (GearType) propertyValue; - propertyValue = fr.ird.observe.entities.constants.GearType.valueOf(entityGearType.name()); - - } else if (propertyValue instanceof ReferenceStatus) { - - ReferenceStatus referenceStatus = (ReferenceStatus) propertyValue; - propertyValue = fr.ird.observe.entities.constants.ReferenceStatus.valueOf(referenceStatus.name()); - - } else if (propertyValue instanceof Ownership) { - - Ownership ownership = (Ownership) propertyValue; - propertyValue = Ownership.valueOf(ownership.name()); - - } else if (propertyValue instanceof SchoolType) { - - SchoolType schoolType = (SchoolType) propertyValue; - propertyValue = fr.ird.observe.entities.constants.seine.SchoolType.valueOf(schoolType.name()); - - } else if (propertyValue instanceof TypeTransmittingBuoyOperation) { - - TypeTransmittingBuoyOperation typeTransmittingBuoyOperation = (TypeTransmittingBuoyOperation) propertyValue; - propertyValue = fr.ird.observe.entities.constants.seine.TypeTransmittingBuoyOperation.valueOf(typeTransmittingBuoyOperation.name()); - - } else if (propertyValue instanceof NonTargetCatchComputedValueSource) { - - NonTargetCatchComputedValueSource nonTargetCatchComputedValueSource = (NonTargetCatchComputedValueSource) propertyValue; - propertyValue = fr.ird.observe.entities.constants.seine.NonTargetCatchComputedValueSource.valueOf(nonTargetCatchComputedValueSource.name()); - } entitiesPropertiesBuilder.put(propertyName, propertyValue); diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToDtoBuilder.java b/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToDtoBuilder.java index 8ce3a8e..cc86f2a 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToDtoBuilder.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/builder/EntityToDtoBuilder.java @@ -6,12 +6,6 @@ import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; import fr.ird.observe.ObserveEntityEnum; import fr.ird.observe.entities.Set; -import fr.ird.observe.entities.constants.GearType; -import fr.ird.observe.entities.constants.ReferenceStatus; -import fr.ird.observe.entities.constants.seine.NonTargetCatchComputedValueSource; -import fr.ird.observe.entities.constants.seine.Ownership; -import fr.ird.observe.entities.constants.seine.SchoolType; -import fr.ird.observe.entities.constants.seine.TypeTransmittingBuoyOperation; import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.IdDto; import fr.ird.observe.services.dto.ObserveDtoBinders; @@ -166,42 +160,13 @@ public class EntityToDtoBuilder<E extends TopiaEntity, D extends IdDto> implemen propertyValueCollection = new ArrayList<>(); } return propertyValueCollection; + } protected void addProperty(String propertyName, Object propertyValue, ImmutableMap.Builder<String, Object> dtoPropertiesBuilder) { if (TopiaEntity.TOPIA_ID.equals(propertyName)) { propertyName = ReferentialDto.PROPERTY_ID; - } else if (propertyValue instanceof GearType) { - - GearType entityGearType = (GearType) propertyValue; - propertyValue = fr.ird.observe.services.dto.constants.GearType.valueOf(entityGearType.name()); - - } else if (propertyValue instanceof ReferenceStatus) { - - ReferenceStatus referenceStatus = (ReferenceStatus) propertyValue; - propertyValue = fr.ird.observe.services.dto.constants.ReferenceStatus.valueOf(referenceStatus.name()); - - } else if (propertyValue instanceof Ownership) { - - Ownership ownership = (Ownership) propertyValue; - propertyValue = fr.ird.observe.services.dto.constants.seine.Ownership.valueOf(ownership.name()); - - } else if (propertyValue instanceof SchoolType) { - - SchoolType schoolType = (SchoolType) propertyValue; - propertyValue = fr.ird.observe.services.dto.constants.seine.SchoolType.valueOf(schoolType.name()); - - } else if (propertyValue instanceof TypeTransmittingBuoyOperation) { - - TypeTransmittingBuoyOperation typeTransmittingBuoyOperation = (TypeTransmittingBuoyOperation) propertyValue; - propertyValue = fr.ird.observe.services.dto.constants.seine.TypeTransmittingBuoyOperation.valueOf(typeTransmittingBuoyOperation.name()); - - } else if (propertyValue instanceof NonTargetCatchComputedValueSource) { - - NonTargetCatchComputedValueSource nonTargetCatchComputedValueSource = (NonTargetCatchComputedValueSource) propertyValue; - propertyValue = fr.ird.observe.services.dto.constants.seine.NonTargetCatchComputedValueSource.valueOf(nonTargetCatchComputedValueSource.name()); - } dtoPropertiesBuilder.put(propertyName, propertyValue); -- 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 feature/7458 in repository observe. See http://git.codelutin.com/observe.git commit c0295ec93fb6a26ac63c0c1e328b5f2f2851e9f2 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Aug 19 16:06:42 2015 +0200 correction du nom d'une propriété --- .../services/dto/ObserveDtosInitializer.java | 153 +++++++++++++++++---- 1 file changed, 129 insertions(+), 24 deletions(-) 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 3f949fa..522d766 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 @@ -1,5 +1,6 @@ package fr.ird.observe.services.dto; +import com.google.common.base.Function; import com.google.common.collect.ImmutableBiMap; import fr.ird.observe.entities.referentiel.Country; import fr.ird.observe.entities.referentiel.FpaZone; @@ -908,22 +909,22 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { BinderModelBuilder<ActivitySeineDto, ActivitySeine> dtoToEntityBuilder = newBinderBuilder(ActivitySeineDto.class, ActivitySeine.class, - ActivitySeineDto.PROPERTY_COMMENT, - ActivitySeineDto.PROPERTY_OPEN, - ActivitySeineDto.PROPERTY_TIME, - ActivitySeineDto.PROPERTY_LATITUDE, - ActivitySeineDto.PROPERTY_LONGITUDE, - ActivitySeineDto.PROPERTY_VESSEL_SPEED, - ActivitySeineDto.PROPERTY_SEA_SURFACE_TEMPERATURE, - ActivitySeineDto.PROPERTY_ERS_ID, - ActivitySeineDto.PROPERTY_VESSEL_ACTIVITY_SEINE, - ActivitySeineDto.PROPERTY_SURROUNDING_ACTIVITY, - ActivitySeineDto.PROPERTY_DETECTION_MODE, - ActivitySeineDto.PROPERTY_REASON_FOR_NO_FISHING, - ActivitySeineDto.PROPERTY_PREVIOUS_FPA_ZONE, - ActivitySeineDto.PROPERTY_CURRENT_FPA_ZONE, - ActivitySeineDto.PROPERTY_NEXT_FPA_ZONE, - ActivitySeineDto.PROPERTY_NEXT_FPA_ZONE); + ActivitySeineDto.PROPERTY_COMMENT, + ActivitySeineDto.PROPERTY_OPEN, + ActivitySeineDto.PROPERTY_TIME, + ActivitySeineDto.PROPERTY_LATITUDE, + ActivitySeineDto.PROPERTY_LONGITUDE, + ActivitySeineDto.PROPERTY_VESSEL_SPEED, + ActivitySeineDto.PROPERTY_SEA_SURFACE_TEMPERATURE, + ActivitySeineDto.PROPERTY_ERS_ID, + ActivitySeineDto.PROPERTY_VESSEL_ACTIVITY_SEINE, + ActivitySeineDto.PROPERTY_SURROUNDING_ACTIVITY, + ActivitySeineDto.PROPERTY_DETECTION_MODE, + ActivitySeineDto.PROPERTY_REASON_FOR_NO_FISHING, + ActivitySeineDto.PROPERTY_PREVIOUS_FPA_ZONE, + ActivitySeineDto.PROPERTY_CURRENT_FPA_ZONE, + ActivitySeineDto.PROPERTY_NEXT_FPA_ZONE, + ActivitySeineDto.PROPERTY_NEXT_FPA_ZONE); registerDtoBinder(dtoToEntityBuilder); } @@ -934,10 +935,10 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { BinderModelBuilder<ActivitySeineObservedSystemDto, ActivitySeine> dtoToEntityBuilder = newBinderBuilder(ActivitySeineObservedSystemDto.class, ActivitySeine.class, - ActivitySeineObservedSystemDto.PROPERTY_COMMENT, - ActivitySeineObservedSystemDto.PROPERTY_OPEN, - ActivitySeineObservedSystemDto.PROPERTY_OBSERVED_SYSTEM_DISTANCE, - ActivitySeineObservedSystemDto.PROPERTY_OBSERVED_SYSTEM); + ActivitySeineObservedSystemDto.PROPERTY_COMMENT, + ActivitySeineObservedSystemDto.PROPERTY_OPEN, + ActivitySeineObservedSystemDto.PROPERTY_OBSERVED_SYSTEM_DISTANCE, + ActivitySeineObservedSystemDto.PROPERTY_OBSERVED_SYSTEM); registerDtoBinder(dtoToEntityBuilder); } @@ -1058,9 +1059,7 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { protected <R extends ReferentialDto, E extends TopiaEntity> void registerReferentialDtoBinder(Class<R> dtoType, Class<E> entityType, String... extraProperties) { - BinderModelBuilder<R, E> dtoToEntityBuilder = newBinderBuilder(dtoType, entityType) - .canTypeMismatch(true) - .addSimpleProperties(DEFAULT_REFERENTIAL_PROPERTIES); + BinderModelBuilder<R, E> dtoToEntityBuilder = newBinderBuilder(dtoType, entityType, DEFAULT_REFERENTIAL_PROPERTIES); if (I18nReferenceEntity.class.isAssignableFrom(entityType)) { dtoToEntityBuilder.addSimpleProperties(DEFAULT_REFERENTIAL_I18N_PROPERTIES); @@ -1085,7 +1084,7 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { protected static <R extends ReferentialDto, E extends TopiaEntity> void registerReferentialReferenceDtoBinder(Class<R> dtoType, Class<E> entityType, boolean useDefault, String... extraProperties) { - BinderModelBuilder<R, E> dtoToReferenceBuilder =newBinderBuilder(dtoType, entityType); + BinderModelBuilder<R, E> dtoToReferenceBuilder = newBinderBuilder(dtoType, entityType); if (useDefault) { dtoToReferenceBuilder.addSimpleProperties(DEFAULT_REFERENTIAL_REFERENCE_PROPERTIES); @@ -1104,6 +1103,10 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { dtoToEntityBuilder.addProperty(IdDto.PROPERTY_ID, TopiaEntity.TOPIA_ID); BinderModelBuilder<E, R> entityToDtoToBuilder = dtoToEntityBuilder.buildInverseModelBuilder(); + + addDtoToEntityFunctions(dtoToEntityBuilder); + addEntityToDtoFunctions(entityToDtoToBuilder); + BinderFactory.registerBinderModel(dtoToEntityBuilder, ObserveDtoBinders.DTO_TO_ENTITY); BinderFactory.registerBinderModel(entityToDtoToBuilder, ObserveDtoBinders.ENTITY_TO_DTO); @@ -1115,6 +1118,9 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { BinderModelBuilder<E, R> entityToReferenceBuilder = dtoToReferenceBuilder.buildInverseModelBuilder(); + addDtoToEntityFunctions(dtoToReferenceBuilder); + addEntityToDtoFunctions(entityToReferenceBuilder); + BinderFactory.registerBinderModel(dtoToReferenceBuilder, ObserveDtoBinders.DTO_TO_REFERENCE); BinderFactory.registerBinderModel(entityToReferenceBuilder, ObserveDtoBinders.ENTITY_TO_REFERENCE); @@ -1124,7 +1130,106 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { BinderModelBuilder<Source, Target> builder = BinderModelBuilder.newEmptyBuilder(source, target); builder.canTypeMismatch(true); builder.addSimpleProperties(properties); + return builder; } + + protected static <Source extends IdDto, Target> void addDtoToEntityFunctions(BinderModelBuilder<Source, Target> builder) { + + builder.addFunction(fr.ird.observe.services.dto.constants.GearType.class, new Function<fr.ird.observe.services.dto.constants.GearType, fr.ird.observe.entities.constants.GearType>() { + + @Override + public fr.ird.observe.entities.constants.GearType apply(fr.ird.observe.services.dto.constants.GearType input) { + return fr.ird.observe.entities.constants.GearType.valueOf(input.name()); + } + }); + builder.addFunction(fr.ird.observe.services.dto.constants.ReferenceStatus.class, new Function<fr.ird.observe.services.dto.constants.ReferenceStatus, fr.ird.observe.entities.constants.ReferenceStatus>() { + + @Override + public fr.ird.observe.entities.constants.ReferenceStatus apply(fr.ird.observe.services.dto.constants.ReferenceStatus input) { + return fr.ird.observe.entities.constants.ReferenceStatus.valueOf(input.name()); + } + }); + builder.addFunction(fr.ird.observe.services.dto.constants.seine.Ownership.class, new Function<fr.ird.observe.services.dto.constants.seine.Ownership, fr.ird.observe.entities.constants.seine.Ownership>() { + + @Override + public fr.ird.observe.entities.constants.seine.Ownership apply(fr.ird.observe.services.dto.constants.seine.Ownership input) { + return fr.ird.observe.entities.constants.seine.Ownership.valueOf(input.name()); + } + }); + builder.addFunction(fr.ird.observe.services.dto.constants.seine.SchoolType.class, new Function<fr.ird.observe.services.dto.constants.seine.SchoolType, fr.ird.observe.entities.constants.seine.SchoolType>() { + + @Override + public fr.ird.observe.entities.constants.seine.SchoolType apply(fr.ird.observe.services.dto.constants.seine.SchoolType input) { + return fr.ird.observe.entities.constants.seine.SchoolType.valueOf(input.name()); + } + }); + builder.addFunction(fr.ird.observe.services.dto.constants.seine.TypeTransmittingBuoyOperation.class, new Function<fr.ird.observe.services.dto.constants.seine.TypeTransmittingBuoyOperation, fr.ird.observe.entities.constants.seine.TypeTransmittingBuoyOperation>() { + + @Override + public fr.ird.observe.entities.constants.seine.TypeTransmittingBuoyOperation apply(fr.ird.observe.services.dto.constants.seine.TypeTransmittingBuoyOperation input) { + return fr.ird.observe.entities.constants.seine.TypeTransmittingBuoyOperation.valueOf(input.name()); + } + }); + builder.addFunction(fr.ird.observe.services.dto.constants.seine.NonTargetCatchComputedValueSource.class, new Function<fr.ird.observe.services.dto.constants.seine.NonTargetCatchComputedValueSource, fr.ird.observe.entities.constants.seine.NonTargetCatchComputedValueSource>() { + + @Override + public fr.ird.observe.entities.constants.seine.NonTargetCatchComputedValueSource apply(fr.ird.observe.services.dto.constants.seine.NonTargetCatchComputedValueSource input) { + return fr.ird.observe.entities.constants.seine.NonTargetCatchComputedValueSource.valueOf(input.name()); + } + }); + } + + protected static <Source extends TopiaEntity, Target> void addEntityToDtoFunctions(BinderModelBuilder<Source, Target> builder) { + + builder.addFunction(fr.ird.observe.entities.constants.GearType.class, new Function<fr.ird.observe.entities.constants.GearType, fr.ird.observe.services.dto.constants.GearType>() { + + @Override + public fr.ird.observe.services.dto.constants.GearType apply(fr.ird.observe.entities.constants.GearType input) { + return fr.ird.observe.services.dto.constants.GearType.valueOf(input.name()); + } + }); + + builder.addFunction(fr.ird.observe.entities.constants.ReferenceStatus.class, new Function<fr.ird.observe.entities.constants.ReferenceStatus, fr.ird.observe.services.dto.constants.ReferenceStatus>() { + + @Override + public fr.ird.observe.services.dto.constants.ReferenceStatus apply(fr.ird.observe.entities.constants.ReferenceStatus input) { + return fr.ird.observe.services.dto.constants.ReferenceStatus.valueOf(input.name()); + } + }); + + builder.addFunction(fr.ird.observe.entities.constants.seine.Ownership.class, new Function<fr.ird.observe.entities.constants.seine.Ownership, fr.ird.observe.services.dto.constants.seine.Ownership>() { + + @Override + public fr.ird.observe.services.dto.constants.seine.Ownership apply(fr.ird.observe.entities.constants.seine.Ownership input) { + return fr.ird.observe.services.dto.constants.seine.Ownership.valueOf(input.name()); + } + }); + + builder.addFunction(fr.ird.observe.entities.constants.seine.SchoolType.class, new Function<fr.ird.observe.entities.constants.seine.SchoolType, fr.ird.observe.services.dto.constants.seine.SchoolType>() { + + @Override + public fr.ird.observe.services.dto.constants.seine.SchoolType apply(fr.ird.observe.entities.constants.seine.SchoolType input) { + return fr.ird.observe.services.dto.constants.seine.SchoolType.valueOf(input.name()); + } + }); + + builder.addFunction(fr.ird.observe.entities.constants.seine.TypeTransmittingBuoyOperation.class, new Function<fr.ird.observe.entities.constants.seine.TypeTransmittingBuoyOperation, fr.ird.observe.services.dto.constants.seine.TypeTransmittingBuoyOperation>() { + + @Override + public fr.ird.observe.services.dto.constants.seine.TypeTransmittingBuoyOperation apply(fr.ird.observe.entities.constants.seine.TypeTransmittingBuoyOperation input) { + return fr.ird.observe.services.dto.constants.seine.TypeTransmittingBuoyOperation.valueOf(input.name()); + } + }); + + builder.addFunction(fr.ird.observe.entities.constants.seine.NonTargetCatchComputedValueSource.class, new Function<fr.ird.observe.entities.constants.seine.NonTargetCatchComputedValueSource, fr.ird.observe.services.dto.constants.seine.NonTargetCatchComputedValueSource>() { + + @Override + public fr.ird.observe.services.dto.constants.seine.NonTargetCatchComputedValueSource apply(fr.ird.observe.entities.constants.seine.NonTargetCatchComputedValueSource input) { + return fr.ird.observe.services.dto.constants.seine.NonTargetCatchComputedValueSource.valueOf(input.name()); + } + }); + + } } -- 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