r440 - in trunk: echobase-entities/src/main/java/fr/ifremer/echobase/entities echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta echobase-entities/src/main/xmi echobase-services/src/main/java/fr/ifremer/echobase/services echobase-services/src/main/java/fr/ifremer/echobase/services/importdata echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv echobase-services/src/test/java/fr/ifremer/echobase/services/importdata echobase-services/src/test/resources
Author: tchemit Date: 2012-03-29 12:14:49 +0200 (Thu, 29 Mar 2012) New Revision: 440 Url: http://forge.codelutin.com/repositories/revision/echobase/440 Log: fixes #1046 (Ajout de contrainte fortes sur la base) Added: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EchoBaseUserDAOImpl.java Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/TableMeta.java trunk/echobase-entities/src/main/xmi/echobase.properties trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDbService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/UserService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AbstractImportDataService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AcousticDataImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CatchesDataImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonDataImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsEsduCellImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsMapCellImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsRegionCellImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsVoyageImportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/LengthWeightKeyImportModel.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/AbstractImportDataServiceIT.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsEsduCellImportServiceIT.java trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsRegionCellImportServiceIT.java trunk/echobase-services/src/test/resources/echobase-0.3-importDb-referentiel.zip trunk/echobase-services/src/test/resources/import-data/echobase-0.3-catches-and-voyage-result.h2.db.gz trunk/echobase-services/src/test/resources/import-data/echobase-0.3-catches.h2.db.gz trunk/echobase-services/src/test/resources/import-data/echobase-0.3-commonData.h2.db.gz trunk/echobase-services/src/test/resources/import-data/echobase-0.3-nodata.h2.db.gz trunk/echobase-services/src/test/resources/import-data/echobase-0.3-operation.h2.db.gz trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EntityLoader.java Added: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EchoBaseUserDAOImpl.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EchoBaseUserDAOImpl.java (rev 0) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/EchoBaseUserDAOImpl.java 2012-03-29 10:14:49 UTC (rev 440) @@ -0,0 +1,30 @@ +package fr.ifremer.echobase.entities; + +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.TopiaQuery; +import org.nuiton.util.PagerUtil; + +import java.util.List; + +public class EchoBaseUserDAOImpl<E extends EchoBaseUser> extends EchoBaseUserDAOAbstract<E> { + + public List<E> findAll(PagerUtil.PagerBean pager) throws TopiaException { + List<E> users; + + if (pager == null) { + + users = findAll(); + } else { + + // get user count + long count = count(); + pager.setRecords((int) count); + PagerUtil.computeRecordIndexesAndPagesNumber(pager); + + TopiaQuery query = createQuery("e"); + query.setLimit(pager.getRecordStartIndex(), pager.getRecordEndIndex() - 1); + users = findAllByQuery(query); + } + return users; + } +} //EchoBaseUserDAOImpl<E extends EchoBaseUser> Modified: trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/TableMeta.java =================================================================== --- trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/TableMeta.java 2012-03-29 10:00:37 UTC (rev 439) +++ trunk/echobase-entities/src/main/java/fr/ifremer/echobase/entities/meta/TableMeta.java 2012-03-29 10:14:49 UTC (rev 440) @@ -44,6 +44,7 @@ import java.io.Writer; import java.util.Iterator; import java.util.List; +import java.util.Map; import java.util.Set; /** @@ -75,6 +76,11 @@ /** Binder used to copy entities (lazy loaded). */ protected Binder<TopiaEntity, TopiaEntity> binder; + /** Entity operator used in generic algorithms. */ + protected transient EntityOperator<TopiaEntity> operator; + + protected boolean useNaturalIdsOrNotNulls; + @Override public EchoBaseEntityEnum getSource() { return source; @@ -167,6 +173,15 @@ getBinder().copy(source, target); } + public Map<String, Object> prepareCreate(TopiaEntity bean, + String topiaId) { + Map<String, Object> result = getOperator().getNaturalIsdAndNotNulls(bean); + if (topiaId != null) { + result.put(TopiaEntity.TOPIA_ID, topiaId); + } + return result; + } + @Override public Iterator<ColumnMeta> iterator() { return getColumns().iterator(); @@ -241,6 +256,15 @@ } dependencies = deps.toArray(new EchoBaseEntityEnum[deps.size()]); + useNaturalIdsOrNotNulls = source.isUseNotNulls() || + source.isUseNaturalIds(); + } + public EntityOperator<TopiaEntity> getOperator() { + if (operator == null) { + operator = EchoBaseDAOHelper.getOperator( + (Class<TopiaEntity>) getEntityType()); + } + return operator; } } Modified: trunk/echobase-entities/src/main/xmi/echobase.properties =================================================================== --- trunk/echobase-entities/src/main/xmi/echobase.properties 2012-03-29 10:00:37 UTC (rev 439) +++ trunk/echobase-entities/src/main/xmi/echobase.properties 2012-03-29 10:14:49 UTC (rev 440) @@ -32,7 +32,10 @@ model.tagValue.doNotGenerateBooleanGetMethods=true model.tagValue.indexForeignKeys=true -# ordered +############################################################################### +### Ordered attributes ######################################################## +############################################################################### + fr.ifremer.echobase.entities.data.Voyage.attribute.transit.stereotype=ordered fr.ifremer.echobase.entities.data.Voyage.attribute.transit.tagvalue.orderBy=startTime fr.ifremer.echobase.entities.data.Transit.attribute.transect.stereotype=ordered @@ -40,10 +43,273 @@ fr.ifremer.echobase.entities.data.Transect.attribute.operation.stereotype=ordered fr.ifremer.echobase.entities.data.Transect.attribute.operation.tagvalue.orderBy=gearShootingStartTime -#unique +############################################################################### +### Unique attributes ######################################################### +############################################################################### + fr.ifremer.echobase.entities.data.Voyage.attribute.echotype.stereotype=unique -# big text zone +############################################################################### +### Big Text attributes ####################################################### +############################################################################### + fr.ifremer.echobase.entities.EntityModificationLog.attribute.modificationText.tagvalue.type=text fr.ifremer.echobase.entities.ExportQuery.attribute.sqlQuery.tagvalue.type=text +############################################################################### +### Natural id for references ################################################ +############################################################################### + +fr.ifremer.echobase.entities.EchoBaseUser.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.EchoBaseUser.attribute.email.tagValue.naturalId=true +fr.ifremer.echobase.entities.EchoBaseUser.attribute.email.tagValue.notNull=true +fr.ifremer.echobase.entities.EchoBaseUser.attribute.password.tagValue.notNull=true + +fr.ifremer.echobase.entities.EntityModificationLog.attribute.entityType.tagValue.notNull=true +fr.ifremer.echobase.entities.EntityModificationLog.attribute.entityId.tagValue.notNull=true +fr.ifremer.echobase.entities.EntityModificationLog.attribute.modificationText.tagValue.notNull=true +fr.ifremer.echobase.entities.EntityModificationLog.attribute.modificationDate.tagValue.notNull=true +fr.ifremer.echobase.entities.EntityModificationLog.attribute.modificationUser.tagValue.notNull=true + +fr.ifremer.echobase.entities.ExportQuery.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.ExportQuery.attribute.name.tagValue.naturalId=true +fr.ifremer.echobase.entities.ExportQuery.attribute.description.tagValue.notNull=true +fr.ifremer.echobase.entities.ExportQuery.attribute.sqlQuery.tagValue.notNull=true +fr.ifremer.echobase.entities.ExportQuery.attribute.lastModifiedDate.tagValue.notNull=true +fr.ifremer.echobase.entities.ExportQuery.attribute.lastModifiedUser.tagValue.notNull=true + +fr.ifremer.echobase.entities.references.AcousticInstrument.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.references.AcousticInstrument.attribute.id.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.AcousticInstrument.attribute.id.tagValue.notNull=true + +fr.ifremer.echobase.entities.references.AgeCategory.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.references.AgeCategory.attribute.name.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.AgeCategory.attribute.name.tagValue.notNull=true +fr.ifremer.echobase.entities.references.AgeCategory.attribute.meaning.tagValue.notNull=true + +fr.ifremer.echobase.entities.references.AreaOfOperation.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.references.AreaOfOperation.attribute.name.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.AreaOfOperation.attribute.name.tagValue.notNull=true + +#fr.ifremer.echobase.entities.references.Calibration.class.tagValue.naturalIdMutable=false +#fr.ifremer.echobase.entities.references.Calibration.attribute.code.tagValue.naturalId=true + +fr.ifremer.echobase.entities.references.CategoryMeaning.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.references.CategoryMeaning.attribute.name.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.CategoryMeaning.attribute.name.tagValue.notNull=true + +#fr.ifremer.echobase.entities.references.CategoryRef.class.tagValue.naturalIdMutable=false +#fr.ifremer.echobase.entities.references.CategoryRef.attribute.code.tagValue.naturalId=true + +fr.ifremer.echobase.entities.references.CategoryType.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.references.CategoryType.attribute.name.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.CategoryType.attribute.name.tagValue.notNull=true + +fr.ifremer.echobase.entities.references.CellMethod.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.references.CellMethod.attribute.name.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.CellMethod.attribute.name.tagValue.notNull=true + +fr.ifremer.echobase.entities.references.CellType.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.references.CellType.attribute.id.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.CellType.attribute.id.tagValue.notNull=true + +fr.ifremer.echobase.entities.references.DataMetadata.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.references.DataMetadata.attribute.name.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.DataMetadata.attribute.name.tagValue.notNull=true + +#fr.ifremer.echobase.entities.references.DataProtocol.class.tagValue.naturalIdMutable=false +#fr.ifremer.echobase.entities.references.DataProtocol.attribute.code.tagValue.naturalId=true + +#fr.ifremer.echobase.entities.references.DataQuality.class.tagValue.naturalIdMutable=false +#fr.ifremer.echobase.entities.references.DataQuality.attribute.code.tagValue.naturalId=true + +fr.ifremer.echobase.entities.references.DataType.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.references.DataType.attribute.name.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.DataType.attribute.name.tagValue.notNull=true + +fr.ifremer.echobase.entities.references.DepthStratum.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.references.DepthStratum.attribute.id.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.DepthStratum.attribute.id.tagValue.notNull=true + +fr.ifremer.echobase.entities.references.EchotypeCategory.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.references.EchotypeCategory.attribute.name.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.EchotypeCategory.attribute.name.tagValue.notNull=true + +fr.ifremer.echobase.entities.references.Gear.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.references.Gear.attribute.casinoGearName.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.Gear.attribute.casinoGearName.tagValue.notNull=true + +fr.ifremer.echobase.entities.references.GearCharacteristic.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.references.GearCharacteristic.attribute.name.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.GearCharacteristic.attribute.name.tagValue.notNull=true + +#fr.ifremer.echobase.entities.references.GearCharacteristicValue.class.tagValue.naturalIdMutable=false +#fr.ifremer.echobase.entities.references.GearCharacteristicValue.attribute.code.tagValue.naturalId=true + +fr.ifremer.echobase.entities.references.GearMetadata.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.references.GearMetadata.attribute.name.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.GearMetadata.attribute.name.tagValue.notNull=true + +#fr.ifremer.echobase.entities.references.Impacte.class.tagValue.naturalIdMutable=false +#fr.ifremer.echobase.entities.references.Impacte.attribute.code.tagValue.naturalId=true + +fr.ifremer.echobase.entities.references.MeasurementMetadata.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.references.MeasurementMetadata.attribute.name.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.MeasurementMetadata.attribute.name.tagValue.notNull=true + +fr.ifremer.echobase.entities.references.MeasureType.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.references.MeasureType.attribute.name.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.MeasureType.attribute.name.tagValue.notNull=true + +fr.ifremer.echobase.entities.references.Mission.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.references.Mission.attribute.name.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.Mission.attribute.name.tagValue.notNull=true + +fr.ifremer.echobase.entities.references.OperationEvent.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.references.OperationEvent.attribute.name.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.OperationEvent.attribute.name.tagValue.notNull=true + +fr.ifremer.echobase.entities.references.OperationMetadata.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.references.OperationMetadata.attribute.name.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.OperationMetadata.attribute.name.tagValue.notNull=true + +fr.ifremer.echobase.entities.references.ReferenceDatum.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.references.ReferenceDatum.attribute.id.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.ReferenceDatum.attribute.id.tagValue.notNull=true + +fr.ifremer.echobase.entities.references.ReferenceDatumType.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.references.ReferenceDatumType.attribute.name.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.ReferenceDatumType.attribute.name.tagValue.notNull=true + +fr.ifremer.echobase.entities.references.ReferencingMethod.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.references.ReferencingMethod.attribute.name.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.ReferencingMethod.attribute.name.tagValue.notNull=true + +fr.ifremer.echobase.entities.references.SampleDataType.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.references.SampleDataType.attribute.name.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.SampleDataType.attribute.name.tagValue.notNull=true + +fr.ifremer.echobase.entities.references.SampleType.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.references.SampleType.attribute.name.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.SampleType.attribute.name.tagValue.notNull=true + +fr.ifremer.echobase.entities.references.SexCategory.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.references.SexCategory.attribute.name.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.SexCategory.attribute.name.tagValue.notNull=true +fr.ifremer.echobase.entities.references.SexCategory.attribute.meaning.tagValue.notNull=true + +fr.ifremer.echobase.entities.references.SizeCategory.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.references.SizeCategory.attribute.name.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.SizeCategory.attribute.name.tagValue.notNull=true +fr.ifremer.echobase.entities.references.SizeCategory.attribute.meaning.tagValue.notNull=true + +fr.ifremer.echobase.entities.references.Species.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.references.Species.attribute.baracoudaCode.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.Species.attribute.baracoudaCode.tagValue.notNull=true + +fr.ifremer.echobase.entities.references.SpeciesCategory.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.references.SpeciesCategory.attribute.species.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.SpeciesCategory.attribute.sizeCategory.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.SpeciesCategory.attribute.ageCategory.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.SpeciesCategory.attribute.sexCategory.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.SpeciesCategory.attribute.species.tagValue.notNull=true +fr.ifremer.echobase.entities.references.SpeciesCategory.attribute.sizeCategory.tagValue.notNull=false +fr.ifremer.echobase.entities.references.SpeciesCategory.attribute.ageCategory.tagValue.notNull=false +fr.ifremer.echobase.entities.references.SpeciesCategory.attribute.sexCategory.tagValue.notNull=false + +fr.ifremer.echobase.entities.references.Strata.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.references.Strata.attribute.name.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.Strata.attribute.name.tagValue.notNull=true + +#fr.ifremer.echobase.entities.references.TSParameters.class.tagValue.naturalIdMutable=false +#fr.ifremer.echobase.entities.references.TSParameters.attribute.code.tagValue.naturalId=true + +fr.ifremer.echobase.entities.references.Vessel.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.references.Vessel.attribute.name.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.Vessel.attribute.name.tagValue.notNull=true + +fr.ifremer.echobase.entities.references.VesselType.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.references.VesselType.attribute.name.tagValue.naturalId=true +fr.ifremer.echobase.entities.references.VesselType.attribute.name.tagValue.notNull=true + +############################################################################### +### Natural id for data ###################################################### +############################################################################### + +fr.ifremer.echobase.entities.data.Category.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.data.Category.attribute.depthStratum.tagValue.naturalId=true +fr.ifremer.echobase.entities.data.Category.attribute.echotype.tagValue.naturalId=true +fr.ifremer.echobase.entities.data.Category.attribute.speciesCategory.tagValue.naturalId=true +fr.ifremer.echobase.entities.data.Category.attribute.depthStratum.tagValue.notNull=false +fr.ifremer.echobase.entities.data.Category.attribute.echotype.tagValue.notNull=false +fr.ifremer.echobase.entities.data.Category.attribute.speciesCategory.tagValue.notNull=false + +fr.ifremer.echobase.entities.data.Cell.attribute.cellType.tagValue.notNull=true +fr.ifremer.echobase.entities.data.Cell.attribute.name.tagValue.notNull=true + +fr.ifremer.echobase.entities.data.Data.attribute.dataValue.tagValue.notNull=true +fr.ifremer.echobase.entities.data.Data.attribute.dataMetadata.tagValue.notNull=true + +fr.ifremer.echobase.entities.data.DataAcquisition.attribute.acousticInstrument.tagValue.notNull=true + +fr.ifremer.echobase.entities.data.DataProcessing.attribute.id.tagValue.notNull=true +fr.ifremer.echobase.entities.data.DataProcessing.attribute.processingTemplate.tagValue.notNull=true + +fr.ifremer.echobase.entities.data.Echotype.attribute.name.tagValue.notNull=true + +fr.ifremer.echobase.entities.data.GearMetadataValue.attribute.gearMetadata.tagValue.notNull=true +fr.ifremer.echobase.entities.data.GearMetadataValue.attribute.gear.tagValue.notNull=true +fr.ifremer.echobase.entities.data.GearMetadataValue.attribute.dataValue.tagValue.notNull=true + +fr.ifremer.echobase.entities.data.LengthAgeKey.attribute.age.tagValue.notNull=true +fr.ifremer.echobase.entities.data.LengthAgeKey.attribute.length.tagValue.notNull=true +fr.ifremer.echobase.entities.data.LengthAgeKey.attribute.metadata.tagValue.notNull=true +fr.ifremer.echobase.entities.data.LengthAgeKey.attribute.species.tagValue.notNull=true + +fr.ifremer.echobase.entities.data.LengthWeightKey.attribute.AParameter.tagValue.notNull=true +fr.ifremer.echobase.entities.data.LengthWeightKey.attribute.BParameter.tagValue.notNull=true +fr.ifremer.echobase.entities.data.LengthWeightKey.attribute.metadata.tagValue.notNull=false +fr.ifremer.echobase.entities.data.LengthWeightKey.attribute.speciesCategory.tagValue.notNull=true + +fr.ifremer.echobase.entities.data.Operation.attribute.id.tagValue.notNull=true +fr.ifremer.echobase.entities.data.Operation.attribute.gear.tagValue.notNull=true + +fr.ifremer.echobase.entities.data.OperationMetadataValue.attribute.operationMetadata.tagValue.notNull=true +fr.ifremer.echobase.entities.data.OperationMetadataValue.attribute.dataValue.tagValue.notNull=true + +fr.ifremer.echobase.entities.data.Result.attribute.category.tagValue.notNull=true +fr.ifremer.echobase.entities.data.Result.attribute.dataMetadata.tagValue.notNull=true +fr.ifremer.echobase.entities.data.Result.attribute.resultLabel.tagValue.notNull=true +fr.ifremer.echobase.entities.data.Result.attribute.resultValue.tagValue.notNull=true + +fr.ifremer.echobase.entities.data.Sample.attribute.sampleType.tagValue.notNull=true +fr.ifremer.echobase.entities.data.Sample.attribute.speciesCategory.tagValue.notNull=false +fr.ifremer.echobase.entities.data.Sample.attribute.sampleWeight.tagValue.notNull=false +fr.ifremer.echobase.entities.data.Sample.attribute.numberSampled.tagValue.notNull=false + +fr.ifremer.echobase.entities.data.SampleData.attribute.sampleDataType.tagValue.notNull=true +fr.ifremer.echobase.entities.data.SampleData.attribute.dataLabel.tagValue.notNull=false +fr.ifremer.echobase.entities.data.SampleData.attribute.dataValue.tagValue.notNull=true +fr.ifremer.echobase.entities.data.SampleData.attribute.dataProtocol.tagValue.notNull=false + +fr.ifremer.echobase.entities.data.Transect.attribute.title.tagValue.notNull=true +fr.ifremer.echobase.entities.data.Transect.attribute.vessel.tagValue.notNull=true +fr.ifremer.echobase.entities.data.Transect.attribute.stratum.tagValue.notNull=true + +fr.ifremer.echobase.entities.data.Transit.attribute.startTime.tagValue.notNull=true +fr.ifremer.echobase.entities.data.Transit.attribute.endTime.tagValue.notNull=true +fr.ifremer.echobase.entities.data.Transit.attribute.startLocality.tagValue.notNull=true +fr.ifremer.echobase.entities.data.Transit.attribute.endLocality.tagValue.notNull=true +fr.ifremer.echobase.entities.data.Transit.attribute.description.tagValue.notNull=true +fr.ifremer.echobase.entities.data.Transit.attribute.relatedActivity.tagValue.notNull=true + +fr.ifremer.echobase.entities.data.Voyage.class.tagValue.naturalIdMutable=false +fr.ifremer.echobase.entities.data.Voyage.attribute.name.tagValue.naturalId=false +fr.ifremer.echobase.entities.data.Voyage.attribute.name.tagValue.notNull=true +fr.ifremer.echobase.entities.data.Voyage.attribute.startDate.tagValue.notNull=true +fr.ifremer.echobase.entities.data.Voyage.attribute.endDate.tagValue.notNull=true +fr.ifremer.echobase.entities.data.Voyage.attribute.startPort.tagValue.notNull=true +fr.ifremer.echobase.entities.data.Voyage.attribute.endPort.tagValue.notNull=true +fr.ifremer.echobase.entities.data.Voyage.attribute.description.tagValue.notNull=true +fr.ifremer.echobase.entities.data.Voyage.attribute.mission.tagValue.notNull=true +fr.ifremer.echobase.entities.data.Voyage.attribute.datum.tagValue.notNull=true Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2012-03-29 10:00:37 UTC (rev 439) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2012-03-29 10:14:49 UTC (rev 440) @@ -359,7 +359,12 @@ if (create) { - entityToSave = dao.create(); + // get naturalIds or not-null properties + Map<String, Object> properties = + tableMeta.prepareCreate(entity, null); + + entityToSave = dao.create(properties); + // push back topiaId (could be used by caller) entity.setTopiaId(entityToSave.getTopiaId()); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDbService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDbService.java 2012-03-29 10:00:37 UTC (rev 439) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ImportDbService.java 2012-03-29 10:14:49 UTC (rev 440) @@ -246,10 +246,12 @@ CsvImportResult csvResult) throws TopiaException { TopiaDAO<TopiaEntity> dao = getDAO(meta.getSource()); + for (TopiaEntity entity : importer) { - TopiaEntity entityToSave = dao.create(TopiaEntity.TOPIA_ID, - entity.getTopiaId()); + Map<String, Object> properties = meta.prepareCreate( + entity, entity.getTopiaId()); + TopiaEntity entityToSave = dao.create(properties); meta.copy(entity, entityToSave); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/UserService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/UserService.java 2012-03-29 10:00:37 UTC (rev 439) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/UserService.java 2012-03-29 10:14:49 UTC (rev 440) @@ -30,7 +30,6 @@ import fr.ifremer.echobase.entities.EchoBaseUserImpl; import org.apache.commons.lang3.StringUtils; import org.nuiton.topia.TopiaException; -import org.nuiton.topia.framework.TopiaQuery; import org.nuiton.util.PagerUtil; import org.nuiton.util.StringUtil; @@ -56,22 +55,8 @@ public List<EchoBaseUser> getUsers(PagerUtil.PagerBean pager) { try { - List<EchoBaseUser> users; - - EchoBaseUserDAO dao = getDAO(); - if (pager == null) { - - users = dao.findAll(); - } else { - - // get user count - long count = dao.count(); - pager.setRecords((int) count); - PagerUtil.computeRecordIndexesAndPagesNumber(pager); - TopiaQuery query = dao.createQuery("e"); - query.setLimit(pager.getRecordStartIndex(), pager.getRecordEndIndex() - 1); - users = dao.findAllByQuery(query); - } + EchoBaseUserDAO dao = getDAO(EchoBaseUser.class, EchoBaseUserDAO.class); + List<EchoBaseUser> users = dao.findAll(pager); return users; } catch (TopiaException eee) { throw new EchoBaseTechnicalException(eee); @@ -81,7 +66,8 @@ public EchoBaseUser getUserByEmail(String email) { Preconditions.checkNotNull(email); try { - EchoBaseUser user = getDAO().findByEmail(email); + EchoBaseUserDAO dao = getDAO(EchoBaseUser.class, EchoBaseUserDAO.class); + EchoBaseUser user = dao.findByEmail(email); return user; } catch (TopiaException eee) { throw new EchoBaseTechnicalException(eee); @@ -90,24 +76,29 @@ public void createOrUpdate(EchoBaseUser user) { try { - EchoBaseUserDAO dao = getDAO(); + EchoBaseUserDAO dao = getDAO(EchoBaseUser.class, EchoBaseUserDAO.class); EchoBaseUser userToCreateOrUpdate; // No id, creating new one entity String id = user.getTopiaId(); + String password = user.getPassword(); if (StringUtils.isEmpty(id)) { - userToCreateOrUpdate = dao.create(); + userToCreateOrUpdate = dao.create( + EchoBaseUser.PROPERTY_EMAIL, user.getEmail(), + EchoBaseUser.PROPERTY_PASSWORD, encodePassword(password) + + ); } else { - userToCreateOrUpdate = dao.findByTopiaId(id); + userToCreateOrUpdate = getEntityById(EchoBaseUser.class, id); + + userToCreateOrUpdate.setEmail(user.getEmail()); + if (StringUtils.isNotEmpty(password)) { + userToCreateOrUpdate.setPassword(encodePassword(password)); + } } userToCreateOrUpdate.setAdmin(user.isAdmin()); - userToCreateOrUpdate.setEmail(user.getEmail()); - String password = user.getPassword(); - if (StringUtils.isNotEmpty(password)) { - userToCreateOrUpdate.setPassword(encodePassword(password)); - } - dao.update(userToCreateOrUpdate); +// dao.update(userToCreateOrUpdate); commitTransaction("Could not create or update user"); } catch (TopiaException eee) { throw new EchoBaseTechnicalException(eee); @@ -116,9 +107,9 @@ public void delete(EchoBaseUser user) { try { - EchoBaseUserDAO dao = getDAO(); - EchoBaseUser userToDelete = dao.findByTopiaId(user.getTopiaId()); - dao.delete(userToDelete); + EchoBaseUser userToDelete = getEntityById(EchoBaseUser.class, + user.getTopiaId()); + getDAO(EchoBaseUser.class).delete(userToDelete); commitTransaction("Could not delete user"); } catch (TopiaException eee) { throw new EchoBaseTechnicalException(eee); @@ -152,10 +143,6 @@ return encodedPassword; } - protected EchoBaseUserDAO getDAO() throws TopiaException { - return (EchoBaseUserDAO) getDAO(EchoBaseUser.class); - } - public EchoBaseUser newUser() { return new EchoBaseUserImpl(); } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AbstractImportDataService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AbstractImportDataService.java 2012-03-29 10:00:37 UTC (rev 439) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AbstractImportDataService.java 2012-03-29 10:14:49 UTC (rev 440) @@ -257,10 +257,12 @@ // not found in db, create it - category = create(speciesCategoryDAO); - category.setSpecies(species); - category.setSizeCategory(sizeCategory); - category.setSexCategory(sexCategory); + category = create(speciesCategoryDAO, + SpeciesCategory.PROPERTY_SPECIES, species, + SpeciesCategory.PROPERTY_SIZE_CATEGORY, sizeCategory, + SpeciesCategory.PROPERTY_AGE_CATEGORY, ageCategory, + SpeciesCategory.PROPERTY_SEX_CATEGORY, sexCategory + ); importResult.incrementsNumberCreated(EchoBaseEntityEnum.SpeciesCategory); } @@ -289,7 +291,19 @@ null, importResult); - String key = speciesCategory.getTopiaId(); + Category category = getResultCategory(categoryDAO, + echotype, + speciesCategory, + importResult); + return category; + } + + protected Category getResultCategory(CategoryDAO categoryDAO, + Echotype echotype, + SpeciesCategory speciesCategory, + CsvFileImportResult importResult) { + + String key = speciesCategory == null ? "" : speciesCategory.getTopiaId(); key += "#" + (echotype == null ? "" : echotype.getName()); Category category = categories.get(key); @@ -307,9 +321,11 @@ if (category == null) { // not found in db, create it - category = create(categoryDAO); - category.setEchotype(echotype); - category.setSpeciesCategory(speciesCategory); + category = create( + categoryDAO, + Category.PROPERTY_ECHOTYPE, echotype, + Category.PROPERTY_SPECIES_CATEGORY, speciesCategory + ); importResult.incrementsNumberCreated(EchoBaseEntityEnum.Category); } @@ -357,9 +373,9 @@ String dataValue, CsvFileImportResult importResult) { - Data data = create(dao); - data.setDataMetadata(dataMetaData); - data.setDataValue(dataValue); + Data data = create(dao, + Data.PROPERTY_DATA_METADATA, dataMetaData, + Data.PROPERTY_DATA_VALUE, dataValue); cell.addData(data); importResult.incrementsNumberCreated(EchoBaseEntityEnum.Data); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AcousticDataImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AcousticDataImportService.java 2012-03-29 10:00:37 UTC (rev 439) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/AcousticDataImportService.java 2012-03-29 10:14:49 UTC (rev 440) @@ -210,7 +210,8 @@ // compute once for all the common dataprocessing id used // for hole the movies file - dataProcessingId = row.getEiLayer() + configuration.getProcessingTemplate(); + dataProcessingId = row.getEiLayer() + + configuration.getProcessingTemplate(); } Date startDate = row.getCellDateStart(); @@ -582,10 +583,13 @@ String loggedDataDatatype = configuration.getLoggedDataDatatype(); String pingDutyCycle = configuration.getPingDutyCycle(); - DataAcquisition dataAcquisition = create(dataAcquisitionDAO); + DataAcquisition dataAcquisition = create( + dataAcquisitionDAO, + DataAcquisition.PROPERTY_ACOUSTIC_INSTRUMENT, instrument + ); // fill from manual configuration - dataAcquisition.setAcousticInstrument(instrument); +// dataAcquisition.setAcousticInstrument(instrument); dataAcquisition.setTransceiverAcquisitionAbsorptionDescription(transceiverAcquisitionAbsorptionDescription); dataAcquisition.setAcquisitionSoftwareVersion(softwareVersion); dataAcquisition.setLoggedDataFormat(loggedDataFormat); @@ -640,11 +644,15 @@ String acousticDensityUnit = configuration.getAcousticDensityUnit(); String notes = configuration.getNotes(); - DataProcessing dataProcessing = create(dataProcessingDAO); + DataProcessing dataProcessing = create( + dataProcessingDAO, + DataProcessing.PROPERTY_ID, id, + DataProcessing.PROPERTY_PROCESSING_TEMPLATE, processingTemplate + ); // fill from manual configuration - dataProcessing.setId(id); - dataProcessing.setProcessingTemplate(processingTemplate); +// dataProcessing.setId(id); +// dataProcessing.setProcessingTemplate(processingTemplate); dataProcessing.setProcessingDescription(processingDescription); dataProcessing.setSounderConstant(sounderConstant); dataProcessing.setDigitThreshold(digitThreshold); @@ -690,14 +698,24 @@ String metadataName, String dataValue, CsvFileImportResult importResult) { + createCellData( + dao, + cell, + dataMetadatasByName.get(metadataName), + dataValue, + importResult + ); - DataMetadata dataMetaData = dataMetadatasByName.get(metadataName); - Data data = create(dao); - data.setDataMetadata(dataMetaData); - data.setDataValue(dataValue); - cell.addData(data); +// DataMetadata dataMetaData = dataMetadatasByName.get(metadataName); +// Data data = create(dao, +// Data.PROPERTY_DATA_METADATA, dataMetaData, +// Data.PROPERTY_DATA_VALUE, dataValue +// ); +// data.setDataMetadata(dataMetaData); +// data.setDataValue(dataValue); +// cell.addData(data); - importResult.incrementsNumberCreated(EchoBaseEntityEnum.Data); +// importResult.incrementsNumberCreated(EchoBaseEntityEnum.Data); } private String getSoftwareVersion(AcousticDataImportConfiguration configuration, Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CatchesDataImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CatchesDataImportService.java 2012-03-29 10:00:37 UTC (rev 439) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CatchesDataImportService.java 2012-03-29 10:14:49 UTC (rev 440) @@ -244,7 +244,6 @@ sample = row.getSample(); sample.setSpeciesCategory(category); - sample.setSampleType(sampleType); sample = addSample(sampleDAO, @@ -311,11 +310,12 @@ } } - private CsvFileImportResult importSubSampleFile(CatchesDataImportConfiguration configuration, - InputFile inputFile, - Map<String, Operation> operationMap, - Map<String, Species> speciesMap, - Map<String, SizeCategory> sizeCategoryMap + private CsvFileImportResult importSubSampleFile( + CatchesDataImportConfiguration configuration, + InputFile inputFile, + Map<String, Operation> operationMap, + Map<String, Species> speciesMap, + Map<String, SizeCategory> sizeCategoryMap ) throws ImportException { if (log.isInfoEnabled()) { @@ -331,11 +331,12 @@ CsvFileImportResult importResult = new CsvFileImportResult( inputFile.getFileName()); - SubSampleImportModel csvModel = new SubSampleImportModel(getCsvSeparator(), - operationMap, - speciesMap, - sizeCategoryMap, - sexCategoryMap); + SubSampleImportModel csvModel = new SubSampleImportModel( + getCsvSeparator(), + operationMap, + speciesMap, + sizeCategoryMap, + sexCategoryMap); SampleDAO sampleDAO = getDAO(Sample.class, SampleDAO.class); SampleDataDAO sampleDataDAO = getDAO(SampleData.class, SampleDataDAO.class); @@ -421,10 +422,11 @@ } } - private CsvFileImportResult importBiometrySampleFile(CatchesDataImportConfiguration configuration, - InputFile inputFile, - Map<String, Operation> operationMap, - Map<String, Species> speciesMap + private CsvFileImportResult importBiometrySampleFile( + CatchesDataImportConfiguration configuration, + InputFile inputFile, + Map<String, Operation> operationMap, + Map<String, Species> speciesMap ) throws ImportException { if (log.isInfoEnabled()) { @@ -533,10 +535,16 @@ float value, Sample sample, CsvFileImportResult importResult) { - SampleData sampleData = create(dao); - sampleData.setSampleDataType(sampleDataType); - sampleData.setDataValue(value); - sampleData.setDataLabel(label); + SampleData sampleData = create( + dao, + SampleData.PROPERTY_SAMPLE_DATA_TYPE, sampleDataType, + SampleData.PROPERTY_DATA_VALUE, value, + SampleData.PROPERTY_DATA_LABEL, label + + ); +// sampleData.setSampleDataType(sampleDataType); +// sampleData.setDataValue(value); +// sampleData.setDataLabel(label); sample.addSampleData(sampleData); importResult.incrementsNumberCreated(EchoBaseEntityEnum.SampleData); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonDataImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonDataImportService.java 2012-03-29 10:00:37 UTC (rev 439) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/CommonDataImportService.java 2012-03-29 10:14:49 UTC (rev 440) @@ -165,8 +165,7 @@ VoyageDAO dao = getDAO(Voyage.class, VoyageDAO.class); - ImportModel<Voyage> csvModel = - new VoyageImportModel(getCsvSeparator()); + ImportModel<Voyage> csvModel = new VoyageImportModel(getCsvSeparator()); Voyage newVoyage = null; Locale locale = getLocale(); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsEsduCellImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsEsduCellImportService.java 2012-03-29 10:00:37 UTC (rev 439) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsEsduCellImportService.java 2012-03-29 10:14:49 UTC (rev 440) @@ -250,11 +250,8 @@ Cell cell = row.getCell(); Category category = getResultCategory(categoryDAO, - speciesCategoryDAO, row.getEchotype(), null, - null, - null, importResult); if (rowNumber % 100 == 0) { @@ -466,9 +463,11 @@ if (sizeCategory == null) { // create a new sizeCategory - sizeCategory = create(sizeCategoryDAO); - sizeCategory.setName(sizeCategoryName); - sizeCategory.setMeaning(row.getSizeCategoryMeaning()); + sizeCategory = create( + sizeCategoryDAO, + SizeCategory.PROPERTY_NAME, sizeCategoryName, + SizeCategory.PROPERTY_MEANING, row.getSizeCategoryMeaning() + ); importResult.incrementsNumberCreated( EchoBaseEntityEnum.SizeCategory); if (log.isInfoEnabled()) { @@ -503,9 +502,7 @@ result.setResultLabel(resultLabel); Result resultCreated = create(dao, result); - cell.addResult(resultCreated); - importResult.incrementsNumberCreated(EchoBaseEntityEnum.Result); } } @@ -546,14 +543,12 @@ header); CellDAO cellDAO = (CellDAO) getDAO(Cell.class); - SpeciesCategoryDAO speciesCategoryDAO = getDAO(SpeciesCategory.class, SpeciesCategoryDAO.class); - AgeCategoryDAO ageCategoryDAO = getDAO(AgeCategory.class, AgeCategoryDAO.class); + CategoryDAO categoryDAO = (CategoryDAO) getDAO(Category.class); - EsduResultBySpeciesAndAgeCategoryImportModel csvModel = new EsduResultBySpeciesAndAgeCategoryImportModel( serviceContext.getConfiguration().getCsvSeparator(), speciesMap, @@ -561,7 +556,6 @@ cellDAO, metas); - CategoryDAO categoryDAO = (CategoryDAO) getDAO(Category.class); DecoratorService decoratorService = getService(DecoratorService.class); Decorator<Category> categoryDecorator = decoratorService.getDecorator(getLocale(), Category.class, null); @@ -591,9 +585,11 @@ if (ageCategory == null) { // create a new sizeCategory - ageCategory = create(ageCategoryDAO); - ageCategory.setName(row.getAgeCategory()); - ageCategory.setMeaning(row.getAgeCategoryMeaning()); + ageCategory = create( + ageCategoryDAO, + AgeCategory.PROPERTY_NAME, ageCategoryName, + AgeCategory.PROPERTY_MEANING, row.getAgeCategoryMeaning() + ); importResult.incrementsNumberCreated( EchoBaseEntityEnum.AgeCategory); if (log.isInfoEnabled()) { @@ -628,9 +624,7 @@ result.setResultLabel(resultLabel); Result resultCreated = create(dao, result); - cell.addResult(resultCreated); - importResult.incrementsNumberCreated(EchoBaseEntityEnum.Result); } } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsMapCellImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsMapCellImportService.java 2012-03-29 10:00:37 UTC (rev 439) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsMapCellImportService.java 2012-03-29 10:14:49 UTC (rev 440) @@ -87,8 +87,9 @@ configuration.getVoyageId()); InputFile inputFile = configuration.getMapsFile(); - CsvFileImportResult importResult = importMapFile( - configuration, inputFile, voyage); + CsvFileImportResult importResult = importMapFile(configuration, + inputFile, + voyage); List<CsvFileImportResult> result = Lists.newLinkedList(); addResultAndLog(result, inputFile, importResult, user); @@ -147,7 +148,6 @@ String[] header = EchoBaseImport.getHeader(inputFile.getFile(), getCsvSeparator()); - List<DataMetadata> metas = getMetas( MapCellImportModel.COLUMN_NAMES_TO_EXCLUDE, dataMetadataMap, @@ -170,12 +170,10 @@ inputFile.getFileName()); CellDAO dao = getDAO(Cell.class, CellDAO.class); - DataDAO dataDao = getDAO(Data.class, DataDAO.class); ResultDAO resultDao = getDAO(Result.class, ResultDAO.class); SpeciesCategoryDAO speciesCategoryDAO = getDAO(SpeciesCategory.class, SpeciesCategoryDAO.class); - CategoryDAO categoryDAO = getDAO(Category.class, CategoryDAO.class); Reader reader = getInputFileReader(inputFile); @@ -190,11 +188,9 @@ configuration.incrementsProgression(); Cell cell = create(dao, row.getCell()); - voyage.addPostCell(cell); importResult.incrementsNumberCreated(EchoBaseEntityEnum.Cell); - // add gridCellLongitude data createCellData(dataDao, cell, @@ -259,9 +255,7 @@ result.setResultLabel(resultLabel); Result resultCreated = create(resultDao, result); - cell.addResult(resultCreated); - importResult.incrementsNumberCreated(EchoBaseEntityEnum.Result); } } Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsRegionCellImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsRegionCellImportService.java 2012-03-29 10:00:37 UTC (rev 439) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsRegionCellImportService.java 2012-03-29 10:14:49 UTC (rev 440) @@ -177,10 +177,12 @@ if (cell == null || !row.getName().equals(cell.getName())) { - cell = create(dao); - - cell.setName(row.getName()); - cell.setCellType(row.getCellType()); + cell = create(dao, + Cell.PROPERTY_CELL_TYPE, row.getCellType(), + Cell.PROPERTY_NAME, row.getName() + ); +// cell.setName(row.getName()); +// cell.setCellType(row.getCellType()); voyage.addPostCell(cell); importResult.incrementsNumberCreated(EchoBaseEntityEnum.Cell); @@ -210,9 +212,10 @@ } } - protected CsvFileImportResult importRegionAssociationFile(ResultsImportConfiguration configuration, - InputFile inputFile, - Voyage voyage) throws ImportException { + protected CsvFileImportResult importRegionAssociationFile( + ResultsImportConfiguration configuration, + InputFile inputFile, + Voyage voyage) throws ImportException { if (log.isInfoEnabled()) { log.info("Starts import of Region cells association from file " + @@ -272,9 +275,10 @@ } } - protected CsvFileImportResult importRegionResultFile(ResultsImportConfiguration configuration, - InputFile inputFile, - Voyage voyage) throws ImportException { + protected CsvFileImportResult importRegionResultFile( + ResultsImportConfiguration configuration, + InputFile inputFile, + Voyage voyage) throws ImportException { if (log.isInfoEnabled()) { log.info("Starts import of Map cell results from file " + @@ -329,9 +333,7 @@ SpeciesCategoryDAO speciesCategoryDAO = getDAO(SpeciesCategory.class, SpeciesCategoryDAO.class); - CategoryDAO categoryDAO = getDAO(Category.class, CategoryDAO.class); - ResultDAO dao = getDAO(Result.class, ResultDAO.class); Reader reader = getInputFileReader(inputFile); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsVoyageImportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsVoyageImportService.java 2012-03-29 10:00:37 UTC (rev 439) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/ResultsVoyageImportService.java 2012-03-29 10:14:49 UTC (rev 440) @@ -183,29 +183,24 @@ configuration.incrementsProgression(); Voyage voyage = row.getVoyage(); - LengthWeightKey lengthWeightKeyToCreate = - row.getLengthWeightKey(); - LengthWeightKey lengthWeightKey = create( - dao, lengthWeightKeyToCreate); - - //TODO should we import it ? - //lengthWeightKey.setMetadata(row.getMetadata()); - - Species species = row.getSpecies(); - SizeCategory sizeCategory = row.getSizeCategory(); - // find speciesCategory SpeciesCategory speciesCategory = getSpeciesCategory( speciesCategoryDAO, - species, - sizeCategory, + row.getSpecies(), + row.getSizeCategory(), null, null, importResult ); - lengthWeightKey.setSpeciesCategory(speciesCategory); + LengthWeightKey toCreate = row.getLengthWeightKey(); + toCreate.setSpeciesCategory(speciesCategory); + LengthWeightKey lengthWeightKey = create(dao, toCreate); + + //TODO should we import it ? + //lengthWeightKey.setMetadata(row.getMetadata()); + // attach it to voyage voyage.addLengthWeightKey(lengthWeightKey); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/LengthWeightKeyImportModel.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/LengthWeightKeyImportModel.java 2012-03-29 10:00:37 UTC (rev 439) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/importdata/csv/LengthWeightKeyImportModel.java 2012-03-29 10:14:49 UTC (rev 440) @@ -50,7 +50,7 @@ newForeignKeyColumn(LengthWeightKeyImportRow.PROPERTY_VOYAGE, Voyage.class, Voyage.PROPERTY_NAME, voyageMap); newForeignKeyColumn(LengthWeightKeyImportRow.PROPERTY_SIZE_CATEGORY, SizeCategory.class, SizeCategory.PROPERTY_NAME, sizeCategoryMap); - newForeignKeyColumn("baracoudacode", LengthWeightKeyImportRow.PROPERTY_SPECIES, Species.class, Species.PROPERTY_BARACOUDA_CODE, speciesMap); + newForeignKeyColumn("baracoudaCode", LengthWeightKeyImportRow.PROPERTY_SPECIES, Species.class, Species.PROPERTY_BARACOUDA_CODE, speciesMap); } @Override Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/AbstractImportDataServiceIT.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/AbstractImportDataServiceIT.java 2012-03-29 10:00:37 UTC (rev 439) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/AbstractImportDataServiceIT.java 2012-03-29 10:14:49 UTC (rev 440) @@ -23,6 +23,7 @@ */ package fr.ifremer.echobase.services.importdata; +import com.google.common.base.Preconditions; import com.google.common.collect.Collections2; import com.google.common.collect.Sets; import fr.ifremer.echobase.EchoBaseFunctions; @@ -31,6 +32,7 @@ import fr.ifremer.echobase.csv.AbstractImportModel; import fr.ifremer.echobase.csv.CsvFileImportResult; import fr.ifremer.echobase.csv.EchoBaseImport; +import fr.ifremer.echobase.entities.EchoBaseEntityEnum; import fr.ifremer.echobase.entities.EchoBaseUser; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.CellDAO; @@ -48,6 +50,7 @@ import fr.ifremer.echobase.entities.data.Transect; import fr.ifremer.echobase.entities.data.Transit; import fr.ifremer.echobase.entities.data.Voyage; +import fr.ifremer.echobase.entities.references.CellType; import fr.ifremer.echobase.services.EchoBaseTestServiceSupport; import fr.ifremer.echobase.services.ImportException; import org.apache.commons.logging.Log; @@ -243,7 +246,10 @@ if (transect.isDataAcquisitionEmpty()) { // create a fake dataAcquisition - dataAcquisition = create(getDAO(DataAcquisition.class)); + dataAcquisition = create( + getDAO(DataAcquisition.class), + DataAcquisition.PROPERTY_ACOUSTIC_INSTRUMENT, + getEntities(EchoBaseEntityEnum.AcousticInstrument).get(0)); transect.addDataAcquisition(dataAcquisition); } else { dataAcquisition = transect.getDataAcquisition().iterator().next(); @@ -252,7 +258,11 @@ if (dataAcquisition.isDataProcessingEmpty()) { // creates a fake dataProcessing - dataProcessing = create(getDAO(DataProcessing.class)); + dataProcessing = create( + getDAO(DataProcessing.class), + DataProcessing.PROPERTY_ID, "id", + DataProcessing.PROPERTY_PROCESSING_TEMPLATE, "pt" + ); dataAcquisition.addDataProcessing(dataProcessing); } else { dataProcessing = dataAcquisition.getDataProcessing().iterator().next(); @@ -274,6 +284,10 @@ esduColumnName, inputFile.getFile()); + CellType esduCellType = getEntityByProperty( + CellType.class, CellType.PROPERTY_ID, "Esdu"); + Preconditions.checkNotNull(esduCellType); + Reader reader = service.getInputFileReader(inputFile); try { EchoBaseImport<ResultEdsuImportMockImportModelRow> importer = @@ -290,7 +304,9 @@ esduCellId); } - Cell cell = dao.create(Cell.PROPERTY_NAME, esduCellId); + Cell cell = create(dao, + Cell.PROPERTY_NAME, esduCellId, + Cell.PROPERTY_CELL_TYPE, esduCellType); dataProcessing.addCell(cell); cellsNames.add(esduCellId); } Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsEsduCellImportServiceIT.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsEsduCellImportServiceIT.java 2012-03-29 10:00:37 UTC (rev 439) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsEsduCellImportServiceIT.java 2012-03-29 10:14:49 UTC (rev 440) @@ -79,7 +79,6 @@ assertCsvImportResult(result, 0, Result.class, 43533); assertCsvImportResult(result, 0, Category.class, 7); - assertCsvImportResult(result, 0, SpeciesCategory.class, 1); } @Test @@ -139,7 +138,7 @@ assertCsvImportResult(result, 0, Result.class, 68108); assertCsvImportResult(result, 0, Category.class, 129); - assertCsvImportResult(result, 0, SpeciesCategory.class, 129); + assertCsvImportResult(result, 0, SpeciesCategory.class, 129, 0, 585); assertCsvImportResult(result, 0, SizeCategory.class, 62); } @@ -170,9 +169,9 @@ result = doImport(conf, ResultsEsduCellImportService.class, 1); assertCsvImportResult(result, 0, Result.class, 10021); - assertCsvImportResult(result, 0, AgeCategory.class, 10); + assertCsvImportResult(result, 0, AgeCategory.class, 6); assertCsvImportResult(result, 0, Category.class, 14); - assertCsvImportResult(result, 0, SpeciesCategory.class, 14, 0, 471); + assertCsvImportResult(result, 0, SpeciesCategory.class, 14, 0, 470); } Modified: trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsRegionCellImportServiceIT.java =================================================================== --- trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsRegionCellImportServiceIT.java 2012-03-29 10:00:37 UTC (rev 439) +++ trunk/echobase-services/src/test/java/fr/ifremer/echobase/services/importdata/ResultsRegionCellImportServiceIT.java 2012-03-29 10:14:49 UTC (rev 440) @@ -85,9 +85,9 @@ assertCsvImportResult(result, 0, Cell.class, 10, 0, 2083); assertCsvImportResult(result, 0, Data.class, 238); assertCsvImportResult(result, 1, Cell.class, 0, 4146, 2083); - assertCsvImportResult(result, 2, Result.class, 1873); + assertCsvImportResult(result, 2, Result.class, 2128); assertCsvImportResult(result, 2, Category.class, 27); - assertCsvImportResult(result, 2, SpeciesCategory.class, 1, 0, 458); + assertCsvImportResult(result, 2, SpeciesCategory.class, 1, 0, 457); } } \ No newline at end of file Modified: trunk/echobase-services/src/test/resources/echobase-0.3-importDb-referentiel.zip =================================================================== (Binary files differ) Modified: trunk/echobase-services/src/test/resources/import-data/echobase-0.3-catches-and-voyage-result.h2.db.gz =================================================================== (Binary files differ) Modified: trunk/echobase-services/src/test/resources/import-data/echobase-0.3-catches.h2.db.gz =================================================================== (Binary files differ) Modified: trunk/echobase-services/src/test/resources/import-data/echobase-0.3-commonData.h2.db.gz =================================================================== (Binary files differ) Modified: trunk/echobase-services/src/test/resources/import-data/echobase-0.3-nodata.h2.db.gz =================================================================== (Binary files differ) Modified: trunk/echobase-services/src/test/resources/import-data/echobase-0.3-operation.h2.db.gz =================================================================== (Binary files differ) Modified: trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EntityLoader.java =================================================================== --- trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EntityLoader.java 2012-03-29 10:00:37 UTC (rev 439) +++ trunk/echobase-tools/src/main/java/fr/ifremer/echobase/tools/loaders/EntityLoader.java 2012-03-29 10:14:49 UTC (rev 440) @@ -485,8 +485,9 @@ TopiaDAO<TopiaEntity> dao = getDAO(tableMeta.getSource()); for (TopiaEntity entity : importer) { - TopiaEntity entityToSave = dao.create(TopiaEntity.TOPIA_ID, - entity.getTopiaId()); + Map<String, Object> properties = meta.prepareCreate( + entity, entity.getTopiaId()); + TopiaEntity entityToSave = dao.create(properties); tableMeta.copy(entity, entityToSave);
participants (1)
-
tchemit@users.forge.codelutin.com