This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See http://git.codelutin.com/tutti.git commit 15cb38e0c3f6f3e4c8629027a4dcd674e9198eec Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Aug 26 14:36:06 2014 +0200 fixes #5671: Revoir traitement #5174 Refactor TuttiEntities class (split to more specialized classes) f# Please enter the commit message for your changes. Lines starting --- .../tutti/persistence/TuttiPersistenceImpl.java | 4 +- .../tutti/persistence/entities/TuttiEntities.java | 465 +-------------------- .../entities/data/SpeciesAbleBatchs.java | 37 ++ .../CaracteristicQualitativeValues.java | 42 ++ .../entities/referential/Caracteristics.java | 43 ++ .../persistence/entities/referential/Gears.java | 22 + .../persistence/entities/referential/Speciess.java | 75 ++++ .../service/CatchBatchPersistenceServiceImpl.java | 9 +- .../service/CruisePersistenceServiceImpl.java | 5 +- .../service/ProtocolPersistenceServiceImpl.java | 10 +- .../service/ReferentialPersistenceServiceImpl.java | 14 +- .../service/util/SamplePersistenceHelper.java | 6 +- .../tutti/persistence/test/DatabaseResource.java | 12 +- .../main/java/fr/ifremer/tutti/util/Distances.java | 39 ++ .../src/main/java/fr/ifremer/tutti/util/Jdbcs.java | 102 +++++ .../main/java/fr/ifremer/tutti/util/Numbers.java | 30 ++ .../main/java/fr/ifremer/tutti/util/Weights.java | 106 +++++ .../ReferentialPersistenceServiceReadTest.java | 6 +- .../ifremer/tutti/service/PersistenceService.java | 5 +- .../fr/ifremer/tutti/service/TuttiCsvUtil.java | 13 +- .../fr/ifremer/tutti/service/TuttiDataContext.java | 4 +- .../service/catches/WeightCleaningService.java | 8 +- .../service/catches/WeightComputingService.java | 71 ++-- .../catches/multipost/MultiPostImportService.java | 6 +- .../tutti/service/export/ExportCatchContext.java | 26 +- .../service/export/generic/CatchExportModel.java | 37 +- .../service/export/generic/OperationExportRow.java | 77 ++-- .../service/export/generic/TuttiExportService.java | 7 +- .../service/psionimport/PsionImportModel.java | 10 +- .../service/psionimport/PsionImportService.java | 10 +- .../pupitri/PupitriImportExportService.java | 20 +- .../tutti/service/pupitri/PupitriImportResult.java | 4 +- .../fr/ifremer/tutti/service/pupitri/Signs.java | 4 +- .../psionimport/PsionImportServiceTest.java | 4 +- .../ui/swing/action/ComputeBatchWeightsAction.java | 6 +- .../ui/swing/action/CreateBenthosMelagAction.java | 4 +- .../ui/swing/action/CreateSpeciesMelagAction.java | 5 +- .../ui/swing/action/ImportProtocolAction.java | 4 +- .../swing/action/RemoveBenthosProtocolAction.java | 4 +- .../swing/action/RemoveSpeciesProtocolAction.java | 4 +- .../action/SelectSpeciesForBenthosBatchAction.java | 4 +- ...SpeciesForIndividualObservationBatchAction.java | 4 +- .../action/SelectSpeciesForSpeciesBatchAction.java | 4 +- .../swing/content/cruise/EditCruiseUIHandler.java | 6 +- .../operation/EditFishingOperationUIHandler.java | 3 +- .../operation/EditFishingOperationUIModel.java | 3 +- .../operation/catches/EditCatchesUIHandler.java | 4 +- .../operation/catches/SampleCategoryComponent.java | 6 +- .../catches/benthos/BenthosBatchUIHandler.java | 5 +- .../frequency/BenthosFrequencyUIHandler.java | 3 +- .../IndividualObservationBatchUIHandler.java | 10 +- .../catches/species/SpeciesBatchUIHandler.java | 5 +- .../catches/species/SpeciesBatchUIModel.java | 6 +- .../frequency/SpeciesFrequencyUIHandler.java | 3 +- .../content/protocol/EditProtocolUIHandler.java | 5 +- .../ui/swing/util/AbstractTuttiUIHandler.java | 4 +- .../computable/ComputableDataEditorHandler.java | 4 +- .../util/computable/ComputableDataTableCell.java | 4 +- 58 files changed, 764 insertions(+), 679 deletions(-) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java index 01e1d5f..13cdfbf 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java @@ -27,7 +27,6 @@ import com.google.common.collect.Maps; import com.google.common.collect.Multimap; import fr.ifremer.adagio.core.dao.referential.pmfm.ObjectTypeCode2; import fr.ifremer.tutti.persistence.entities.CaracteristicMap; -import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch; import fr.ifremer.tutti.persistence.entities.data.Attachment; import fr.ifremer.tutti.persistence.entities.data.BatchContainer; @@ -49,6 +48,7 @@ import fr.ifremer.tutti.persistence.entities.referential.Gear; import fr.ifremer.tutti.persistence.entities.referential.ObjectType; import fr.ifremer.tutti.persistence.entities.referential.Person; import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.persistence.entities.referential.Speciess; import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; import fr.ifremer.tutti.persistence.entities.referential.TuttiReferentialEntity; import fr.ifremer.tutti.persistence.entities.referential.Vessel; @@ -643,7 +643,7 @@ public class TuttiPersistenceImpl implements TuttiPersistence { // see http://forge.codelutin.com/issues/4154 List<Species> allReferentSpecies = getAllReferentSpecies(); - Map<String, Species> map = TuttiEntities.splitByTaxonId(allReferentSpecies); + Map<String, Species> map = Speciess.splitByTaxonId(allReferentSpecies); if (!protocol.isSpeciesEmpty()) { Iterator<SpeciesProtocol> iterator = protocol.getSpecies().iterator(); diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntities.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntities.java index f3c42ad..5e65ce3 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntities.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntities.java @@ -27,39 +27,12 @@ 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; -import com.google.common.collect.Multimaps; -import com.google.common.collect.Sets; -import fr.ifremer.tutti.persistence.entities.data.SpeciesAbleBatch; -import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; -import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; -import fr.ifremer.tutti.persistence.entities.referential.CaracteristicType; -import fr.ifremer.tutti.persistence.entities.referential.Gear; -import fr.ifremer.tutti.persistence.entities.referential.Species; -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.hibernate.cfg.Environment; import org.nuiton.jaxx.application.ApplicationDataUtil; -import java.io.File; -import java.math.BigDecimal; -import java.math.MathContext; -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; -import java.text.DecimalFormat; -import java.text.DecimalFormatSymbols; import java.util.Collection; import java.util.Collections; -import java.util.Comparator; -import java.util.Iterator; import java.util.List; import java.util.Map; -import java.util.Properties; -import java.util.Set; /** * Usefull method around tutti entities. @@ -69,37 +42,6 @@ import java.util.Set; */ public class TuttiEntities extends ApplicationDataUtil { - public static final Comparator<Species> SPECIES_BY_NAME_COMPARATOR = new Comparator<Species>() { - - public int compare(Species o1, Species o2) { - if (o1 == null) { - return -1; - } - if (o2 == null) { - return 1; - } - return o1.getName().compareTo(o2.getName()); - } - - }; - - public static final Predicate<Gear> IS_FISHING_GEAR = new Predicate<Gear>() { - - public boolean apply(Gear input) { - return !input.isScientificGear(); - } - }; - - public static final Predicate<Gear> IS_SCIENTIFIC_GEAR = new Predicate<Gear>() { - - public boolean apply(Gear input) { - return input.isScientificGear(); - } - }; - - /** Logger. */ - private static final Log log = LogFactory.getLog(TuttiEntities.class); - protected TuttiEntities() { // helper class does not instanciate } @@ -118,13 +60,6 @@ public class TuttiEntities extends ApplicationDataUtil { return result; } - public static Set<String> toTaxonIds(List<Species> list) { - Set<String> result = list == null ? - Collections.<String>emptySet() : - Sets.newHashSet(Lists.transform(list, GET_TAXON_ID)); - return result; - } - public static <B extends TuttiEntity> Map<String, B> splitById(Iterable<B> list) { return Maps.uniqueIndex(list, GET_ID); } @@ -133,184 +68,38 @@ public class TuttiEntities extends ApplicationDataUtil { return Maps.uniqueIndex(list, GET_ID_AS_INT); } - public static Map<String, Species> splitByTaxonId(Iterable<Species> list) { - return Maps.uniqueIndex(list, GET_TAXON_ID); - } - - public static Multimap<String, Species> splitByReferenceTaxonId(Iterable<Species> list) { - return Multimaps.index(list, GET_TAXON_ID); - } - - public static Multimap<String, Species> splitByRefTaxCode(Iterable<Species> list) { - return Multimaps.index(list, GET_REF_TAX_CODE); - } - - public static Multimap<String, Species> splitBySurveyCode(Iterable<Species> list) { - return Multimaps.index(list, GET_SURVEY_CODE); + public static <B extends TuttiEntity> boolean isNew(B bean) { + return bean.getId() == null; } - public static final Function<Species, String> GET_TAXON_ID = new Function<Species, String>() { - @Override - public String apply(Species input) { - return String.valueOf(input.getReferenceTaxonId()); - } - }; - - public static final Function<Species, String> GET_REF_TAX_CODE = new Function<Species, String>() { - @Override - public String apply(Species input) { - return String.valueOf(input.getRefTaxCode()); - } - }; - - public static final Function<Species, String> GET_SURVEY_CODE = new Function<Species, String>() { - @Override - public String apply(Species input) { - return String.valueOf(input.getSurveyCode()); - } - }; - - public static final Function<TuttiEntity, String> GET_ID = new Function<TuttiEntity, String>() { + protected static final Function<TuttiEntity, String> GET_ID = new Function<TuttiEntity, String>() { @Override public String apply(TuttiEntity input) { return input.getId(); } }; - public static final Function<TuttiEntity, Integer> GET_ID_AS_INT = new Function<TuttiEntity, Integer>() { + protected static final Function<TuttiEntity, Integer> GET_ID_AS_INT = new Function<TuttiEntity, Integer>() { @Override public Integer apply(TuttiEntity input) { return input.getIdAsInt(); } }; - public static <B extends TuttiEntity> boolean isNew(B bean) { - return bean.getId() == null; - } - public static <B extends TuttiEntity> Predicate<B> newIdPredicate(String id) { - return new IdPredicate<B>(id); - } - - public static Predicate<Caracteristic> newSampleCategoryModelPredicate() { - return new SampleCategoryCaracteristicPredicate(); - } - - public static Predicate<SpeciesAbleBatch> newSpeciesAbleBatchCategoryPredicate(Integer cateogryId, Integer value) { - return new SpeciesAbleBatchCategoryPredicate(cateogryId, value); + return new IdPredicate<>(id); } - public static <B extends TuttiEntity> B findById(Iterable<B> beans, - String id) { + public static <B extends TuttiEntity> B findById(Iterable<B> beans, String id) { B result = Iterables.tryFind(beans, newIdPredicate(id)).orNull(); return result; } - public static void closeSilently(Statement statement) { - try { - if (statement != null && !statement.isClosed()) { - - statement.close(); - } - } catch (AbstractMethodError e) { - if (log.isDebugEnabled()) { - log.debug("Fix this linkage error, damned hsqlsb 1.8.0.7:("); - } - } catch (IllegalAccessError e) { - if (log.isDebugEnabled()) { - log.debug("Fix this IllegalAccessError error, damned hsqlsb 1.8.0.7:("); - } - } catch (Exception e) { - if (log.isErrorEnabled()) { - log.error("Could not close statement, but do not care", e); - } - } - } - - public static void closeSilently(ResultSet statement) { - try { - if (statement != null && !statement.isClosed()) { - - statement.close(); - } - } catch (AbstractMethodError e) { - if (log.isDebugEnabled()) { - log.debug("Fix this linkage error, damned hsqlsb 1.8.0.7:("); - } - } catch (IllegalAccessError e) { - if (log.isDebugEnabled()) { - log.debug("Fix this IllegalAccessError error, damned hsqlsb 1.8.0.7:("); - } - } catch (Exception e) { - if (log.isErrorEnabled()) { - log.error("Could not close statement, but do not care", e); - } - } - } - - public static Connection createConnection(Properties connectionProperties) throws SQLException { - return createConnection( - connectionProperties.getProperty(Environment.URL), - connectionProperties.getProperty(Environment.USER), - connectionProperties.getProperty(Environment.PASS) - ); - } - - public static String getUrl(Properties connectionProperties) { - return connectionProperties.getProperty(Environment.URL); - } - - public static Connection createConnection(String jdbcUrl, - String user, - String password) throws SQLException { - Connection connection = DriverManager.getConnection(jdbcUrl, - user, - password); - connection.setAutoCommit(false); - return connection; - } - public static <B extends TuttiEntity> List<String> collecIds(List<B> list) { List<String> result = Lists.transform(list, GET_ID); return result; } - public static void fillConnectionProperties(Properties p, - String url, - String username, - String password) { - p.put(Environment.URL, url); - p.put(Environment.USER, username); - p.put(Environment.PASS, password); - } - - public static String getJdbcUrl(File directory, String dbName) { - return "jdbc:hsqldb:file:" + directory.getAbsolutePath() + "/" + dbName; - } - - public static CaracteristicQualitativeValue getQualitativeValue(Caracteristic caracteristic, Integer qualitativeValueId) { - CaracteristicQualitativeValue value = null; - for (CaracteristicQualitativeValue qv : caracteristic.getQualitativeValue()) { - if (qualitativeValueId.equals(qv.getIdAsInt())) { - value = qv; - break; - } - } - return value; - } - - public static void removeQualitativeValue(Collection<CaracteristicQualitativeValue> values, - int id) { - Iterator<CaracteristicQualitativeValue> iterator = values.iterator(); - while (iterator.hasNext()) { - CaracteristicQualitativeValue next = iterator.next(); - if (id == next.getIdAsInt()) { - iterator.remove(); - break; - } - } - } - protected static class IdPredicate<B extends TuttiEntity> implements Predicate<B> { private final String id; @@ -325,47 +114,6 @@ public class TuttiEntities extends ApplicationDataUtil { } } - protected static class SampleCategoryCaracteristicPredicate implements Predicate<Caracteristic> { - - @Override - public boolean apply(Caracteristic input) { - return !CaracteristicType.TEXT.equals(input.getCaracteristicType()); - } - } - - protected static class CaracteristicQualitativeValuePredicate implements Predicate<CaracteristicQualitativeValue> { - - private final Integer id; - - public CaracteristicQualitativeValuePredicate(Integer id) { - this.id = id; - } - - @Override - public boolean apply(CaracteristicQualitativeValue input) { - return id.equals(input.getIdAsInt()); - } - } - - protected static class SpeciesAbleBatchCategoryPredicate implements Predicate<SpeciesAbleBatch> { - - private final Integer id; - - private final Integer qualitativeValue; - - public SpeciesAbleBatchCategoryPredicate(Integer id, Integer qualitativeValue) { - this.id = id; - this.qualitativeValue = qualitativeValue; - } - - @Override - public boolean apply(SpeciesAbleBatch input) { - return id.equals(input.getSampleCategoryId()) && - input.getSampleCategoryValue() instanceof CaracteristicQualitativeValue && - qualitativeValue.equals(((CaracteristicQualitativeValue) input.getSampleCategoryValue()).getIdAsInt()); - } - } - public static <K, V> void fillEntries(Map<K, V> map, Collection<K> keys, Function<K, V> function) { @@ -376,202 +124,17 @@ public class TuttiEntities extends ApplicationDataUtil { } } - public static <K, V> Function<K, V> newConstantFunction(final V value) { - return new Function<K, V>() { - @Override - public V apply(K input) { - return value; - } - }; - } - - public static CaracteristicType getType(boolean isAlpha, - boolean isQualitative) { - CaracteristicType result; - if (isAlpha) { - result = CaracteristicType.TEXT; - } else if (isQualitative) { - result = CaracteristicType.QUALITATIVE; - } else { - result = CaracteristicType.NUMBER; - } - return result; - } - - public static boolean isNumberCaracteristic(Caracteristic c) { - return CaracteristicType.NUMBER == c.getCaracteristicType(); - } - - public static boolean isTextCaracteristic(Caracteristic c) { - return CaracteristicType.TEXT == c.getCaracteristicType(); - } - - public static boolean isQualitativeCaracteristic(Caracteristic c) { - return CaracteristicType.QUALITATIVE == c.getCaracteristicType(); - } - - public static <E> List<E> getList(List<E> list) { - List<E> result; - if (CollectionUtils.isEmpty(list)) { - result = Lists.newArrayList(); - } else { - result = Lists.newArrayList(list); - } - - return result; - } - - private static final double EARTH_RADIUS = 6378288.0; - - /** - * Take a {@code 5} digit context beacuse of rounding stuff to - * get exactly 4 correct digits. - */ - private static final MathContext MATH_CONTEXT_4_DIGIT = new MathContext(4); - - private static DecimalFormatSymbols symbols; - - private static DecimalFormat decimalFormat; - - public static int computeDistanceInMeters(Float startLatitude, - Float startLongitude, - Float endLatitude, - Float endLongitude) { - - double sLat = startLatitude * Math.PI / 180.0; - double sLong = startLongitude * Math.PI / 180.0; - double eLat = endLatitude * Math.PI / 180.0; - double eLong = endLongitude * Math.PI / 180.0; - - Double d = EARTH_RADIUS * - (Math.PI / 2 - Math.asin(Math.sin(eLat) * Math.sin(sLat) - + Math.cos(eLong - sLong) * Math.cos(eLat) * Math.cos(sLat))); - return d.intValue(); - } - - public static String getDistanceInMilles(Float distance) { - String distanceText; - if (distance != null) { - Float distanceInMilles = distance / 1852; - distanceText = String.format("%.3f", distanceInMilles); - - } else { - distanceText = ""; - } - return distanceText; - } - - public static float getRoundedLengthStep(float lengthStep, boolean aroundUp) { - int intValue = (int) ((lengthStep + (aroundUp ? 0.001f : 0f)) * 10); - float result = intValue / 10f; - return result; - } - - public static DecimalFormatSymbols getDecimalFormatSymbols() { - if (symbols == null) { - symbols = new DecimalFormatSymbols(); - symbols.setDecimalSeparator('.'); - symbols.setGroupingSeparator(' '); - } - return symbols; - } - - public static DecimalFormat getDecimalFormat(int minDecimal, int maxDecimal) { - if (decimalFormat == null) { - decimalFormat = new DecimalFormat(); - decimalFormat.setDecimalFormatSymbols(getDecimalFormatSymbols()); - decimalFormat.setGroupingUsed(false); - } - decimalFormat.setMinimumFractionDigits(minDecimal); - decimalFormat.setMaximumFractionDigits(maxDecimal); - return decimalFormat; - } - - public static String getWeightStringValue(Float weight) { - String textValue; - if (weight != null) { - DecimalFormat weightDecimalFormat = getDecimalFormat(1, 3); - textValue = weightDecimalFormat.format(weight); - - } else { - textValue = ""; - } - return textValue; - } - - public static <N extends Number> N getValueOrComputedValue(N value, N computedValue) { - return value == null ? computedValue : value; - } - - public static <N extends Number> Boolean getValueOrComputedValueComputed(N value, N computedValue) { - Boolean result; - if (value == null) { - - result = computedValue == null ? null : true; - } else { - result = false; - } - return result; - } - - /** - * Round the given value to max 4 digits. - * - * @param value the float to round. - * @return the rounded value - * @since 1.0.1 - */ - public static float roundKiloGram(float value) { - BigDecimal sumB = new BigDecimal(String.valueOf(value)); - float result; -// if (Math.abs(value - sumB.floatValue()) < 0.0001f) { -// result = value; +// public static <E> List<E> getList(List<E> list) { +// List<E> result; +// if (CollectionUtils.isEmpty(list)) { +// result = Lists.newArrayList(); // } else { - result = sumB.abs(MATH_CONTEXT_4_DIGIT).floatValue(); +// result = Lists.newArrayList(list); // } - return result; - } +// +// return result; +// } - /** - * Compare two weights with rounding them to kilograms. - * - * @param v0 first weight to compare - * @param v1 second weight to compare - * @return 1 if v0 > v1, -1 if v0 < v1, 0 if v0 == v1 - */ - public static int compareWeights(float v0, float v1) { - v0 = roundKiloGram(v0); - v1 = roundKiloGram(v1); - float delta = v0 - v1; - int result; - if (delta > 0.00001) { - // v0 > v1 - result = 1; - } else if (delta < -0.0001f) { - // v0 < v1 - result = -1; - } else { - // v0 == v1 - result = 0; - } - return result; - } - - public static boolean isSmallerWeight(float v0, float v1) { - return compareWeights(v0, v1) < 0; - } - - public static boolean isGreaterWeight(float v0, float v1) { - return compareWeights(v0, v1) > 0; - } - - public static boolean isEqualWeight(float v0, float v1) { - return compareWeights(v0, v1) == 0; - } - - public static boolean isNotEqualWeight(float v0, float v1) { - return compareWeights(v0, v1) != 0; - } } diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/SpeciesAbleBatchs.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/SpeciesAbleBatchs.java new file mode 100644 index 0000000..7f2715d --- /dev/null +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/SpeciesAbleBatchs.java @@ -0,0 +1,37 @@ +package fr.ifremer.tutti.persistence.entities.data; + +import com.google.common.base.Predicate; +import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; + +/** + * Created on 8/26/14. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.7 + */ +public class SpeciesAbleBatchs { + + + public static Predicate<SpeciesAbleBatch> newSpeciesAbleBatchCategoryPredicate(Integer cateogryId, Integer value) { + return new SpeciesAbleBatchCategoryPredicate(cateogryId, value); + } + + public static class SpeciesAbleBatchCategoryPredicate implements Predicate<SpeciesAbleBatch> { + + private final Integer id; + + private final Integer qualitativeValue; + + public SpeciesAbleBatchCategoryPredicate(Integer id, Integer qualitativeValue) { + this.id = id; + this.qualitativeValue = qualitativeValue; + } + + @Override + public boolean apply(SpeciesAbleBatch input) { + return id.equals(input.getSampleCategoryId()) && + input.getSampleCategoryValue() instanceof CaracteristicQualitativeValue && + qualitativeValue.equals(((CaracteristicQualitativeValue) input.getSampleCategoryValue()).getIdAsInt()); + } + } +} diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/CaracteristicQualitativeValues.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/CaracteristicQualitativeValues.java index 1cb960f..81c3725 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/CaracteristicQualitativeValues.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/CaracteristicQualitativeValues.java @@ -22,6 +22,11 @@ package fr.ifremer.tutti.persistence.entities.referential; * #L% */ +import com.google.common.base.Predicate; + +import java.util.Collection; +import java.util.Iterator; + public class CaracteristicQualitativeValues extends AbstractCaracteristicQualitativeValues { public static CaracteristicQualitativeValue getCaracteristicQualitativeValue(Caracteristic caracteristic, Integer id) { @@ -36,4 +41,41 @@ public class CaracteristicQualitativeValues extends AbstractCaracteristicQualita } return result; } + + public static CaracteristicQualitativeValue getQualitativeValue(Caracteristic caracteristic, Integer qualitativeValueId) { + CaracteristicQualitativeValue value = null; + for (CaracteristicQualitativeValue qv : caracteristic.getQualitativeValue()) { + if (qualitativeValueId.equals(qv.getIdAsInt())) { + value = qv; + break; + } + } + return value; + } + + public static void removeQualitativeValue(Collection<CaracteristicQualitativeValue> values, + int id) { + Iterator<CaracteristicQualitativeValue> iterator = values.iterator(); + while (iterator.hasNext()) { + CaracteristicQualitativeValue next = iterator.next(); + if (id == next.getIdAsInt()) { + iterator.remove(); + break; + } + } + } + + protected static class CaracteristicQualitativeValuePredicate implements Predicate<CaracteristicQualitativeValue> { + + private final Integer id; + + public CaracteristicQualitativeValuePredicate(Integer id) { + this.id = id; + } + + @Override + public boolean apply(CaracteristicQualitativeValue input) { + return id.equals(input.getIdAsInt()); + } + } } \ No newline at end of file diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/Caracteristics.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/Caracteristics.java new file mode 100644 index 0000000..5103037 --- /dev/null +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/Caracteristics.java @@ -0,0 +1,43 @@ +package fr.ifremer.tutti.persistence.entities.referential; + +import com.google.common.base.Predicate; + +public class Caracteristics extends AbstractCaracteristics { + + public static CaracteristicType getType(boolean isAlpha, + boolean isQualitative) { + CaracteristicType result; + if (isAlpha) { + result = CaracteristicType.TEXT; + } else if (isQualitative) { + result = CaracteristicType.QUALITATIVE; + } else { + result = CaracteristicType.NUMBER; + } + return result; + } + + public static boolean isNumberCaracteristic(Caracteristic c) { + return CaracteristicType.NUMBER == c.getCaracteristicType(); + } + + public static boolean isTextCaracteristic(Caracteristic c) { + return CaracteristicType.TEXT == c.getCaracteristicType(); + } + + public static boolean isQualitativeCaracteristic(Caracteristic c) { + return CaracteristicType.QUALITATIVE == c.getCaracteristicType(); + } + + public static Predicate<Caracteristic> newSampleCategoryModelPredicate() { + return new SampleCategoryCaracteristicPredicate(); + } + + public static class SampleCategoryCaracteristicPredicate implements Predicate<Caracteristic> { + + @Override + public boolean apply(Caracteristic input) { + return !CaracteristicType.TEXT.equals(input.getCaracteristicType()); + } + } +} //Caracteristics diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/Gears.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/Gears.java new file mode 100644 index 0000000..9e23ee3 --- /dev/null +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/Gears.java @@ -0,0 +1,22 @@ +package fr.ifremer.tutti.persistence.entities.referential; + + +import com.google.common.base.Predicate; + +public class Gears extends AbstractGears { + + + public static final Predicate<Gear> IS_FISHING_GEAR = new Predicate<Gear>() { + + public boolean apply(Gear input) { + return !input.isScientificGear(); + } + }; + + public static final Predicate<Gear> IS_SCIENTIFIC_GEAR = new Predicate<Gear>() { + + public boolean apply(Gear input) { + return input.isScientificGear(); + } + }; +} //Gears diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/Speciess.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/Speciess.java new file mode 100644 index 0000000..5cb12df --- /dev/null +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/Speciess.java @@ -0,0 +1,75 @@ +package fr.ifremer.tutti.persistence.entities.referential; + +import com.google.common.base.Function; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import com.google.common.collect.Multimap; +import com.google.common.collect.Multimaps; +import com.google.common.collect.Sets; + +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import java.util.Map; +import java.util.Set; + +public class Speciess extends AbstractSpeciess { + + public static final Comparator<Species> SPECIES_BY_NAME_COMPARATOR = new Comparator<Species>() { + + public int compare(Species o1, Species o2) { + if (o1 == null) { + return -1; + } + if (o2 == null) { + return 1; + } + return o1.getName().compareTo(o2.getName()); + } + + }; + + public static final Function<Species, String> GET_TAXON_ID = new Function<Species, String>() { + @Override + public String apply(Species input) { + return String.valueOf(input.getReferenceTaxonId()); + } + }; + + public static final Function<Species, String> GET_REF_TAX_CODE = new Function<Species, String>() { + @Override + public String apply(Species input) { + return String.valueOf(input.getRefTaxCode()); + } + }; + + public static final Function<Species, String> GET_SURVEY_CODE = new Function<Species, String>() { + @Override + public String apply(Species input) { + return String.valueOf(input.getSurveyCode()); + } + }; + + public static Map<String, Species> splitByTaxonId(Iterable<Species> list) { + return Maps.uniqueIndex(list, GET_TAXON_ID); + } + + public static Multimap<String, Species> splitByReferenceTaxonId(Iterable<Species> list) { + return Multimaps.index(list, GET_TAXON_ID); + } + + public static Multimap<String, Species> splitByRefTaxCode(Iterable<Species> list) { + return Multimaps.index(list, GET_REF_TAX_CODE); + } + + public static Multimap<String, Species> splitBySurveyCode(Iterable<Species> list) { + return Multimaps.index(list, GET_SURVEY_CODE); + } + + public static Set<String> toTaxonIds(List<Species> list) { + Set<String> result = list == null ? + Collections.<String>emptySet() : + Sets.newHashSet(Lists.transform(list, GET_TAXON_ID)); + return result; + } +} //Speciess diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceImpl.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceImpl.java index 758715b..24d7b12 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceImpl.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CatchBatchPersistenceServiceImpl.java @@ -31,7 +31,8 @@ import fr.ifremer.adagio.core.dao.data.measure.QuantificationMeasurement; import fr.ifremer.adagio.core.dao.data.operation.FishingOperationImpl; import fr.ifremer.adagio.core.dao.referential.QualityFlagCode; import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl; -import fr.ifremer.tutti.persistence.entities.TuttiEntities; +import fr.ifremer.tutti.util.Numbers; +import fr.ifremer.tutti.util.Weights; import fr.ifremer.tutti.persistence.entities.data.CatchBatch; import fr.ifremer.tutti.persistence.entities.data.CatchBatchBean; import fr.ifremer.tutti.persistence.service.util.BatchPersistenceHelper; @@ -649,8 +650,8 @@ public class CatchBatchPersistenceServiceImpl for (Batch childBatch : batch.getChildBatchs()) { - Float weight = TuttiEntities.getValueOrComputedValue(childBatch.getWeightBeforeSampling(), - childBatch.getWeight()); + Float weight = Numbers.getValueOrComputedValue(childBatch.getWeightBeforeSampling(), + childBatch.getWeight()); if (weight == null) { @@ -672,7 +673,7 @@ public class CatchBatchPersistenceServiceImpl } - return TuttiEntities.roundKiloGram(result.floatValue()); + return Weights.roundKiloGram(result.floatValue()); } diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java index 389e1bc..77db23c 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java @@ -63,6 +63,7 @@ import fr.ifremer.tutti.persistence.entities.data.Cruises; import fr.ifremer.tutti.persistence.entities.data.Program; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; +import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValues; import fr.ifremer.tutti.persistence.entities.referential.Gear; import fr.ifremer.tutti.persistence.entities.referential.GearWithOriginalRankOrder; import fr.ifremer.tutti.persistence.entities.referential.GearWithOriginalRankOrders; @@ -415,8 +416,8 @@ public class CruisePersistenceServiceImpl extends AbstractPersistenceService imp case QUALITATIVE: QualitativeValue qualitativeValue = measurement.getQualitativeValue(); if (qualitativeValue != null) { - value = TuttiEntities.getQualitativeValue(caracteristic, - qualitativeValue.getId()); + value = CaracteristicQualitativeValues.getQualitativeValue(caracteristic, + qualitativeValue.getId()); } break; case TEXT: diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java index 22112b9..b3b6279 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java @@ -24,7 +24,6 @@ package fr.ifremer.tutti.persistence.service; import com.google.common.collect.Lists; import fr.ifremer.adagio.core.service.technical.CacheService; -import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocols; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; @@ -149,9 +148,12 @@ public class ProtocolPersistenceServiceImpl extends AbstractPersistenceService i protocolBinder.copy(bean, result); result.setId(UUID.randomUUID().toString()); - result.setLengthClassesPmfmId(TuttiEntities.getList(bean.getLengthClassesPmfmId())); - result.setVesselUseFeaturePmfmId(TuttiEntities.getList(bean.getVesselUseFeaturePmfmId())); - result.setGearUseFeaturePmfmId(TuttiEntities.getList(bean.getGearUseFeaturePmfmId())); +// result.setLengthClassesPmfmId(TuttiEntities.getList(bean.getLengthClassesPmfmId())); +// result.setVesselUseFeaturePmfmId(TuttiEntities.getList(bean.getVesselUseFeaturePmfmId())); +// result.setGearUseFeaturePmfmId(TuttiEntities.getList(bean.getGearUseFeaturePmfmId())); + result.setLengthClassesPmfmId(bean.getLengthClassesPmfmId()); + result.setVesselUseFeaturePmfmId(bean.getVesselUseFeaturePmfmId()); + result.setGearUseFeaturePmfmId(bean.getGearUseFeaturePmfmId()); Binder<SpeciesProtocol, SpeciesProtocol> speciesProtocolBinder = BinderFactory.newBinder(SpeciesProtocol.class); List<SpeciesProtocol> species = Lists.newArrayList(); diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java index f459d0d..62c9533 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java @@ -48,8 +48,8 @@ import fr.ifremer.adagio.core.dao.referential.taxon.TaxonNameExtendDao; import fr.ifremer.adagio.core.dao.referential.taxon.TaxonRefVO; import fr.ifremer.adagio.core.dao.referential.transcribing.TranscribingItemTypeId; import fr.ifremer.adagio.core.service.technical.CacheService; -import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.SpeciesAbleBatch; +import fr.ifremer.tutti.persistence.entities.data.SpeciesAbleBatchs; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValues; @@ -136,7 +136,7 @@ public class ReferentialPersistenceServiceImpl extends AbstractPersistenceServic public void init() { super.init(); - batchVracPredicate = TuttiEntities.newSpeciesAbleBatchCategoryPredicate( + batchVracPredicate = SpeciesAbleBatchs.newSpeciesAbleBatchCategoryPredicate( PmfmId2.SORTED_UNSORTED.getValue(), QualitativeValueId.SORTED_VRAC.getValue()); @@ -536,7 +536,7 @@ public class ReferentialPersistenceServiceImpl extends AbstractPersistenceServic public List<Caracteristic> getAllCaracteristicForSampleCategory() { List<Caracteristic> allCaracteristicWithProtected = thisService.getAllCaracteristicWithProtected(); List<Caracteristic> result = Lists.newArrayList( - Iterables.filter(allCaracteristicWithProtected, TuttiEntities.newSampleCategoryModelPredicate())); + Iterables.filter(allCaracteristicWithProtected, Caracteristics.newSampleCategoryModelPredicate())); return result; } @@ -1041,10 +1041,10 @@ public class ReferentialPersistenceServiceImpl extends AbstractPersistenceServic result.setMatrixName((String) source[2]); result.setFractionName((String) source[3]); result.setMethodName((String) source[4]); - CaracteristicType type = TuttiEntities.getType((Boolean) source[5], - (Boolean) source[6]); + CaracteristicType type = Caracteristics.getType((Boolean) source[5], + (Boolean) source[6]); result.setCaracteristicType(type); - result.setNumericType(TuttiEntities.isNumberCaracteristic(result)); + result.setNumericType(Caracteristics.isNumberCaracteristic(result)); result.setSignifFiguresNumber((Integer) source[7]); result.setMaximumNumberDecimals((Integer) source[8]); @@ -1052,7 +1052,7 @@ public class ReferentialPersistenceServiceImpl extends AbstractPersistenceServic result.setUnit((String) source[10]); setStatus((fr.ifremer.adagio.core.dao.referential.Status) source[11], result); - if (TuttiEntities.isQualitativeCaracteristic(result)) { + if (Caracteristics.isQualitativeCaracteristic(result)) { // load qualitative values diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/SamplePersistenceHelper.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/SamplePersistenceHelper.java index a55c339..aa335bb 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/SamplePersistenceHelper.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/util/SamplePersistenceHelper.java @@ -31,8 +31,8 @@ import fr.ifremer.adagio.core.dao.referential.QualityFlagImpl; import fr.ifremer.adagio.core.dao.referential.pmfm.ObjectTypeCode2; import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmImpl; import fr.ifremer.tutti.persistence.entities.CaracteristicMap; -import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; +import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValues; import fr.ifremer.tutti.persistence.service.AbstractPersistenceService; import fr.ifremer.tutti.persistence.service.AttachmentPersistenceService; import fr.ifremer.tutti.persistence.service.ReferentialPersistenceService; @@ -149,8 +149,8 @@ public class SamplePersistenceHelper extends AbstractPersistenceService { value = numericalValue; break; case QUALITATIVE: - value = TuttiEntities.getQualitativeValue(caracteristic, - qualitativeValueId); + value = CaracteristicQualitativeValues.getQualitativeValue(caracteristic, + qualitativeValueId); break; case TEXT: value = alphanumericalValue; diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/DatabaseResource.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/DatabaseResource.java index b96c6e6..eeed2fa 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/DatabaseResource.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/DatabaseResource.java @@ -30,8 +30,8 @@ import com.google.common.collect.Sets; import com.google.common.io.Files; import fr.ifremer.tutti.TuttiConfiguration; import fr.ifremer.tutti.TuttiConfigurationOption; -import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.service.TuttiPersistenceServiceLocator; +import fr.ifremer.tutti.util.Jdbcs; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; @@ -336,9 +336,9 @@ public class DatabaseResource implements TestRule { toDetroy.add(target); FileUtils.copyDirectory(db, target); if (p != null) { - TuttiEntities.fillConnectionProperties( + Jdbcs.fillConnectionProperties( p, - TuttiEntities.getJdbcUrl(target, config.getDbName()), + Jdbcs.getJdbcUrl(target, config.getDbName()), config.getJdbcUsername(), config.getJdbcPassword()); } @@ -424,12 +424,12 @@ public class DatabaseResource implements TestRule { log.info("Create new db at " + directory); } addToDestroy(directory); - String jdbcUrl = TuttiEntities.getJdbcUrl(directory, dbName); + String jdbcUrl = Jdbcs.getJdbcUrl(directory, dbName); String user = "SA"; String password = ""; if (p != null) { - TuttiEntities.fillConnectionProperties(p, jdbcUrl, user, password); + Jdbcs.fillConnectionProperties(p, jdbcUrl, user, password); } File scriptFile = FileUtil.getFileFromPaths(new File("src"), "test", scriptDbname, "allegro.script"); @@ -440,7 +440,7 @@ public class DatabaseResource implements TestRule { if (log.isInfoEnabled()) { log.info("Will use create script: " + scriptFile); } - Connection connection = TuttiEntities.createConnection(jdbcUrl, user, password); + Connection connection = Jdbcs.createConnection(jdbcUrl, user, password); if (log.isInfoEnabled()) { log.info("Created connection at " + connection.getMetaData().getURL()); diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/util/Distances.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/util/Distances.java new file mode 100644 index 0000000..d375e60 --- /dev/null +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/util/Distances.java @@ -0,0 +1,39 @@ +package fr.ifremer.tutti.util; + +/** + * Created on 8/26/14. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.7 + */ +public class Distances { + private static final double EARTH_RADIUS = 6378288.0; + + public static int computeDistanceInMeters(Float startLatitude, + Float startLongitude, + Float endLatitude, + Float endLongitude) { + + double sLat = startLatitude * Math.PI / 180.0; + double sLong = startLongitude * Math.PI / 180.0; + double eLat = endLatitude * Math.PI / 180.0; + double eLong = endLongitude * Math.PI / 180.0; + + Double d = EARTH_RADIUS * + (Math.PI / 2 - Math.asin(Math.sin(eLat) * Math.sin(sLat) + + Math.cos(eLong - sLong) * Math.cos(eLat) * Math.cos(sLat))); + return d.intValue(); + } + + public static String getDistanceInMilles(Float distance) { + String distanceText; + if (distance != null) { + Float distanceInMilles = distance / 1852; + distanceText = String.format("%.3f", distanceInMilles); + + } else { + distanceText = ""; + } + return distanceText; + } +} diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/util/Jdbcs.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/util/Jdbcs.java new file mode 100644 index 0000000..82489d1 --- /dev/null +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/util/Jdbcs.java @@ -0,0 +1,102 @@ +package fr.ifremer.tutti.util; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.hibernate.cfg.Environment; + +import java.io.File; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.Properties; + +/** + * Created on 8/26/14. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.7 + */ +public class Jdbcs { + + /** Logger. */ + private static final Log log = LogFactory.getLog(Jdbcs.class); + + public static void closeSilently(Statement statement) { + try { + if (statement != null && !statement.isClosed()) { + + statement.close(); + } + } catch (AbstractMethodError e) { + if (log.isDebugEnabled()) { + log.debug("Fix this linkage error, damned hsqlsb 1.8.0.7:("); + } + } catch (IllegalAccessError e) { + if (log.isDebugEnabled()) { + log.debug("Fix this IllegalAccessError error, damned hsqlsb 1.8.0.7:("); + } + } catch (Exception e) { + if (log.isErrorEnabled()) { + log.error("Could not close statement, but do not care", e); + } + } + } + + public static void closeSilently(ResultSet statement) { + try { + if (statement != null && !statement.isClosed()) { + + statement.close(); + } + } catch (AbstractMethodError e) { + if (log.isDebugEnabled()) { + log.debug("Fix this linkage error, damned hsqlsb 1.8.0.7:("); + } + } catch (IllegalAccessError e) { + if (log.isDebugEnabled()) { + log.debug("Fix this IllegalAccessError error, damned hsqlsb 1.8.0.7:("); + } + } catch (Exception e) { + if (log.isErrorEnabled()) { + log.error("Could not close statement, but do not care", e); + } + } + } + + public static Connection createConnection(Properties connectionProperties) throws SQLException { + return createConnection( + connectionProperties.getProperty(Environment.URL), + connectionProperties.getProperty(Environment.USER), + connectionProperties.getProperty(Environment.PASS) + ); + } + + public static String getUrl(Properties connectionProperties) { + return connectionProperties.getProperty(Environment.URL); + } + + public static Connection createConnection(String jdbcUrl, + String user, + String password) throws SQLException { + Connection connection = DriverManager.getConnection(jdbcUrl, + user, + password); + connection.setAutoCommit(false); + return connection; + } + + public static void fillConnectionProperties(Properties p, + String url, + String username, + String password) { + p.put(Environment.URL, url); + p.put(Environment.USER, username); + p.put(Environment.PASS, password); + } + + public static String getJdbcUrl(File directory, String dbName) { + return "jdbc:hsqldb:file:" + directory.getAbsolutePath() + "/" + dbName; + } +} diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/util/Numbers.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/util/Numbers.java new file mode 100644 index 0000000..fda87bb --- /dev/null +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/util/Numbers.java @@ -0,0 +1,30 @@ +package fr.ifremer.tutti.util; + +/** + * Created on 8/26/14. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.7 + */ +public class Numbers { + public static float getRoundedLengthStep(float lengthStep, boolean aroundUp) { + int intValue = (int) ((lengthStep + (aroundUp ? 0.001f : 0f)) * 10); + float result = intValue / 10f; + return result; + } + + public static <N extends Number> N getValueOrComputedValue(N value, N computedValue) { + return value == null ? computedValue : value; + } + + public static <N extends Number> Boolean getValueOrComputedValueComputed(N value, N computedValue) { + Boolean result; + if (value == null) { + + result = computedValue == null ? null : true; + } else { + result = false; + } + return result; + } +} diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/util/Weights.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/util/Weights.java new file mode 100644 index 0000000..07e65c7 --- /dev/null +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/util/Weights.java @@ -0,0 +1,106 @@ +package fr.ifremer.tutti.util; + +import java.math.BigDecimal; +import java.text.DecimalFormat; +import java.text.DecimalFormatSymbols; + +/** + * Created on 8/26/14. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.7 + */ +public class Weights { + + private static DecimalFormatSymbols symbols; + + private static DecimalFormat decimalFormat; + + public static DecimalFormatSymbols getDecimalFormatSymbols() { + if (symbols == null) { + symbols = new DecimalFormatSymbols(); + symbols.setDecimalSeparator('.'); + symbols.setGroupingSeparator(' '); + } + return symbols; + } + + public static DecimalFormat getDecimalFormat(int minDecimal, int maxDecimal) { + if (decimalFormat == null) { + decimalFormat = new DecimalFormat(); + decimalFormat.setDecimalFormatSymbols(getDecimalFormatSymbols()); + decimalFormat.setGroupingUsed(false); + } + decimalFormat.setMinimumFractionDigits(minDecimal); + decimalFormat.setMaximumFractionDigits(maxDecimal); + return decimalFormat; + } + + public static String getWeightStringValue(Float weight) { + String textValue; + if (weight != null) { + DecimalFormat weightDecimalFormat = getDecimalFormat(1, 3); + textValue = weightDecimalFormat.format(weight); + + } else { + textValue = ""; + } + return textValue; + } + + /** + * Round the given value to max 4 digits. + * + * @param value the float to round. + * @return the rounded value + * @since 1.0.1 + */ + public static float roundKiloGram(float value) { + BigDecimal sumB = new BigDecimal(String.valueOf(value)) + .setScale(3, BigDecimal.ROUND_HALF_UP) + .abs(); + float result = sumB.floatValue(); + return result; + } + + /** + * Compare two weights with rounding them to kilograms. + * + * @param v0 first weight to compare + * @param v1 second weight to compare + * @return 1 if v0 > v1, -1 if v0 < v1, 0 if v0 == v1 + */ + public static int compareWeights(float v0, float v1) { + v0 = roundKiloGram(v0); + v1 = roundKiloGram(v1); + float delta = v0 - v1; + int result; + if (delta > 0.00001) { + // v0 > v1 + result = 1; + } else if (delta < -0.0001f) { + // v0 < v1 + result = -1; + } else { + // v0 == v1 + result = 0; + } + return result; + } + + public static boolean isSmallerWeight(float v0, float v1) { + return compareWeights(v0, v1) < 0; + } + + public static boolean isGreaterWeight(float v0, float v1) { + return compareWeights(v0, v1) > 0; + } + + public static boolean isEqualWeight(float v0, float v1) { + return compareWeights(v0, v1) == 0; + } + + public static boolean isNotEqualWeight(float v0, float v1) { + return compareWeights(v0, v1) != 0; + } +} diff --git a/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceReadTest.java b/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceReadTest.java index 7647857..6168a10 100644 --- a/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceReadTest.java +++ b/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceReadTest.java @@ -27,10 +27,12 @@ import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.TuttiEntity; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; +import fr.ifremer.tutti.persistence.entities.referential.Caracteristics; import fr.ifremer.tutti.persistence.entities.referential.Gear; import fr.ifremer.tutti.persistence.entities.referential.ObjectType; import fr.ifremer.tutti.persistence.entities.referential.Person; import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.persistence.entities.referential.Speciess; import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; import fr.ifremer.tutti.persistence.entities.referential.Vessel; import fr.ifremer.tutti.persistence.test.DatabaseFixtures; @@ -215,7 +217,7 @@ public class ReferentialPersistenceServiceReadTest { TuttiEntities.splitById(result); assertResultList(result, fixtures.refNbReferentSpecies()); - TuttiEntities.splitByTaxonId(result); + Speciess.splitByTaxonId(result); } @Test @@ -330,7 +332,7 @@ public class ReferentialPersistenceServiceReadTest { protected void assertCaracteristicQualitative(Caracteristic result, int nbValues) { Assert.assertNotNull(result); Assert.assertNotNull(result.getCaracteristicType()); - Assert.assertTrue(TuttiEntities.isQualitativeCaracteristic(result)); + Assert.assertTrue(Caracteristics.isQualitativeCaracteristic(result)); Assert.assertNotNull(result.getQualitativeValue()); Assert.assertEquals(nbValues, result.sizeQualitativeValue()); for (CaracteristicQualitativeValue qualitativeValue : result.getQualitativeValue()) { diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java index 055be4a..cfb9195 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java @@ -57,6 +57,7 @@ import fr.ifremer.tutti.persistence.entities.referential.Gear; import fr.ifremer.tutti.persistence.entities.referential.ObjectType; import fr.ifremer.tutti.persistence.entities.referential.Person; import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.persistence.entities.referential.Speciess; import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; import fr.ifremer.tutti.persistence.entities.referential.TuttiReferentialEntity; import fr.ifremer.tutti.persistence.entities.referential.Vessel; @@ -495,7 +496,7 @@ public class PersistenceService extends AbstractTuttiService implements TuttiPer if (!protocol.isSpeciesEmpty()) { // split by taxonId - Map<String, Species> map = TuttiEntities.splitByTaxonId(referentSpecies); + Map<String, Species> map = Speciess.splitByTaxonId(referentSpecies); for (SpeciesProtocol protocolSpecy : protocol.getSpecies()) { String taxonId = String.valueOf(protocolSpecy.getSpeciesReferenceTaxonId()); @@ -529,7 +530,7 @@ public class PersistenceService extends AbstractTuttiService implements TuttiPer if (!protocol.isBenthosEmpty()) { // split by taxonId - Map<String, Species> map = TuttiEntities.splitByTaxonId(referentSpecies); + Map<String, Species> map = Speciess.splitByTaxonId(referentSpecies); for (SpeciesProtocol protocolSpecy : protocol.getBenthos()) { String taxonId = String.valueOf(protocolSpecy.getSpeciesReferenceTaxonId()); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java index 8b372d2..31493f8 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java @@ -27,6 +27,7 @@ import com.google.common.base.Joiner; import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import com.google.common.collect.Maps; +import fr.ifremer.tutti.util.Weights; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.TuttiEntity; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; @@ -34,6 +35,7 @@ import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativ import fr.ifremer.tutti.persistence.entities.referential.Gear; import fr.ifremer.tutti.persistence.entities.referential.Person; import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.persistence.entities.referential.Speciess; import fr.ifremer.tutti.persistence.entities.referential.Vessel; import org.apache.commons.beanutils.BeanUtilsBean; import org.apache.commons.beanutils.NestedNullException; @@ -86,7 +88,7 @@ public class TuttiCsvUtil extends Common { // if value is null then use the default value value = defaultValue; } - return TuttiEntities.getWeightStringValue(value); + return Weights.getWeightStringValue(value); } @Override @@ -225,7 +227,7 @@ public class TuttiCsvUtil extends Common { if (species == null) { species = Lists.newArrayList(); } - Map<String, Species> universe = TuttiEntities.splitByTaxonId(species); + Map<String, Species> universe = Speciess.splitByTaxonId(species); newForeignKeyColumn(propertyName, Species.class, foreignKeyName, universe); } @@ -233,7 +235,8 @@ public class TuttiCsvUtil extends Common { if (list == null) { list = Lists.newArrayList(); } - Map<String, E> universe = Maps.uniqueIndex(list, TuttiEntities.GET_ID); +// Map<String, E> universe = Maps.uniqueIndex(list, TuttiEntities.GET_ID); + Map<String, E> universe = TuttiEntities.splitById(list); newMandatoryColumn(propertyName, propertyName, newForeignKeyValue(entityType, foreignKeyName, universe)); } @@ -352,7 +355,7 @@ public class TuttiCsvUtil extends Common { @Override public String format(Float value) { if (value != null) { - value = TuttiEntities.roundKiloGram(value); + value = Weights.roundKiloGram(value); } return super.format(value); } @@ -360,7 +363,7 @@ public class TuttiCsvUtil extends Common { @Override protected Float parseNoneEmptyValue(String value) { Float aFloat = super.parseNoneEmptyValue(value); - float result = TuttiEntities.roundKiloGram(aFloat); + float result = Weights.roundKiloGram(aFloat); return result; } }; diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDataContext.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDataContext.java index 15a1df3..4d5ef04 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDataContext.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiDataContext.java @@ -25,7 +25,7 @@ package fr.ifremer.tutti.service; import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import fr.ifremer.tutti.TuttiConfiguration; -import fr.ifremer.tutti.persistence.entities.TuttiEntities; +import fr.ifremer.tutti.util.Weights; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.data.Program; @@ -908,7 +908,7 @@ public class TuttiDataContext extends AbstractBean implements Closeable { } public boolean isNotWeightZeroValue(Float weight) { - return TuttiEntities.isNotEqualWeight(weight, 0f); + return Weights.isNotEqualWeight(weight, 0f); } public boolean isMutiRegNumberValid(String numberAsString) { diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/WeightCleaningService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/WeightCleaningService.java index 40b9300..8bc4b33 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/WeightCleaningService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/WeightCleaningService.java @@ -28,7 +28,7 @@ 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.ifremer.tutti.persistence.entities.TuttiEntities; +import fr.ifremer.tutti.util.Weights; import fr.ifremer.tutti.persistence.entities.data.BatchContainer; import fr.ifremer.tutti.persistence.entities.data.BenthosBatch; import fr.ifremer.tutti.persistence.entities.data.BenthosBatchFrequency; @@ -482,7 +482,7 @@ public class WeightCleaningService extends AbstractTuttiService { Float parentSampleCategoryWeight = parentBatch.getSampleCategoryWeight(); if (sampleCategoryWeight != null && parentSampleCategoryWeight != null && - TuttiEntities.isEqualWeight(parentSampleCategoryWeight, sampleCategoryWeight)) { + Weights.isEqualWeight(parentSampleCategoryWeight, sampleCategoryWeight)) { result = t("tutti.service.operations.cleanWeights.error.redundant.sampleCategoryWeight", weightUnit.fromEntity(sampleCategoryWeight), @@ -513,7 +513,7 @@ public class WeightCleaningService extends AbstractTuttiService { Float frequenciesWeigth = persistenceService.countFrequenciesWeight(frequencies, true); - if (frequenciesWeigth != null && TuttiEntities.isEqualWeight(weight, frequenciesWeigth)) { + if (frequenciesWeigth != null && Weights.isEqualWeight(weight, frequenciesWeigth)) { result = t("tutti.service.operations.cleanWeights.error.redundant.frequencyWeight", weightUnit.fromEntity(weight), weightUnit.getShortLabel(), @@ -534,7 +534,7 @@ public class WeightCleaningService extends AbstractTuttiService { // on a leaf, check if weight is not = to the finest category weight Float weight = batch.getWeight(); Float sampleCategoryWeight = batch.getSampleCategoryWeight(); - if (weight != null && sampleCategoryWeight != null && TuttiEntities.isEqualWeight(weight, sampleCategoryWeight)) { + if (weight != null && sampleCategoryWeight != null && Weights.isEqualWeight(weight, sampleCategoryWeight)) { result = t("tutti.service.operations.cleanWeights.error.redundant.weight", weightUnit.fromEntity(weight), diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/WeightComputingService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/WeightComputingService.java index 1ce82c3..09ad3c7 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/WeightComputingService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/WeightComputingService.java @@ -24,7 +24,8 @@ package fr.ifremer.tutti.service.catches; import com.google.common.collect.Lists; import com.google.common.collect.Maps; -import fr.ifremer.tutti.persistence.entities.TuttiEntities; +import fr.ifremer.tutti.util.Numbers; +import fr.ifremer.tutti.util.Weights; import fr.ifremer.tutti.persistence.entities.data.BatchContainer; import fr.ifremer.tutti.persistence.entities.data.BenthosBatch; import fr.ifremer.tutti.persistence.entities.data.BenthosBatchFrequency; @@ -186,7 +187,7 @@ public class WeightComputingService extends AbstractTuttiService { if (rootSpeciesBatch != null) { for (int i = 0; i < rootSpeciesBatch.getChildren().size(); i++) { SpeciesBatch row = rootSpeciesBatch.getChildren().get(i); - Float weight = TuttiEntities.getValueOrComputedValue( + Float weight = Numbers.getValueOrComputedValue( row.getSampleCategoryWeight(), row.getSampleCategoryComputedWeight()); if (weight == null) { @@ -221,20 +222,20 @@ public class WeightComputingService extends AbstractTuttiService { if (speciesTotalSortedWeight == null) { speciesTotalSortedWeight = speciesTotalComputedSortedWeight; catchBatch.setSpeciesTotalSortedComputedWeight( - TuttiEntities.roundKiloGram(speciesTotalSortedWeight)); + Weights.roundKiloGram(speciesTotalSortedWeight)); } else if (speciesTotalSortedWeight < speciesTotalComputedSortedWeight) { throw new ApplicationBusinessException(t("tutti.service.operations.computeWeights.error.species.incoherentTotalSorted")); } catchBatch.setSpeciesTotalUnsortedComputedWeight( - TuttiEntities.roundKiloGram(speciesTotalComputedUnsortedWeight)); + Weights.roundKiloGram(speciesTotalComputedUnsortedWeight)); if (speciesTotalSortedWeight == null) { speciesTotalSortedWeight = catchBatch.getSpeciesTotalSortedComputedWeight(); } Float speciesTotalWeight = speciesTotalComputedUnsortedWeight + speciesTotalSortedWeight; catchBatch.setSpeciesTotalComputedWeight( - TuttiEntities.roundKiloGram(speciesTotalWeight)); + Weights.roundKiloGram(speciesTotalWeight)); // Benthos Float benthosTotalComputedSortedWeight = 0f; @@ -243,7 +244,7 @@ public class WeightComputingService extends AbstractTuttiService { if (rootBenthosBatch != null) { for (int i = 0; i < rootBenthosBatch.getChildren().size(); i++) { BenthosBatch row = rootBenthosBatch.getChildren().get(i); - Float weight = TuttiEntities.getValueOrComputedValue( + Float weight = Numbers.getValueOrComputedValue( row.getSampleCategoryWeight(), row.getSampleCategoryComputedWeight()); if (weight == null) { @@ -273,26 +274,26 @@ public class WeightComputingService extends AbstractTuttiService { } catchBatch.setBenthosTotalSampleSortedComputedWeight( - TuttiEntities.roundKiloGram(benthosTotalComputedSortedWeight)); + Weights.roundKiloGram(benthosTotalComputedSortedWeight)); Float benthosTotalSortedWeight = catchBatch.getBenthosTotalSortedWeight(); if (benthosTotalSortedWeight == null) { benthosTotalSortedWeight = benthosTotalComputedSortedWeight; catchBatch.setBenthosTotalSortedComputedWeight( - TuttiEntities.roundKiloGram(benthosTotalSortedWeight)); + Weights.roundKiloGram(benthosTotalSortedWeight)); } else if (benthosTotalSortedWeight < benthosTotalComputedSortedWeight) { throw new ApplicationBusinessException(t("tutti.service.operations.computeWeights.error.benthos.incoherentTotalSorted")); } catchBatch.setBenthosTotalUnsortedComputedWeight( - TuttiEntities.roundKiloGram(benthosTotalComputedUnsortedWeight)); + Weights.roundKiloGram(benthosTotalComputedUnsortedWeight)); if (benthosTotalSortedWeight == null) { benthosTotalSortedWeight = catchBatch.getBenthosTotalSortedComputedWeight(); } Float benthosTotalWeight = benthosTotalComputedUnsortedWeight + benthosTotalSortedWeight; catchBatch.setBenthosTotalComputedWeight( - TuttiEntities.roundKiloGram(benthosTotalWeight)); + Weights.roundKiloGram(benthosTotalWeight)); // Marine litter Float marineLitterTotalComputedWeight = 0f; @@ -310,7 +311,7 @@ public class WeightComputingService extends AbstractTuttiService { } if (marineLitterTotalComputedWeight != null) { catchBatch.setMarineLitterTotalComputedWeight( - TuttiEntities.roundKiloGram(marineLitterTotalComputedWeight)); + Weights.roundKiloGram(marineLitterTotalComputedWeight)); } Float marineLitterTotalWeight = catchBatch.getMarineLitterTotalWeight(); @@ -328,8 +329,8 @@ public class WeightComputingService extends AbstractTuttiService { Float totalSortedWeight = speciesTotalSortedWeight + benthosTotalSortedWeight; - catchBatch.setCatchTotalSortedComputedWeight(TuttiEntities.roundKiloGram(totalSortedWeight)); - catchBatch.setCatchTotalUnsortedComputedWeight(TuttiEntities.roundKiloGram(totalUnsortedWeight)); + catchBatch.setCatchTotalSortedComputedWeight(Weights.roundKiloGram(totalSortedWeight)); + catchBatch.setCatchTotalUnsortedComputedWeight(Weights.roundKiloGram(totalUnsortedWeight)); Float totalWeight = catchBatch.getCatchTotalWeight(); Float rejectedWeight = catchBatch.getCatchTotalRejectedWeight(); @@ -341,9 +342,9 @@ public class WeightComputingService extends AbstractTuttiService { } else { catchBatch.setCatchTotalRejectedComputedWeight( - TuttiEntities.roundKiloGram(totalWeight - - totalUnsortedWeight - - totalSortedWeight)); + Weights.roundKiloGram(totalWeight + - totalUnsortedWeight + - totalSortedWeight)); } } else if (totalWeight == null) { @@ -352,9 +353,9 @@ public class WeightComputingService extends AbstractTuttiService { catchBatch.setCatchTotalRejectedComputedWeight(0f); } catchBatch.setCatchTotalComputedWeight( - TuttiEntities.roundKiloGram(totalUnsortedWeight - + totalSortedWeight - + rejectedWeight)); + Weights.roundKiloGram(totalUnsortedWeight + + totalSortedWeight + + rejectedWeight)); } else if (!totalWeight.equals(totalUnsortedWeight + totalSortedWeight + rejectedWeight)) { throw new ApplicationBusinessException(t("tutti.service.operations.computeWeights.error.incoherentTotal")); @@ -429,9 +430,9 @@ public class WeightComputingService extends AbstractTuttiService { if (sum != null) { if (categoryWeight == null) { - batch.setSampleCategoryComputedWeight(TuttiEntities.roundKiloGram(sum)); + batch.setSampleCategoryComputedWeight(Weights.roundKiloGram(sum)); - } else if (TuttiEntities.isSmallerWeight(categoryWeight, sum)) { + } else if (Weights.isSmallerWeight(categoryWeight, sum)) { String categoryLabel = getCategoryLabel(batch.getSampleCategoryId()); throw new TuttiWeightComputingException( t("tutti.service.operations.computeWeights.error.species.incoherentParentCategoryWeight", @@ -477,7 +478,7 @@ public class WeightComputingService extends AbstractTuttiService { // throw new TuttiBusinessException(t("tutti.service.operations.computeWeights.error.incoherentRowWeightCategory")); } else if (rowWeight != null && frequencyWeight != null - && TuttiEntities.isNotEqualWeight(rowWeight, frequencyWeight)) { + && Weights.isNotEqualWeight(rowWeight, frequencyWeight)) { String categoryLabel = getCategoryLabel(batch.getSampleCategoryId()); @@ -494,15 +495,15 @@ public class WeightComputingService extends AbstractTuttiService { } else if (categoryWeight == null && frequencyWeight != null) { // if the category weight is null and the frequencies have a weight, // then this weight is the result - batch.setSampleCategoryComputedWeight(TuttiEntities.roundKiloGram(frequencyWeight)); + batch.setSampleCategoryComputedWeight(Weights.roundKiloGram(frequencyWeight)); result = frequencyWeight; } else if (frequencyWeight != null - && TuttiEntities.isNotEqualWeight(frequencyWeight, categoryWeight)) { + && Weights.isNotEqualWeight(frequencyWeight, categoryWeight)) { // if the weight of the frequencies is different from the category // weight, then set the weight of the sample - if (TuttiEntities.isGreaterWeight(frequencyWeight, categoryWeight)) { + if (Weights.isGreaterWeight(frequencyWeight, categoryWeight)) { String categoryLabel = getCategoryLabel(batch.getSampleCategoryId()); @@ -517,7 +518,7 @@ public class WeightComputingService extends AbstractTuttiService { thisIndex); } else if (rowWeight == null) { - batch.setComputedWeight(TuttiEntities.roundKiloGram(frequencyWeight)); + batch.setComputedWeight(Weights.roundKiloGram(frequencyWeight)); } result = categoryWeight; @@ -551,7 +552,7 @@ public class WeightComputingService extends AbstractTuttiService { thisIndex); } - return TuttiEntities.roundKiloGram(result); + return Weights.roundKiloGram(result); } private int currentBenthosRowIndex; @@ -616,9 +617,9 @@ public class WeightComputingService extends AbstractTuttiService { if (sum != null) { if (categoryWeight == null) { - batch.setSampleCategoryComputedWeight(TuttiEntities.roundKiloGram(sum)); + batch.setSampleCategoryComputedWeight(Weights.roundKiloGram(sum)); - } else if (TuttiEntities.isSmallerWeight(categoryWeight, sum)) { + } else if (Weights.isSmallerWeight(categoryWeight, sum)) { String categoryLabel = getCategoryLabel(batch.getSampleCategoryId()); @@ -667,7 +668,7 @@ public class WeightComputingService extends AbstractTuttiService { // throw new TuttiBusinessException(t("tutti.service.operations.computeWeights.error.incoherentRowWeightCategory")); } else if (rowWeight != null && frequencyWeight != null - && TuttiEntities.isNotEqualWeight(rowWeight, frequencyWeight)) { + && Weights.isNotEqualWeight(rowWeight, frequencyWeight)) { String categoryLabel = getCategoryLabel(batch.getSampleCategoryId()); @@ -685,15 +686,15 @@ public class WeightComputingService extends AbstractTuttiService { } else if (categoryWeight == null && frequencyWeight != null) { // if the category weight is null and the frequencies have a weight, // then this weight is the result - batch.setSampleCategoryComputedWeight(TuttiEntities.roundKiloGram(frequencyWeight)); + batch.setSampleCategoryComputedWeight(Weights.roundKiloGram(frequencyWeight)); result = frequencyWeight; } else if (frequencyWeight != null - && TuttiEntities.isNotEqualWeight(frequencyWeight, categoryWeight)) { + && Weights.isNotEqualWeight(frequencyWeight, categoryWeight)) { // if the weight of the frequencies is different from the category // weight, then set the weight of the sample - if (TuttiEntities.isGreaterWeight(frequencyWeight, categoryWeight)) { + if (Weights.isGreaterWeight(frequencyWeight, categoryWeight)) { String categoryLabel = getCategoryLabel(batch.getSampleCategoryId()); @@ -709,7 +710,7 @@ public class WeightComputingService extends AbstractTuttiService { thisIndex); } else if (rowWeight == null) { - batch.setComputedWeight(TuttiEntities.roundKiloGram(frequencyWeight)); + batch.setComputedWeight(Weights.roundKiloGram(frequencyWeight)); } result = categoryWeight; @@ -743,7 +744,7 @@ public class WeightComputingService extends AbstractTuttiService { thisIndex); } - return TuttiEntities.roundKiloGram(result); + return Weights.roundKiloGram(result); } public BatchContainer<MarineLitterBatch> getComputedMarineLitterBatches(String fishingOperationId, diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MultiPostImportService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MultiPostImportService.java index 7f8c80b..922ba9e 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MultiPostImportService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/catches/multipost/MultiPostImportService.java @@ -29,7 +29,6 @@ import com.google.common.collect.ListMultimap; import com.google.common.collect.Maps; import fr.ifremer.adagio.core.dao.referential.pmfm.ObjectTypeCode2; import fr.ifremer.tutti.persistence.entities.CaracteristicMap; -import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.TuttiEntity; import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch; import fr.ifremer.tutti.persistence.entities.data.AccidentalBatchs; @@ -54,6 +53,7 @@ import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequencys; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchs; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; +import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValues; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicType; import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.service.AbstractTuttiService; @@ -978,7 +978,7 @@ public class MultiPostImportService extends AbstractTuttiService { switch (caracteristic.getCaracteristicType()) { case QUALITATIVE: - value = TuttiEntities.getQualitativeValue(caracteristic, Integer.parseInt(value.toString())); + value = CaracteristicQualitativeValues.getQualitativeValue(caracteristic, Integer.parseInt(value.toString())); break; case NUMBER: @@ -1143,7 +1143,7 @@ public class MultiPostImportService extends AbstractTuttiService { switch (caracteristic.getCaracteristicType()) { case QUALITATIVE: - value = TuttiEntities.getQualitativeValue(caracteristic, Integer.parseInt(value.toString())); + value = CaracteristicQualitativeValues.getQualitativeValue(caracteristic, Integer.parseInt(value.toString())); break; case NUMBER: diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/export/ExportCatchContext.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/export/ExportCatchContext.java index 45accb9..e37da42 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/export/ExportCatchContext.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/export/ExportCatchContext.java @@ -26,7 +26,6 @@ import com.google.common.base.Predicate; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Multimap; -import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.BatchContainer; import fr.ifremer.tutti.persistence.entities.data.BenthosBatch; import fr.ifremer.tutti.persistence.entities.data.BenthosBatchFrequency; @@ -40,6 +39,7 @@ import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency; import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.service.catches.WeightComputingService; +import fr.ifremer.tutti.util.Numbers; import org.apache.commons.collections4.CollectionUtils; import java.util.Collection; @@ -147,7 +147,7 @@ public class ExportCatchContext { } public float getCatchTotalWeight() { - float result = TuttiEntities.getValueOrComputedValue( + float result = Numbers.getValueOrComputedValue( catchBatch.getCatchTotalWeight(), catchBatch.getCatchTotalComputedWeight()); return result; @@ -244,7 +244,7 @@ public class ExportCatchContext { float speciesRatio = getSpeciesElevationRate(); float benthosRatio = getBenthosElevationRate(); - Float speciesInterWeight = TuttiEntities.getValueOrComputedValue( + Float speciesInterWeight = Numbers.getValueOrComputedValue( catchBatch.getSpeciesTotalInertWeight(), catchBatch.getSpeciesTotalInertComputedWeight()); @@ -253,7 +253,7 @@ public class ExportCatchContext { result.addTotalWeight(speciesInterWeight * speciesRatio); } - Float speciesLivingNotItemizedWeigth = TuttiEntities.getValueOrComputedValue( + Float speciesLivingNotItemizedWeigth = Numbers.getValueOrComputedValue( catchBatch.getSpeciesTotalLivingNotItemizedWeight(), catchBatch.getSpeciesTotalLivingNotItemizedComputedWeight()); @@ -262,7 +262,7 @@ public class ExportCatchContext { result.addTotalWeight(speciesLivingNotItemizedWeigth * speciesRatio); } - Float benthosInterWeight = TuttiEntities.getValueOrComputedValue( + Float benthosInterWeight = Numbers.getValueOrComputedValue( catchBatch.getBenthosTotalInertWeight(), catchBatch.getBenthosTotalInertComputedWeight()); @@ -271,7 +271,7 @@ public class ExportCatchContext { result.addTotalWeight(benthosInterWeight * benthosRatio); } - Float benthosLivingNotItemizedWeight = TuttiEntities.getValueOrComputedValue( + Float benthosLivingNotItemizedWeight = Numbers.getValueOrComputedValue( catchBatch.getBenthosTotalLivingNotItemizedWeight(), catchBatch.getBenthosTotalLivingNotItemizedComputedWeight()); @@ -291,7 +291,7 @@ public class ExportCatchContext { float globalRatio = (getCatchTotalWeight() - catchBatch.getCatchTotalUnsortedComputedWeight()) / catchBatch.getCatchTotalSortedComputedWeight(); - float speciesTotalSortedWeight = TuttiEntities.getValueOrComputedValue( + float speciesTotalSortedWeight = Numbers.getValueOrComputedValue( catchBatch.getSpeciesTotalSortedWeight(), catchBatch.getSpeciesTotalSortedComputedWeight()); @@ -307,7 +307,7 @@ public class ExportCatchContext { float globalRatio = (getCatchTotalWeight() - catchBatch.getCatchTotalUnsortedComputedWeight()) / catchBatch.getCatchTotalSortedComputedWeight(); - float benthosTotalSortedWeight = TuttiEntities.getValueOrComputedValue( + float benthosTotalSortedWeight = Numbers.getValueOrComputedValue( catchBatch.getBenthosTotalSortedWeight(), catchBatch.getBenthosTotalSortedComputedWeight()); @@ -332,7 +332,7 @@ public class ExportCatchContext { catches.put(species, ktch); } - float sortedWeight = TuttiEntities.getValueOrComputedValue( + float sortedWeight = Numbers.getValueOrComputedValue( batch.getSampleCategoryWeight(), batch.getSampleCategoryComputedWeight()); @@ -358,7 +358,7 @@ public class ExportCatchContext { protected float computeNumber(SpeciesAbleBatch batch, float rf) { float result; - float weight = TuttiEntities.getValueOrComputedValue( + float weight = Numbers.getValueOrComputedValue( batch.getSampleCategoryWeight(), batch.getSampleCategoryComputedWeight()); @@ -366,7 +366,7 @@ public class ExportCatchContext { // on a leaf, get his weight - Integer number = TuttiEntities.getValueOrComputedValue( + Integer number = Numbers.getValueOrComputedValue( batch.getNumber(), batch.getComputedNumber()); if (number == null) { @@ -376,7 +376,7 @@ public class ExportCatchContext { } // get the sample weight - Float subweight = TuttiEntities.getValueOrComputedValue( + Float subweight = Numbers.getValueOrComputedValue( batch.getWeight(), batch.getComputedWeight()); @@ -392,7 +392,7 @@ public class ExportCatchContext { // get total weight of all childs float totalWeight = 0.f; for (SpeciesAbleBatch child : batch.getChildBatchs()) { - totalWeight += TuttiEntities.getValueOrComputedValue( + totalWeight += Numbers.getValueOrComputedValue( child.getSampleCategoryWeight(), child.getSampleCategoryComputedWeight()); } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/CatchExportModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/CatchExportModel.java index 7f10062..a65960e 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/CatchExportModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/CatchExportModel.java @@ -22,7 +22,8 @@ package fr.ifremer.tutti.service.export.generic; * #L% */ -import fr.ifremer.tutti.persistence.entities.TuttiEntities; +import fr.ifremer.tutti.util.Numbers; +import fr.ifremer.tutti.util.Weights; import fr.ifremer.tutti.persistence.entities.data.BatchContainer; import fr.ifremer.tutti.persistence.entities.data.BenthosBatch; import fr.ifremer.tutti.persistence.entities.data.BenthosBatchFrequency; @@ -134,7 +135,7 @@ public class CatchExportModel extends TuttiCsvUtil.AbstractTuttiExportModel<Catc raisingFactor = 1.f; } - Float batchWeight = TuttiEntities.getValueOrComputedValue( + Float batchWeight = Numbers.getValueOrComputedValue( speciesBatch.getSampleCategoryWeight(), speciesBatch.getSampleCategoryComputedWeight()); @@ -166,7 +167,7 @@ public class CatchExportModel extends TuttiCsvUtil.AbstractTuttiExportModel<Catc raisingFactor = 1.f; } - Float batchWeight = TuttiEntities.getValueOrComputedValue( + Float batchWeight = Numbers.getValueOrComputedValue( benthosBatch.getSampleCategoryWeight(), benthosBatch.getSampleCategoryComputedWeight()); @@ -201,7 +202,7 @@ public class CatchExportModel extends TuttiCsvUtil.AbstractTuttiExportModel<Catc if (exportSampleCategory != null) { Float totalWeight = exportSampleCategory.getCategoryWeight(); - Float sampleWeight = TuttiEntities.getValueOrComputedValue( + Float sampleWeight = Numbers.getValueOrComputedValue( exportSampleCategory.getSampleWeight(), exportSampleCategory.getSampleComputedWeight()); @@ -209,7 +210,7 @@ public class CatchExportModel extends TuttiCsvUtil.AbstractTuttiExportModel<Catc float currentRate = totalWeight / sampleWeight; - if (TuttiEntities.isNotEqualWeight(1.0f, currentRate)) { + if (Weights.isNotEqualWeight(1.0f, currentRate)) { // the only case which can change the final rate finalRaisingFactor *= currentRate; @@ -230,8 +231,8 @@ public class CatchExportModel extends TuttiCsvUtil.AbstractTuttiExportModel<Catc currentRow.addComment(speciesBatch.getComment()); - Integer number = TuttiEntities.getValueOrComputedValue(speciesBatch.getNumber(), - speciesBatch.getComputedNumber()); + Integer number = Numbers.getValueOrComputedValue(speciesBatch.getNumber(), + speciesBatch.getComputedNumber()); Integer rankOrder = speciesBatch.getRankOrder(); @@ -268,13 +269,13 @@ public class CatchExportModel extends TuttiCsvUtil.AbstractTuttiExportModel<Catc // Get reference weight - Float referenceWeight = TuttiEntities.getValueOrComputedValue( + Float referenceWeight = Numbers.getValueOrComputedValue( speciesBatch.getWeight(), speciesBatch.getComputedWeight()); if (referenceWeight == null) { - referenceWeight = TuttiEntities.getValueOrComputedValue( + referenceWeight = Numbers.getValueOrComputedValue( speciesBatch.getSampleCategoryWeight(), speciesBatch.getSampleCategoryComputedWeight()); } @@ -293,12 +294,12 @@ public class CatchExportModel extends TuttiCsvUtil.AbstractTuttiExportModel<Catc // no weight on frequencies use upper reference weight - referenceWeight = TuttiEntities.getValueOrComputedValue( + referenceWeight = Numbers.getValueOrComputedValue( speciesBatch.getWeight(), speciesBatch.getComputedWeight()); if (referenceWeight == null) { - referenceWeight = TuttiEntities.getValueOrComputedValue( + referenceWeight = Numbers.getValueOrComputedValue( speciesBatch.getSampleCategoryWeight(), speciesBatch.getSampleCategoryComputedWeight()); } @@ -336,7 +337,7 @@ public class CatchExportModel extends TuttiCsvUtil.AbstractTuttiExportModel<Catc vracBatch); ExportSampleCategory exportSampleCategory = childRow.getSampleCategory().get(categoryIndex); if (exportSampleCategory != null) { - float categoryWeight = TuttiEntities.getValueOrComputedValue( + float categoryWeight = Numbers.getValueOrComputedValue( exportSampleCategory.getCategoryWeight(), exportSampleCategory.getComputedWeight()); sampleComputedWeight += categoryWeight; @@ -355,7 +356,7 @@ public class CatchExportModel extends TuttiCsvUtil.AbstractTuttiExportModel<Catc currentRow.addComment(benthosBatch.getComment()); - Integer number = TuttiEntities.getValueOrComputedValue( + Integer number = Numbers.getValueOrComputedValue( benthosBatch.getNumber(), benthosBatch.getComputedNumber()); @@ -394,12 +395,12 @@ public class CatchExportModel extends TuttiCsvUtil.AbstractTuttiExportModel<Catc // Get reference weight - Float referenceWeight = TuttiEntities.getValueOrComputedValue( + Float referenceWeight = Numbers.getValueOrComputedValue( benthosBatch.getWeight(), benthosBatch.getComputedWeight()); if (referenceWeight == null) { - referenceWeight = TuttiEntities.getValueOrComputedValue( + referenceWeight = Numbers.getValueOrComputedValue( benthosBatch.getSampleCategoryWeight(), benthosBatch.getSampleCategoryComputedWeight()); } @@ -419,12 +420,12 @@ public class CatchExportModel extends TuttiCsvUtil.AbstractTuttiExportModel<Catc // no weight on frequencies use upper reference weight - referenceWeight = TuttiEntities.getValueOrComputedValue( + referenceWeight = Numbers.getValueOrComputedValue( benthosBatch.getWeight(), benthosBatch.getComputedWeight()); if (referenceWeight == null) { - referenceWeight = TuttiEntities.getValueOrComputedValue( + referenceWeight = Numbers.getValueOrComputedValue( benthosBatch.getSampleCategoryWeight(), benthosBatch.getSampleCategoryComputedWeight()); } @@ -461,7 +462,7 @@ public class CatchExportModel extends TuttiCsvUtil.AbstractTuttiExportModel<Catc totalBatchWeight, vracBatch); ExportSampleCategory exportSampleCategory = childRow.getSampleCategory().get(categoryIndex); - float categoryWeight = TuttiEntities.getValueOrComputedValue( + float categoryWeight = Numbers.getValueOrComputedValue( exportSampleCategory.getCategoryWeight(), exportSampleCategory.getComputedWeight()); sampleComputedWeight += categoryWeight; diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/OperationExportRow.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/OperationExportRow.java index 1b1425a..b8b0491 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/OperationExportRow.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/OperationExportRow.java @@ -33,6 +33,7 @@ import fr.ifremer.tutti.persistence.entities.referential.Gear; import fr.ifremer.tutti.persistence.entities.referential.Person; import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; import fr.ifremer.tutti.persistence.entities.referential.Vessel; +import fr.ifremer.tutti.util.Numbers; import java.io.Serializable; import java.util.Date; @@ -245,210 +246,210 @@ public class OperationExportRow implements Serializable { } public Float getCatchTotalWeight() { - return TuttiEntities.getValueOrComputedValue( + return Numbers.getValueOrComputedValue( catchBatch.getCatchTotalWeight(), catchBatch.getCatchTotalComputedWeight()); } public Boolean getCatchTotalWeightComputed() { - return TuttiEntities.getValueOrComputedValueComputed( + return Numbers.getValueOrComputedValueComputed( catchBatch.getCatchTotalWeight(), catchBatch.getCatchTotalComputedWeight()); } public Float getCatchTotalSortedTremisWeight() { - return TuttiEntities.getValueOrComputedValue( + return Numbers.getValueOrComputedValue( catchBatch.getCatchTotalSortedTremisWeight(), null); } public Boolean getCatchTotalSortedTremisWeightComputed() { - return TuttiEntities.getValueOrComputedValueComputed( + return Numbers.getValueOrComputedValueComputed( catchBatch.getCatchTotalSortedTremisWeight(), null); } public Float getCatchTotalSortedCarousselWeight() { - return TuttiEntities.getValueOrComputedValue( + return Numbers.getValueOrComputedValue( catchBatch.getCatchTotalSortedCarousselWeight(), null); } public Boolean getCatchTotalSortedCarousselWeightComputed() { - return TuttiEntities.getValueOrComputedValueComputed( + return Numbers.getValueOrComputedValueComputed( catchBatch.getCatchTotalSortedCarousselWeight(), null); } public Float getCatchTotalSortedWeight() { - return TuttiEntities.getValueOrComputedValue( + return Numbers.getValueOrComputedValue( null, catchBatch.getCatchTotalSortedComputedWeight()); } public Boolean getCatchTotalSortedWeightComputed() { - return TuttiEntities.getValueOrComputedValueComputed( + return Numbers.getValueOrComputedValueComputed( null, catchBatch.getCatchTotalSortedComputedWeight()); } public Float getCatchTotalUnsortedWeight() { - return TuttiEntities.getValueOrComputedValue( + return Numbers.getValueOrComputedValue( null, catchBatch.getCatchTotalUnsortedComputedWeight()); } public Boolean getCatchTotalUnsortedWeightComputed() { - return TuttiEntities.getValueOrComputedValueComputed( + return Numbers.getValueOrComputedValueComputed( null, catchBatch.getCatchTotalUnsortedComputedWeight()); } public Float getCatchTotalRejectedWeight() { - return TuttiEntities.getValueOrComputedValue( + return Numbers.getValueOrComputedValue( catchBatch.getCatchTotalRejectedWeight(), catchBatch.getCatchTotalRejectedComputedWeight()); } public Boolean getCatchTotalRejectedWeightComputed() { - return TuttiEntities.getValueOrComputedValueComputed( + return Numbers.getValueOrComputedValueComputed( catchBatch.getCatchTotalRejectedWeight(), catchBatch.getCatchTotalRejectedComputedWeight()); } public Float getSpeciesTotalWeight() { - return TuttiEntities.getValueOrComputedValue( + return Numbers.getValueOrComputedValue( null, catchBatch.getSpeciesTotalComputedWeight()); } public Boolean getSpeciesTotalWeightComputed() { - return TuttiEntities.getValueOrComputedValueComputed( + return Numbers.getValueOrComputedValueComputed( null, catchBatch.getSpeciesTotalComputedWeight()); } public Float getSpeciesTotalSortedWeight() { - return TuttiEntities.getValueOrComputedValue( + return Numbers.getValueOrComputedValue( catchBatch.getSpeciesTotalSortedWeight(), catchBatch.getSpeciesTotalSortedComputedWeight()); } public Boolean getSpeciesTotalSortedWeightComputed() { - return TuttiEntities.getValueOrComputedValueComputed( + return Numbers.getValueOrComputedValueComputed( catchBatch.getSpeciesTotalSortedWeight(), catchBatch.getSpeciesTotalSortedComputedWeight()); } public Float getSpeciesTotalUnsortedWeight() { - return TuttiEntities.getValueOrComputedValue( + return Numbers.getValueOrComputedValue( null, catchBatch.getSpeciesTotalUnsortedComputedWeight()); } public Boolean getSpeciesTotalUnsortedWeightComputed() { - return TuttiEntities.getValueOrComputedValueComputed( + return Numbers.getValueOrComputedValueComputed( null, catchBatch.getSpeciesTotalUnsortedComputedWeight()); } public Float getSpeciesTotalSampleSortedWeight() { - return TuttiEntities.getValueOrComputedValue( + return Numbers.getValueOrComputedValue( catchBatch.getSpeciesTotalSampleSortedComputedWeight(), catchBatch.getSpeciesTotalSampleSortedComputedWeight()); } public Boolean getSpeciesTotalSampleSortedWeightComputed() { - return TuttiEntities.getValueOrComputedValueComputed( + return Numbers.getValueOrComputedValueComputed( null, catchBatch.getSpeciesTotalSampleSortedComputedWeight()); } public Float getSpeciesTotalInertWeight() { - return TuttiEntities.getValueOrComputedValue( + return Numbers.getValueOrComputedValue( catchBatch.getSpeciesTotalInertWeight(), catchBatch.getSpeciesTotalInertComputedWeight()); } public Boolean getSpeciesTotalInertWeightComputed() { - return TuttiEntities.getValueOrComputedValueComputed( + return Numbers.getValueOrComputedValueComputed( catchBatch.getSpeciesTotalInertWeight(), catchBatch.getSpeciesTotalInertComputedWeight()); } public Float getSpeciesTotalLivingNotItemizedWeight() { - return TuttiEntities.getValueOrComputedValue( + return Numbers.getValueOrComputedValue( catchBatch.getSpeciesTotalLivingNotItemizedWeight(), catchBatch.getSpeciesTotalLivingNotItemizedComputedWeight()); } public Boolean getSpeciesTotalLivingNotItemizedWeightComputed() { - return TuttiEntities.getValueOrComputedValueComputed( + return Numbers.getValueOrComputedValueComputed( catchBatch.getSpeciesTotalLivingNotItemizedWeight(), catchBatch.getSpeciesTotalLivingNotItemizedComputedWeight()); } public Float getBenthosTotalWeight() { - return TuttiEntities.getValueOrComputedValue( + return Numbers.getValueOrComputedValue( null, catchBatch.getBenthosTotalComputedWeight()); } public Boolean getBenthosTotalWeightComputed() { - return TuttiEntities.getValueOrComputedValueComputed( + return Numbers.getValueOrComputedValueComputed( null, catchBatch.getBenthosTotalComputedWeight()); } public Float getBenthosTotalSortedWeight() { - return TuttiEntities.getValueOrComputedValue( + return Numbers.getValueOrComputedValue( catchBatch.getBenthosTotalSortedWeight(), catchBatch.getBenthosTotalSortedComputedWeight()); } public Boolean getBenthosTotalSortedWeightComputed() { - return TuttiEntities.getValueOrComputedValueComputed( + return Numbers.getValueOrComputedValueComputed( catchBatch.getBenthosTotalSortedWeight(), catchBatch.getBenthosTotalSortedComputedWeight()); } public Float getBenthosTotalUnsortedWeight() { - return TuttiEntities.getValueOrComputedValue( + return Numbers.getValueOrComputedValue( null, catchBatch.getBenthosTotalUnsortedComputedWeight()); } public Boolean getBenthosTotalUnsortedWeightComputed() { - return TuttiEntities.getValueOrComputedValueComputed( + return Numbers.getValueOrComputedValueComputed( null, catchBatch.getBenthosTotalUnsortedComputedWeight()); } public Float getBenthosTotalSampleSortedWeight() { - return TuttiEntities.getValueOrComputedValue( + return Numbers.getValueOrComputedValue( null, catchBatch.getBenthosTotalSampleSortedComputedWeight()); } public Boolean getBenthosTotalSampleSortedWeightComputed() { - return TuttiEntities.getValueOrComputedValueComputed( + return Numbers.getValueOrComputedValueComputed( null, catchBatch.getBenthosTotalSampleSortedComputedWeight()); } public Float getBenthosTotalInertWeight() { - return TuttiEntities.getValueOrComputedValue( + return Numbers.getValueOrComputedValue( catchBatch.getBenthosTotalInertWeight(), catchBatch.getBenthosTotalInertComputedWeight()); } public Boolean getBenthosTotalInertWeightComputed() { - return TuttiEntities.getValueOrComputedValueComputed( + return Numbers.getValueOrComputedValueComputed( catchBatch.getBenthosTotalInertWeight(), catchBatch.getBenthosTotalInertComputedWeight()); } public Float getBenthosTotalLivingNotItemizedWeight() { - return TuttiEntities.getValueOrComputedValue( + return Numbers.getValueOrComputedValue( catchBatch.getBenthosTotalLivingNotItemizedWeight(), catchBatch.getBenthosTotalLivingNotItemizedComputedWeight()); } public Boolean getBenthosTotalLivingNotItemizedWeightComputed() { - return TuttiEntities.getValueOrComputedValueComputed( + return Numbers.getValueOrComputedValueComputed( catchBatch.getBenthosTotalLivingNotItemizedWeight(), catchBatch.getBenthosTotalLivingNotItemizedComputedWeight()); } public Float getMarineLitterTotalWeight() { - return TuttiEntities.getValueOrComputedValue( + return Numbers.getValueOrComputedValue( catchBatch.getMarineLitterTotalWeight(), catchBatch.getMarineLitterTotalComputedWeight()); } public Boolean getMarineLitterTotalWeightComputed() { - return TuttiEntities.getValueOrComputedValueComputed( + return Numbers.getValueOrComputedValueComputed( catchBatch.getMarineLitterTotalWeight(), catchBatch.getMarineLitterTotalComputedWeight()); } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/TuttiExportService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/TuttiExportService.java index 72cebaa..57c4721 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/TuttiExportService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/TuttiExportService.java @@ -51,6 +51,7 @@ import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.service.TuttiCsvUtil; import fr.ifremer.tutti.service.TuttiServiceContext; import fr.ifremer.tutti.service.catches.WeightComputingService; +import fr.ifremer.tutti.util.Numbers; import org.apache.commons.collections4.MapUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; @@ -584,7 +585,7 @@ public class TuttiExportService extends AbstractTuttiService { rootSpeciesBatch, rootBenthosBatch); - Float totalWeight = TuttiEntities.getValueOrComputedValue( + Float totalWeight = Numbers.getValueOrComputedValue( catchBatch.getCatchTotalWeight(), catchBatch.getCatchTotalComputedWeight()); @@ -592,14 +593,14 @@ public class TuttiExportService extends AbstractTuttiService { catchBatch.getCatchTotalUnsortedComputedWeight(); - Float totalSortedSpeciesWeight = TuttiEntities.getValueOrComputedValue( + Float totalSortedSpeciesWeight = Numbers.getValueOrComputedValue( catchBatch.getSpeciesTotalSortedWeight(), catchBatch.getSpeciesTotalSortedComputedWeight()); Float totalSampleSortedSpeciesWeight = catchBatch.getSpeciesTotalSampleSortedComputedWeight(); - Float totalSortedBenthosWeight = TuttiEntities.getValueOrComputedValue( + Float totalSortedBenthosWeight = Numbers.getValueOrComputedValue( catchBatch.getBenthosTotalSortedWeight(), catchBatch.getBenthosTotalSortedComputedWeight()); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportModel.java index 82cb091..3c5f6f1 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportModel.java @@ -28,7 +28,7 @@ import com.google.common.collect.ImmutableSet; import com.google.common.collect.Lists; import com.google.common.collect.Multimap; import com.google.common.collect.Sets; -import fr.ifremer.tutti.persistence.entities.TuttiEntities; +import fr.ifremer.tutti.util.Weights; import fr.ifremer.tutti.persistence.entities.referential.Species; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.logging.Log; @@ -154,7 +154,7 @@ public class PsionImportModel { Multimap<Species, PsionImportBatchModel> store; // --- Guess if sorted or unsorted batch --- // - if (TuttiEntities.isGreaterWeight(weight, 0) && TuttiEntities.isEqualWeight(weight, sampleWeight)) { + if (Weights.isGreaterWeight(weight, 0) && Weights.isEqualWeight(weight, sampleWeight)) { store = unsortedBatchsBySpecies; if (log.isInfoEnabled()) { @@ -216,7 +216,7 @@ public class PsionImportModel { Float weight = batchModel.getWeight(); Float sampleWeight = batchModel.getSampleWeight(); - if (TuttiEntities.isEqualWeight(weight, 0) && TuttiEntities.isGreaterWeight(sampleWeight, 0)) { + if (Weights.isEqualWeight(weight, 0) && Weights.isGreaterWeight(sampleWeight, 0)) { // POID = 0 et TAIL != POID : un seul poids à positionner batchModel.setWeight(sampleWeight); @@ -255,13 +255,13 @@ public class PsionImportModel { Float weight = batchModel.getWeight(); Float sampleWeight = batchModel.getSampleWeight(); - if (TuttiEntities.isEqualWeight(weight, 0) && TuttiEntities.isGreaterWeight(sampleWeight, 0)) { + if (Weights.isEqualWeight(weight, 0) && Weights.isGreaterWeight(sampleWeight, 0)) { // POID = 0 et TAIL != POID : un seul poids à positionner continue; } - if (TuttiEntities.isGreaterWeight(weight, 0) && TuttiEntities.isGreaterWeight(weight, sampleWeight)) { + if (Weights.isGreaterWeight(weight, 0) && Weights.isGreaterWeight(weight, sampleWeight)) { // POID > 0 et POID > TAIL : deux poids à positionner speciesBatchesWithDoubleWeight.add(batchModel); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportService.java index 7fd533d..6f955dd 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportService.java @@ -34,6 +34,7 @@ import fr.ifremer.adagio.core.dao.referential.pmfm.ObjectTypeCode2; import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmId2; import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueId; import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueId2; +import fr.ifremer.tutti.util.Weights; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.Attachment; import fr.ifremer.tutti.persistence.entities.data.Attachments; @@ -49,6 +50,7 @@ import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; +import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValues; import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.service.AbstractTuttiService; import fr.ifremer.tutti.service.PersistenceService; @@ -138,8 +140,8 @@ public class PsionImportService extends AbstractTuttiService { Caracteristic caracteristic = persistenceService.getSortedUnsortedCaracteristic(); - sortedCaracteristic = TuttiEntities.getQualitativeValue(caracteristic, QualitativeValueId.SORTED_VRAC.getValue()); - unsortedCaracteristic = TuttiEntities.getQualitativeValue(caracteristic, QualitativeValueId.SORTED_HORS_VRAC.getValue()); + sortedCaracteristic = CaracteristicQualitativeValues.getQualitativeValue(caracteristic, QualitativeValueId.SORTED_VRAC.getValue()); + unsortedCaracteristic = CaracteristicQualitativeValues.getQualitativeValue(caracteristic, QualitativeValueId.SORTED_HORS_VRAC.getValue()); } { // size caracteristic @@ -806,12 +808,12 @@ public class PsionImportService extends AbstractTuttiService { batch.setSpecies(species); if (catchWeight != null) { - catchWeight = TuttiEntities.roundKiloGram(WeightUnit.G.toEntity(catchWeight)); + catchWeight = Weights.roundKiloGram(WeightUnit.G.toEntity(catchWeight)); batch.setSampleCategoryWeight(catchWeight); } if (sampleWeight != null) { - sampleWeight = TuttiEntities.roundKiloGram(WeightUnit.G.toEntity(sampleWeight)); + sampleWeight = Weights.roundKiloGram(WeightUnit.G.toEntity(sampleWeight)); batch.setWeight(sampleWeight); } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportExportService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportExportService.java index eda67d7..1b1be48 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportExportService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportExportService.java @@ -32,7 +32,7 @@ import com.google.common.collect.Sets; import fr.ifremer.adagio.core.dao.referential.pmfm.ObjectTypeCode2; import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmId2; import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueId; -import fr.ifremer.tutti.persistence.entities.TuttiEntities; +import fr.ifremer.tutti.util.Weights; import fr.ifremer.tutti.persistence.entities.data.Attachment; import fr.ifremer.tutti.persistence.entities.data.Attachments; import fr.ifremer.tutti.persistence.entities.data.BatchContainer; @@ -42,7 +42,9 @@ import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchs; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; +import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValues; import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.persistence.entities.referential.Speciess; import fr.ifremer.tutti.service.AbstractTuttiService; import fr.ifremer.tutti.service.DecoratorService; import fr.ifremer.tutti.service.PersistenceService; @@ -109,8 +111,8 @@ public class PupitriImportExportService extends AbstractTuttiService { Caracteristic caracteristic = persistenceService.getSortedUnsortedCaracteristic(); - sortedCaracteristic = TuttiEntities.getQualitativeValue(caracteristic, QualitativeValueId.SORTED_VRAC.getValue()); - unsortedCaracteristic = TuttiEntities.getQualitativeValue(caracteristic, QualitativeValueId.SORTED_HORS_VRAC.getValue()); + sortedCaracteristic = CaracteristicQualitativeValues.getQualitativeValue(caracteristic, QualitativeValueId.SORTED_VRAC.getValue()); + unsortedCaracteristic = CaracteristicQualitativeValues.getQualitativeValue(caracteristic, QualitativeValueId.SORTED_HORS_VRAC.getValue()); } { // sex category @@ -253,8 +255,8 @@ public class PupitriImportExportService extends AbstractTuttiService { FileUtils.deleteQuietly(fileWithHeaders); } - result.setSortedWeight(TuttiEntities.roundKiloGram(sortedWeight)); - result.setRejectedWeight(TuttiEntities.roundKiloGram(rejectedWeight)); + result.setSortedWeight(Weights.roundKiloGram(sortedWeight)); + result.setRejectedWeight(Weights.roundKiloGram(rejectedWeight)); } protected void importPupitriCarrousel(PupitriImportResult result, @@ -270,8 +272,8 @@ public class PupitriImportExportService extends AbstractTuttiService { // get the map of species by survey code or reftax code ListMultimap<String, Species> speciesBySurveyCode = ArrayListMultimap.create(); - speciesBySurveyCode.putAll(TuttiEntities.splitBySurveyCode(dataContext.getReferentSpeciesWithSurveyCode())); - speciesBySurveyCode.putAll(TuttiEntities.splitByRefTaxCode(dataContext.getReferentSpecies())); + speciesBySurveyCode.putAll(Speciess.splitBySurveyCode(dataContext.getReferentSpeciesWithSurveyCode())); + speciesBySurveyCode.putAll(Speciess.splitByRefTaxCode(dataContext.getReferentSpecies())); // import the batches @@ -343,7 +345,7 @@ public class PupitriImportExportService extends AbstractTuttiService { } result.setNbCarrousselNotImported(notFoundSpecies.size()); - result.setCarrouselSortedWeight(TuttiEntities.roundKiloGram(carrouselSortedWeight)); + result.setCarrouselSortedWeight(Weights.roundKiloGram(carrouselSortedWeight)); result.setCatches(catches); } @@ -524,7 +526,7 @@ public class PupitriImportExportService extends AbstractTuttiService { batch.setSampleCategoryValue(cqv); batch.setSpecies(species); batch.setSampleCategoryWeight( - catchWeight == null ? null : TuttiEntities.roundKiloGram(catchWeight)); + catchWeight == null ? null : Weights.roundKiloGram(catchWeight)); return batch; } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportResult.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportResult.java index ec7dff5..733583a 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportResult.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportResult.java @@ -22,7 +22,7 @@ package fr.ifremer.tutti.service.pupitri; * #L% */ -import fr.ifremer.tutti.persistence.entities.TuttiEntities; +import fr.ifremer.tutti.util.Weights; import fr.ifremer.tutti.persistence.entities.referential.Species; import org.apache.commons.lang3.mutable.MutableFloat; import org.apache.commons.logging.Log; @@ -279,7 +279,7 @@ public class PupitriImportResult { // compute the weight from melag Float sampleWeight = aCatch.getWeight(Signs.MELAG); - Float weight = TuttiEntities.roundKiloGram(sampleWeight / melagRatio); + Float weight = Weights.roundKiloGram(sampleWeight / melagRatio); aCatch.addToSign(Signs.DEFAULT, weight); aCatch.removeSign(Signs.MELAG); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/Signs.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/Signs.java index de29b77..9d046b2 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/Signs.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/Signs.java @@ -25,9 +25,9 @@ package fr.ifremer.tutti.service.pupitri; import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmId2; import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueId; import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueId2; -import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; +import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValues; import java.util.Map; @@ -161,7 +161,7 @@ public enum Signs { public void registerSign(Caracteristic caracteristic, Map<Signs, CaracteristicQualitativeValue> map) { Integer valueId = getQualitativeValueId(); - CaracteristicQualitativeValue result = TuttiEntities.getQualitativeValue(caracteristic, valueId); + CaracteristicQualitativeValue result = CaracteristicQualitativeValues.getQualitativeValue(caracteristic, valueId); map.put(this, result); } } diff --git a/tutti-service/src/test/java/fr/ifremer/tutti/service/psionimport/PsionImportServiceTest.java b/tutti-service/src/test/java/fr/ifremer/tutti/service/psionimport/PsionImportServiceTest.java index 473e939..4d105bd 100644 --- a/tutti-service/src/test/java/fr/ifremer/tutti/service/psionimport/PsionImportServiceTest.java +++ b/tutti-service/src/test/java/fr/ifremer/tutti/service/psionimport/PsionImportServiceTest.java @@ -27,11 +27,11 @@ import fr.ifremer.adagio.core.dao.referential.pmfm.PmfmId2; import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueId; import fr.ifremer.tutti.TuttiConfigurationOption; import fr.ifremer.tutti.persistence.ProgressionModel; -import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.BatchContainer; import fr.ifremer.tutti.persistence.entities.data.CatchBatch; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.data.SpeciesAbleBatch; +import fr.ifremer.tutti.persistence.entities.data.SpeciesAbleBatchs; import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.service.ServiceDbResource; @@ -105,7 +105,7 @@ public class PsionImportServiceTest { dataContext = dbResource.loadContext(PROGRAM_ID, CRUISE_ID, 3, OPERATION_2_ID, OPERATION_1_ID, OPERATION_3_ID); - vracPredicate = TuttiEntities.newSpeciesAbleBatchCategoryPredicate(PmfmId2.SORTED_UNSORTED.getValue(), QualitativeValueId.VRAC.getValue()); + vracPredicate = SpeciesAbleBatchs.newSpeciesAbleBatchCategoryPredicate(PmfmId2.SORTED_UNSORTED.getValue(), QualitativeValueId.VRAC.getValue()); } @Test diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ComputeBatchWeightsAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ComputeBatchWeightsAction.java index d04ca60..10d4edf 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ComputeBatchWeightsAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ComputeBatchWeightsAction.java @@ -25,7 +25,6 @@ package fr.ifremer.tutti.ui.swing.action; import com.google.common.collect.Lists; import com.google.common.collect.Multimap; -import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.BatchContainer; import fr.ifremer.tutti.persistence.entities.data.BenthosBatch; import fr.ifremer.tutti.persistence.entities.data.CatchBatch; @@ -44,6 +43,7 @@ import fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.BenthosBatchR import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchRowModel; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler; import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; +import fr.ifremer.tutti.util.Numbers; import javax.swing.JOptionPane; import javax.swing.SwingUtilities; @@ -287,7 +287,7 @@ public class ComputeBatchWeightsAction extends AbstractTuttiAction<EditCatchesUI SpeciesBatchRowModel row = getUI().getSpeciesTabContent().getHandler().loadBatch(batch, null, rows); if (persistenceService.isVracBatch(row)) { SampleCategory<?> sampleCategory = row.getFirstSampleCategory(); - Float weight = TuttiEntities.getValueOrComputedValue( + Float weight = Numbers.getValueOrComputedValue( sampleCategory.getCategoryWeight(), sampleCategory.getComputedWeight()); totalSortedWeight += weight; @@ -310,7 +310,7 @@ public class ComputeBatchWeightsAction extends AbstractTuttiAction<EditCatchesUI if (persistenceService.isVracBatch(row)) { SampleCategory<?> sampleCategory = row.getFirstSampleCategory(); - Float weight = TuttiEntities.getValueOrComputedValue( + Float weight = Numbers.getValueOrComputedValue( sampleCategory.getCategoryWeight(), sampleCategory.getComputedWeight()); totalSortedWeight += weight; diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/CreateBenthosMelagAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/CreateBenthosMelagAction.java index bdf6143..f6fc993 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/CreateBenthosMelagAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/CreateBenthosMelagAction.java @@ -23,7 +23,7 @@ package fr.ifremer.tutti.ui.swing.action; */ import com.google.common.collect.Maps; -import fr.ifremer.tutti.persistence.entities.TuttiEntities; +import fr.ifremer.tutti.util.Weights; import fr.ifremer.tutti.type.WeightUnit; import fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.BenthosBatchRowModel; import fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.BenthosBatchTableModel; @@ -148,7 +148,7 @@ public class CreateBenthosMelagAction extends AbstractTuttiAction<BenthosBatchUI for (BenthosBatchRowModel batch : selectedRows.keySet()) { Float sampleWeight = selectedRows.get(batch); if (sampleWeight != null) { - Float weight = TuttiEntities.roundKiloGram(sampleMelagWeight * sampleWeight / sortedWeight); + Float weight = Weights.roundKiloGram(sampleMelagWeight * sampleWeight / sortedWeight); batch.getFinestCategory().setCategoryWeight(weight); } else { sampleWeight = batch.getFinestCategory().getNotNullWeight(); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/CreateSpeciesMelagAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/CreateSpeciesMelagAction.java index a3cd216..2271e3c 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/CreateSpeciesMelagAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/CreateSpeciesMelagAction.java @@ -23,7 +23,7 @@ package fr.ifremer.tutti.ui.swing.action; */ import com.google.common.collect.Maps; -import fr.ifremer.tutti.persistence.entities.TuttiEntities; +import fr.ifremer.tutti.util.Weights; import fr.ifremer.tutti.type.WeightUnit; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchRowModel; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchTableModel; @@ -148,7 +148,8 @@ public class CreateSpeciesMelagAction extends AbstractTuttiAction<SpeciesBatchUI for (SpeciesBatchRowModel batch : selectedRows.keySet()) { Float sampleWeight = selectedRows.get(batch); if (sampleWeight != null) { - Float weight = TuttiEntities.roundKiloGram(sampleMelagWeight * sampleWeight / sortedWeight); + float notRoundWeight = sampleMelagWeight * sampleWeight / sortedWeight; + float weight = Weights.roundKiloGram(notRoundWeight); batch.getFinestCategory().setCategoryWeight(weight); } else { sampleWeight = batch.getFinestCategory().getNotNullWeight(); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportProtocolAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportProtocolAction.java index e945dd3..189adc5 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportProtocolAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportProtocolAction.java @@ -25,13 +25,13 @@ package fr.ifremer.tutti.ui.swing.action; import com.google.common.base.Preconditions; import com.google.common.collect.Maps; import com.google.common.collect.Sets; -import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocols; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.persistence.entities.referential.Speciess; import fr.ifremer.tutti.service.protocol.ProtocolImportExportService; import fr.ifremer.tutti.ui.swing.TuttiScreen; import fr.ifremer.tutti.ui.swing.content.MainUIHandler; @@ -117,7 +117,7 @@ public class ImportProtocolAction extends AbstractChangeScreenAction { if (doAction) { - Map<String, Species> allReferentSpeciesByTaxonId = TuttiEntities.splitByTaxonId( + Map<String, Species> allReferentSpeciesByTaxonId = Speciess.splitByTaxonId( getDataContext().getReferentSpecies()); // clean species diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/RemoveBenthosProtocolAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/RemoveBenthosProtocolAction.java index 8d95121..2a31b67 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/RemoveBenthosProtocolAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/RemoveBenthosProtocolAction.java @@ -25,8 +25,8 @@ package fr.ifremer.tutti.ui.swing.action; import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import com.google.common.collect.Sets; -import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.persistence.entities.referential.Speciess; import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolSpeciesRowModel; import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolSpeciesTableModel; import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUI; @@ -108,7 +108,7 @@ public class RemoveBenthosProtocolAction extends AbstractTuttiAction<EditProtoco // reorder the list by name, otherwise, // all the species without a reftax code will be at the end Collections.sort(model.getAllSynonyms(), - TuttiEntities.SPECIES_BY_NAME_COMPARATOR); + Speciess.SPECIES_BY_NAME_COMPARATOR); } @Override diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/RemoveSpeciesProtocolAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/RemoveSpeciesProtocolAction.java index 1721516..f36adc3 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/RemoveSpeciesProtocolAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/RemoveSpeciesProtocolAction.java @@ -25,8 +25,8 @@ package fr.ifremer.tutti.ui.swing.action; import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import com.google.common.collect.Sets; -import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.persistence.entities.referential.Speciess; import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolSpeciesRowModel; import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolSpeciesTableModel; import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUI; @@ -105,7 +105,7 @@ public class RemoveSpeciesProtocolAction extends AbstractTuttiAction<EditProtoco // reorder the list by name, otherwise, // all the species without a reftax code will be at the end - Collections.sort(model.getAllSynonyms(), TuttiEntities.SPECIES_BY_NAME_COMPARATOR); + Collections.sort(model.getAllSynonyms(), Speciess.SPECIES_BY_NAME_COMPARATOR); } @Override diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SelectSpeciesForBenthosBatchAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SelectSpeciesForBenthosBatchAction.java index 770b72d..6dea7b4 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SelectSpeciesForBenthosBatchAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SelectSpeciesForBenthosBatchAction.java @@ -23,8 +23,8 @@ package fr.ifremer.tutti.ui.swing.action; */ import com.google.common.collect.Lists; -import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.persistence.entities.referential.Speciess; import fr.ifremer.tutti.service.DecoratorService; import fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.create.CreateBenthosBatchUI; import fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.create.CreateBenthosBatchUIHandler; @@ -83,7 +83,7 @@ public class SelectSpeciesForBenthosBatchAction extends AbstractTuttiAction<Crea if (!selectedSpecies.isReferenceTaxon()) { String decoratedSynonym = decorate(selectedSpecies, DecoratorService.FROM_PROTOCOL); List<Species> referents = referentSpecies; - Map<String, Species> referentsById = TuttiEntities.splitByTaxonId(referents); + Map<String, Species> referentsById = Speciess.splitByTaxonId(referents); String taxonId = String.valueOf(selectedSpecies.getReferenceTaxonId()); selectedSpecies = referentsById.get(taxonId); String decoratedReferent = decorate(selectedSpecies, DecoratorService.FROM_PROTOCOL); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SelectSpeciesForIndividualObservationBatchAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SelectSpeciesForIndividualObservationBatchAction.java index 8dfe6e1..207948b 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SelectSpeciesForIndividualObservationBatchAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SelectSpeciesForIndividualObservationBatchAction.java @@ -23,8 +23,8 @@ package fr.ifremer.tutti.ui.swing.action; */ import com.google.common.collect.Lists; -import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.persistence.entities.referential.Speciess; import fr.ifremer.tutti.service.DecoratorService; import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.create.CreateIndividualObservationBatchUI; import fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation.create.CreateIndividualObservationBatchUIHandler; @@ -85,7 +85,7 @@ public class SelectSpeciesForIndividualObservationBatchAction extends AbstractTu if (!selectedSpecies.isReferenceTaxon()) { String decoratedSynonym = decorate(selectedSpecies, DecoratorService.FROM_PROTOCOL); List<Species> referents = referentSpecies; - Map<String, Species> referentsById = TuttiEntities.splitByTaxonId(referents); + Map<String, Species> referentsById = Speciess.splitByTaxonId(referents); String taxonId = String.valueOf(selectedSpecies.getReferenceTaxonId()); selectedSpecies = referentsById.get(taxonId); String decoratedReferent = decorate(selectedSpecies, DecoratorService.FROM_PROTOCOL); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SelectSpeciesForSpeciesBatchAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SelectSpeciesForSpeciesBatchAction.java index 0c26fc7..be7d4bf 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SelectSpeciesForSpeciesBatchAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/SelectSpeciesForSpeciesBatchAction.java @@ -23,8 +23,8 @@ package fr.ifremer.tutti.ui.swing.action; */ import com.google.common.collect.Lists; -import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.persistence.entities.referential.Speciess; import fr.ifremer.tutti.service.DecoratorService; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.create.CreateSpeciesBatchUI; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.create.CreateSpeciesBatchUIHandler; @@ -83,7 +83,7 @@ public class SelectSpeciesForSpeciesBatchAction extends AbstractTuttiAction<Crea if (!selectedSpecies.isReferenceTaxon()) { String decoratedSynonym = decorate(selectedSpecies, DecoratorService.FROM_PROTOCOL); List<Species> referents = referentSpecies; - Map<String, Species> referentsById = TuttiEntities.splitByTaxonId(referents); + Map<String, Species> referentsById = Speciess.splitByTaxonId(referents); String taxonId = String.valueOf(selectedSpecies.getReferenceTaxonId()); selectedSpecies = referentsById.get(taxonId); String decoratedReferent = decorate(selectedSpecies, DecoratorService.FROM_PROTOCOL); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java index 798e43d..7bcb686 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java @@ -24,13 +24,13 @@ package fr.ifremer.tutti.ui.swing.content.cruise; import com.google.common.base.Predicate; import com.google.common.collect.Lists; -import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.Attachment; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.Program; import fr.ifremer.tutti.persistence.entities.referential.Gear; import fr.ifremer.tutti.persistence.entities.referential.GearWithOriginalRankOrder; import fr.ifremer.tutti.persistence.entities.referential.GearWithOriginalRankOrders; +import fr.ifremer.tutti.persistence.entities.referential.Gears; import fr.ifremer.tutti.persistence.entities.referential.Person; import fr.ifremer.tutti.persistence.entities.referential.Vessel; import fr.ifremer.tutti.service.DecoratorService; @@ -189,12 +189,12 @@ public class EditCruiseUIHandler extends AbstractTuttiUIHandler<EditCruiseUIMode switch (vesselType) { case FISHING: - gearPredicate = TuttiEntities.IS_FISHING_GEAR; + gearPredicate = Gears.IS_FISHING_GEAR; allVesselList.addAll(getDataContext().getFishingVessels()); break; case SCIENTIFIC: - gearPredicate = TuttiEntities.IS_SCIENTIFIC_GEAR; + gearPredicate = Gears.IS_SCIENTIFIC_GEAR; allVesselList.addAll(getDataContext().getScientificVessels()); break; diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java index 9966c44..8cbd3b1 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java @@ -25,6 +25,7 @@ package fr.ifremer.tutti.ui.swing.content.operation; import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import com.google.common.collect.Maps; +import fr.ifremer.tutti.util.Distances; import org.nuiton.jaxx.application.swing.tab.TabHandler; import fr.ifremer.tutti.type.CoordinateEditorType; import fr.ifremer.tutti.persistence.entities.TuttiEntities; @@ -718,7 +719,7 @@ public class EditFishingOperationUIHandler extends AbstractTuttiTabContainerUIHa public String getTrawlDistanceTooltipText(Float trawlDistance) { String result = trawlDistance == null ? null : - t("tutti.editFishingOperation.field.trawlDistance.inMilles.tip", TuttiEntities.getDistanceInMilles(trawlDistance)); + t("tutti.editFishingOperation.field.trawlDistance.inMilles.tip", Distances.getDistanceInMilles(trawlDistance)); return result; } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java index ed4c9ab..bcfeda2 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java @@ -37,6 +37,7 @@ import fr.ifremer.tutti.persistence.entities.referential.Vessel; import fr.ifremer.tutti.type.CoordinateEditorType; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel; import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentModelAware; +import fr.ifremer.tutti.util.Distances; import jaxx.runtime.swing.editor.gis.DmdCoordinate; import jaxx.runtime.swing.editor.gis.DmsCoordinate; import org.apache.commons.collections4.CollectionUtils; @@ -926,7 +927,7 @@ public class EditFishingOperationUIModel extends AbstractTuttiBeanUIModel<Fishin if (getGearShootingStartLatitude() != null && getGearShootingStartLongitude() != null && getGearShootingEndLatitude() != null && getGearShootingEndLongitude() != null) { - Integer distance = TuttiEntities.computeDistanceInMeters( + Integer distance = Distances.computeDistanceInMeters( getGearShootingStartLatitude(), getGearShootingStartLongitude(), getGearShootingEndLatitude(), diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java index 3e8bebf..33d2073 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java @@ -23,7 +23,7 @@ package fr.ifremer.tutti.ui.swing.content.operation.catches; */ import com.google.common.collect.Sets; -import fr.ifremer.tutti.persistence.entities.TuttiEntities; +import fr.ifremer.tutti.util.Weights; import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.BenthosBatchRowModel; import fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.frequency.BenthosFrequencyCellComponent; @@ -103,7 +103,7 @@ public class EditCatchesUIHandler extends AbstractTuttiTabContainerUIHandler<Edi Float totalWeight = (Float) evt.getNewValue(); - if (totalWeight != null && TuttiEntities.isEqualWeight(totalWeight, 0.f)) { + if (totalWeight != null && Weights.isEqualWeight(totalWeight, 0.f)) { // remove the totalWeight (see https://forge.codelutin.com/issues/5144) source.setCatchTotalRejectedWeight(null); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SampleCategoryComponent.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SampleCategoryComponent.java index 70968d6..9c39d62 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SampleCategoryComponent.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/SampleCategoryComponent.java @@ -22,8 +22,8 @@ package fr.ifremer.tutti.ui.swing.content.operation.catches; * #L% */ +import fr.ifremer.tutti.util.Weights; import fr.ifremer.tutti.type.WeightUnit; -import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.SampleCategory; import fr.ifremer.tutti.ui.swing.TuttiUIContext; import jaxx.runtime.JAXXUtil; @@ -318,12 +318,12 @@ public class SampleCategoryComponent { } else if (computedNumber != null) { if (sampleCategory.hasOnlyOneFrequency()) { - text += TuttiEntities.getWeightStringValue(computedNumber); + text += Weights.getWeightStringValue(computedNumber); } else { String color = Integer.toHexString(computedWeightColor.getRGB()).substring(2); text += "<em style='color: #" + color + "'>" + - TuttiEntities.getWeightStringValue(computedNumber) + "</em>"; + Weights.getWeightStringValue(computedNumber) + "</em>"; } } else { text += "-"; diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java index 682231e..890145a 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java @@ -26,6 +26,7 @@ import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import com.google.common.collect.Sets; import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueId; +import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValues; import fr.ifremer.tutti.ui.swing.util.computable.ComputableDataTableCell; import org.nuiton.jaxx.application.swing.table.ColumnIdentifier; import fr.ifremer.tutti.type.WeightUnit; @@ -555,7 +556,7 @@ public class BenthosBatchUIHandler extends AbstractTuttiBatchTableUIHandler<Bent if (firstCategory) { // remove the unsorted qualitative value - TuttiEntities.removeQualitativeValue(available, qualitative_unsorted_id); + CaracteristicQualitativeValues.removeQualitativeValue(available, qualitative_unsorted_id); } } } @@ -1205,7 +1206,7 @@ public class BenthosBatchUIHandler extends AbstractTuttiBatchTableUIHandler<Bent if (firstCategory) { // remove the unsorted qualitative value - TuttiEntities.removeQualitativeValue(availableValues, qualitative_unsorted_id); + CaracteristicQualitativeValues.removeQualitativeValue(availableValues, qualitative_unsorted_id); } availableValues.removeAll(usedValues); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIHandler.java index 5c79ab0..8a9e897 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIHandler.java @@ -25,6 +25,7 @@ package fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.frequency; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; +import fr.ifremer.tutti.util.Numbers; import org.nuiton.jaxx.application.swing.util.Cancelable; import fr.ifremer.tutti.type.WeightUnit; import fr.ifremer.tutti.persistence.entities.TuttiEntities; @@ -446,7 +447,7 @@ public class BenthosFrequencyUIHandler extends AbstractTuttiTableUIHandler<Benth List<BenthosFrequencyRowModel> rows = Lists.newArrayList(rowsByStep.values()); for (float i = minStep, step = model.getStep(); i <= maxStep; - i = TuttiEntities.getRoundedLengthStep(i + step, true)) { + i = Numbers.getRoundedLengthStep(i + step, true)) { if (!existingKeys.contains(i)) { diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java index d01baae..635a714 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/individualobservation/IndividualObservationBatchUIHandler.java @@ -24,7 +24,7 @@ package fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservatio import com.google.common.collect.Lists; import com.google.common.collect.Sets; -import fr.ifremer.tutti.service.ValidationService; +import fr.ifremer.tutti.util.Numbers; import org.nuiton.jaxx.application.swing.table.ColumnIdentifier; import fr.ifremer.tutti.type.WeightUnit; import fr.ifremer.tutti.persistence.entities.CaracteristicMap; @@ -559,7 +559,7 @@ public class IndividualObservationBatchUIHandler // no frequency, create a simple row - int nbRow = TuttiEntities.getValueOrComputedValue(leaf.getNumber(), 0); + int nbRow = Numbers.getValueOrComputedValue(leaf.getNumber(), 0); for (int i = 0; i < nbRow; i++) { IndividualObservationBatchRowModel newRow = tableModel.createNewRow(); @@ -584,7 +584,7 @@ public class IndividualObservationBatchUIHandler // apply also weight found IndividualObservationBatchRowModel lastRow = rowsToCreate.get(rowsToCreate.size() - 1); - Float weight = TuttiEntities.getValueOrComputedValue( + Float weight = Numbers.getValueOrComputedValue( leaf.getWeight(), leaf.getFinestCategory().getCategoryWeight()); if (weight != null) { @@ -604,7 +604,7 @@ public class IndividualObservationBatchUIHandler // create a row for each frequency - int nbRow = TuttiEntities.getValueOrComputedValue( + int nbRow = Numbers.getValueOrComputedValue( frequency.getNumber(), 0); Float weight = null; @@ -619,7 +619,7 @@ public class IndividualObservationBatchUIHandler // special case : only one frequency // with one value, can use the batch weight - weight = TuttiEntities.getValueOrComputedValue( + weight = Numbers.getValueOrComputedValue( leaf.getWeight(), leaf.getFinestCategory().getCategoryWeight()); } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java index 70859c3..54ee37f 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java @@ -26,6 +26,7 @@ import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import com.google.common.collect.Sets; import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValueId; +import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValues; import fr.ifremer.tutti.ui.swing.util.computable.ComputableDataTableCell; import org.nuiton.jaxx.application.swing.table.ColumnIdentifier; import fr.ifremer.tutti.type.WeightUnit; @@ -510,7 +511,7 @@ public class SpeciesBatchUIHandler extends AbstractTuttiBatchTableUIHandler<Spec if (firstCategory) { // remove the unsorted qualitative value - TuttiEntities.removeQualitativeValue(available, qualitative_unsorted_id); + CaracteristicQualitativeValues.removeQualitativeValue(available, qualitative_unsorted_id); } } } @@ -1165,7 +1166,7 @@ public class SpeciesBatchUIHandler extends AbstractTuttiBatchTableUIHandler<Spec if (firstCategory) { // remove the unsorted qualitative value - TuttiEntities.removeQualitativeValue(availableValues, qualitative_unsorted_id); + CaracteristicQualitativeValues.removeQualitativeValue(availableValues, qualitative_unsorted_id); } availableValues.removeAll(usedValues); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java index 8aa4c3a..088f7d8 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java @@ -26,8 +26,8 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Multimap; import fr.ifremer.tutti.ui.swing.util.computable.ComputableData; +import fr.ifremer.tutti.util.Numbers; import org.nuiton.jaxx.application.swing.tab.TabContentModel; -import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.ui.swing.content.operation.catches.AbstractTuttiBatchUIModel; @@ -437,8 +437,8 @@ public class SpeciesBatchUIModel extends AbstractTuttiBatchUIModel<SpeciesBatchR Species species = row.getSpecies(); Integer count = - TuttiEntities.getValueOrComputedValue(result.get(species), - 0); + Numbers.getValueOrComputedValue(result.get(species), + 0); List<SpeciesFrequencyRowModel> frequencies = row.getFrequency(); if (CollectionUtils.isEmpty(frequencies)) { diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java index b77c295..3dc2eee 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java @@ -45,6 +45,7 @@ import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor; import fr.ifremer.tutti.ui.swing.util.TuttiUI; import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIHandler; +import fr.ifremer.tutti.util.Numbers; import jaxx.runtime.swing.editor.bean.BeanFilterableComboBox; import jaxx.runtime.validator.swing.SwingValidator; import org.apache.commons.collections4.CollectionUtils; @@ -498,7 +499,7 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci List<SpeciesFrequencyRowModel> rows = Lists.newArrayList(rowsByStep.values()); for (float i = minStep, step = model.getStep(); i <= maxStep; - i = TuttiEntities.getRoundedLengthStep(i + step, true)) { + i = Numbers.getRoundedLengthStep(i + step, true)) { if (!existingKeys.contains(i)) { diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java index 71002a0..39d9e82 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java @@ -34,6 +34,7 @@ import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.persistence.entities.referential.Speciess; import fr.ifremer.tutti.service.DecoratorService; import fr.ifremer.tutti.service.TuttiDecorator; import fr.ifremer.tutti.ui.swing.action.CloneProtocolAction; @@ -157,10 +158,10 @@ public class EditProtocolUIHandler extends AbstractTuttiUIHandler<EditProtocolUI model.setAllSpecies(allSpecies); Multimap<String, Species> allSpeciesByTaxonId = - TuttiEntities.splitByReferenceTaxonId(allSpecies); + Speciess.splitByReferenceTaxonId(allSpecies); model.setAllSpeciesByTaxonId(allSpeciesByTaxonId); - Map<String, Species> allReferentSpeciesByTaxonId = TuttiEntities.splitByTaxonId( + Map<String, Species> allReferentSpeciesByTaxonId = Speciess.splitByTaxonId( getDataContext().getReferentSpecies()); model.setAllReferentSpeciesByTaxonId(allReferentSpeciesByTaxonId); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java index 072a565..da357ea 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java @@ -26,7 +26,7 @@ import com.google.common.base.Preconditions; import com.google.common.collect.Sets; import fr.ifremer.tutti.LabelAware; import fr.ifremer.tutti.TuttiConfiguration; -import fr.ifremer.tutti.persistence.entities.TuttiEntities; +import fr.ifremer.tutti.util.Weights; import fr.ifremer.tutti.persistence.entities.data.SampleCategory; import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.service.DecoratorService; @@ -152,7 +152,7 @@ public abstract class AbstractTuttiUIHandler<M, UI extends TuttiUI<M, ?>> extend int numberDigits = weightUnit.getNumberDigits(); - DecimalFormat weightDecimalFormat = TuttiEntities.getDecimalFormat(1, numberDigits); + DecimalFormat weightDecimalFormat = Weights.getDecimalFormat(1, numberDigits); textValue = weightDecimalFormat.format(weight); } else { diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/computable/ComputableDataEditorHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/computable/ComputableDataEditorHandler.java index b76eaba..2d445f0 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/computable/ComputableDataEditorHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/computable/ComputableDataEditorHandler.java @@ -23,7 +23,7 @@ package fr.ifremer.tutti.ui.swing.util.computable; * #L% */ -import fr.ifremer.tutti.persistence.entities.TuttiEntities; +import fr.ifremer.tutti.util.Weights; import fr.ifremer.tutti.ui.swing.util.TuttiUI; import jaxx.runtime.JAXXUtil; import jaxx.runtime.swing.editor.NumberEditorHandler; @@ -120,7 +120,7 @@ public class ComputableDataEditorHandler extends NumberEditorHandler { Number computedData = bean.getComputedData(); if (editor.isUseFloat() && decimalNumber != null && computedData != null) { - DecimalFormat decimalFormat = TuttiEntities.getDecimalFormat(1, decimalNumber); + DecimalFormat decimalFormat = Weights.getDecimalFormat(1, decimalNumber); modelText = decimalFormat.format(computedData); } else { modelText = JAXXUtil.getStringValue(computedData); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/computable/ComputableDataTableCell.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/computable/ComputableDataTableCell.java index aaaf4ad..7c6b0b1 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/computable/ComputableDataTableCell.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/computable/ComputableDataTableCell.java @@ -22,7 +22,7 @@ package fr.ifremer.tutti.ui.swing.util.computable; * #L% */ -import fr.ifremer.tutti.persistence.entities.TuttiEntities; +import fr.ifremer.tutti.util.Weights; import fr.ifremer.tutti.type.WeightUnit; import fr.ifremer.tutti.ui.swing.util.TuttiUI; import jaxx.runtime.JAXXUtil; @@ -221,7 +221,7 @@ public class ComputableDataTableCell extends DefaultTableCellRenderer { foreground = computedDataColor; if (useFloat && decimalNumber != null && dataValue != null) { - DecimalFormat decimalFormat = TuttiEntities.getDecimalFormat(1, decimalNumber); + DecimalFormat decimalFormat = Weights.getDecimalFormat(1, decimalNumber); text = JAXXUtil.getStringValue(decimalFormat.format(dataValue)); } else { text = JAXXUtil.getStringValue(dataValue); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.