This is an automated email from the git hooks/post-receive script. New commit to branch feature/7520 in repository observe. See http://git.codelutin.com/observe.git commit 8b62ca0cb7373042998854d2030c03bf69f3725d Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Sep 10 15:18:33 2015 +0200 ajout de la date de mise a jour pour les entité dans le référentiel (refs #7520) --- .../v1/ReferentialServiceController.java | 6 + .../migration/AbstractDataSourceMigration.java | 3 +- .../DataSourceMigrationForVersion_5_0.java | 6 +- .../resources/db/5.0/add_lastUpdate_field-H2.sql | 133 ++++++++++++++++++++ .../resources/db/5.0/add_lastUpdate_field-PG.sql | 134 +++++++++++++++++++++ observe-entities/src/main/xmi/observe-common.zargo | Bin 35191 -> 36629 bytes .../services/service/ReferentialService.java | 4 + .../ird/observe/services/dto/ReferenceSetDtos.java | 8 +- .../xmi/observe-services-dto-common.properties | 2 +- .../src/main/xmi/observe-services-dto-common.zargo | Bin 34629 -> 33934 bytes .../xmi/observe-services-dto-longline.properties | 2 +- .../main/xmi/observe-services-dto-seine.properties | 2 +- .../ird/observe/services/ObserveServiceTopia.java | 63 +++++++++- .../services/service/ReferentialServiceTopia.java | 17 +++ .../service/ReferentialServiceTopiaTest.java | 50 ++++++++ 15 files changed, 420 insertions(+), 10 deletions(-) diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ReferentialServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ReferentialServiceController.java index 6189071..bcb93f4 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ReferentialServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/ReferentialServiceController.java @@ -7,6 +7,7 @@ import fr.ird.observe.services.service.DataNotFoundException; import fr.ird.observe.services.service.ReferentialService; import java.util.Collection; +import java.util.Date; /** * Created on 19/08/15. @@ -25,6 +26,11 @@ public class ReferentialServiceController extends ObserveAuthenticatedServiceCon } @Override + public <R extends ReferentialDto> ReferenceSetDto<R> getReferentialReferenceSetIfModify(Class<R> type, Date updateAfter) { + return service.getReferentialReferenceSetIfModify(type, updateAfter); + } + + @Override public <R extends ReferentialDto> FormDto<R> loadToRead(Class<R> type, String id) throws DataNotFoundException { return service.loadToRead(type, id); } diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/migration/AbstractDataSourceMigration.java b/observe-entities/src/main/java/fr/ird/observe/entities/migration/AbstractDataSourceMigration.java index 34d7e84..d89d5fe 100644 --- a/observe-entities/src/main/java/fr/ird/observe/entities/migration/AbstractDataSourceMigration.java +++ b/observe-entities/src/main/java/fr/ird/observe/entities/migration/AbstractDataSourceMigration.java @@ -81,12 +81,13 @@ public abstract class AbstractDataSourceMigration extends TopiaMigrationCallback public static final Version V_4_0_RC7 = Versions.valueOf("4.0-RC7"); public static final Version V_4_0 = Versions.valueOf("4.0"); - public static final Version V_5_0 = Versions.valueOf("5.0"); public static final Version V_4_0_1 = Versions.valueOf("4.0.1"); public static final Version V_4_0_2 = Versions.valueOf("4.0.2"); + public static final Version V_5_0 = Versions.valueOf("5.0"); + /** Les versions de mise à jour disponibles. */ public static final Version[] availableVersions = new Version[]{ V_3_1, V_3_5, V_3_7, V_3_8, V_3_9, V_3_10, V_3_11, V_3_12, V_3_14, V_3_15, V_3_16, V_4_0_RC2, diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/migration/versions/DataSourceMigrationForVersion_5_0.java b/observe-entities/src/main/java/fr/ird/observe/entities/migration/versions/DataSourceMigrationForVersion_5_0.java index f0a26ee..89195e9 100644 --- a/observe-entities/src/main/java/fr/ird/observe/entities/migration/versions/DataSourceMigrationForVersion_5_0.java +++ b/observe-entities/src/main/java/fr/ird/observe/entities/migration/versions/DataSourceMigrationForVersion_5_0.java @@ -31,11 +31,11 @@ public class DataSourceMigrationForVersion_5_0 extends AbstractObserveMigrationC // Ajout des champs lastUpdate // See https://forge.codelutin.com/issues/7470 - //TODO addScript("add_last_date_update", queries); + addScript("add_lastUpdate_field", queries); } - public static class H2DataSourceMigrationForVersion extends DataSourceMigrationForVersion_4_0 { + public static class H2DataSourceMigrationForVersion extends DataSourceMigrationForVersion_5_0 { public H2DataSourceMigrationForVersion(AbstractDataSourceMigration callBack) { super(callBack, H2DataSourceMigration.TYPE); @@ -43,7 +43,7 @@ public class DataSourceMigrationForVersion_5_0 extends AbstractObserveMigrationC } - public static class PGDataSourceMigrationForVersion extends DataSourceMigrationForVersion_4_0 { + public static class PGDataSourceMigrationForVersion extends DataSourceMigrationForVersion_5_0 { public PGDataSourceMigrationForVersion(AbstractDataSourceMigration callBack) { super(callBack, PGDataSourceMigration.TYPE); diff --git a/observe-entities/src/main/resources/db/5.0/add_lastUpdate_field-H2.sql b/observe-entities/src/main/resources/db/5.0/add_lastUpdate_field-H2.sql new file mode 100644 index 0000000..c2c3ca7 --- /dev/null +++ b/observe-entities/src/main/resources/db/5.0/add_lastUpdate_field-H2.sql @@ -0,0 +1,133 @@ + + +-- Referentiel commum +ALTER TABLE OBSERVE_COMMON.COUNTRY ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.FPAZONE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.GEAR ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.GEARCARACTERISTIC ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.GEARCARACTERISTICTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.HARBOUR ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.LENGTHWEIGHTPARAMETER ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.OCEAN ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.ORGANISM ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.PERSON ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.PROGRAM ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.SEX ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.SPECIES ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.SPECIESGROUP ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.SPECIESLIST ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.VESSEL ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.VESSELSIZECATEGORY ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.VESSELTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; + +-- Référentiel senne +ALTER TABLE OBSERVE_SEINE.DETECTIONMODE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.OBJECTFATE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.OBJECTOPERATION ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.OBJECTTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.OBSERVEDSYSTEM ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.REASONFORDISCARD ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.REASONFORNOFISHING ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.REASONFORNULLSET ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.SPECIESFATE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.SPECIESSTATUS ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.SURROUNDINGACTIVITY ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.TRANSMITTINGBUOYOPERATION ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.TRANSMITTINGBUOYTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.VESSELACTIVITY ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.WEIGHTCATEGORY ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.WIND ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; + +-- Référentiel Palangre +ALTER TABLE OBSERVE_LONGLINE.BAITHAULINGSTATUS ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.BAITSETTINGSTATUS ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.BAITTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.CATCHFATE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.ENCOUNTERTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.HEALTHNESS ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.HOOKPOSITION ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.HOOKSIZE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.HOOKTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.ITEMHORIZONTALPOSITION ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.ITEMVERTICALPOSITION ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.LIGHTSTICKSCOLOR ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.LIGHTSTICKSTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.LINETYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.MATURITYSTATUS ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.MITIGATIONTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.SENSORBRAND ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.SENSORDATAFORMAT ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.SENSORTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.SETTINGSHAPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.SIZEMEASURETYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.STOMACFULLNESS ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.TRIPTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.VESSELACTIVITY ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.WEIGHTMEASURETYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; + + +-- Création de la table d'historisation +CREATE TABLE OBSERVE_COMMON.LASTUPDATETYPE (TOPIAID VARCHAR(255) NOT NULL, TOPIAVERSION BIGINT NOT NULL, TOPIACREATEDATE TIMESTAMP, TYPE VARCHAR(255) NOT NULL, LASTUPDATE TIMESTAMP NOT NULL); +ALTER TABLE OBSERVE_COMMON.LASTUPDATETYPE ADD CONSTRAINT PK_LASTUPDATETYPE PRIMARY KEY(TOPIAID); + +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.01', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Country', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.02', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.FpaZone', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.03', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Gear', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.04', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.GearCaracteristic', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.05', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.GearCaracteristicType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.06', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Harbour', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.07', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.LengthWeightParameter', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.08', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Ocean', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.09', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Organism', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.10', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Person', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.11', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Program', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.12', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Sex', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.13', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Species', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.14', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.SpeciesGroup', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.15', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.SpeciesList', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.16', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Vessel', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.17', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.VesselSizeCategory', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.18', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.VesselType', CURRENT_TIMESTAMP); + +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.01', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.DetectionMode', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.02', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.ObjectFate', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.03', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.ObjectOperation', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.04', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.ObjectType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.05', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.ObservedSystem', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.06', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.ReasonForDiscard', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.07', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.ReasonForNoFishing', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.08', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.ReasonForNullSet', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.09', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.SpeciesFate', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.10', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.SpeciesStatus', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.12', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.SurroundingActivity', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.13', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.TransmittingBuoyOperation', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.14', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.TransmittingBuoyType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.15', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.16', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.WeightCategory', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.17', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.Wind', CURRENT_TIMESTAMP); + +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.01', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.BaitHaulingStatus', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.02', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.BaitSettingStatus', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.03', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.BaitType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.04', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.CatchFateLongline', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.05', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.EncounterType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.06', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.Healthness', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.07', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.HookPosition', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.08', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.HookSize', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.09', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.HookType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.10', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.ItemHorizontalPosition', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.11', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.ItemVerticalPosition', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.12', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.LightsticksColor', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.13', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.LightsticksType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.14', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.LineType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.15', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.MaturityStatus', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.16', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.MitigationType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.17', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.SensorBrand', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.18', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.SensorDataFormat', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.19', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.SensorType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.20', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.SettingShape', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.21', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.SizeMeasureType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.22', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.StomacFullness', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.23', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.TripType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.24', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.VesselActivityLongline', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.25', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.WeightMeasureType', CURRENT_TIMESTAMP); \ No newline at end of file diff --git a/observe-entities/src/main/resources/db/5.0/add_lastUpdate_field-PG.sql b/observe-entities/src/main/resources/db/5.0/add_lastUpdate_field-PG.sql new file mode 100644 index 0000000..77edb86 --- /dev/null +++ b/observe-entities/src/main/resources/db/5.0/add_lastUpdate_field-PG.sql @@ -0,0 +1,134 @@ + + +-- Referentiel commum +ALTER TABLE OBSERVE_COMMON.COUNTRY ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.FPAZONE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.GEAR ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.GEARCARACTERISTIC ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.GEARCARACTERISTICTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.HARBOUR ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.LENGTHWEIGHTPARAMETER ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.OCEAN ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.ORGANISM ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.PERSON ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.PROGRAM ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.SEX ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.SPECIES ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.SPECIESGROUP ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.SPECIESLIST ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.VESSEL ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.VESSELSIZECATEGORY ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_COMMON.VESSELTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; + +-- Référentiel senne +ALTER TABLE OBSERVE_SEINE.DETECTIONMODE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.OBJECTFATE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.OBJECTOPERATION ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.OBJECTTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.OBSERVEDSYSTEM ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.REASONFORDISCARD ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.REASONFORNOFISHING ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.REASONFORNULLSET ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.SPECIESFATE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.SPECIESSTATUS ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.SURROUNDINGACTIVITY ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.TRANSMITTINGBUOYOPERATION ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.TRANSMITTINGBUOYTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.VESSELACTIVITY ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.WEIGHTCATEGORY ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_SEINE.WIND ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; + +-- Référentiel Palangre +ALTER TABLE OBSERVE_LONGLINE.BAITHAULINGSTATUS ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.BAITSETTINGSTATUS ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.BAITTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.CATCHFATE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.ENCOUNTERTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.HEALTHNESS ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.HOOKPOSITION ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.HOOKSIZE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.HOOKTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.ITEMHORIZONTALPOSITION ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.ITEMVERTICALPOSITION ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.LIGHTSTICKSCOLOR ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.LIGHTSTICKSTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.LINETYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.MATURITYSTATUS ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.MITIGATIONTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.SENSORBRAND ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.SENSORDATAFORMAT ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.SENSORTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.SETTINGSHAPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.SIZEMEASURETYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.STOMACFULLNESS ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.TRIPTYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.VESSELACTIVITY ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; +ALTER TABLE OBSERVE_LONGLINE.WEIGHTMEASURETYPE ADD COLUMN LASTUPDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; + + +-- Création de la table d'historisation + +CREATE TABLE OBSERVE_COMMON.LASTUPDATETYPE (TOPIAID CHARACTER VARYING(255) NOT NULL, TOPIAVERSION BIGINT NOT NULL, TOPIACREATEDATE TIMESTAMP, TYPE CHARACTER VARYING(255) NOT NULL, LASTUPDATE TIMESTAMP NOT NULL); +ALTER TABLE OBSERVE_COMMON.LASTUPDATETYPE ADD CONSTRAINT PK_LASTUPDATETYPE PRIMARY KEY(TOPIAID); + +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.01', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Country', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.02', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.FpaZone', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.03', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Gear', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.04', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.GearCaracteristic', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.05', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.GearCaracteristicType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.06', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Harbour', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.07', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.LengthWeightParameter', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.08', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Ocean', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.09', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Organism', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.10', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Person', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.11', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Program', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.12', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Sex', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.13', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Species', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.14', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.SpeciesGroup', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.15', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.SpeciesList', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.16', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.Vessel', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.17', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.VesselSizeCategory', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#0.18', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.VesselType', CURRENT_TIMESTAMP); + +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.01', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.DetectionMode', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.02', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.ObjectFate', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.03', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.ObjectOperation', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.04', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.ObjectType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.05', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.ObservedSystem', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.06', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.ReasonForDiscard', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.07', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.ReasonForNoFishing', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.08', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.ReasonForNullSet', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.09', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.SpeciesFate', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.10', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.SpeciesStatus', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.12', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.SurroundingActivity', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.13', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.TransmittingBuoyOperation', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.14', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.TransmittingBuoyType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.15', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.VesselActivitySeine', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.16', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.WeightCategory', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#1.17', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.seine.Wind', CURRENT_TIMESTAMP); + +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.01', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.BaitHaulingStatus', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.02', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.BaitSettingStatus', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.03', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.BaitType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.04', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.CatchFateLongline', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.05', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.EncounterType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.06', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.Healthness', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.07', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.HookPosition', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.08', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.HookSize', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.09', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.HookType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.10', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.ItemHorizontalPosition', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.11', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.ItemVerticalPosition', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.12', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.LightsticksColor', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.13', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.LightsticksType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.14', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.LineType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.15', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.MaturityStatus', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.16', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.MitigationType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.17', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.SensorBrand', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.18', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.SensorDataFormat', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.19', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.SensorType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.20', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.SettingShape', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.21', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.SizeMeasureType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.22', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.StomacFullness', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.23', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.TripType', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.24', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.VesselActivityLongline', CURRENT_TIMESTAMP); +INSERT INTO OBSERVE_COMMON.LASTUPDATETYPE VALUES ('fr.ird.observe.entities.LastUpdateType#1236861982132#2.25', 0, CURRENT_TIMESTAMP, 'fr.ird.observe.entities.referentiel.longline.WeightMeasureType', CURRENT_TIMESTAMP); diff --git a/observe-entities/src/main/xmi/observe-common.zargo b/observe-entities/src/main/xmi/observe-common.zargo index e30a24c..db9fa01 100644 Binary files a/observe-entities/src/main/xmi/observe-common.zargo and b/observe-entities/src/main/xmi/observe-common.zargo differ diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialService.java index 53a957b..f2435fd 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/ReferentialService.java @@ -11,6 +11,7 @@ import fr.ird.observe.services.spi.Write; import fr.ird.observe.services.spi.WriteReferentialPermission; import java.util.Collection; +import java.util.Date; /** * Created on 16/08/15. @@ -23,6 +24,9 @@ public interface ReferentialService extends ObserveService { <R extends ReferentialDto> ReferenceSetDto<R> getReferentialReferenceSet(Class<R> type); @ReadReferentialPermission + <R extends ReferentialDto> ReferenceSetDto<R> getReferentialReferenceSetIfModify(Class<R> type, Date updateAfter); + + @ReadReferentialPermission <R extends ReferentialDto> FormDto<R> loadToRead(Class<R> type, String id) throws DataNotFoundException; @WriteReferentialPermission diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDtos.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDtos.java index b8ddb17..f715bfe 100644 --- a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDtos.java +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ReferenceSetDtos.java @@ -3,6 +3,7 @@ package fr.ird.observe.services.dto; import com.google.common.base.Function; import com.google.common.base.Predicate; +import java.util.Date; import java.util.LinkedHashSet; import java.util.Objects; @@ -16,10 +17,13 @@ public class ReferenceSetDtos extends AbstractReferenceSetDtos { return dto; } - public static <D extends IdDto, R extends ReferenceDto<D>> ReferenceSetDto<D> newReferenceSetDto(Class<D> type, - LinkedHashSet<R> labels) { + public static <D extends IdDto, R extends ReferenceDto<D>> ReferenceSetDto<D> newReferenceSetDto( + Class<D> type, + LinkedHashSet<R> labels, + Date lastUpdate) { ReferenceSetDto<D> dto = new ReferenceSetDto<>(type); dto.setReference((LinkedHashSet) labels); + dto.setLastUpdate(lastUpdate); return dto; } diff --git a/observe-services-model/src/main/xmi/observe-services-dto-common.properties b/observe-services-model/src/main/xmi/observe-services-dto-common.properties index e73b825..94bb0d4 100644 --- a/observe-services-model/src/main/xmi/observe-services-dto-common.properties +++ b/observe-services-model/src/main/xmi/observe-services-dto-common.properties @@ -1,4 +1,4 @@ -model.tagvalue.version=7.0 +model.tagvalue.version=5.0 model.tagvalue.simpleBeanWithNoInterfaceSuperClass=fr.ird.observe.services.dto.AbstractObserveDto model.tagvalue.simpleBeanWithNoInterfaceDefaultsClassNameSuffix=Dtos 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 fadfb2d..fa18225 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 430a8a0..ced8b3f 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 @@ -1,4 +1,4 @@ -model.tagvalue.version=7.0 +model.tagvalue.version=5.0 model.tagvalue.simpleBeanWithNoInterfaceSuperClass=fr.ird.observe.services.dto.AbstractObserveDto model.tagvalue.simpleBeanWithNoInterfaceDefaultsClassNameSuffix=Dtos diff --git a/observe-services-model/src/main/xmi/observe-services-dto-seine.properties b/observe-services-model/src/main/xmi/observe-services-dto-seine.properties index 16fe69f..11c2b0f 100644 --- a/observe-services-model/src/main/xmi/observe-services-dto-seine.properties +++ b/observe-services-model/src/main/xmi/observe-services-dto-seine.properties @@ -1,4 +1,4 @@ -model.tagvalue.version=7.0 +model.tagvalue.version=5.0 model.tagvalue.simpleBeanWithNoInterfaceSuperClass=fr.ird.observe.services.dto.AbstractObserveDto model.tagvalue.simpleBeanWithNoInterfaceDefaultsClassNameSuffix=Dtos diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java index 781da6b..a71a061 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/ObserveServiceTopia.java @@ -8,6 +8,9 @@ import com.google.common.collect.Multimap; import fr.ird.observe.ObserveTopiaApplicationContext; import fr.ird.observe.ObserveTopiaPersistenceContext; import fr.ird.observe.entities.Entities; +import fr.ird.observe.entities.FollowedUpdateEntity; +import fr.ird.observe.entities.LastUpdateType; +import fr.ird.observe.entities.LastUpdateTypeTopiaDao; import fr.ird.observe.entities.constants.ReferenceLocale; import fr.ird.observe.entities.longline.TripLongline; import fr.ird.observe.entities.referentiel.ReferenceEntity; @@ -174,12 +177,62 @@ public class ObserveServiceTopia implements ObserveService { } protected <E extends TopiaEntity> E saveEntity(Class<E> entityType, E entity) { + if (entity instanceof FollowedUpdateEntity) { + ((FollowedUpdateEntity) entity).setLastUpdate(now()); + } ObserveTopiaPersistenceContext persistenceContext = serviceContext.getTopiaPersistenceContext(); TopiaDao<E> dao = persistenceContext.getDao(entityType); entity = dao.update(entity); + if (entity instanceof FollowedUpdateEntity) { + Class<? extends FollowedUpdateEntity> followedUpdateType = (Class<? extends FollowedUpdateEntity>) entityType; + setLastUpdate(followedUpdateType, ((FollowedUpdateEntity) entity).getLastUpdate()); + } + return entity; } + protected <E extends FollowedUpdateEntity> void setLastUpdate(Class<E> entityType, Date lastUpdate) { + + ObserveTopiaPersistenceContext persistenceContext = serviceContext.getTopiaPersistenceContext(); + + LastUpdateTypeTopiaDao dao = persistenceContext.getLastUpdateTypeDao(); + + LastUpdateType lastUpdateType = dao.forTypeEquals(entityType.getCanonicalName()).findUniqueOrNull(); + + if (lastUpdateType == null) { + + lastUpdateType = dao.newInstance(); + + lastUpdateType.setType(entityType.getCanonicalName()); + + } + + lastUpdateType.setLastUpdate(lastUpdate); + + dao.update(lastUpdateType); + } + + protected <E extends TopiaEntity> Optional<Date> getLastUpdate(Class<E> entityType) { + + Optional<Date> result = Optional.absent(); + + if (FollowedUpdateEntity.class.isAssignableFrom(entityType)) { + + ObserveTopiaPersistenceContext persistenceContext = serviceContext.getTopiaPersistenceContext(); + + LastUpdateTypeTopiaDao dao = persistenceContext.getLastUpdateTypeDao(); + + Optional<LastUpdateType> lastUpdateTypeOptional = dao.forTypeEquals(entityType.getCanonicalName()).tryFindUnique(); + + if (lastUpdateTypeOptional.isPresent()) { + result = Optional.of(lastUpdateTypeOptional.get().getLastUpdate()); + } + + } + + return result; + } + protected <D extends IdDto, E extends TopiaEntity> void deleteEntity(Class<D> dtoType, Class<E> entityType, Iterable<String> ids) { ObserveTopiaPersistenceContext persistenceContext = serviceContext.getTopiaPersistenceContext(); TopiaDao<E> dao = persistenceContext.getDao(entityType); @@ -189,6 +242,10 @@ public class ObserveServiceTopia implements ObserveService { throw new DataNotFoundException(dtoType, id); } dao.delete(entity); + if (FollowedUpdateEntity.class.isAssignableFrom(entityType)) { + Class<? extends FollowedUpdateEntity> followedUpdateType = (Class<? extends FollowedUpdateEntity>) entityType; + setLastUpdate(followedUpdateType, now()); + } } } @@ -302,7 +359,11 @@ public class ObserveServiceTopia implements ObserveService { labels.add(dto); } - ReferenceSetDto labelSetDto = ReferenceSetDtos.newReferenceSetDto(dtoType, labels); + + Optional<Date> lastUpdateOptional = getLastUpdate(entityType); + + ReferenceSetDto labelSetDto = ReferenceSetDtos.newReferenceSetDto(dtoType, labels, lastUpdateOptional.orNull()); + return labelSetDto; } 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 6d60f2c..1fbb57c 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 @@ -1,5 +1,6 @@ package fr.ird.observe.services.service; +import com.google.common.base.Optional; import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.ReferenceSetDto; @@ -8,6 +9,7 @@ import org.nuiton.topia.persistence.TopiaEntity; import java.util.Collection; import java.util.Collections; +import java.util.Date; /** * Created on 16/08/15. @@ -22,6 +24,21 @@ public class ReferentialServiceTopia extends ObserveServiceTopia implements Refe } @Override + public <D extends ReferentialDto> ReferenceSetDto<D> getReferentialReferenceSetIfModify(Class<D> dtoType, Date updateAfter) { + ReferenceSetDto<D> result = null; + + Class<TopiaEntity> entityType = getEntityType(dtoType); + + Optional<Date> lastUpdateOptional = getLastUpdate(entityType); + + if (lastUpdateOptional.isPresent() && lastUpdateOptional.get().after(updateAfter)) { + result = getReferenceSet(dtoType); + } + + return result; + } + + @Override public <D extends ReferentialDto> FormDto<D> loadToRead(Class<D> dtoType, String id) { Class<TopiaEntity> entityType = getEntityType(dtoType); TopiaEntity entity = loadEntity(dtoType, entityType, id); diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialServiceTopiaTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialServiceTopiaTest.java index 9a7f764..c703007 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialServiceTopiaTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/ReferentialServiceTopiaTest.java @@ -2,6 +2,8 @@ package fr.ird.observe.services.service; import com.google.common.collect.ImmutableSet; import fr.ird.observe.ObserveTopiaPersistenceContext; +import fr.ird.observe.entities.LastUpdateType; +import fr.ird.observe.entities.LastUpdateTypeTopiaDao; import fr.ird.observe.entities.referentiel.LengthWeightParameter; import fr.ird.observe.entities.referentiel.Program; import fr.ird.observe.services.dto.FormDto; @@ -10,13 +12,17 @@ import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.referential.LengthWeightParameterDto; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.referential.ReferentialDto; +import fr.ird.observe.services.dto.referential.VesselDto; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.Assert; import org.junit.Test; import org.nuiton.topia.persistence.TopiaDao; import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.util.DateUtil; +import java.util.Calendar; +import java.util.Date; import java.util.Map; import java.util.Set; @@ -72,12 +78,39 @@ public class ReferentialServiceTopiaTest extends AbstractServiceTopiaTest { ReferenceSetDto referentialLabelSet = service.getReferentialReferenceSet(dtoType); Assert.assertNotNull(referentialLabelSet); Assert.assertEquals(expectedCount, referentialLabelSet.sizeReference()); + Assert.assertNotNull(referentialLabelSet.getLastUpdate()); } } @Test + public void testgetReferentialReferenceSetIfModify() { + + Date updateAfter = DateUtil.createDate(1,1, 2015); + + ReferenceSetDto<VesselDto> vesselReferenceSet = service.getReferentialReferenceSetIfModify(VesselDto.class, updateAfter); + + Assert.assertNotNull(vesselReferenceSet); + Assert.assertNotNull(vesselReferenceSet.getLastUpdate()); + Assert.assertTrue(vesselReferenceSet.sizeReference() > 0); + + updateAfter = vesselReferenceSet.getLastUpdate(); + + vesselReferenceSet = service.getReferentialReferenceSetIfModify(VesselDto.class, updateAfter); + Assert.assertNull(vesselReferenceSet); + + Calendar calendar = Calendar.getInstance(); + calendar.setTime(updateAfter); + calendar.add(Calendar.DATE, 1); + updateAfter = calendar.getTime(); + + vesselReferenceSet = service.getReferentialReferenceSetIfModify(VesselDto.class, updateAfter); + Assert.assertNull(vesselReferenceSet); + + } + + @Test public void testLoadToRead() throws Exception { ObserveTopiaPersistenceContext persistenceContext = dataSourceResource.newPersistenceContext(); @@ -200,10 +233,15 @@ public class ReferentialServiceTopiaTest extends AbstractServiceTopiaTest { Assert.assertNotNull(formDto.getForm()); Assert.assertNotNull(formDto.getForm().getId()); + Date lastUpdateBefore = getLastUpdate(entityType); + service.delete(dtoType, entity.getTopiaId()); Assert.assertEquals(expectedCount - 1, dao.count()); + Date lastUpdateAfter = getLastUpdate(entityType); + Assert.assertNotEquals(lastUpdateBefore, lastUpdateAfter); + try { service.loadToRead(dtoType, entity.getTopiaId()); Assert.fail(); @@ -212,4 +250,16 @@ public class ReferentialServiceTopiaTest extends AbstractServiceTopiaTest { } } + + protected Date getLastUpdate(Class entityType) { + ObserveTopiaPersistenceContext persistenceContext = dataSourceResource.newPersistenceContext(); + + LastUpdateTypeTopiaDao dao = persistenceContext.getLastUpdateTypeDao(); + + LastUpdateType lastUpdateType = dao.forTypeEquals(entityType.getCanonicalName()).findUnique(); + + return lastUpdateType.getLastUpdate(); + + + } } \ No newline at end of file -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.