[tutti] branch develop updated (e9b2e58 -> 15cb38e)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository tutti. See http://git.codelutin.com/tutti.git from e9b2e58 fixes #5672: #5624 MELANGE pas importé comme du mélange new 15cb38e fixes #5671: Revoir traitement #5174 Refactor TuttiEntities class (split to more specialized classes) f# Please enter the commit message for your changes. Lines starting The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: 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 Summary of changes: .../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(-) create mode 100644 tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/SpeciesAbleBatchs.java create mode 100644 tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/Caracteristics.java create mode 100644 tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/Gears.java create mode 100644 tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/Speciess.java create mode 100644 tutti-persistence/src/main/java/fr/ifremer/tutti/util/Distances.java create mode 100644 tutti-persistence/src/main/java/fr/ifremer/tutti/util/Jdbcs.java create mode 100644 tutti-persistence/src/main/java/fr/ifremer/tutti/util/Numbers.java create mode 100644 tutti-persistence/src/main/java/fr/ifremer/tutti/util/Weights.java -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
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>.
participants (1)
-
codelutin.com scm