branch feature/7458 updated (c432553 -> bf2a9f7)
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 c432553 fix properties (refs #7458). new 80044c4 Simplification des configurations de modele + correction de certains noms de dtos new 6827738 Ajout d'un constructeur de ReferentielLabelDto mais ausii pour les FormDto new 01bfc95 Deplacement d'un test new bf2a9f7 Ajout d'un builder de ReferentialDto à partir d'une entité The 4 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 bf2a9f7af94bd58e294ba09f101c9927ac22cf5b Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 18 08:39:23 2015 +0200 Ajout d'un builder de ReferentialDto à partir d'une entité commit 01bfc953183ea34ca1dafcc7dc08c5d89fbf7633 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 18 08:38:12 2015 +0200 Deplacement d'un test commit 682773800442901e3c98af3b2c6084aa2e9c9960 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 18 08:37:19 2015 +0200 Ajout d'un constructeur de ReferentielLabelDto mais ausii pour les FormDto commit 80044c4cfe3b4bacf378d0c77caaf12ca0f3377a Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 18 08:33:47 2015 +0200 Simplification des configurations de modele + correction de certains noms de dtos Summary of changes: .../java/fr/ird/observe/services/dto/FormDto.java | 4 - .../java/fr/ird/observe/services/dto/FormDtos.java | 13 +- .../dto/referential/ReferentialLabelDto.java | 47 ++++++ .../dto/referential/ReferentialLabelDtos.java | 149 ++++++++++++++++++ .../src/main/xmi/observe-services-dto-common.zargo | Bin 33096 -> 32889 bytes .../xmi/observe-services-dto-longline.properties | 3 +- .../main/xmi/observe-services-dto-longline.zargo | Bin 75970 -> 75755 bytes .../src/main/xmi/observe-services-dto-seine.zargo | Bin 55402 -> 53974 bytes .../services/service/ReferentialDtoBuilder.java | 13 +- .../services/service/ReferentialServiceTopia.java | 172 +++++++++++++++------ .../service/ReferentialDtoBuilderTest.java | 13 ++ .../ReferentialServiceTopiaTest.java | 3 +- 12 files changed, 358 insertions(+), 59 deletions(-) create mode 100644 observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialLabelDto.java create mode 100644 observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialLabelDtos.java rename observe-services-topia/src/test/java/fr/ird/observe/services/service/{referential => }/ReferentialServiceTopiaTest.java (89%) -- 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 80044c4cfe3b4bacf378d0c77caaf12ca0f3377a Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 18 08:33:47 2015 +0200 Simplification des configurations de modele + correction de certains noms de dtos --- .../src/main/xmi/observe-services-dto-common.zargo | Bin 33096 -> 32889 bytes .../xmi/observe-services-dto-longline.properties | 3 +-- .../main/xmi/observe-services-dto-longline.zargo | Bin 75970 -> 75755 bytes .../src/main/xmi/observe-services-dto-seine.zargo | Bin 55402 -> 53974 bytes 4 files changed, 1 insertion(+), 2 deletions(-) diff --git a/observe-services-model/src/main/xmi/observe-services-dto-common.zargo b/observe-services-model/src/main/xmi/observe-services-dto-common.zargo index 5a51577..6ca3d46 100644 Binary files a/observe-services-model/src/main/xmi/observe-services-dto-common.zargo and b/observe-services-model/src/main/xmi/observe-services-dto-common.zargo differ diff --git a/observe-services-model/src/main/xmi/observe-services-dto-longline.properties b/observe-services-model/src/main/xmi/observe-services-dto-longline.properties index d65fee3..6c81de4 100644 --- a/observe-services-model/src/main/xmi/observe-services-dto-longline.properties +++ b/observe-services-model/src/main/xmi/observe-services-dto-longline.properties @@ -4,5 +4,4 @@ model.tagvalue.simpleBeanWithNoInterfaceSuperClass=fr.ird.observe.services.dto.A model.tagvalue.simpleBeanWithNoInterfaceDefaultsClassNameSuffix=Dtos model.tagvalue.simpleBeanWithNoInterfaceClassNameSuffix=Dto -package.fr.ird.observe.services.dto.longline.stereotype=bean -package.fr.ird.observe.services.dto.referential.longline.stereotype=bean +package.fr.ird.observe.services.dto.stereotype=bean diff --git a/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo b/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo index db15039..6ed2246 100644 Binary files a/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo and b/observe-services-model/src/main/xmi/observe-services-dto-longline.zargo differ diff --git a/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo b/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo index fb04fe5..ed7a97a 100644 Binary files a/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo and b/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo differ -- 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 682773800442901e3c98af3b2c6084aa2e9c9960 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 18 08:37:19 2015 +0200 Ajout d'un constructeur de ReferentielLabelDto mais ausii pour les FormDto --- .../java/fr/ird/observe/services/dto/FormDto.java | 4 - .../java/fr/ird/observe/services/dto/FormDtos.java | 13 +- .../dto/referential/ReferentialLabelDto.java | 47 +++++++ .../dto/referential/ReferentialLabelDtos.java | 149 +++++++++++++++++++++ 4 files changed, 208 insertions(+), 5 deletions(-) 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 da5202d..93be919 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 @@ -12,10 +12,6 @@ public class FormDto<R extends IdDto> extends AbstractFormDto { this.type = type; } - public FormDto() { - this(null); - } - @Override public void setForm(IdDto form) { Preconditions.checkArgument(form.getClass().isAssignableFrom(type), "Bad form type, should be " + type.getName()); 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 index 7606dc8..530e2df 100644 --- 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 @@ -1,5 +1,9 @@ package fr.ird.observe.services.dto; +import fr.ird.observe.services.dto.referential.ReferentialLabelSetDto; + +import java.util.Collection; + /** * Created on 17/08/15. * @@ -7,8 +11,15 @@ package fr.ird.observe.services.dto; */ public class FormDtos extends AbstractFormDtos { - public static <BeanType extends FormDto, R extends IdDto> BeanType newReferentialFormDto(Class<R> source) { + public static <BeanType extends FormDto, R extends IdDto> BeanType newFormDto(Class<R> source) { + BeanType result = (BeanType) new FormDto<>(source); + return result; + } + + public static <BeanType extends FormDto, R extends IdDto> BeanType newFormDto(Class<R> source, R form, Collection<ReferentialLabelSetDto> labels) { BeanType result = (BeanType) new FormDto<>(source); + result.setForm(form); + result.setLabels(labels); return result; } diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialLabelDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialLabelDto.java new file mode 100644 index 0000000..ac89343 --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialLabelDto.java @@ -0,0 +1,47 @@ +package fr.ird.observe.services.dto.referential; + +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableList; + +import java.io.Serializable; + +public class ReferentialLabelDto<R extends ReferentialDto> extends AbstractReferentialLabelDto { + + private static final long serialVersionUID = 1L; + + protected final Class<R> type; + + protected final ImmutableList<String> labelPropertyNames; + + protected final Serializable[] labelPropertyValues; + + public ReferentialLabelDto(Class<R> type, String... labelPropertyNames) { + this.type = type; + this.labelPropertyNames = ImmutableList.copyOf(labelPropertyNames); + this.labelPropertyValues = new Serializable[labelPropertyNames.length]; + } + + public Class<R> getType() { + return type; + } + + public Serializable getLabelPropertyValue(String propertyName) { + int propertyIndex = getPropertyIndex(propertyName); + return labelPropertyValues[propertyIndex]; + } + + public ImmutableList<String> getLabelPropertyNames() { + return labelPropertyNames; + } + + public void setLabelPropertyValue(String propertyName, Serializable propertyValue) { + int propertyIndex = getPropertyIndex(propertyName); + labelPropertyValues[propertyIndex] = propertyValue; + } + + protected int getPropertyIndex(String propertyName) { + int index = labelPropertyNames.indexOf(propertyName); + Preconditions.checkArgument(index > -1, "Property " + propertyName + " not found for this label, " + labelPropertyNames); + return index; + } +} diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialLabelDtos.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialLabelDtos.java new file mode 100644 index 0000000..176d9c0 --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/referential/ReferentialLabelDtos.java @@ -0,0 +1,149 @@ +package fr.ird.observe.services.dto.referential; + +import com.google.common.collect.ImmutableMap; +import fr.ird.observe.services.dto.referential.longline.BaitHaulingStatusDto; +import fr.ird.observe.services.dto.referential.longline.BaitSettingStatusDto; +import fr.ird.observe.services.dto.referential.longline.BaitTypeDto; +import fr.ird.observe.services.dto.referential.longline.CatchFateLonglineDto; +import fr.ird.observe.services.dto.referential.longline.EncounterTypeDto; +import fr.ird.observe.services.dto.referential.longline.HealthnessDto; +import fr.ird.observe.services.dto.referential.longline.HookPositionDto; +import fr.ird.observe.services.dto.referential.longline.HookSizeDto; +import fr.ird.observe.services.dto.referential.longline.HookTypeDto; +import fr.ird.observe.services.dto.referential.longline.ItemHorizontalPositionDto; +import fr.ird.observe.services.dto.referential.longline.ItemVerticalPositionDto; +import fr.ird.observe.services.dto.referential.longline.LightsticksColorDto; +import fr.ird.observe.services.dto.referential.longline.LightsticksTypeDto; +import fr.ird.observe.services.dto.referential.longline.LineTypeDto; +import fr.ird.observe.services.dto.referential.longline.MaturityStatusDto; +import fr.ird.observe.services.dto.referential.longline.MitigationTypeDto; +import fr.ird.observe.services.dto.referential.longline.SensorBrandDto; +import fr.ird.observe.services.dto.referential.longline.SensorDataFormatDto; +import fr.ird.observe.services.dto.referential.longline.SensorTypeDto; +import fr.ird.observe.services.dto.referential.longline.SettingShapeDto; +import fr.ird.observe.services.dto.referential.longline.SizeMeasureTypeDto; +import fr.ird.observe.services.dto.referential.longline.StomacFullnessDto; +import fr.ird.observe.services.dto.referential.longline.TripTypeDto; +import fr.ird.observe.services.dto.referential.longline.VesselActivityLonglineDto; +import fr.ird.observe.services.dto.referential.longline.WeightMeasureTypeDto; +import fr.ird.observe.services.dto.referential.seine.DetectionModeDto; +import fr.ird.observe.services.dto.referential.seine.ObjectFateDto; +import fr.ird.observe.services.dto.referential.seine.ObjectOperationDto; +import fr.ird.observe.services.dto.referential.seine.ObjectTypeDto; +import fr.ird.observe.services.dto.referential.seine.ObservedSystemDto; +import fr.ird.observe.services.dto.referential.seine.ReasonForDiscardDto; +import fr.ird.observe.services.dto.referential.seine.ReasonForNoFishingDto; +import fr.ird.observe.services.dto.referential.seine.ReasonForNullSetDto; +import fr.ird.observe.services.dto.referential.seine.SpeciesFateDto; +import fr.ird.observe.services.dto.referential.seine.SpeciesStatusDto; +import fr.ird.observe.services.dto.referential.seine.SurroundingActivityDto; +import fr.ird.observe.services.dto.referential.seine.TransmittingBuoyOperationDto; +import fr.ird.observe.services.dto.referential.seine.TransmittingBuoyTypeDto; +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 org.nuiton.util.beans.Binder; +import org.nuiton.util.beans.BinderFactory; + +import java.io.Serializable; +import java.util.Map; + +public class ReferentialLabelDtos extends AbstractReferentialLabelDtos { + + /** + * Les noms des propriétés à utiliser dans le label par type de référentiel. + */ + protected static final ImmutableMap<Class<?>, String[]> LABEL_PROPERTY_NAMES_MAPPING; + + static { + + String[] DEFAULT_PROPERTY_NAMES = {ReferentialDto.PROPERTY_CODE, I18nReferentialDto.PROPERTY_LABEL1, I18nReferentialDto.PROPERTY_LABEL2, I18nReferentialDto.PROPERTY_LABEL3}; + + LABEL_PROPERTY_NAMES_MAPPING = ImmutableMap.<Class<?>, String[]>builder() + + .put(CountryDto.class, DEFAULT_PROPERTY_NAMES) + .put(FpaZoneDto.class, DEFAULT_PROPERTY_NAMES) + .put(GearCaracteristicDto.class, DEFAULT_PROPERTY_NAMES) + .put(GearCaracteristicTypeDto.class, DEFAULT_PROPERTY_NAMES) + .put(GearDto.class, DEFAULT_PROPERTY_NAMES) + .put(HarbourDto.class, new String[]{ReferentialDto.PROPERTY_CODE, HarbourDto.PROPERTY_NAME, HarbourDto.PROPERTY_LOCODE}) + .put(LengthWeightParameterDto.class, new String[]{}) + .put(OceanDto.class, DEFAULT_PROPERTY_NAMES) + .put(OrganismDto.class, DEFAULT_PROPERTY_NAMES) + .put(PersonDto.class, new String[]{PersonDto.PROPERTY_FIRST_NAME, PersonDto.PROPERTY_LAST_NAME}) + .put(ProgramDto.class, new String[]{I18nReferentialDto.PROPERTY_LABEL1, I18nReferentialDto.PROPERTY_LABEL2, I18nReferentialDto.PROPERTY_LABEL3}) + .put(SexDto.class, DEFAULT_PROPERTY_NAMES) + .put(SpeciesDto.class, new String[]{SpeciesDto.PROPERTY_FAO_CODE, SpeciesDto.PROPERTY_SCIENTIFIC_LABEL, SpeciesDto.PROPERTY_HOME_ID}) + .put(SpeciesGroupDto.class, DEFAULT_PROPERTY_NAMES) + .put(SpeciesListDto.class, DEFAULT_PROPERTY_NAMES) + .put(VesselDto.class, DEFAULT_PROPERTY_NAMES) + .put(VesselSizeCategoryDto.class, new String[]{ReferentialDto.PROPERTY_CODE, VesselSizeCategoryDto.PROPERTY_GAUGE_LABEL, VesselSizeCategoryDto.PROPERTY_CAPACITY_LABEL}) + .put(VesselTypeDto.class, DEFAULT_PROPERTY_NAMES) + + .put(DetectionModeDto.class, DEFAULT_PROPERTY_NAMES) + .put(ObjectFateDto.class, DEFAULT_PROPERTY_NAMES) + .put(ObjectOperationDto.class, DEFAULT_PROPERTY_NAMES) + .put(ObjectTypeDto.class, DEFAULT_PROPERTY_NAMES) + .put(ObservedSystemDto.class, DEFAULT_PROPERTY_NAMES) + .put(ReasonForDiscardDto.class, DEFAULT_PROPERTY_NAMES) + .put(ReasonForNoFishingDto.class, DEFAULT_PROPERTY_NAMES) + .put(ReasonForNullSetDto.class, DEFAULT_PROPERTY_NAMES) + .put(SpeciesFateDto.class, DEFAULT_PROPERTY_NAMES) + .put(SpeciesStatusDto.class, DEFAULT_PROPERTY_NAMES) + .put(SurroundingActivityDto.class, DEFAULT_PROPERTY_NAMES) + .put(TransmittingBuoyOperationDto.class, DEFAULT_PROPERTY_NAMES) + .put(TransmittingBuoyTypeDto.class, DEFAULT_PROPERTY_NAMES) + .put(VesselActivitySeineDto.class, DEFAULT_PROPERTY_NAMES) + .put(WeightCategoryDto.class, DEFAULT_PROPERTY_NAMES) + .put(WindDto.class, new String[]{ReferentialDto.PROPERTY_CODE, I18nReferentialDto.PROPERTY_LABEL1, I18nReferentialDto.PROPERTY_LABEL2, I18nReferentialDto.PROPERTY_LABEL3, WindDto.PROPERTY_SPEED_RANGE}) + + .put(BaitHaulingStatusDto.class, DEFAULT_PROPERTY_NAMES) + .put(BaitSettingStatusDto.class, DEFAULT_PROPERTY_NAMES) + .put(BaitTypeDto.class, DEFAULT_PROPERTY_NAMES) + .put(CatchFateLonglineDto.class, DEFAULT_PROPERTY_NAMES) + .put(EncounterTypeDto.class, DEFAULT_PROPERTY_NAMES) + .put(HealthnessDto.class, DEFAULT_PROPERTY_NAMES) + .put(HookPositionDto.class, DEFAULT_PROPERTY_NAMES) + .put(HookSizeDto.class, DEFAULT_PROPERTY_NAMES) + .put(HookTypeDto.class, DEFAULT_PROPERTY_NAMES) + .put(ItemHorizontalPositionDto.class, DEFAULT_PROPERTY_NAMES) + .put(ItemVerticalPositionDto.class, DEFAULT_PROPERTY_NAMES) + .put(LightsticksColorDto.class, DEFAULT_PROPERTY_NAMES) + .put(LightsticksTypeDto.class, DEFAULT_PROPERTY_NAMES) + .put(LineTypeDto.class, DEFAULT_PROPERTY_NAMES) + .put(MaturityStatusDto.class, DEFAULT_PROPERTY_NAMES) + .put(MitigationTypeDto.class, DEFAULT_PROPERTY_NAMES) + .put(SensorBrandDto.class, new String[]{ReferentialDto.PROPERTY_CODE, SensorBrandDto.PROPERTY_BRAND_NAME}) + .put(SensorDataFormatDto.class, DEFAULT_PROPERTY_NAMES) + .put(SensorTypeDto.class, DEFAULT_PROPERTY_NAMES) + .put(SettingShapeDto.class, DEFAULT_PROPERTY_NAMES) + .put(SizeMeasureTypeDto.class, DEFAULT_PROPERTY_NAMES) + .put(StomacFullnessDto.class, DEFAULT_PROPERTY_NAMES) + .put(TripTypeDto.class, DEFAULT_PROPERTY_NAMES) + .put(VesselActivityLonglineDto.class, DEFAULT_PROPERTY_NAMES) + .put(WeightMeasureTypeDto.class, DEFAULT_PROPERTY_NAMES) + + .build(); + + } + + public static <R extends ReferentialDto> ReferentialLabelDto<R> newReferentialLabelDto(Class<R> type) { + String[] propertyNames = LABEL_PROPERTY_NAMES_MAPPING.get(type); + return new ReferentialLabelDto<>(type, propertyNames); + } + + public static <R extends ReferentialDto> ReferentialLabelDto<R> newReferentialLabelDto(Class<R> type, Object source) { + String[] propertyNames = LABEL_PROPERTY_NAMES_MAPPING.get(type); + ReferentialLabelDto<R> dto = new ReferentialLabelDto<>(type, propertyNames); + + Binder binder = BinderFactory.newBinder(source.getClass()); + Map<String, Object> properties = binder.obtainProperties(source, propertyNames); + for (Map.Entry<String, Object> entry : properties.entrySet()) { + String propertyName = entry.getKey(); + Object propertyValue = entry.getValue(); + dto.setLabelPropertyValue(propertyName, (Serializable) propertyValue); + } + return dto; + } + +} -- 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 01bfc953183ea34ca1dafcc7dc08c5d89fbf7633 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 18 08:38:12 2015 +0200 Deplacement d'un test --- .../service/{referential => }/ReferentialServiceTopiaTest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/referential/ReferentialServiceTopiaTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialServiceTopiaTest.java similarity index 89% rename from observe-services-topia/src/test/java/fr/ird/observe/services/service/referential/ReferentialServiceTopiaTest.java rename to observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialServiceTopiaTest.java index 4ed8565..b702093 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/referential/ReferentialServiceTopiaTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialServiceTopiaTest.java @@ -1,10 +1,9 @@ -package fr.ird.observe.services.service.referential; +package fr.ird.observe.services.service; import fr.ird.observe.services.ObserveServiceContextTopia; import fr.ird.observe.services.ObserveServiceMainFactory; import fr.ird.observe.services.dto.referential.ReferentialLabelSetDto; import fr.ird.observe.services.dto.referential.SexDto; -import fr.ird.observe.services.service.ReferentialService; import org.junit.Assert; import org.junit.Before; import org.junit.Test; -- 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 bf2a9f7af94bd58e294ba09f101c9927ac22cf5b Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 18 08:39:23 2015 +0200 Ajout d'un builder de ReferentialDto à partir d'une entité --- .../services/service/ReferentialDtoBuilder.java | 13 +- .../services/service/ReferentialServiceTopia.java | 172 +++++++++++++++------ .../service/ReferentialDtoBuilderTest.java | 13 ++ 3 files changed, 148 insertions(+), 50 deletions(-) diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialDtoBuilder.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialDtoBuilder.java index af01306..3495485 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialDtoBuilder.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialDtoBuilder.java @@ -65,7 +65,6 @@ public class ReferentialDtoBuilder<M extends ReferentialDto> implements Closeabl this.visitor = new ToModelVisitor(); } - protected void putPropertyValue(String propertyName, Object propertyValue) { if (TopiaEntity.TOPIA_ID.equals(propertyName)) { @@ -87,9 +86,9 @@ public class ReferentialDtoBuilder<M extends ReferentialDto> implements Closeabl } - protected ReferentialLabelDto entityToRef(TopiaEntity entityValue) { + protected <R extends ReferentialDto> ReferentialLabelDto<R> entityToRef(Class<R> dtoType, TopiaEntity entityValue) { - ReferentialLabelDto label = ReferentialLabelDtos.newReferentialLabelDto(); + ReferentialLabelDto<R> label = ReferentialLabelDtos.newReferentialLabelDto(dtoType, entityValue); label.setId(entityValue.getTopiaId()); return label; @@ -125,7 +124,9 @@ public class ReferentialDtoBuilder<M extends ReferentialDto> implements Closeabl if (value instanceof TopiaEntity) { TopiaEntity entityValue = (TopiaEntity) value; - valueToAdd = entityToRef(entityValue); + + Class dtoType = ReferentialServiceTopia.entityToModelTypeCache.get(type); + valueToAdd = entityToRef(dtoType, entityValue); } @@ -143,11 +144,13 @@ public class ReferentialDtoBuilder<M extends ReferentialDto> implements Closeabl Object valueToAdd = value; if (TopiaEntity.class.isAssignableFrom(type)) { + Class dtoType = ReferentialServiceTopia.entityToModelTypeCache.get(type); + Collection<? extends TopiaEntity> topiaEntities = (Collection<? extends TopiaEntity>) value; LinkedHashSet<ReferentialLabelDto> models = new LinkedHashSet<>(topiaEntities.size()); for (TopiaEntity entityValue : topiaEntities) { - models.add(entityToRef(entityValue)); + models.add(entityToRef(dtoType, entityValue)); } valueToAdd = models; diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialServiceTopia.java index 6213c7a..9fe646c 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/ReferentialServiceTopia.java @@ -19,6 +19,47 @@ import fr.ird.observe.entities.referentiel.SpeciesList; import fr.ird.observe.entities.referentiel.Vessel; import fr.ird.observe.entities.referentiel.VesselSizeCategory; import fr.ird.observe.entities.referentiel.VesselType; +import fr.ird.observe.entities.referentiel.longline.BaitHaulingStatus; +import fr.ird.observe.entities.referentiel.longline.BaitSettingStatus; +import fr.ird.observe.entities.referentiel.longline.BaitType; +import fr.ird.observe.entities.referentiel.longline.CatchFateLongline; +import fr.ird.observe.entities.referentiel.longline.EncounterType; +import fr.ird.observe.entities.referentiel.longline.Healthness; +import fr.ird.observe.entities.referentiel.longline.HookPosition; +import fr.ird.observe.entities.referentiel.longline.HookSize; +import fr.ird.observe.entities.referentiel.longline.HookType; +import fr.ird.observe.entities.referentiel.longline.ItemHorizontalPosition; +import fr.ird.observe.entities.referentiel.longline.ItemVerticalPosition; +import fr.ird.observe.entities.referentiel.longline.LightsticksColor; +import fr.ird.observe.entities.referentiel.longline.LightsticksType; +import fr.ird.observe.entities.referentiel.longline.LineType; +import fr.ird.observe.entities.referentiel.longline.MaturityStatus; +import fr.ird.observe.entities.referentiel.longline.MitigationType; +import fr.ird.observe.entities.referentiel.longline.SensorBrand; +import fr.ird.observe.entities.referentiel.longline.SensorDataFormat; +import fr.ird.observe.entities.referentiel.longline.SensorType; +import fr.ird.observe.entities.referentiel.longline.SettingShape; +import fr.ird.observe.entities.referentiel.longline.SizeMeasureType; +import fr.ird.observe.entities.referentiel.longline.StomacFullness; +import fr.ird.observe.entities.referentiel.longline.TripType; +import fr.ird.observe.entities.referentiel.longline.VesselActivityLongline; +import fr.ird.observe.entities.referentiel.longline.WeightMeasureType; +import fr.ird.observe.entities.referentiel.seine.DetectionMode; +import fr.ird.observe.entities.referentiel.seine.ObjectFate; +import fr.ird.observe.entities.referentiel.seine.ObjectOperation; +import fr.ird.observe.entities.referentiel.seine.ObjectType; +import fr.ird.observe.entities.referentiel.seine.ObservedSystem; +import fr.ird.observe.entities.referentiel.seine.ReasonForDiscard; +import fr.ird.observe.entities.referentiel.seine.ReasonForNoFishing; +import fr.ird.observe.entities.referentiel.seine.ReasonForNullSet; +import fr.ird.observe.entities.referentiel.seine.SpeciesFate; +import fr.ird.observe.entities.referentiel.seine.SpeciesStatus; +import fr.ird.observe.entities.referentiel.seine.SurroundingActivity; +import fr.ird.observe.entities.referentiel.seine.TransmittingBuoyOperation; +import fr.ird.observe.entities.referentiel.seine.TransmittingBuoyType; +import fr.ird.observe.entities.referentiel.seine.VesselActivitySeine; +import fr.ird.observe.entities.referentiel.seine.WeightCategory; +import fr.ird.observe.entities.referentiel.seine.Wind; import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.referential.CountryDto; import fr.ird.observe.services.dto.referential.FpaZoneDto; @@ -42,6 +83,47 @@ import fr.ird.observe.services.dto.referential.SpeciesListDto; import fr.ird.observe.services.dto.referential.VesselDto; import fr.ird.observe.services.dto.referential.VesselSizeCategoryDto; import fr.ird.observe.services.dto.referential.VesselTypeDto; +import fr.ird.observe.services.dto.referential.longline.BaitHaulingStatusDto; +import fr.ird.observe.services.dto.referential.longline.BaitSettingStatusDto; +import fr.ird.observe.services.dto.referential.longline.BaitTypeDto; +import fr.ird.observe.services.dto.referential.longline.CatchFateLonglineDto; +import fr.ird.observe.services.dto.referential.longline.EncounterTypeDto; +import fr.ird.observe.services.dto.referential.longline.HealthnessDto; +import fr.ird.observe.services.dto.referential.longline.HookPositionDto; +import fr.ird.observe.services.dto.referential.longline.HookSizeDto; +import fr.ird.observe.services.dto.referential.longline.HookTypeDto; +import fr.ird.observe.services.dto.referential.longline.ItemHorizontalPositionDto; +import fr.ird.observe.services.dto.referential.longline.ItemVerticalPositionDto; +import fr.ird.observe.services.dto.referential.longline.LightsticksColorDto; +import fr.ird.observe.services.dto.referential.longline.LightsticksTypeDto; +import fr.ird.observe.services.dto.referential.longline.LineTypeDto; +import fr.ird.observe.services.dto.referential.longline.MaturityStatusDto; +import fr.ird.observe.services.dto.referential.longline.MitigationTypeDto; +import fr.ird.observe.services.dto.referential.longline.SensorBrandDto; +import fr.ird.observe.services.dto.referential.longline.SensorDataFormatDto; +import fr.ird.observe.services.dto.referential.longline.SensorTypeDto; +import fr.ird.observe.services.dto.referential.longline.SettingShapeDto; +import fr.ird.observe.services.dto.referential.longline.SizeMeasureTypeDto; +import fr.ird.observe.services.dto.referential.longline.StomacFullnessDto; +import fr.ird.observe.services.dto.referential.longline.TripTypeDto; +import fr.ird.observe.services.dto.referential.longline.VesselActivityLonglineDto; +import fr.ird.observe.services.dto.referential.longline.WeightMeasureTypeDto; +import fr.ird.observe.services.dto.referential.seine.DetectionModeDto; +import fr.ird.observe.services.dto.referential.seine.ObjectFateDto; +import fr.ird.observe.services.dto.referential.seine.ObjectOperationDto; +import fr.ird.observe.services.dto.referential.seine.ObjectTypeDto; +import fr.ird.observe.services.dto.referential.seine.ObservedSystemDto; +import fr.ird.observe.services.dto.referential.seine.ReasonForDiscardDto; +import fr.ird.observe.services.dto.referential.seine.ReasonForNoFishingDto; +import fr.ird.observe.services.dto.referential.seine.ReasonForNullSetDto; +import fr.ird.observe.services.dto.referential.seine.SpeciesFateDto; +import fr.ird.observe.services.dto.referential.seine.SpeciesStatusDto; +import fr.ird.observe.services.dto.referential.seine.SurroundingActivityDto; +import fr.ird.observe.services.dto.referential.seine.TransmittingBuoyOperationDto; +import fr.ird.observe.services.dto.referential.seine.TransmittingBuoyTypeDto; +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 org.nuiton.topia.persistence.TopiaEntity; import java.util.Collection; @@ -74,52 +156,52 @@ public class ReferentialServiceTopia extends ObserveServiceTopia implements Refe .put(GearCaracteristic.class, GearCaracteristicDto.class) .put(Gear.class, GearDto.class) - // .put(VesselActivitySeine.class, VesselActivitySeineModel.class) -// .put(SurroundingActivity.class, SurroundingActivityModel.class) -// .put(ReasonForNullSet.class, ReasonForNullSetModel.class) -// .put(ReasonForNoFishing.class, ReasonForNoFishingModel.class) -// .put(SpeciesFate.class, SpeciesFateModel.class) -// .put(ObjectFate.class, ObjectFateModel.class) -// .put(WeightCategory.class, WeightCategoryModel.class) -// .put(DetectionMode.class, DetectionModeModel.class) -// .put(TransmittingBuoyOperation.class, TransmittingBuoyOperationModel.class) -// .put(ObjectOperation.class, ObjectOperationModel.class) -// .put(ReasonForDiscard.class, ReasonForDiscardModel.class) -// .put(SpeciesStatus.class, SpeciesStatusModel.class) -// .put(ObservedSystem.class, ObservedSystemModel.class) -// .put(TransmittingBuoyType.class, TransmittingBuoyTypeModel.class) -// .put(ObjectType.class, ObjectTypeModel.class) -// .put(Wind.class, WindModel.class) - -// .put(BaitHaulingStatus.class, BaitHaulingStatusModel.class) -// .put(BaitSettingStatus.class, BaitSettingStatusModel.class) -// .put(BaitType.class, BaitTypeModel.class) -// .put(CatchFateLongline.class, CatchFateLonglineModel.class) -// .put(EncounterType.class, EncounterTypeModel.class) -// .put(Healthness.class, HealthnessModel.class) -// .put(HookPosition.class, HookPositionModel.class) -// .put(HookSize.class, HookSizeModel.class) -// .put(HookType.class, HookTypeModel.class) -// .put(ItemVerticalPosition.class, ItemVerticalPositionModel.class) -// .put(ItemHorizontalPosition.class, ItemHorizontalPositionModel.class) -// .put(LightsticksColor.class, LightsticksColorModel.class) -// .put(LightsticksType.class, LightsticksTypeModel.class) -// .put(LineType.class, LineTypeModel.class) -// .put(MaturityStatus.class, MaturityStatusModel.class) -// .put(MitigationType.class, MitigationTypeModel.class) -// .put(SensorBrand.class, SensorBrandModel.class) -// .put(SensorDataFormat.class, SensorDataFormatModel.class) -// .put(SensorType.class, SensorTypeModel.class) -// .put(SettingShape.class, SettingShapeModel.class) -// .put(SizeMeasureType.class, SizeMeasureTypeModel.class) -// .put(StomacFullness.class, StomacFullnessModel.class) -// .put(TripType.class, TripTypeModel.class) -// .put(VesselActivityLongline.class, VesselActivityLonglineModel.class) -// .put(WeightMeasureType.classWeightMeasureTypeModel.class) + .put(VesselActivitySeine.class, VesselActivitySeineDto.class) + .put(SurroundingActivity.class, SurroundingActivityDto.class) + .put(ReasonForNullSet.class, ReasonForNullSetDto.class) + .put(ReasonForNoFishing.class, ReasonForNoFishingDto.class) + .put(SpeciesFate.class, SpeciesFateDto.class) + .put(ObjectFate.class, ObjectFateDto.class) + .put(WeightCategory.class, WeightCategoryDto.class) + .put(DetectionMode.class, DetectionModeDto.class) + .put(TransmittingBuoyOperation.class, TransmittingBuoyOperationDto.class) + .put(ObjectOperation.class, ObjectOperationDto.class) + .put(ReasonForDiscard.class, ReasonForDiscardDto.class) + .put(SpeciesStatus.class, SpeciesStatusDto.class) + .put(ObservedSystem.class, ObservedSystemDto.class) + .put(TransmittingBuoyType.class, TransmittingBuoyTypeDto.class) + .put(ObjectType.class, ObjectTypeDto.class) + .put(Wind.class, WindDto.class) + + .put(BaitHaulingStatus.class, BaitHaulingStatusDto.class) + .put(BaitSettingStatus.class, BaitSettingStatusDto.class) + .put(BaitType.class, BaitTypeDto.class) + .put(CatchFateLongline.class, CatchFateLonglineDto.class) + .put(EncounterType.class, EncounterTypeDto.class) + .put(Healthness.class, HealthnessDto.class) + .put(HookPosition.class, HookPositionDto.class) + .put(HookSize.class, HookSizeDto.class) + .put(HookType.class, HookTypeDto.class) + .put(ItemVerticalPosition.class, ItemVerticalPositionDto.class) + .put(ItemHorizontalPosition.class, ItemHorizontalPositionDto.class) + .put(LightsticksColor.class, LightsticksColorDto.class) + .put(LightsticksType.class, LightsticksTypeDto.class) + .put(LineType.class, LineTypeDto.class) + .put(MaturityStatus.class, MaturityStatusDto.class) + .put(MitigationType.class, MitigationTypeDto.class) + .put(SensorBrand.class, SensorBrandDto.class) + .put(SensorDataFormat.class, SensorDataFormatDto.class) + .put(SensorType.class, SensorTypeDto.class) + .put(SettingShape.class, SettingShapeDto.class) + .put(SizeMeasureType.class, SizeMeasureTypeDto.class) + .put(StomacFullness.class, StomacFullnessDto.class) + .put(TripType.class, TripTypeDto.class) + .put(VesselActivityLongline.class, VesselActivityLonglineDto.class) + .put(WeightMeasureType.class, WeightMeasureTypeDto.class) .build(); - protected static final ImmutableMap<Class<?>, Class<?>> modelToEntityTypeCache ; + protected static final ImmutableMap<Class<?>, Class<?>> modelToEntityTypeCache; static { @@ -162,7 +244,7 @@ public class ReferentialServiceTopia extends ObserveServiceTopia implements Refe return form; } - @Override + public <D extends ReferentialDto> String save(FormDto<D> form) { Class<D> dtoType= form.getType(); TopiaEntity entity = referentialDtoToEntity(form.getForm()); @@ -185,7 +267,7 @@ public class ReferentialServiceTopia extends ObserveServiceTopia implements Refe protected <D extends ReferentialDto> FormDto<D> entityToReferentialFormDto(Class<D> dtoType, TopiaEntity entity) { D dto = toDto(dtoType, entity); - FormDto<D> form = FormDtos.newReferentialFormDto(dtoType); + FormDto<D> form = FormDtos.newFormDto(dtoType); form.setForm(dto); return form; } diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialDtoBuilderTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialDtoBuilderTest.java index fd708fa..a0fb4e6 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialDtoBuilderTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialDtoBuilderTest.java @@ -40,6 +40,15 @@ public class ReferentialDtoBuilderTest { program.setTargetDiscardsObservation(1); Organism organism = new OrganismImpl(); organism.setTopiaId("Oraganism1"); + organism.setLabel1("organism1"); + organism.setLabel2("organism2"); + organism.setLabel3("organism3"); + organism.setLabel4("organism4"); + organism.setLabel5("organism5"); + organism.setLabel6("organism6"); + organism.setLabel7("organism7"); + organism.setLabel8("organism8"); + organism.setCode("organismCode"); program.setOrganism(organism); ReferentialDtoBuilder<ProgramDto> builder = ReferentialDtoBuilder.create(ProgramDto.class); @@ -65,6 +74,10 @@ public class ReferentialDtoBuilderTest { Assert.assertEquals(program.getTargetDiscardsObservation(), programModel.getTargetDiscardsObservation()); Assert.assertNotNull(programModel.getOrganism()); Assert.assertEquals(program.getOrganism().getTopiaId(), programModel.getOrganism().getId()); + Assert.assertEquals(program.getOrganism().getCode(), programModel.getOrganism().getLabelPropertyValue("code")); + Assert.assertEquals(program.getOrganism().getLabel1(), programModel.getOrganism().getLabelPropertyValue("label1")); + Assert.assertEquals(program.getOrganism().getLabel2(), programModel.getOrganism().getLabelPropertyValue("label2")); + Assert.assertEquals(program.getOrganism().getLabel3(), programModel.getOrganism().getLabelPropertyValue("label3")); } -- 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