Tony CHEMIT pushed to branch develop at ultreiaio / ird-t3 Commits: 676b259b by Tony CHEMIT at 2018-02-21T09:17:30+01:00 [N1][N2][N3] Permettre la sélection mutliple d'océans (See #260) N1 done - - - - - 29 changed files: - t3-actions/src/main/java/fr/ird/t3/actions/data/level0/ComputeSetDurationAndPositiveSetCountAction.java - t3-actions/src/main/java/fr/ird/t3/actions/data/level1/AbstractLevel1Action.java - t3-actions/src/main/java/fr/ird/t3/actions/data/level1/ComputeWeightOfCategoriesForSetAction.java - t3-actions/src/main/java/fr/ird/t3/actions/data/level1/ConvertSampleSetSpeciesFrequencyToWeightAction.java - t3-actions/src/main/java/fr/ird/t3/actions/data/level1/ConvertSetSpeciesFrequencyToWeightAction.java - t3-actions/src/main/java/fr/ird/t3/actions/data/level1/ExtrapolateSampleCountedAndMeasuredAction.java - t3-actions/src/main/java/fr/ird/t3/actions/data/level1/ExtrapolateSampleWeightToSetAction.java - t3-actions/src/main/java/fr/ird/t3/actions/data/level1/Level1Configuration.java - t3-actions/src/main/java/fr/ird/t3/actions/data/level1/RedistributeSampleNumberToSetAction.java - t3-actions/src/main/java/fr/ird/t3/actions/data/level1/StandardizeSampleMeasuresAction.java - t3-actions/src/test/java/fr/ird/t3/actions/data/level0/ComputeSetDurationAndPositiveSetCountActionResumeTest.java - t3-actions/src/test/java/fr/ird/t3/actions/data/level1/ComputeWeightOfCategoriesForSetActionResumeTest.java - t3-actions/src/test/java/fr/ird/t3/actions/data/level1/ConvertSampleSetSpeciesFrequencyToWeightActionResumeTest.java - t3-actions/src/test/java/fr/ird/t3/actions/data/level1/ConvertSetSpeciesFrequencyToWeightActionResumeTest.java - t3-actions/src/test/java/fr/ird/t3/actions/data/level1/ExtrapolateSampleWeightToSetActionResumeTest.java - t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/AbstractLevel1ConfigureAction.java - t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/AbstractLevel1RunAction.java - t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/ComputeWeightOfCategoriesForSetRunAction.java - t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/ConvertSampleSetSpeciesFrequencyToWeightRunAction.java - t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/ConvertSetSpeciesFrequencyToWeightRunAction.java - t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/ExtrapolateSampleCountedAndMeasuredRunAction.java - t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/ExtrapolateSampleWeightToSetRunAction.java - t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/ManageLevel1ConfigurationAction.java - t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/RedistributeSampleNumberToSetRunAction.java - t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/StandardizeSampleMeasuresRunAction.java - t3-web/src/main/resources/fr/ird/t3/web/actions/data/level1/ManageLevel1ConfigurationAction-validateLevel1Configuration-validation.xml - t3-web/src/main/resources/fr/ird/t3/web/actions/data/level1/ManageLevel1ConfigurationAction-validation.xml - t3-web/src/main/webapp/WEB-INF/jsp/data/level1/level1Configuration.jsp - t3-web/src/main/webapp/WEB-INF/jsp/data/level1/level1ConfigurationResume.jsp Changes: ===================================== t3-actions/src/main/java/fr/ird/t3/actions/data/level0/ComputeSetDurationAndPositiveSetCountAction.java ===================================== --- a/t3-actions/src/main/java/fr/ird/t3/actions/data/level0/ComputeSetDurationAndPositiveSetCountAction.java +++ b/t3-actions/src/main/java/fr/ird/t3/actions/data/level0/ComputeSetDurationAndPositiveSetCountAction.java @@ -59,9 +59,9 @@ public class ComputeSetDurationAndPositiveSetCountAction extends AbstractLevel0A @InjectDAO(entityType = SetDuration.class) private SetDurationTopiaDao setDurationDAO; /** Count of treated activities. */ - private int nbActivities; + int nbActivities; /** Count of positive activities found. */ - private int nbPositiveActivities; + int nbPositiveActivities; /** Count of set (sum(a.setCount) on each activity trip). */ private int nbSet; /** ===================================== t3-actions/src/main/java/fr/ird/t3/actions/data/level1/AbstractLevel1Action.java ===================================== --- a/t3-actions/src/main/java/fr/ird/t3/actions/data/level1/AbstractLevel1Action.java +++ b/t3-actions/src/main/java/fr/ird/t3/actions/data/level1/AbstractLevel1Action.java @@ -28,20 +28,17 @@ import fr.ird.t3.entities.data.N1ResultState; import fr.ird.t3.entities.data.Sample; import fr.ird.t3.entities.data.Trip; import fr.ird.t3.entities.data.TripTopiaDao; -import fr.ird.t3.entities.reference.Ocean; import fr.ird.t3.services.DecoratorService; import fr.ird.t3.services.ioc.InjectDAO; -import fr.ird.t3.services.ioc.InjectEntityById; +import org.apache.commons.collections.CollectionUtils; +import org.nuiton.topia.persistence.TopiaException; + import java.util.Collection; import java.util.Comparator; import java.util.List; import java.util.Set; import java.util.stream.Collectors; -import org.apache.commons.collections.CollectionUtils; -import org.nuiton.topia.persistence.TopiaException; - - import static org.nuiton.i18n.I18n.l; /** @@ -56,15 +53,12 @@ public abstract class AbstractLevel1Action extends T3Action<Level1Configuration> .<Trip, Integer>comparing(t -> t.getVessel().getCode()) .thenComparing(Comparator.comparing(Trip::getLandingDate)); - protected final Level1Step step; - - protected final Set<Level1Step> higherSteps; - @InjectDAO(entityType = Trip.class) protected TripTopiaDao tripDAO; - @InjectEntityById(entityType = Ocean.class) - protected Ocean ocean; + protected final Level1Step step; + + protected final Set<Level1Step> higherSteps; /** For a trip, selected samples to treat. */ protected Multimap<Trip, Sample> samplesByTrip; @@ -77,10 +71,6 @@ public abstract class AbstractLevel1Action extends T3Action<Level1Configuration> higherSteps = Level1Step.allAfter(step); } - public Ocean getOcean() { - return ocean; - } - public Multimap<Trip, Sample> getSamplesByTrip() { return samplesByTrip; } ===================================== t3-actions/src/main/java/fr/ird/t3/actions/data/level1/ComputeWeightOfCategoriesForSetAction.java ===================================== --- a/t3-actions/src/main/java/fr/ird/t3/actions/data/level1/ComputeWeightOfCategoriesForSetAction.java +++ b/t3-actions/src/main/java/fr/ird/t3/actions/data/level1/ComputeWeightOfCategoriesForSetAction.java @@ -27,9 +27,9 @@ import fr.ird.t3.entities.data.Trip; import fr.ird.t3.entities.data.WellSetAllSpecies; import fr.ird.t3.entities.data.WellSetAllSpeciesTopiaDao; import fr.ird.t3.services.ioc.InjectDAO; -import java.util.Collection; import org.nuiton.topia.persistence.TopiaException; +import java.util.Collection; import static org.nuiton.i18n.I18n.l; @@ -127,9 +127,7 @@ public class ComputeWeightOfCategoriesForSetAction extends AbstractLevel1Action // can not compute propMinus10Weight and propPlus10Weight - String message = - l(locale, "t3.level1.computeWeightOfCategoriesForSet.sample.noComputePropWeight" - ); + String message = l(locale, "t3.level1.computeWeightOfCategoriesForSet.sample.noComputePropWeight"); addInfoMessage(message); } else { ===================================== t3-actions/src/main/java/fr/ird/t3/actions/data/level1/ConvertSampleSetSpeciesFrequencyToWeightAction.java ===================================== --- a/t3-actions/src/main/java/fr/ird/t3/actions/data/level1/ConvertSampleSetSpeciesFrequencyToWeightAction.java +++ b/t3-actions/src/main/java/fr/ird/t3/actions/data/level1/ConvertSampleSetSpeciesFrequencyToWeightAction.java @@ -21,12 +21,10 @@ package fr.ird.t3.actions.data.level1; * #L% */ -import com.google.common.base.Preconditions; import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Multimap; -import com.google.common.collect.Sets; import fr.ird.t3.T3IOUtil; import fr.ird.t3.entities.CountAndWeight; import fr.ird.t3.entities.T3Suppliers; @@ -51,16 +49,17 @@ import fr.ird.t3.entities.reference.WeightCategorySample; import fr.ird.t3.entities.reference.WeightCategorySampleTopiaDao; import fr.ird.t3.services.DecoratorService; import fr.ird.t3.services.ioc.InjectDAO; +import org.nuiton.topia.persistence.TopiaException; +import org.nuiton.util.TimeLog; + import java.util.Collection; import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Set; -import org.nuiton.topia.persistence.TopiaException; -import org.nuiton.util.TimeLog; - import static org.nuiton.i18n.I18n.l; @@ -72,38 +71,27 @@ import static org.nuiton.i18n.I18n.l; */ public class ConvertSampleSetSpeciesFrequencyToWeightAction extends AbstractLevel1Action { + private final Map<String, List<WeightCategorySample>> weightCategoryCache; @InjectDAO(entityType = LengthWeightConversion.class) - protected LengthWeightConversionTopiaDao lengthWeightConversionDAO; - + private LengthWeightConversionTopiaDao lengthWeightConversionDAO; @InjectDAO(entityType = SampleSetSpeciesCatWeight.class) - protected SampleSetSpeciesCatWeightTopiaDao sampleSetSpeciesCatWeightDAO; - + private SampleSetSpeciesCatWeightTopiaDao sampleSetSpeciesCatWeightDAO; @InjectDAO(entityType = WeightCategorySample.class) - protected WeightCategorySampleTopiaDao weightCategorySampleDAO; - - protected LengthWeightConversionHelper conversionHelper; - - protected final Map<String, List<WeightCategorySample>> weightCategoryCache; + private WeightCategorySampleTopiaDao weightCategorySampleDAO; + private LengthWeightConversionHelper conversionHelper; protected List<WeightCategorySample> getWeightCategories(SampleSet sampleSet) throws TopiaException { - Activity activity = sampleSet.getActivity(); - Ocean ocean1 = activity.getOcean(); + Ocean ocean = activity.getOcean(); SchoolType schoolType = activity.getSchoolType(); - String key = ocean1.getTopiaId() + "-" + schoolType.getTopiaId(); + String key = ocean.getTopiaId() + "-" + schoolType.getTopiaId(); List<WeightCategorySample> result = weightCategoryCache.get(key); - if (result == null) { - - result = weightCategorySampleDAO.forOceanEquals(ocean1).findAll(); + result = weightCategorySampleDAO.forOceanEquals(ocean).findAll(); WeightCategories.sort(result); weightCategoryCache.put(key, result); } - - Preconditions.checkNotNull( - result, - "Could not find any weight categories for ocean " + ocean.getLabel1() ); - return result; + return Objects.requireNonNull(result, "Could not find any weight categories for ocean " + ocean.getLabel1()); } public ConvertSampleSetSpeciesFrequencyToWeightAction() { @@ -141,21 +129,18 @@ public class ConvertSampleSetSpeciesFrequencyToWeightAction extends AbstractLeve String tripStr = decorate(trip, DecoratorService.WITH_ID); - getTimeLog().log(s0, "treat trip " + tripStr); + getTimeLog().log(s0, String.format("treat trip %s", tripStr)); // flush transaction otherwise too much data in memory - flushTransaction("Flush transaction for " + tripStr); + flushTransaction(String.format("Flush transaction for %s", tripStr)); } return true; } - protected void doExecuteTrip(Trip trip, - Collection<Sample> samples) throws TopiaException { + protected void doExecuteTrip(Trip trip, Collection<Sample> samples) throws TopiaException { incrementsProgression(); - Set<Activity> tripActivities = Sets.newHashSet(); - // extrapolate for each sample set number to set for (Sample sample : samples) { @@ -173,16 +158,14 @@ public class ConvertSampleSetSpeciesFrequencyToWeightAction extends AbstractLeve // found a new activity to convert convertFrequenciesToCatWeight(sampleSet); - getTimeLog().log(s1, - "convertSampleSetSpeciesFrequencyToWeight for " + - tripActivities.size() + " sets."); + getTimeLog().log(s1, String.format("convertSampleSetSpeciesFrequencyToWeight for %d sets.", sample.sizeSampleSet())); } // mark sample as treated for this step of level 1 treatment markAsTreated(sample); - getTimeLog().log(s0, "treat sample " + sampleStr); + getTimeLog().log(s0, String.format("treat sample %s", sampleStr)); } // mar trip as treated for this level 1 step @@ -191,8 +174,7 @@ public class ConvertSampleSetSpeciesFrequencyToWeightAction extends AbstractLeve protected void convertFrequenciesToCatWeight(SampleSet sampleSet) throws TopiaException { - Collection<SampleSetSpeciesFrequency> frequencies = - sampleSet.getSampleSetSpeciesFrequency(); + Collection<SampleSetSpeciesFrequency> frequencies = sampleSet.getSampleSetSpeciesFrequency(); Activity activity = sampleSet.getActivity(); @@ -200,15 +182,12 @@ public class ConvertSampleSetSpeciesFrequencyToWeightAction extends AbstractLeve Ocean activityOcean = activity.getOcean(); // group frequencies by species - Multimap<Species, SampleSetSpeciesFrequency> frequenciesBySpecies = - SpeciesTopiaDao.groupBySpecies(frequencies); + Multimap<Species, SampleSetSpeciesFrequency> frequenciesBySpecies = SpeciesTopiaDao.groupBySpecies(frequencies); - Multimap<Species, Integer> lengthClassesBySpecies = - ArrayListMultimap.create(); + Multimap<Species, Integer> lengthClassesBySpecies = ArrayListMultimap.create(); // collect all length classes by species - SampleSetSpeciesFrequencyTopiaDao.collectLengthClasses( - frequenciesBySpecies, lengthClassesBySpecies); + SampleSetSpeciesFrequencyTopiaDao.collectLengthClasses(frequenciesBySpecies, lengthClassesBySpecies); // get all available weight categories List<WeightCategorySample> weightCategories = getWeightCategories(sampleSet); @@ -216,19 +195,11 @@ public class ConvertSampleSetSpeciesFrequencyToWeightAction extends AbstractLeve for (Species species : frequenciesBySpecies.keySet()) { // get conversion for species - LengthWeightConversion conversion = - conversionHelper.getConversions( - species, - activityOcean, - 0, - date - ); - - Collection<SampleSetSpeciesFrequency> frequenciesForSpecies = - frequenciesBySpecies.get(species); - - List<Integer> lengthClasses = - Lists.newArrayList(lengthClassesBySpecies.get(species)); + LengthWeightConversion conversion = conversionHelper.getConversions(species, activityOcean, 0, date); + + Collection<SampleSetSpeciesFrequency> frequenciesForSpecies = frequenciesBySpecies.get(species); + + List<Integer> lengthClasses = Lists.newArrayList(lengthClassesBySpecies.get(species)); Collections.sort(lengthClasses); Map<WeightCategorySample, CountAndWeight> countAndWeightsByCategories = @@ -238,9 +209,7 @@ public class ConvertSampleSetSpeciesFrequencyToWeightAction extends AbstractLeve frequenciesForSpecies, lengthClasses); - // now we can build for the given activity and species the entries - // in SetWeight - + // now we can build for the given activity and species the entries in SetWeight fill(sampleSet, species, countAndWeightsByCategories); } } @@ -250,17 +219,12 @@ public class ConvertSampleSetSpeciesFrequencyToWeightAction extends AbstractLeve Collection<SampleSetSpeciesFrequency> frequencies, List<Integer> lengthClasses) throws TopiaException { - Map<Integer, WeightCategorySample> weightCategorie = - conversionHelper.getWeightCategoriesDistribution( - conversion, - weightCategories, - lengthClasses); + Map<Integer, WeightCategorySample> weightCategoryMap = + conversionHelper.getWeightCategoriesDistribution(conversion, weightCategories, lengthClasses); Map<WeightCategorySample, CountAndWeight> result = new HashMap<>(); - T3IOUtil.fillMapWithDefaultValue(result, - weightCategorie.values(), - T3Suppliers.COUNT_AND_WEIGHT_DEFAULT_VALUE); + T3IOUtil.fillMapWithDefaultValue(result, weightCategoryMap.values(), T3Suppliers.COUNT_AND_WEIGHT_DEFAULT_VALUE); for (SampleSetSpeciesFrequency setSize : frequencies) { @@ -268,7 +232,7 @@ public class ConvertSampleSetSpeciesFrequencyToWeightAction extends AbstractLeve int lfLengthClass = setSize.getLfLengthClass(); // find the correct category for this length class - WeightCategorySample weightCategory = weightCategorie.get(lfLengthClass); + WeightCategorySample weightCategory = weightCategoryMap.get(lfLengthClass); CountAndWeight countAndWeight = result.get(weightCategory); @@ -276,8 +240,7 @@ public class ConvertSampleSetSpeciesFrequencyToWeightAction extends AbstractLeve countAndWeight.addCount(number); // convert to weight from lf length class - countAndWeight.addWeight(number * - conversion.computeWeightFromLFLengthClass(lfLengthClass)); + countAndWeight.addWeight(number * conversion.computeWeightFromLFLengthClass(lfLengthClass)); } @@ -295,7 +258,7 @@ public class ConvertSampleSetSpeciesFrequencyToWeightAction extends AbstractLeve CountAndWeight countAndWeight = e2.getValue(); float count = countAndWeight.getCount(); - // weight must be stored in tons but are in kilogramms + // weight must be stored in tons but are in kilograms Float weight = countAndWeight.getWeight() / 1000; SampleSetSpeciesCatWeight setSpeciesCatWeight = sampleSetSpeciesCatWeightDAO.create( ===================================== t3-actions/src/main/java/fr/ird/t3/actions/data/level1/ConvertSetSpeciesFrequencyToWeightAction.java ===================================== --- a/t3-actions/src/main/java/fr/ird/t3/actions/data/level1/ConvertSetSpeciesFrequencyToWeightAction.java +++ b/t3-actions/src/main/java/fr/ird/t3/actions/data/level1/ConvertSetSpeciesFrequencyToWeightAction.java @@ -8,19 +8,18 @@ * it under the terms of the GNU Affero 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 Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * #L% */ package fr.ird.t3.actions.data.level1; -import com.google.common.base.Preconditions; import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.Lists; import com.google.common.collect.Maps; @@ -49,16 +48,17 @@ import fr.ird.t3.entities.reference.WeightCategorySample; import fr.ird.t3.entities.reference.WeightCategorySampleTopiaDao; import fr.ird.t3.services.DecoratorService; import fr.ird.t3.services.ioc.InjectDAO; +import org.nuiton.topia.persistence.TopiaException; +import org.nuiton.util.TimeLog; + import java.util.Collection; import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Set; -import org.nuiton.topia.persistence.TopiaException; -import org.nuiton.util.TimeLog; - import static org.nuiton.i18n.I18n.l; @@ -70,48 +70,34 @@ import static org.nuiton.i18n.I18n.l; */ public class ConvertSetSpeciesFrequencyToWeightAction extends AbstractLevel1Action { + protected final Map<String, List<WeightCategorySample>> weightCategoryCache; @InjectDAO(entityType = LengthWeightConversion.class) protected LengthWeightConversionTopiaDao lengthWeightConversionDAO; - @InjectDAO(entityType = SetSpeciesCatWeight.class) protected SetSpeciesCatWeightTopiaDao setSpeciesCatWeightDAO; - @InjectDAO(entityType = WeightCategorySample.class) protected WeightCategorySampleTopiaDao weightCategorySampleDAO; - protected int nbTreatedSets; - protected float nbTreatedFishesInSamples; - protected float nbCreatedFishesInSetSpeciesFrequency; - protected LengthWeightConversionHelper conversionHelper; - protected final Map<String, List<WeightCategorySample>> weightCategoryCache; + public ConvertSetSpeciesFrequencyToWeightAction() { + super(Level1Step.CONVERT_SET_SPECIES_FREQUENCY_TO_WEIGHT); + weightCategoryCache = Maps.newTreeMap(); + } protected List<WeightCategorySample> getWeightCategories(Activity activity) throws TopiaException { - - Ocean ocean1 = activity.getOcean(); + Ocean ocean = activity.getOcean(); SchoolType schoolType = activity.getSchoolType(); - String key = ocean1.getTopiaId() + "-" + schoolType.getTopiaId(); + String key = ocean.getTopiaId() + "-" + schoolType.getTopiaId(); List<WeightCategorySample> result = weightCategoryCache.get(key); - if (result == null) { - - result = weightCategorySampleDAO.findAllByOcean(ocean1); + result = weightCategorySampleDAO.forOceanEquals(ocean).findAll(); WeightCategories.sort(result); weightCategoryCache.put(key, result); } - - Preconditions.checkNotNull( - result, - "Could not find any weight categories for ocean " + ocean.getLabel1()); - return result; - } - - public ConvertSetSpeciesFrequencyToWeightAction() { - super(Level1Step.CONVERT_SET_SPECIES_FREQUENCY_TO_WEIGHT); - weightCategoryCache = Maps.newTreeMap(); + return Objects.requireNonNull(result, "Could not find any weight categories for ocean " + ocean.getLabel1()); } public int getNbTreatedSets() { @@ -140,7 +126,7 @@ public class ConvertSetSpeciesFrequencyToWeightAction extends AbstractLevel1Acti } @Override - protected boolean executeAction() throws Exception { + protected boolean executeAction() { Set<Trip> trips = samplesByTrip.keySet(); setNbSteps(samplesByTrip.size() + trips.size()); @@ -164,8 +150,7 @@ public class ConvertSetSpeciesFrequencyToWeightAction extends AbstractLevel1Acti return true; } - protected void doExecuteTrip(Trip trip, - Collection<Sample> samples) throws TopiaException { + protected void doExecuteTrip(Trip trip, Collection<Sample> samples) throws TopiaException { incrementsProgression(); @@ -184,8 +169,7 @@ public class ConvertSetSpeciesFrequencyToWeightAction extends AbstractLevel1Acti float nb = sample.getTotalStandardiseSampleSpeciesFrequencyNumber(); addInfoMessage( - l(locale, "t3.level1.convertSetSpeciesFrequencyToWeight.sample.nbFishes", - sampleStr, nb)); + l(locale, "t3.level1.convertSetSpeciesFrequencyToWeight.sample.nbFishes", sampleStr, nb)); nbTreatedFishesInSamples += nb; for (SampleSet sampleSet : sample.getSampleSet()) { @@ -200,17 +184,14 @@ public class ConvertSetSpeciesFrequencyToWeightAction extends AbstractLevel1Acti // found a new activity to convert convertFrequenciesToCatWeight(activity); - getTimeLog().log( - s1, - "convertSetSpeciesFrequencyToWeight for " + - tripActivities.size() + " sets."); + getTimeLog().log(s1, String.format("convertSetSpeciesFrequencyToWeight for %d sets.", tripActivities.size())); } } // mark sample as treated for this step of level 1 treatment markAsTreated(sample); - getTimeLog().log(s0, "treat sample " + sampleStr); + getTimeLog().log(s0, String.format("treat sample %s", sampleStr)); } nbTreatedSets += tripActivities.size(); @@ -226,50 +207,32 @@ public class ConvertSetSpeciesFrequencyToWeightAction extends AbstractLevel1Acti Date date = activity.getDate(); Ocean activityOcean = activity.getOcean(); - // group frequencies by species Multimap<Species, SetSpeciesFrequency> setSpeciesFrequencyBySpecies = SpeciesTopiaDao.groupBySpecies(frequencies); - Multimap<Species, Integer> lengthClassesBySpecies = - ArrayListMultimap.create(); + Multimap<Species, Integer> lengthClassesBySpecies = ArrayListMultimap.create(); // collect all length classes by species - SetSpeciesFrequencyTopiaDao.collectLengthClasses( - setSpeciesFrequencyBySpecies, lengthClassesBySpecies); + SetSpeciesFrequencyTopiaDao.collectLengthClasses(setSpeciesFrequencyBySpecies, lengthClassesBySpecies); // get all available weight categories - List<WeightCategorySample> weightCategories = - getWeightCategories(activity); + List<WeightCategorySample> weightCategories = getWeightCategories(activity); for (Species species : setSpeciesFrequencyBySpecies.keySet()) { // get conversion for species - LengthWeightConversion conversion = - conversionHelper.getConversions( - species, - activityOcean, - 0, - date - ); - - Collection<SetSpeciesFrequency> setSizes = - setSpeciesFrequencyBySpecies.get(species); - - List<Integer> lengthClasses = - Lists.newArrayList(lengthClassesBySpecies.get(species)); + LengthWeightConversion conversion = conversionHelper.getConversions(species, activityOcean, 0, date); + + Collection<SetSpeciesFrequency> setSizes = setSpeciesFrequencyBySpecies.get(species); + + List<Integer> lengthClasses = Lists.newArrayList(lengthClassesBySpecies.get(species)); Collections.sort(lengthClasses); Map<WeightCategorySample, CountAndWeight> countAndWeightsByCategories = - convertForSpecies( - weightCategories, - conversion, - setSizes, - lengthClasses); - - // now we can build for the given activity and species the entries - // in SetWeight + convertForSpecies(weightCategories, conversion, setSizes, lengthClasses); + // now we can build for the given activity and species the entries in SetWeight fill(activity, species, countAndWeightsByCategories); } } @@ -279,7 +242,7 @@ public class ConvertSetSpeciesFrequencyToWeightAction extends AbstractLevel1Acti Collection<SetSpeciesFrequency> setSizes, List<Integer> lengthClasses) throws TopiaException { - Map<Integer, WeightCategorySample> weightCategorie = conversionHelper.getWeightCategoriesDistribution( + Map<Integer, WeightCategorySample> weightCategoryMap = conversionHelper.getWeightCategoriesDistribution( conversion, weightCategories, lengthClasses @@ -287,9 +250,7 @@ public class ConvertSetSpeciesFrequencyToWeightAction extends AbstractLevel1Acti Map<WeightCategorySample, CountAndWeight> result = new HashMap<>(); - T3IOUtil.fillMapWithDefaultValue(result, - weightCategorie.values(), - T3Suppliers.COUNT_AND_WEIGHT_DEFAULT_VALUE); + T3IOUtil.fillMapWithDefaultValue(result, weightCategoryMap.values(), T3Suppliers.COUNT_AND_WEIGHT_DEFAULT_VALUE); for (SetSpeciesFrequency setSize : setSizes) { @@ -297,8 +258,7 @@ public class ConvertSetSpeciesFrequencyToWeightAction extends AbstractLevel1Acti int lfLengthClass = setSize.getLfLengthClass(); // find the correct category for this length class - WeightCategorySample weightCategory = - weightCategorie.get(lfLengthClass); + WeightCategorySample weightCategory = weightCategoryMap.get(lfLengthClass); CountAndWeight countAndWeight = result.get(weightCategory); @@ -313,12 +273,9 @@ public class ConvertSetSpeciesFrequencyToWeightAction extends AbstractLevel1Acti return result; } - private void fill(Activity activity, - Species species, - Map<WeightCategorySample, CountAndWeight> countAndWeightsByCategories) throws TopiaException { + private void fill(Activity activity, Species species, Map<WeightCategorySample, CountAndWeight> countAndWeightsByCategories) throws TopiaException { - for (Map.Entry<WeightCategorySample, CountAndWeight> e2 : - countAndWeightsByCategories.entrySet()) { + for (Map.Entry<WeightCategorySample, CountAndWeight> e2 : countAndWeightsByCategories.entrySet()) { WeightCategorySample categorySample = e2.getKey(); CountAndWeight countAndWeight = e2.getValue(); ===================================== t3-actions/src/main/java/fr/ird/t3/actions/data/level1/ExtrapolateSampleCountedAndMeasuredAction.java ===================================== --- a/t3-actions/src/main/java/fr/ird/t3/actions/data/level1/ExtrapolateSampleCountedAndMeasuredAction.java +++ b/t3-actions/src/main/java/fr/ird/t3/actions/data/level1/ExtrapolateSampleCountedAndMeasuredAction.java @@ -28,11 +28,11 @@ import fr.ird.t3.entities.data.SampleSpecies; import fr.ird.t3.entities.data.Trip; import fr.ird.t3.entities.reference.Species; import fr.ird.t3.entities.reference.SpeciesTopiaDao; + import java.util.Collection; import java.util.List; import java.util.Map; - import static org.nuiton.i18n.I18n.l; /** @@ -50,9 +50,7 @@ public class ExtrapolateSampleCountedAndMeasuredAction extends AbstractLevel1Act } public List<SpeciesCountAndMeasuredModel> getResultSpeciesModel() { - List<SpeciesCountAndMeasuredModel> result = - getResultAsList(RESULT_SPECIES_MODEL, SpeciesCountAndMeasuredModel.class); - return result; + return getResultAsList(RESULT_SPECIES_MODEL, SpeciesCountAndMeasuredModel.class); } public SpeciesCountAndMeasuredModel getTotalSpeciesModel() { @@ -81,7 +79,7 @@ public class ExtrapolateSampleCountedAndMeasuredAction extends AbstractLevel1Act } @Override - protected boolean executeAction() throws Exception { + protected boolean executeAction() { Map<Species, SpeciesCountAndMeasuredModel> model = Maps.newHashMap(); @@ -110,8 +108,7 @@ public class ExtrapolateSampleCountedAndMeasuredAction extends AbstractLevel1Act return true; } - protected void doExecuteSample(Sample sample, - Map<Species, SpeciesCountAndMeasuredModel> model) { + protected void doExecuteSample(Sample sample, Map<Species, SpeciesCountAndMeasuredModel> model) { incrementsProgression(); @@ -120,7 +117,6 @@ public class ExtrapolateSampleCountedAndMeasuredAction extends AbstractLevel1Act sample.getSampleNumber())); if (sample.isSampleSpeciesEmpty()) { - // no sample species, nothing to do... return; } @@ -145,9 +141,7 @@ public class ExtrapolateSampleCountedAndMeasuredAction extends AbstractLevel1Act float measuredCount = 0; for (SampleSpecies aSampleSpecies : sampleSpecies) { totalCount += aSampleSpecies.getTotalCount(); - - measuredCount += - aSampleSpecies.getTotalSampleSpeciesFrequencyNumber(); + measuredCount += aSampleSpecies.getTotalSampleSpeciesFrequencyNumber(); } float rf0 = totalCount / measuredCount; @@ -161,7 +155,6 @@ public class ExtrapolateSampleCountedAndMeasuredAction extends AbstractLevel1Act // apply rf0 on each sample for (SampleSpecies sampleSpecie : sampleSpecies) { - sampleSpecie.applyRf0(rf0); } } ===================================== t3-actions/src/main/java/fr/ird/t3/actions/data/level1/ExtrapolateSampleWeightToSetAction.java ===================================== --- a/t3-actions/src/main/java/fr/ird/t3/actions/data/level1/ExtrapolateSampleWeightToSetAction.java +++ b/t3-actions/src/main/java/fr/ird/t3/actions/data/level1/ExtrapolateSampleWeightToSetAction.java @@ -20,9 +20,7 @@ */ package fr.ird.t3.actions.data.level1; -import com.google.common.collect.Maps; import com.google.common.collect.Multimap; -import com.google.common.collect.Sets; import fr.ird.t3.entities.data.Activity; import fr.ird.t3.entities.data.RfUsageStatus; import fr.ird.t3.entities.data.Sample; @@ -45,14 +43,16 @@ import fr.ird.t3.entities.reference.WeightCategoryWellPlan; import fr.ird.t3.entities.reference.WeightCategoryWellPlanTopiaDao; import fr.ird.t3.services.DecoratorService; import fr.ird.t3.services.ioc.InjectDAO; -import java.util.Collection; -import java.util.Map; -import java.util.Set; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.TopiaException; import org.nuiton.util.TimeLog; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; import static org.nuiton.i18n.I18n.l; @@ -125,7 +125,7 @@ public class ExtrapolateSampleWeightToSetAction extends AbstractLevel1Action { } @Override - protected boolean executeAction() throws Exception { + protected boolean executeAction() { Set<Trip> trips = samplesByTrip.keySet(); setNbSteps(samplesByTrip.size() + trips.size()); @@ -153,11 +153,11 @@ public class ExtrapolateSampleWeightToSetAction extends AbstractLevel1Action { incrementsProgression(); + //FIXME I replace ocean by trip.departureHarbour.ocean, check this is ok (See #260) // get the length class +10kg limit - Map<Species, Integer> limitLengthClassBySpecie = - getThredHoldPlus10ForSpecies(trip, samples, ocean); + Map<Species, Integer> limitLengthClassBySpecie = getThredHoldPlus10ForSpecies(trip, samples, trip.getDepartureHarbour().getOcean()); - Set<Activity> tripActivities = Sets.newHashSet(); + Set<Activity> tripActivities = new HashSet<>(); // extrapolate for each sample set number to set for (Sample sample : samples) { @@ -187,11 +187,7 @@ public class ExtrapolateSampleWeightToSetAction extends AbstractLevel1Action { activity.clearSetSpeciesCatWeight(); } - doExecuteSampleWell( - activity, - sampleSet, - sampleStr, - limitLengthClassBySpecie); + doExecuteSampleWell(activity, sampleSet, sampleStr, limitLengthClassBySpecie); } @@ -244,11 +240,7 @@ public class ExtrapolateSampleWeightToSetAction extends AbstractLevel1Action { sampleSet.setRfTot(rfContext.getRfTot()); // fill the SetSpecieFrequency table - fillSetSpeciesFrequency( - activity, - limitLengthClassBySpecie, - sampleSet, - rfContext); + fillSetSpeciesFrequency(activity, limitLengthClassBySpecie, sampleSet, rfContext); } @@ -330,9 +322,7 @@ public class ExtrapolateSampleWeightToSetAction extends AbstractLevel1Action { * @throws TopiaException if any pb while finding convertors * @see SampleWellSampleWeight */ - protected SampleWellSetWeight computeSampleWellSetWeight( - String sampleWellStr, - SampleSet sampleSet) throws TopiaException { + protected SampleWellSetWeight computeSampleWellSetWeight(String sampleWellStr, SampleSet sampleSet) throws TopiaException { float pondt = sampleSet.getWeightedWeight(); Float pondm = sampleSet.getWeightedWeightMinus10(); @@ -489,11 +479,7 @@ public class ExtrapolateSampleWeightToSetAction extends AbstractLevel1Action { return rfContext; } - public void fillSetSpeciesFrequency( - Activity activity, - Map<Species, Integer> limitLengthClassBySpecies, - SampleSet sampleSet, - RFContext rfContext) throws TopiaException { + public void fillSetSpeciesFrequency(Activity activity, Map<Species, Integer> limitLengthClassBySpecies, SampleSet sampleSet, RFContext rfContext) throws TopiaException { // group sample set frequencies by species Multimap<Species, SampleSetSpeciesFrequency> sampleSetSpeciesFrequencyBySpecies = @@ -542,18 +528,15 @@ public class ExtrapolateSampleWeightToSetAction extends AbstractLevel1Action { * @param trip the trip where samples are done * @param samples the sample to scan * @param ocean ocean where trip happens - * @return the universe of legnth class limits computed indexed by species + * @return the universe of length class limits computed indexed by species * @throws TopiaException if any db problems while requesting */ - public Map<Species, Integer> getThredHoldPlus10ForSpecies(Trip trip, - Collection<Sample> samples, - Ocean ocean) throws TopiaException { + public Map<Species, Integer> getThredHoldPlus10ForSpecies(Trip trip, Collection<Sample> samples, Ocean ocean) throws TopiaException { Set<Species> species = SpeciesTopiaDao.getAllSpeciesFromSampleSpecies(samples); - // for each of those species, found the length class wich matches a - // weight > 10Kg - Map<Species, Integer> result = Maps.newHashMap(); + // for each of those species, found the length class which matches a weight > 10Kg + Map<Species, Integer> result = new HashMap<>(); for (Species specie : species) { LengthWeightConversion conversion = conversionHelper.getConversions( @@ -577,8 +560,7 @@ public class ExtrapolateSampleWeightToSetAction extends AbstractLevel1Action { if (log.isDebugEnabled()) { for (Map.Entry<Species, Integer> entry : result.entrySet()) { - log.debug("Species " + entry.getKey().getCode() + - " - limit 10Kg length class : " + entry.getValue()); + log.debug(String.format("Species %d - limit 10Kg length class : %d", entry.getKey().getCode(), entry.getValue())); } } ===================================== t3-actions/src/main/java/fr/ird/t3/actions/data/level1/Level1Configuration.java ===================================== --- a/t3-actions/src/main/java/fr/ird/t3/actions/data/level1/Level1Configuration.java +++ b/t3-actions/src/main/java/fr/ird/t3/actions/data/level1/Level1Configuration.java @@ -20,9 +20,7 @@ */ package fr.ird.t3.actions.data.level1; -import com.google.common.base.Preconditions; import com.google.common.base.Predicate; -import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Multimap; @@ -44,13 +42,13 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; -import java.util.Arrays; import java.util.Collection; import java.util.EnumSet; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Set; +import java.util.stream.Collectors; import static org.nuiton.i18n.I18n.l; @@ -84,11 +82,12 @@ public class Level1Configuration implements T3ActionConfiguration { /** Ids of fleet countries to use. */ protected List<String> fleetIds; + /** Ids of ocean to use. */ + protected List<String> oceanIds; + /** Ids of trips to use. */ protected Multimap<String, String> sampleIdsByTripId; - /** Id of selected ocean. */ - protected String oceanId; /** begin date to use. */ protected T3Date beginDate; @@ -150,12 +149,12 @@ public class Level1Configuration implements T3ActionConfiguration { getExecutedSteps().add(step); } - public String getOceanId() { - return oceanId; + public List<String> getOceanIds() { + return oceanIds; } - public void setOceanId(String oceanId) { - this.oceanId = oceanId; + public void setOceanIds(List<String> oceanIds) { + this.oceanIds = oceanIds; } public Multimap<String, String> getSampleIdsByTripId() { @@ -306,32 +305,23 @@ public class Level1Configuration implements T3ActionConfiguration { Multimap<String, String> result = TreeMultimap.create(); - if (oceanId == null) { + if (oceanIds == null) { // no matching trips (so no matching trip return result; } - Preconditions.checkNotNull(oceanId); - - Ocean ocean = - Iterables.find(oceans, T3Predicates.equalsTopiaEntity(oceanId)); - Preconditions.checkNotNull(ocean); + Set<Ocean> usableOceans = oceans.stream().filter(o -> oceanIds.contains(o.getTopiaId())).collect(Collectors.toSet()); - Predicate<Trip> tripPredicate = - T3Predicates.tripUsingOcean(Arrays.asList(ocean)); + Predicate<Trip> tripPredicate = T3Predicates.tripUsingOcean(usableOceans); - Decorator<Trip> tripDecorator = - decoratorService.getDecorator(locale, Trip.class, DecoratorService.WITH_ID); + Decorator<Trip> tripDecorator = decoratorService.getDecorator(locale, Trip.class, DecoratorService.WITH_ID); - Decorator<Sample> sampleDecorator = - decoratorService.getDecorator(locale, Sample.class, DecoratorService.WITH_ID); + Decorator<Sample> sampleDecorator = decoratorService.getDecorator(locale, Sample.class, DecoratorService.WITH_ID); - String sampleWellEmptyReason = - l(locale, "t3.level1.notSelectedSample.sampleWellEmpty"); + String sampleWellEmptyReason = l(locale, "t3.level1.notSelectedSample.sampleWellEmpty"); - String sampleNoMatchingActivityReason = - l(locale, "t3.level1.notSelectedSample.sampleNoMatchingActivity"); + String sampleNoMatchingActivityReason = l(locale, "t3.level1.notSelectedSample.sampleNoMatchingActivity"); Decorator<SampleQuality> sampleQualityDecorator = decoratorService.getDecorator(locale, SampleQuality.class, null); Decorator<SampleType> sampleTypeDecorator = decoratorService.getDecorator(locale, SampleType.class, null); ===================================== t3-actions/src/main/java/fr/ird/t3/actions/data/level1/RedistributeSampleNumberToSetAction.java ===================================== --- a/t3-actions/src/main/java/fr/ird/t3/actions/data/level1/RedistributeSampleNumberToSetAction.java +++ b/t3-actions/src/main/java/fr/ird/t3/actions/data/level1/RedistributeSampleNumberToSetAction.java @@ -31,11 +31,11 @@ import fr.ird.t3.entities.data.Trip; import fr.ird.t3.entities.reference.Species; import fr.ird.t3.entities.reference.SpeciesTopiaDao; import fr.ird.t3.services.ioc.InjectDAO; +import org.nuiton.topia.persistence.TopiaException; + import java.util.Collection; import java.util.Map; import java.util.Set; -import org.nuiton.topia.persistence.TopiaException; - import static org.nuiton.i18n.I18n.l; @@ -55,9 +55,7 @@ public class RedistributeSampleNumberToSetAction extends AbstractLevel1Action { } public Set<Species> getSpeciesOfSample(Sample sample) { - Set<Species> result = SpeciesTopiaDao.getAllSpecies( - sample.getStandardiseSampleSpecies()); - return result; + return SpeciesTopiaDao.getAllSpecies(sample.getStandardiseSampleSpecies()); } public SpeciesModel getResultSpeciesModel(Sample sample, Species species) { @@ -88,7 +86,7 @@ public class RedistributeSampleNumberToSetAction extends AbstractLevel1Action { } @Override - protected boolean executeAction() throws Exception { + protected boolean executeAction() { setNbSteps(2 * samplesByTrip.size()); @@ -125,8 +123,8 @@ public class RedistributeSampleNumberToSetAction extends AbstractLevel1Action { } incrementsProgression(); - long sampleTotalNumber = 0l; - long sampleWellTotalNumber = 0l; + long sampleTotalNumber = 0L; + long sampleWellTotalNumber = 0L; for (StandardiseSampleSpecies sampleSpecies : sample.getStandardiseSampleSpecies()) { ===================================== t3-actions/src/main/java/fr/ird/t3/actions/data/level1/StandardizeSampleMeasuresAction.java ===================================== --- a/t3-actions/src/main/java/fr/ird/t3/actions/data/level1/StandardizeSampleMeasuresAction.java +++ b/t3-actions/src/main/java/fr/ird/t3/actions/data/level1/StandardizeSampleMeasuresAction.java @@ -8,12 +8,12 @@ * it under the terms of the GNU Affero 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 Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * #L% @@ -36,14 +36,15 @@ import fr.ird.t3.entities.reference.SpeciesLengthStep; import fr.ird.t3.entities.reference.SpeciesLengthStepTopiaDao; import fr.ird.t3.entities.reference.SpeciesTopiaDao; import fr.ird.t3.services.ioc.InjectDAO; -import java.util.Collection; -import java.util.List; -import java.util.Map; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.TopiaException; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; import static org.nuiton.i18n.I18n.l; @@ -61,29 +62,22 @@ import static org.nuiton.i18n.I18n.l; */ public class StandardizeSampleMeasuresAction extends AbstractLevel1Action { + public static final String RESULT_SPECIES_MODEL = "speciesModel"; /** Logger. */ - private static final Log log = - LogFactory.getLog(StandardizeSampleMeasuresAction.class); - + private static final Log log = LogFactory.getLog(StandardizeSampleMeasuresAction.class); @InjectDAO(entityType = StandardiseSampleSpecies.class) - protected StandardiseSampleSpeciesTopiaDao standardiseSampleSpeciesDAO; - + private StandardiseSampleSpeciesTopiaDao standardiseSampleSpeciesDAO; @InjectDAO(entityType = StandardiseSampleSpeciesFrequency.class) - protected StandardiseSampleSpeciesFrequencyTopiaDao standardiseSampleSpeciesFrequencyDAO; - + private StandardiseSampleSpeciesFrequencyTopiaDao standardiseSampleSpeciesFrequencyDAO; @InjectDAO(entityType = SpeciesLengthStep.class) - protected SpeciesLengthStepTopiaDao speciesLengthStepDAO; - - public static final String RESULT_SPECIES_MODEL = "speciesModel"; + private SpeciesLengthStepTopiaDao speciesLengthStepDAO; public StandardizeSampleMeasuresAction() { super(Level1Step.STANDARDIZE_SAMPLE_MEASURE); } public List<StandardizeSpeciesCountModel> getResultSpeciesModel() { - List<StandardizeSpeciesCountModel> result = - getResultAsList(RESULT_SPECIES_MODEL, StandardizeSpeciesCountModel.class); - return result; + return getResultAsList(RESULT_SPECIES_MODEL, StandardizeSpeciesCountModel.class); } public StandardizeSpeciesCountModel getTotalSpeciesModel() { @@ -101,7 +95,7 @@ public class StandardizeSampleMeasuresAction extends AbstractLevel1Action { } @Override - protected boolean executeAction() throws Exception { + protected boolean executeAction() { Map<Species, StandardizeSpeciesCountModel> model = Maps.newHashMap(); @@ -114,11 +108,7 @@ public class StandardizeSampleMeasuresAction extends AbstractLevel1Action { for (Sample sample : samples) { - doExecuteSample( - trip, - sample, - model - ); + doExecuteSample(trip, sample, model); // mark sample as treated for this step of level 1 treatment markAsTreated(sample); @@ -135,23 +125,20 @@ public class StandardizeSampleMeasuresAction extends AbstractLevel1Action { return true; } - protected void doExecuteSample(Trip trip, - Sample sample, - Map<Species, StandardizeSpeciesCountModel> model) throws TopiaException { + private void doExecuteSample(Trip trip, Sample sample, Map<Species, StandardizeSpeciesCountModel> model) throws TopiaException { incrementsProgression(); String tripStr = decorate(trip); - addInfoMessage(l(locale, "t3.level1.standardizeSampleMeasures.treat.sample", - tripStr, sample.getSampleNumber())); + addInfoMessage(l(locale, "t3.level1.standardizeSampleMeasures.treat.sample", tripStr, sample.getSampleNumber())); if (!sample.isStandardiseSampleSpeciesEmpty()) { // was already computed, remove previous data addInfoMessage( l(locale, "t3.level1.standardizeSampleMeasures.treat.remove.previously.treated.data", - sample.sizeStandardiseSampleSpecies())); + sample.sizeStandardiseSampleSpecies())); sample.clearStandardiseSampleSpecies(); } @@ -162,8 +149,7 @@ public class StandardizeSampleMeasuresAction extends AbstractLevel1Action { } // split sample species by species - Multimap<Species, SampleSpecies> sampleSpeciesBySpecies = - SpeciesTopiaDao.groupBySpecies(sample.getSampleSpecies()); + Multimap<Species, SampleSpecies> sampleSpeciesBySpecies = SpeciesTopiaDao.groupBySpecies(sample.getSampleSpecies()); for (Species species : sampleSpeciesBySpecies.keySet()) { @@ -175,22 +161,14 @@ public class StandardizeSampleMeasuresAction extends AbstractLevel1Action { } // get sample species for this species - Collection<SampleSpecies> sampleSpecies = - sampleSpeciesBySpecies.get(species); + Collection<SampleSpecies> sampleSpecies = sampleSpeciesBySpecies.get(species); - // obtain once for all the length classes for this species on - // this ocean + //FIXME I replace ocean by trip.departureHarbour.ocean, check this is ok (See #260) + // obtain once for all the length classes for this species on this ocean Multimap<Integer, SpeciesLengthStep> proportionsForSpecies = - speciesLengthStepDAO.findAllByOceanAndSpeciesGroupByLd1Class( - ocean, - species); - - doExecuteSampleSpecies(species, - sampleSpecies, - sample, - speciesCountModel, - proportionsForSpecies - ); + speciesLengthStepDAO.findAllByOceanAndSpeciesGroupByLd1Class(trip.getDepartureHarbour().getOcean(), species); + + doExecuteSampleSpecies(species, sampleSpecies, sample, speciesCountModel, proportionsForSpecies); } } @@ -204,23 +182,16 @@ public class StandardizeSampleMeasuresAction extends AbstractLevel1Action { // each species will give exactly one entry in StandardiseSampleSpecies table StandardiseSampleSpecies standardiseSampleSpecies = - standardiseSampleSpeciesDAO.create( - StandardiseSampleSpecies.PROPERTY_SPECIES, species - ); + standardiseSampleSpeciesDAO.create(StandardiseSampleSpecies.PROPERTY_SPECIES, species); - // contains for each lflengthclass, the number of fishes + // contains for each lfLengthClass, the number of fishes Map<Integer, Float> frequencies = Maps.newTreeMap(); float measuredCount = 0; float totalCount = 0; for (SampleSpecies sampleSpecie : sampleSpecies) { measuredCount += sampleSpecie.getMeasuredCount(); totalCount += sampleSpecie.getTotalCount(); - - collectSampleSpeciesFrequencies( - proportionsForSpecies, - sampleSpecie, - frequencies - ); + collectSampleSpeciesFrequencies(proportionsForSpecies, sampleSpecie, frequencies); } // set the total measured count computed @@ -238,13 +209,12 @@ public class StandardizeSampleMeasuresAction extends AbstractLevel1Action { // must recode length classes - finalFrequencies = Maps.newTreeMap(); + finalFrequencies = new TreeMap<>(); for (Map.Entry<Integer, Float> ee : frequencies.entrySet()) { Integer lfLengthClass = ee.getKey(); Float numberExtrapolated = ee.getValue(); - int finalLengthClass = lfLengthClass - - lfLengthClass % lfLengthClassStep; + int finalLengthClass = lfLengthClass - lfLengthClass % lfLengthClassStep; Float finalNumber = finalFrequencies.get(finalLengthClass); if (finalNumber == null) { @@ -277,10 +247,7 @@ public class StandardizeSampleMeasuresAction extends AbstractLevel1Action { // attach to sample new data sample.addStandardiseSampleSpecies(standardiseSampleSpecies); addInfoMessage(l(locale, "t3.level1.standardizeSampleMeasures.treat.resume.for.species", - decorate(species), - oldCOunt, - newCount - )); + decorate(species), oldCOunt, newCount)); } protected void collectSampleSpeciesFrequencies(Multimap<Integer, SpeciesLengthStep> proportionsForSpecies, @@ -304,16 +271,14 @@ public class StandardizeSampleMeasuresAction extends AbstractLevel1Action { // ld1 length class is in cm in sample, but in milimeter in SpeciesLengthStep table int ld1LengthClass = sampleSpeciesFrequency.getLengthClass() * 10; - Collection<SpeciesLengthStep> proportions = - proportionsForSpecies.get(ld1LengthClass); + Collection<SpeciesLengthStep> proportions = proportionsForSpecies.get(ld1LengthClass); if (CollectionUtils.isEmpty(proportions)) { //TODO This should be an error ? String message = l(locale, "t3.level1.standardizeSampleMeasures.warning.lfConversion.not.found", - decorate(ocean), - decorate(species), - ld1LengthClass); + decorate(species), + ld1LengthClass); if (log.isWarnEnabled()) { log.warn(message); } @@ -336,14 +301,8 @@ public class StandardizeSampleMeasuresAction extends AbstractLevel1Action { // just add lf frequencies - for (SampleSpeciesFrequency sampleSpecyFrequency : - sampleSpecies.getSampleSpeciesFrequency()) { - - addLFFrequency( - sampleSpecyFrequency.getLengthClass(), - sampleSpecyFrequency.getNumberExtrapolated(), - frequencies - ); + for (SampleSpeciesFrequency sampleSpecyFrequency : sampleSpecies.getSampleSpeciesFrequency()) { + addLFFrequency(sampleSpecyFrequency.getLengthClass(), sampleSpecyFrequency.getNumberExtrapolated(), frequencies); } } } @@ -352,12 +311,7 @@ public class StandardizeSampleMeasuresAction extends AbstractLevel1Action { float number, Map<Integer, Float> frequencies) throws TopiaException { - Float standardiseSampleSpecieFrequency = frequencies.get(lengthClass); - if (standardiseSampleSpecieFrequency == null) { - - standardiseSampleSpecieFrequency = 0.f; - frequencies.put(lengthClass, standardiseSampleSpecieFrequency); - } + Float standardiseSampleSpecieFrequency = frequencies.computeIfAbsent(lengthClass, k -> 0.f); standardiseSampleSpecieFrequency += number; ===================================== t3-actions/src/test/java/fr/ird/t3/actions/data/level0/ComputeSetDurationAndPositiveSetCountActionResumeTest.java ===================================== --- a/t3-actions/src/test/java/fr/ird/t3/actions/data/level0/ComputeSetDurationAndPositiveSetCountActionResumeTest.java +++ b/t3-actions/src/test/java/fr/ird/t3/actions/data/level0/ComputeSetDurationAndPositiveSetCountActionResumeTest.java @@ -60,13 +60,11 @@ public class ComputeSetDurationAndPositiveSetCountActionResumeTest extends Abstr Map<String, Object> parameters = super.createTemplateParameters(); - Map<String, String> vesselSimpleTypes = new TreeMap<String, String>(); - putInMap(vesselSimpleTypes, - fixtures.vesselSimpleTypeCanneur(), - fixtures.vesselSimpleTypeSenneur()); + Map<String, String> vesselSimpleTypes = new TreeMap<>(); + putInMap(vesselSimpleTypes, fixtures.vesselSimpleTypeCanneur(), fixtures.vesselSimpleTypeSenneur()); parameters.put("vesselSimpleTypes", vesselSimpleTypes); - Map<String, String> fleets = new TreeMap<String, String>(); + Map<String, String> fleets = new TreeMap<>(); putInMap(fleets, fixtures.frenchCountry()); parameters.put("fleets", fleets); ===================================== t3-actions/src/test/java/fr/ird/t3/actions/data/level1/ComputeWeightOfCategoriesForSetActionResumeTest.java ===================================== --- a/t3-actions/src/test/java/fr/ird/t3/actions/data/level1/ComputeWeightOfCategoriesForSetActionResumeTest.java +++ b/t3-actions/src/test/java/fr/ird/t3/actions/data/level1/ComputeWeightOfCategoriesForSetActionResumeTest.java @@ -23,7 +23,6 @@ package fr.ird.t3.actions.data.level1; import org.junit.Test; import java.util.Locale; -import java.util.Map; /** * To test the resume generation of action @@ -44,13 +43,13 @@ public class ComputeWeightOfCategoriesForSetActionResumeTest extends AbstractLev action.nbSampleWithoutWell = 1; } - @Override - protected Map<String, Object> createTemplateParameters() { - - Map<String, Object> parameters = super.createTemplateParameters(); - - return parameters; - } +// @Override +// protected Map<String, Object> createTemplateParameters() { +// +// Map<String, Object> parameters = super.createTemplateParameters(); +// +// return parameters; +// } @Test public void testRender() throws Exception { ===================================== t3-actions/src/test/java/fr/ird/t3/actions/data/level1/ConvertSampleSetSpeciesFrequencyToWeightActionResumeTest.java ===================================== --- a/t3-actions/src/test/java/fr/ird/t3/actions/data/level1/ConvertSampleSetSpeciesFrequencyToWeightActionResumeTest.java +++ b/t3-actions/src/test/java/fr/ird/t3/actions/data/level1/ConvertSampleSetSpeciesFrequencyToWeightActionResumeTest.java @@ -24,7 +24,6 @@ package fr.ird.t3.actions.data.level1; import org.junit.Test; import java.util.Locale; -import java.util.Map; /** * Tests the {@link ConvertSampleSetSpeciesFrequencyToWeightAction}. @@ -43,13 +42,13 @@ public class ConvertSampleSetSpeciesFrequencyToWeightActionResumeTest extends Ab super.prepareAction(action, locale); } - @Override - protected Map<String, Object> createTemplateParameters() { - - Map<String, Object> parameters = super.createTemplateParameters(); - - return parameters; - } +// @Override +// protected Map<String, Object> createTemplateParameters() { +// +// Map<String, Object> parameters = super.createTemplateParameters(); +// +// return parameters; +// } @Test public void testRender() throws Exception { ===================================== t3-actions/src/test/java/fr/ird/t3/actions/data/level1/ConvertSetSpeciesFrequencyToWeightActionResumeTest.java ===================================== --- a/t3-actions/src/test/java/fr/ird/t3/actions/data/level1/ConvertSetSpeciesFrequencyToWeightActionResumeTest.java +++ b/t3-actions/src/test/java/fr/ird/t3/actions/data/level1/ConvertSetSpeciesFrequencyToWeightActionResumeTest.java @@ -23,7 +23,6 @@ package fr.ird.t3.actions.data.level1; import org.junit.Test; import java.util.Locale; -import java.util.Map; /** * Tests the {@link ConvertSetSpeciesFrequencyToWeightAction}. @@ -45,13 +44,13 @@ public class ConvertSetSpeciesFrequencyToWeightActionResumeTest extends Abstract action.nbCreatedFishesInSetSpeciesFrequency = 102; } - @Override - protected Map<String, Object> createTemplateParameters() { - - Map<String, Object> parameters = super.createTemplateParameters(); - - return parameters; - } +// @Override +// protected Map<String, Object> createTemplateParameters() { +// +// Map<String, Object> parameters = super.createTemplateParameters(); +// +// return parameters; +// } @Test public void testRender() throws Exception { ===================================== t3-actions/src/test/java/fr/ird/t3/actions/data/level1/ExtrapolateSampleWeightToSetActionResumeTest.java ===================================== --- a/t3-actions/src/test/java/fr/ird/t3/actions/data/level1/ExtrapolateSampleWeightToSetActionResumeTest.java +++ b/t3-actions/src/test/java/fr/ird/t3/actions/data/level1/ExtrapolateSampleWeightToSetActionResumeTest.java @@ -23,7 +23,6 @@ package fr.ird.t3.actions.data.level1; import org.junit.Test; import java.util.Locale; -import java.util.Map; /** * To test the resume generation of action @@ -46,13 +45,13 @@ public class ExtrapolateSampleWeightToSetActionResumeTest extends AbstractLevel1 action.nbCreatedFishesInSetSpeciesFrequency = 102; } - @Override - protected Map<String, Object> createTemplateParameters() { - - Map<String, Object> parameters = super.createTemplateParameters(); - - return parameters; - } +// @Override +// protected Map<String, Object> createTemplateParameters() { +// +// Map<String, Object> parameters = super.createTemplateParameters(); +// +// return parameters; +// } @Test public void testRender() throws Exception { ===================================== t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/AbstractLevel1ConfigureAction.java ===================================== --- a/t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/AbstractLevel1ConfigureAction.java +++ b/t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/AbstractLevel1ConfigureAction.java @@ -33,15 +33,16 @@ import fr.ird.t3.entities.reference.SampleType; import fr.ird.t3.services.ioc.InjectDAO; import fr.ird.t3.services.ioc.InjectDecoratedBeans; import fr.ird.t3.web.actions.AbstractConfigureAction; +import org.apache.commons.collections.MapUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + import java.util.Arrays; import java.util.Collection; import java.util.EnumSet; import java.util.Iterator; import java.util.Map; import java.util.Set; -import org.apache.commons.collections.MapUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; /** * Abstract run action for all level1 actions. @@ -57,26 +58,26 @@ public class AbstractLevel1ConfigureAction extends AbstractConfigureAction<Level private static final long serialVersionUID = 1L; - protected final Level1Step[] requiredSteps; + private final Level1Step[] requiredSteps; - protected final Level1Step currentStep; + private final Level1Step currentStep; @InjectDAO(entityType = Sample.class) - protected transient SampleTopiaDao sampleDAO; + private transient SampleTopiaDao sampleDAO; @InjectDecoratedBeans(beanType = SampleQuality.class, filterById = true, pathIds = "sampleQualityIds") - protected Map<String, String> sampleQualities; + private Map<String, String> sampleQualities; @InjectDecoratedBeans(beanType = SampleType.class, filterById = true) - protected Map<String, String> sampleTypes; + private Map<String, String> sampleTypes; @InjectDecoratedBeans(beanType = Country.class) - protected Map<String, String> fleets; + private Map<String, String> fleets; - @InjectDecoratedBeans(beanType = Ocean.class) - protected Map<String, String> oceans; + @InjectDecoratedBeans(beanType = Ocean.class, filterById = true) + private Map<String, String> oceans; - protected Map<String, String> useRfMinus10AndRfPlus10OrNot; + private Map<String, String> useRfMinus10AndRfPlus10OrNot; public AbstractLevel1ConfigureAction(Level1Step currentStep) { super(Level1Configuration.class); @@ -110,7 +111,7 @@ public class AbstractLevel1ConfigureAction extends AbstractConfigureAction<Level log.info("Selected fleet countries : " + configuration.getFleetIds()); log.info("Selected sample qualities : " + configuration.getSampleQualityIds()); log.info("Selected sample types : " + configuration.getSampleTypeIds()); - log.info("Selected ocean : " + configuration.getOceanId()); + log.info("Selected oceans : " + configuration.getOceanIds()); log.info("Selected begin date : " + configuration.getBeginDate()); log.info("Selected end date : " + configuration.getEndDate()); log.info("Executed steps : " + configuration.getExecutedSteps()); @@ -118,12 +119,12 @@ public class AbstractLevel1ConfigureAction extends AbstractConfigureAction<Level } @Override - public String input() throws Exception { + public String input() { return INPUT; } @Override - public String execute() throws Exception { + public String execute() { prepareActionContext(); return SUCCESS; @@ -136,14 +137,12 @@ public class AbstractLevel1ConfigureAction extends AbstractConfigureAction<Level // all required step already executed with this configuration if (log.isInfoEnabled()) { - log.info("Current configuration already treats all required step " + - Arrays.toString(requiredSteps)); + log.info(String.format("Current configuration already treats all required step %s", Arrays.toString(requiredSteps))); } } else { - // check on each selected sample of the configuration which steps - // are missing + // check on each selected sample of the configuration which steps are missing Multimap<Level1Step, Sample> missingSteps = getMissingRequiredStepsExecutedOnSample(); @@ -152,10 +151,7 @@ public class AbstractLevel1ConfigureAction extends AbstractConfigureAction<Level // ok every steps were previously executed on selected sample if (log.isInfoEnabled()) { - log.info("All required steps " + - Arrays.toString(requiredSteps) + - "were already executed on selected samples " + - "of current configuration."); + log.info(String.format("All required steps %s were already executed on selected samples of current configuration.", Arrays.toString(requiredSteps))); } } else { @@ -209,8 +205,7 @@ public class AbstractLevel1ConfigureAction extends AbstractConfigureAction<Level } public Multimap<String, String> getTripIds() { - Multimap<String, String> ids = getConfiguration().getSampleIdsByTripId(); - return ids; + return getConfiguration().getSampleIdsByTripId(); } /** @@ -228,7 +223,7 @@ public class AbstractLevel1ConfigureAction extends AbstractConfigureAction<Level if (!executedSteps.contains(requiredStep)) { if (log.isWarnEnabled()) { - log.warn("A required step [" + requiredStep + "] was still not executed with this configuration "); + log.warn(String.format("A required step [%s] was still not executed with this configuration ", requiredStep)); } return false; } @@ -249,19 +244,17 @@ public class AbstractLevel1ConfigureAction extends AbstractConfigureAction<Level Collection<String> sampleIds = getTripIds().values(); - Multimap<Level1Step, Sample> missingStates = - HashMultimap.create(); + Multimap<Level1Step, Sample> missingStates = HashMultimap.create(); for (String sampleId : sampleIds) { - Sample sample = sampleDAO.findByTopiaId(sampleId); + Sample sample = sampleDAO.forTopiaIdEquals(sampleId).findUnique(); for (Level1Step requiredStep : requiredSteps) { boolean sampleState = requiredStep.getState(sample); if (!sampleState) { if (log.isWarnEnabled()) { - log.warn("Required step " + requiredStep + - " is missing for sample " + sampleId); + log.warn(String.format("Required step %s is missing for sample %s", requiredStep, sampleId)); } missingStates.put(requiredStep, sample); } ===================================== t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/AbstractLevel1RunAction.java ===================================== --- a/t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/AbstractLevel1RunAction.java +++ b/t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/AbstractLevel1RunAction.java @@ -34,7 +34,6 @@ import org.apache.commons.collections.MapUtils; import java.util.Collection; import java.util.Date; -import java.util.Iterator; import java.util.Map; import java.util.Set; @@ -48,24 +47,18 @@ public abstract class AbstractLevel1RunAction<A extends AbstractLevel1Action> ex private static final long serialVersionUID = 1L; - protected final Level1Step currentStep; - + private final Level1Step currentStep; @InjectDecoratedBeans(beanType = SampleQuality.class, filterById = true, pathIds = "sampleQualityIds") - protected Map<String, String> sampleQualities; - + private Map<String, String> sampleQualities; @InjectDecoratedBeans(beanType = SampleType.class, filterById = true) - protected Map<String, String> sampleTypes; - + private Map<String, String> sampleTypes; @InjectDecoratedBeans(beanType = Country.class, filterById = true) - protected Map<String, String> fleets; + private Map<String, String> fleets; + @InjectDecoratedBeans(beanType = Ocean.class, filterById = true) + private Map<String, String> oceans; + private Map<String, String> useRfMinus10AndRfPlus10OrNot; - @InjectDecoratedBeans(beanType = Ocean.class, filterById = true, filterBySingleId = true) - protected Map<String, String> oceans; - - protected Map<String, String> useRfMinus10AndRfPlus10OrNot; - - protected AbstractLevel1RunAction(Class<A> actionType, - Level1Step currentStep) { + AbstractLevel1RunAction(Class<A> actionType, Level1Step currentStep) { super(actionType); this.currentStep = currentStep; } @@ -73,21 +66,13 @@ public abstract class AbstractLevel1RunAction<A extends AbstractLevel1Action> ex @Override protected void executeAction(A action) throws Exception { - // when beginning a step, remove from executed one all the step with - // higher ranks... + // when beginning a step, remove from executed one all the step with higher ranks... Level1Configuration configuration = getConfiguration(); - Set<Level1Step> executedSteps = - configuration.getExecutedSteps(); + Set<Level1Step> executedSteps = configuration.getExecutedSteps(); int ordinal = currentStep.ordinal(); - Iterator<Level1Step> itr = executedSteps.iterator(); - while (itr.hasNext()) { - Level1Step step = itr.next(); - if (step.ordinal() >= ordinal) { - itr.remove(); - } - } + executedSteps.removeIf(step -> step.ordinal() >= ordinal); super.executeAction(action); @@ -134,8 +119,7 @@ public abstract class AbstractLevel1RunAction<A extends AbstractLevel1Action> ex } public Multimap<String, String> getTripIds() { - Multimap<String, String> ids = getConfiguration().getSampleIdsByTripId(); - return ids; + return getConfiguration().getSampleIdsByTripId(); } public Map<String, String> getUseRfMinus10AndRfPlus10OrNot() { @@ -143,14 +127,8 @@ public abstract class AbstractLevel1RunAction<A extends AbstractLevel1Action> ex } @Override - protected Map<String, Object> prepareResumeParameters(A action, - Exception error, - Date startDate, - Date endDate) { - Map<String, Object> map = super.prepareResumeParameters(action, - error, - startDate, - endDate); + protected Map<String, Object> prepareResumeParameters(A action, Exception error, Date startDate, Date endDate) { + Map<String, Object> map = super.prepareResumeParameters(action, error, startDate, endDate); map.put("oceans", oceans); map.put("sampleQualities", sampleQualities); map.put("sampleTypes", sampleTypes); ===================================== t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/ComputeWeightOfCategoriesForSetRunAction.java ===================================== --- a/t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/ComputeWeightOfCategoriesForSetRunAction.java +++ b/t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/ComputeWeightOfCategoriesForSetRunAction.java @@ -34,7 +34,6 @@ public class ComputeWeightOfCategoriesForSetRunAction extends AbstractLevel1RunA private static final long serialVersionUID = 1L; public ComputeWeightOfCategoriesForSetRunAction() { - super(ComputeWeightOfCategoriesForSetAction.class, - Level1Step.COMPUTE_WEIGHT_OF_CATEGORIES_FOR_SET); + super(ComputeWeightOfCategoriesForSetAction.class, Level1Step.COMPUTE_WEIGHT_OF_CATEGORIES_FOR_SET); } } ===================================== t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/ConvertSampleSetSpeciesFrequencyToWeightRunAction.java ===================================== --- a/t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/ConvertSampleSetSpeciesFrequencyToWeightRunAction.java +++ b/t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/ConvertSampleSetSpeciesFrequencyToWeightRunAction.java @@ -35,7 +35,6 @@ public class ConvertSampleSetSpeciesFrequencyToWeightRunAction extends AbstractL private static final long serialVersionUID = 1L; public ConvertSampleSetSpeciesFrequencyToWeightRunAction() { - super(ConvertSampleSetSpeciesFrequencyToWeightAction.class, - Level1Step.CONVERT_SAMPLE_SET_SPECIES_FREQUENCY_TO_WEIGHT); + super(ConvertSampleSetSpeciesFrequencyToWeightAction.class, Level1Step.CONVERT_SAMPLE_SET_SPECIES_FREQUENCY_TO_WEIGHT); } } ===================================== t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/ConvertSetSpeciesFrequencyToWeightRunAction.java ===================================== --- a/t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/ConvertSetSpeciesFrequencyToWeightRunAction.java +++ b/t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/ConvertSetSpeciesFrequencyToWeightRunAction.java @@ -34,7 +34,6 @@ public class ConvertSetSpeciesFrequencyToWeightRunAction extends AbstractLevel1R private static final long serialVersionUID = 1L; public ConvertSetSpeciesFrequencyToWeightRunAction() { - super(ConvertSetSpeciesFrequencyToWeightAction.class, - Level1Step.CONVERT_SET_SPECIES_FREQUENCY_TO_WEIGHT); + super(ConvertSetSpeciesFrequencyToWeightAction.class, Level1Step.CONVERT_SET_SPECIES_FREQUENCY_TO_WEIGHT); } } ===================================== t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/ExtrapolateSampleCountedAndMeasuredRunAction.java ===================================== --- a/t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/ExtrapolateSampleCountedAndMeasuredRunAction.java +++ b/t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/ExtrapolateSampleCountedAndMeasuredRunAction.java @@ -38,24 +38,13 @@ public class ExtrapolateSampleCountedAndMeasuredRunAction extends AbstractLevel1 private static final long serialVersionUID = 1L; public ExtrapolateSampleCountedAndMeasuredRunAction() { - super(ExtrapolateSampleCountedAndMeasuredAction.class, - Level1Step.EXTRAPOLATE_SAMPLE_COUNTED_AND_MEASURED); + super(ExtrapolateSampleCountedAndMeasuredAction.class, Level1Step.EXTRAPOLATE_SAMPLE_COUNTED_AND_MEASURED); } @Override - protected Map<String, Object> prepareResumeParameters( - ExtrapolateSampleCountedAndMeasuredAction action, - Exception error, - Date startDate, - Date endDate) { - Map<String, Object> parameters = - super.prepareResumeParameters(action, - error, - startDate, - endDate - ); + protected Map<String, Object> prepareResumeParameters(ExtrapolateSampleCountedAndMeasuredAction action, Exception error, Date startDate, Date endDate) { + Map<String, Object> parameters = super.prepareResumeParameters(action, error, startDate, endDate); parameters.put("speciesDecorator", getDecorator(Species.class)); - return parameters; } ===================================== t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/ExtrapolateSampleWeightToSetRunAction.java ===================================== --- a/t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/ExtrapolateSampleWeightToSetRunAction.java +++ b/t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/ExtrapolateSampleWeightToSetRunAction.java @@ -34,7 +34,6 @@ public class ExtrapolateSampleWeightToSetRunAction extends AbstractLevel1RunActi private static final long serialVersionUID = 1L; public ExtrapolateSampleWeightToSetRunAction() { - super(ExtrapolateSampleWeightToSetAction.class, - Level1Step.EXTRAPOLATE_SAMPLE_WEIGHT_TO_SET); + super(ExtrapolateSampleWeightToSetAction.class, Level1Step.EXTRAPOLATE_SAMPLE_WEIGHT_TO_SET); } } ===================================== t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/ManageLevel1ConfigurationAction.java ===================================== --- a/t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/ManageLevel1ConfigurationAction.java +++ b/t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/ManageLevel1ConfigurationAction.java @@ -35,22 +35,21 @@ import fr.ird.t3.entities.reference.SampleType; import fr.ird.t3.entities.reference.SampleTypeTopiaDao; import fr.ird.t3.entities.type.T3Date; import fr.ird.t3.services.DecoratorService; -import fr.ird.t3.services.ioc.InjectDAO; import fr.ird.t3.services.ioc.InjectDecoratedBeans; import fr.ird.t3.services.ioc.InjectFromDAO; import fr.ird.t3.web.actions.AbstractConfigureAction; -import java.util.Collection; -import java.util.Date; -import java.util.List; -import java.util.Map; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.MapUtils; -import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.MutablePair; import org.apache.struts2.interceptor.validation.SkipValidation; import org.nuiton.decorator.Decorator; import org.nuiton.topia.persistence.util.TopiaEntityHelper; +import java.util.Collection; +import java.util.Date; +import java.util.List; +import java.util.Map; + /** * Action to manage the configuration of level 1. * @@ -62,26 +61,23 @@ public class ManageLevel1ConfigurationAction extends AbstractConfigureAction<Lev private static final long serialVersionUID = 1L; @InjectDecoratedBeans(beanType = SampleQuality.class) - protected Map<String, String> sampleQualities; + private Map<String, String> sampleQualities; @InjectDecoratedBeans(beanType = SampleType.class) - protected Map<String, String> sampleTypes; + private Map<String, String> sampleTypes; @InjectDecoratedBeans(beanType = Country.class) - protected Map<String, String> fleets; + private Map<String, String> fleets; @InjectDecoratedBeans(beanType = Ocean.class) - protected Map<String, String> oceans; + private Map<String, String> oceans; @InjectFromDAO(entityType = Trip.class, method = "findAllForLevel1") - protected Collection<Trip> trips; + private Collection<Trip> trips; - @InjectDAO(entityType = Ocean.class) - protected transient OceanTopiaDao oceanDAO; + private Map<String, Trip> tripByTopiaIds; - protected Map<String, Trip> tripByTopiaIds; - - protected Map<String, String> useRfMinus10AndRfPlus10OrNot; + private Map<String, String> useRfMinus10AndRfPlus10OrNot; public ManageLevel1ConfigurationAction() { super(Level1Configuration.class); @@ -124,18 +120,17 @@ public class ManageLevel1ConfigurationAction extends AbstractConfigureAction<Lev conf.setSampleTypes(sortToList(SampleTypeTopiaDao.getAllSampleTypes(trips))); conf.setFleets(sortToList(CountryTopiaDao.getAllFleetCountries(trips))); conf.setOceans(sortToList(OceanTopiaDao.getAllOcean(trips))); - if (StringUtils.isEmpty(conf.getOceanId()) && - CollectionUtils.isNotEmpty(conf.getOceans())) { - conf.setOceanId(conf.getOceans().get(0).getTopiaId()); - } +// if (StringUtils.isEmpty(conf.getOceanId()) && +// CollectionUtils.isNotEmpty(conf.getOceans())) { +// conf.setOceanId(conf.getOceans().get(0).getTopiaId()); +// } // set ids list to empty lists List<String> ids; // use default sample qualities ids = T3EntityHelper.selectIdsByCodes(conf.getSampleQualities(), 1, 2, 3, 9); - conf.setSampleQualityIds( - ids); + conf.setSampleQualityIds(ids); // use default sample types ids = T3EntityHelper.selectIdsByCodes(conf.getSampleTypes(), 1, 2, 3, 9); @@ -165,8 +160,7 @@ public class ManageLevel1ConfigurationAction extends AbstractConfigureAction<Lev injectOnly(InjectDecoratedBeans.class); DecoratorService decoratorService = newService(DecoratorService.class); - Multimap<String, String> matchingTrips = conf.getMatchingTrips( - trips, getLocale(), decoratorService); + Multimap<String, String> matchingTrips = conf.getMatchingTrips(trips, getLocale(), decoratorService); conf.setSampleIdsByTripId(matchingTrips); } @@ -179,7 +173,7 @@ public class ManageLevel1ConfigurationAction extends AbstractConfigureAction<Lev } } - public final String prepareConfiguration() throws Exception { + public final String prepareConfiguration() { if (!isConfigurationInSession() && !hasFieldErrors()) { @@ -189,7 +183,7 @@ public class ManageLevel1ConfigurationAction extends AbstractConfigureAction<Lev return INPUT; } - public String saveConfiguration() throws Exception { + public String saveConfiguration() { Level1Configuration config = getConfiguration(); // each time configuration is modified, reset executed steps for @@ -205,7 +199,7 @@ public class ManageLevel1ConfigurationAction extends AbstractConfigureAction<Lev } @SkipValidation - public String removeConfiguration() throws Exception { + public String removeConfiguration() { boolean saved = isConfigurationInSession(); if (saved) { @@ -238,9 +232,7 @@ public class ManageLevel1ConfigurationAction extends AbstractConfigureAction<Lev } public Map<String, Collection<String>> getTripIds() { - Map<String, Collection<String>> ids = - getConfiguration().getSampleIdsByTripId().asMap(); - return ids; + return getConfiguration().getSampleIdsByTripId().asMap(); } public Map<String, String> getSampleQualities() { ===================================== t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/RedistributeSampleNumberToSetRunAction.java ===================================== --- a/t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/RedistributeSampleNumberToSetRunAction.java +++ b/t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/RedistributeSampleNumberToSetRunAction.java @@ -41,23 +41,12 @@ public class RedistributeSampleNumberToSetRunAction extends AbstractLevel1RunAct private static final long serialVersionUID = 1L; public RedistributeSampleNumberToSetRunAction() { - super(RedistributeSampleNumberToSetAction.class, - Level1Step.REDISTRIBUTE_SAMPLE_SET_TO_SET); + super(RedistributeSampleNumberToSetAction.class, Level1Step.REDISTRIBUTE_SAMPLE_SET_TO_SET); } @Override - protected Map<String, Object> prepareResumeParameters( - RedistributeSampleNumberToSetAction action, - Exception error, - Date startDate, - Date endDate) { - Map<String, Object> parameters = super.prepareResumeParameters( - action, - error, - startDate, - endDate - ); - + protected Map<String, Object> prepareResumeParameters(RedistributeSampleNumberToSetAction action, Exception error, Date startDate, Date endDate) { + Map<String, Object> parameters = super.prepareResumeParameters(action, error, startDate, endDate); parameters.put("speciesDecorator", getDecorator(Species.class)); parameters.put("tripDecorator", getDecorator(Trip.class, DecoratorService.WITH_ID)); parameters.put("activityDecorator", getDecorator(Activity.class)); ===================================== t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/StandardizeSampleMeasuresRunAction.java ===================================== --- a/t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/StandardizeSampleMeasuresRunAction.java +++ b/t3-web/src/main/java/fr/ird/t3/web/actions/data/level1/StandardizeSampleMeasuresRunAction.java @@ -38,24 +38,13 @@ public class StandardizeSampleMeasuresRunAction extends AbstractLevel1RunAction< private static final long serialVersionUID = 1L; public StandardizeSampleMeasuresRunAction() { - super(StandardizeSampleMeasuresAction.class, - Level1Step.STANDARDIZE_SAMPLE_MEASURE); + super(StandardizeSampleMeasuresAction.class, Level1Step.STANDARDIZE_SAMPLE_MEASURE); } @Override - protected Map<String, Object> prepareResumeParameters( - StandardizeSampleMeasuresAction action, - Exception error, - Date startDate, - Date endDate) { - Map<String, Object> parameters = - super.prepareResumeParameters(action, - error, - startDate, - endDate - ); + protected Map<String, Object> prepareResumeParameters(StandardizeSampleMeasuresAction action, Exception error, Date startDate, Date endDate) { + Map<String, Object> parameters = super.prepareResumeParameters(action, error, startDate, endDate); parameters.put("speciesDecorator", getDecorator(Species.class)); - return parameters; } } ===================================== t3-web/src/main/resources/fr/ird/t3/web/actions/data/level1/ManageLevel1ConfigurationAction-validateLevel1Configuration-validation.xml ===================================== --- a/t3-web/src/main/resources/fr/ird/t3/web/actions/data/level1/ManageLevel1ConfigurationAction-validateLevel1Configuration-validation.xml +++ b/t3-web/src/main/resources/fr/ird/t3/web/actions/data/level1/ManageLevel1ConfigurationAction-validateLevel1Configuration-validation.xml @@ -48,9 +48,10 @@ </field> - <field name="configuration.oceanId"> + <field name="configuration.oceanIds"> - <field-validator type="requiredstring"> + <field-validator type="fieldexpression"> + <param name="expression">!configuration.oceanIds.empty</param> <message key="t3.error.no.ocean.selected"/> </field-validator> ===================================== t3-web/src/main/resources/fr/ird/t3/web/actions/data/level1/ManageLevel1ConfigurationAction-validation.xml ===================================== --- a/t3-web/src/main/resources/fr/ird/t3/web/actions/data/level1/ManageLevel1ConfigurationAction-validation.xml +++ b/t3-web/src/main/resources/fr/ird/t3/web/actions/data/level1/ManageLevel1ConfigurationAction-validation.xml @@ -48,7 +48,7 @@ </field> - <field name="configuration.oceanId"> + <field name="configuration.oceanIds"> <field-validator type="fieldexpression"> <param name="expression">!configuration.oceans.empty</param> ===================================== t3-web/src/main/webapp/WEB-INF/jsp/data/level1/level1Configuration.jsp ===================================== --- a/t3-web/src/main/webapp/WEB-INF/jsp/data/level1/level1Configuration.jsp +++ b/t3-web/src/main/webapp/WEB-INF/jsp/data/level1/level1Configuration.jsp @@ -56,8 +56,9 @@ list="fleets" template="mycheckboxlist"/> <%-- selected ocean --%> - <s:select key="configuration.oceanId" list="oceans" requiredLabel="true" - label='%{getText("t3.common.ocean")}'/> + <s:checkboxlist key="configuration.oceanIds" requiredLabel="true" + label='%{getText("t3.common.ocean")}' + list="oceans" template="mycheckboxlist"/> <%-- selected begin date --%> <sj:datepicker key="configuration.beginDate" requiredLabel="true" ===================================== t3-web/src/main/webapp/WEB-INF/jsp/data/level1/level1ConfigurationResume.jsp ===================================== --- a/t3-web/src/main/webapp/WEB-INF/jsp/data/level1/level1ConfigurationResume.jsp +++ b/t3-web/src/main/webapp/WEB-INF/jsp/data/level1/level1ConfigurationResume.jsp @@ -45,8 +45,9 @@ label='%{getText("t3.common.fleetCountry")}'/> <%-- selected ocean --%> - <s:select key="configuration.oceanId" disabled="true" list="oceans" - label='%{getText("t3.common.ocean")}'/> + <s:checkboxlist key="configuration.oceanIds" disabled="true" + list="oceans" template="mycheckboxlist" + label='%{getText("t3.common.ocean")}'/> <%-- selected begin date --%> <s:textfield key="configuration.beginDate" disabled="true" View it on GitLab: https://gitlab.com/ultreiaio/ird-t3/commit/676b259b7752246d14e8951bff15b48a0... --- View it on GitLab: https://gitlab.com/ultreiaio/ird-t3/commit/676b259b7752246d14e8951bff15b48a0... You're receiving this email because of your account on gitlab.com.