This is an automated email from the git hooks/post-receive script. New commit to branch feature/8177 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit debfb6eaf0871ef75092782a36386d473257dedf Author: Kevin Morin <morin@codelutin.com> Date: Tue Mar 29 11:53:53 2016 +0200 on ajoute le nombre de prélèvement par clé (espece/taille/maturité/sexe) (refs #8152) --- .../samplingCache/CruiseSamplingInternalCache.java | 98 ++++++++++++++++++---- 1 file changed, 81 insertions(+), 17 deletions(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/samplingCache/CruiseSamplingInternalCache.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/samplingCache/CruiseSamplingInternalCache.java index 858c3cf..9117f2d 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/samplingCache/CruiseSamplingInternalCache.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/samplingCache/CruiseSamplingInternalCache.java @@ -67,35 +67,34 @@ class CruiseSamplingInternalCache implements Closeable { return prefix + KEY_SEPARATOR + key; } - private final Map<String, MutableInt> data = new TreeMap<>(); + private final Map<String, SamplingData> data = new TreeMap<>(); - public int increment(String samplingKey) { + public int incrementObservationNb(String samplingKey) { Objects.requireNonNull(samplingKey); - MutableInt value = data.computeIfAbsent(samplingKey, s -> new MutableInt(0)); - value.increment(); + SamplingData value = data.computeIfAbsent(samplingKey, s -> new SamplingData()); + int obsNb = value.incrementObservationNb(); if (log.isDebugEnabled()) { - log.debug(samplingKey + " → " + value); + log.debug(samplingKey + " → " + obsNb); } - return value.intValue(); + return obsNb; } - public int decrement(String samplingKey) { + public int decrementObservationNb(String samplingKey) { Objects.requireNonNull(samplingKey); - MutableInt value = data.get(samplingKey); - value.decrement(); + SamplingData value = data.get(samplingKey); + int obsNb = value.decrementObservationNb(); if (log.isDebugEnabled()) { - log.debug(samplingKey + " → " + value); + log.debug(samplingKey + " → " + obsNb); } - return value.intValue(); + return obsNb; } - public Integer decrementIfExist(String samplingKey) { + public Integer decrementObservationNbIfExist(String samplingKey) { Objects.requireNonNull(samplingKey); Integer result = null; - MutableInt value = data.get(samplingKey); + SamplingData value = data.get(samplingKey); if (value != null) { - value.decrement(); - result = value.intValue(); + result = value.decrementObservationNb(); if (log.isDebugEnabled()) { log.debug(samplingKey + " → " + value); } @@ -103,6 +102,36 @@ class CruiseSamplingInternalCache implements Closeable { return result; } + public int incrementSamplingNb(String samplingKey) { + Objects.requireNonNull(samplingKey); + SamplingData value = data.computeIfAbsent(samplingKey, s -> new SamplingData()); + int samplingNb = value.incrementSamplingNb(); + if (log.isDebugEnabled()) { + log.debug(samplingKey + " → " + samplingNb); + } + return samplingNb; + } + + public int decrementSamplingNb(String samplingKey) { + Objects.requireNonNull(samplingKey); + SamplingData value = data.get(samplingKey); + int samplingNb = value.decrementSamplingNb(); + if (log.isDebugEnabled()) { + log.debug(samplingKey + " → " + samplingNb); + } + return samplingNb; + } + + public int getSamplingNb(String samplingKey) { + Objects.requireNonNull(samplingKey); + SamplingData value = data.get(samplingKey); + int samplingNb = value.getSamplingNb(); + if (log.isDebugEnabled()) { + log.debug(samplingKey + " → " + samplingNb); + } + return samplingNb; + } + @Override public void close() { data.clear(); @@ -128,10 +157,10 @@ class CruiseSamplingInternalCache implements Closeable { log.debug("Ask to remove all keys starting with: " + keyPrefix); } Set<String> result = new LinkedHashSet<>(); - Iterator<Map.Entry<String, MutableInt>> iterator = data.entrySet().iterator(); + Iterator<Map.Entry<String, SamplingData>> iterator = data.entrySet().iterator(); int keyPrefixLength = keyPrefix.length(); while (iterator.hasNext()) { - Map.Entry<String, MutableInt> entry = iterator.next(); + Map.Entry<String, SamplingData> entry = iterator.next(); String key = entry.getKey(); if (key.startsWith(keyPrefix)) { @@ -145,4 +174,39 @@ class CruiseSamplingInternalCache implements Closeable { return result; } + private class SamplingData { + + private MutableInt observationNb = new MutableInt(0); + private MutableInt samplingNb = new MutableInt(0); + + public int incrementObservationNb() { + observationNb.increment(); + return getObservationNb(); + } + + public int decrementObservationNb() { + observationNb.decrement(); + return getObservationNb(); + } + + public int getObservationNb() { + return observationNb.intValue(); + } + + public int incrementSamplingNb() { + samplingNb.increment(); + return getSamplingNb(); + } + + public int decrementSamplingNb() { + samplingNb.decrement(); + return getSamplingNb(); + } + + public int getSamplingNb() { + return samplingNb.intValue(); + } + + + } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.