This is an automated email from the git hooks/post-receive script. New commit to branch feature/revue_algorithme in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit 2ce988a985c99d24a6a35772bd7dadb57a53b314 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Apr 20 02:14:13 2016 +0200 Suppression des listeners sur le cache + revue du code du cache --- .../service/sampling/CruiseSamplingCache.java | 76 ++++------------------ .../IndividualObservationSamplingStatus.java | 14 ++++ .../tutti/service/sampling/SamplingEvent.java | 51 --------------- .../tutti/service/sampling/SamplingListener.java | 38 ----------- 4 files changed, 27 insertions(+), 152 deletions(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CruiseSamplingCache.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CruiseSamplingCache.java index 61507f6..7d8bed0 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CruiseSamplingCache.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/CruiseSamplingCache.java @@ -43,7 +43,6 @@ import fr.ifremer.tutti.util.Numbers; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import javax.swing.event.EventListenerList; import java.util.Collection; import java.util.HashMap; import java.util.List; @@ -98,10 +97,6 @@ public class CruiseSamplingCache implements CruiseCacheAble { */ private final Map<Integer, CaracteristicQualitativeValue> sexQualitativeValues; /** - * La liste des listeners. - */ - private final EventListenerList listeners = new EventListenerList(); - /** * Un drapeau pour indiquer qu'on est en train de construire le cache et donc ne déclancher aucun listener. */ private boolean loading; @@ -160,8 +155,6 @@ public class CruiseSamplingCache implements CruiseCacheAble { try { - int fishingOperationId = fishingOperation.getIdAsInt(); - for (IndividualObservationBatch individualObservationBatch : individualObservations) { Optional<CalcifiedPiecesSamplingDefinition> optionalCalcifiedPiecesSamplingDefinition = @@ -186,8 +179,6 @@ public class CruiseSamplingCache implements CruiseCacheAble { CaracteristicQualitativeValue gender = individualObservationBatch.getCaracteristics().getQualitativeValue(sexCaracteristic); -// CalcifiedPiecesSamplingDefinition calcifiedPiecesSamplingDefinition = optionalCalcifiedPiecesSamplingDefinition.get(); - IndividualObservationSamplingContext individualObservationSamplingContext = createContext(fishingOperation.getIdAsInt(), species, @@ -236,8 +227,6 @@ public class CruiseSamplingCache implements CruiseCacheAble { try { - int fishingOperationId = fishingOperation.getIdAsInt(); - for (IndividualObservationBatch individualObservationBatch : individualObservations) { Optional<CalcifiedPiecesSamplingDefinition> optionalCalcifiedPiecesSamplingDefinition = @@ -260,8 +249,6 @@ public class CruiseSamplingCache implements CruiseCacheAble { CaracteristicQualitativeValue gender = individualObservationBatch.getCaracteristics().getQualitativeValue(sexCaracteristic); -// CalcifiedPiecesSamplingDefinition calcifiedPiecesSamplingDefinition = optionalCalcifiedPiecesSamplingDefinition.get(); - IndividualObservationSamplingContext individualObservationSamplingContext = createContext(fishingOperation.getIdAsInt(), species, @@ -362,11 +349,6 @@ public class CruiseSamplingCache implements CruiseCacheAble { cpsDefinitionsBySpecies.clear(); maturityCaracteristicBySpecies.clear(); matureStatesByMaturityCracteristic.clear(); - SamplingListener[] samplingListeners = listeners.getListeners(SamplingListener.class); - for (SamplingListener listener : samplingListeners) { - removeSamplingListener(listener); - } - } @Override @@ -428,8 +410,16 @@ public class CruiseSamplingCache implements CruiseCacheAble { String fishingOperationSamplingKey = context.getFishingOperationSamplingKey(); CruiseSamplingInternalCache.SamplingData fishingOperationSamplingData = fishingOperationCache.getSamplingData(fishingOperationSamplingKey); - return new IndividualObservationSamplingStatus(context, cruiseSamplingData, zoneSamplingData, fishingOperationSamplingData); + boolean needSampling; + if (individualObservationBatch.getSamplingCode() != null) { + needSampling = false; + } else { + int samplingInterval = context.getCalcifiedPiecesSamplingDefinition().getSamplingInterval(); + int cruiseIndividualObservationCount = cruiseSamplingData.getIndividualObservationCount(); + needSampling = cruiseIndividualObservationCount == 1 || samplingInterval == 1 || cruiseIndividualObservationCount % samplingInterval == 1; + } + return new IndividualObservationSamplingStatus(context, needSampling, cruiseSamplingData, zoneSamplingData, fishingOperationSamplingData); } /** @@ -652,14 +642,6 @@ public class CruiseSamplingCache implements CruiseCacheAble { return maturity; } - public void addSamplingListener(SamplingListener listener) { - listeners.add(SamplingListener.class, listener); - } - - public void removeSamplingListener(SamplingListener listener) { - listeners.remove(SamplingListener.class, listener); - } - public List<CacheExtractedKey> getSamplingNumbers(Map<String, Species> speciesById) { List<CacheExtractedKey> result = cruiseCache.getSamplingNumbers(speciesById, sexQualitativeValues); result.forEach(key -> { @@ -687,17 +669,6 @@ public class CruiseSamplingCache implements CruiseCacheAble { return cpsDefinitionsBySpecies.containsKey(species.getReferenceTaxonId()); } - private void fireSamplingNeeded(SamplingEvent event) { - - SamplingListener[] samplingListeners = listeners.getListeners(SamplingListener.class); - if (samplingListeners.length > 0) { - - for (SamplingListener listener : samplingListeners) { - listener.samplingNeeded(event); - } - } - } - private Optional<Zone> tryFindZone(TuttiLocation location) { Integer locationId = location.getIdAsInt(); @@ -763,32 +734,11 @@ public class CruiseSamplingCache implements CruiseCacheAble { CruiseSamplingInternalCache.SamplingData fishingOperationSamplingData = fishingOperationCache.addOneIndividualObservation(fishingOperationSamplingKey); if (log.isInfoEnabled()) { - log.info("add individual observation " + cruiseSamplingKey + " => op " + fishingOperationSamplingData.getSamplingCount() + " / zone " + zoneSamplingData.getSamplingCount() + " / cruise " + cruiseSamplingData.getSamplingCount()); - } - - if (!isLoading()) { - - int samplingInterval = individualObservationSamplingContext.getCalcifiedPiecesSamplingDefinition().getSamplingInterval(); - int cruiseIndividualObservationCount = cruiseSamplingData.getIndividualObservationCount(); - if (cruiseIndividualObservationCount == 1 || samplingInterval == 1 || cruiseIndividualObservationCount % samplingInterval == 1) { - - IndividualObservationSamplingStatus status = new IndividualObservationSamplingStatus(individualObservationSamplingContext, cruiseSamplingData, zoneSamplingData, fishingOperationSamplingData); - SamplingEvent event = new SamplingEvent(this, status); - if (log.isInfoEnabled()) { - log.info("-> needs sampling"); - } - fireSamplingNeeded(event); - } - + log.info("add individual observation " + cruiseSamplingKey + " ⇒ op " + fishingOperationSamplingData + " / zone " + zoneSamplingData + " / cruise " + cruiseSamplingData); } } - /** - * Suppression d'un échantillon du cache. - * - * @param individualObservationSamplingContext le contexte de l'observation individuelle - */ private void removeIndividualObservation(IndividualObservationSamplingContext individualObservationSamplingContext) { Objects.requireNonNull(individualObservationSamplingContext); @@ -803,7 +753,7 @@ public class CruiseSamplingCache implements CruiseCacheAble { CruiseSamplingInternalCache.SamplingData fishingOperationSamplingData = fishingOperationCache.removeOneIndividualObservation(fishingOperationSamplingKey); if (log.isInfoEnabled()) { - log.info("remove individual observation " + cruiseSamplingKey + " => op " + fishingOperationSamplingData.getSamplingCount() + " / zone " + zoneSamplingData.getSamplingCount() + " / cruise " + cruiseSamplingData.getSamplingCount()); + log.info("remove individual observation " + cruiseSamplingKey + " ⇒ op " + fishingOperationSamplingData + " / zone " + zoneSamplingData + " / cruise " + cruiseSamplingData); } } @@ -822,7 +772,7 @@ public class CruiseSamplingCache implements CruiseCacheAble { CruiseSamplingInternalCache.SamplingData fishingOperationSamplingData = fishingOperationCache.addOneSampling(fishingOperationSamplingKey); if (log.isInfoEnabled()) { - log.info("add Sampling " + cruiseSamplingKey + " => op " + fishingOperationSamplingData.getSamplingCount() + " / zone " + zoneSamplingData.getSamplingCount() + " / cruise " + cruiseSamplingData.getSamplingCount()); + log.info("add sampling " + cruiseSamplingKey + " ⇒ op " + fishingOperationSamplingData + " / zone " + zoneSamplingData + " / cruise " + cruiseSamplingData); } } @@ -841,7 +791,7 @@ public class CruiseSamplingCache implements CruiseCacheAble { CruiseSamplingInternalCache.SamplingData fishingOperationSamplingData = fishingOperationCache.removeOneSampling(fishingOperationSamplingKey); if (log.isInfoEnabled()) { - log.info("remove Sampling " + cruiseSamplingKey + " => op " + fishingOperationSamplingData.getSamplingCount() + " / zone " + zoneSamplingData.getSamplingCount() + " / cruise " + cruiseSamplingData.getSamplingCount()); + log.info("remove sampling " + cruiseSamplingKey + " ⇒ op " + fishingOperationSamplingData + " / zone " + zoneSamplingData + " / cruise " + cruiseSamplingData); } } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/IndividualObservationSamplingStatus.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/IndividualObservationSamplingStatus.java index 92184c6..46dcfdb 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/IndividualObservationSamplingStatus.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/IndividualObservationSamplingStatus.java @@ -50,11 +50,21 @@ public class IndividualObservationSamplingStatus { */ private final int samplingCountInZone; + /** + * Pour savoir si on demande un prélèvement. + */ + private final boolean needSampling; + public IndividualObservationSamplingStatus(IndividualObservationSamplingContext individualObservationSamplingContext, + boolean needSampling, CruiseSamplingInternalCache.SamplingData cruiseSamplingData, CruiseSamplingInternalCache.SamplingData zoneSamplingData, CruiseSamplingInternalCache.SamplingData fishingOperationSamplingData) { Objects.requireNonNull(individualObservationSamplingContext); + Objects.requireNonNull(cruiseSamplingData); + Objects.requireNonNull(zoneSamplingData); + Objects.requireNonNull(fishingOperationSamplingData); + this.needSampling = needSampling; this.individualObservationSamplingContext = individualObservationSamplingContext; this.samplingCountInCruise = cruiseSamplingData.getSamplingCount(); this.individualObservationCountInCruise = cruiseSamplingData.getIndividualObservationCount(); @@ -68,6 +78,10 @@ public class IndividualObservationSamplingStatus { return individualObservationSamplingContext; } + public boolean isNeedSampling() { + return needSampling; + } + public CalcifiedPiecesSamplingDefinition getCalcifiedPiecesSamplingDefinition() { return individualObservationSamplingContext.getCalcifiedPiecesSamplingDefinition(); } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/SamplingEvent.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/SamplingEvent.java deleted file mode 100644 index f06583c..0000000 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/SamplingEvent.java +++ /dev/null @@ -1,51 +0,0 @@ -package fr.ifremer.tutti.service.sampling; - -/* - * #%L - * Tutti :: Service - * $Id:$ - * $HeadURL:$ - * %% - * Copyright (C) 2012 - 2016 Ifremer - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import java.util.EventObject; - -/** - * @author Kevin Morin (Code Lutin) - * @since 4.5 - */ -public class SamplingEvent extends EventObject { - - private final IndividualObservationSamplingStatus status; - - public SamplingEvent(CruiseSamplingCache source, IndividualObservationSamplingStatus status) { - super(source); - this.status = status; - } - - @Override - public CruiseSamplingCache getSource() { - return (CruiseSamplingCache) super.getSource(); - } - - public IndividualObservationSamplingStatus getStatus() { - return status; - } - -} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/SamplingListener.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/SamplingListener.java deleted file mode 100644 index 8f14783..0000000 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/sampling/SamplingListener.java +++ /dev/null @@ -1,38 +0,0 @@ -package fr.ifremer.tutti.service.sampling; - -/* - * #%L - * Tutti :: Service - * $Id:$ - * $HeadURL:$ - * %% - * Copyright (C) 2012 - 2016 Ifremer - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import java.util.EventListener; - -/** - * @author Kevin Morin (Code Lutin) - * @since 4.5 - */ -public interface SamplingListener extends EventListener { - - void samplingNeeded(SamplingEvent event); - -} - -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.