branch feature/6688 updated (5a199fa -> 6c09cdf)
This is an automated email from the git hooks/post-receive script. New change to branch feature/6688 in repository tutti. See http://git.codelutin.com/tutti.git from 5a199fa improve API + persist cruises and gear caracteristics new 6c09cdf debut d'import des operations 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 6c09cdf1a779224fcac90760714847ce99eb7d58 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Feb 19 12:09:06 2015 +0100 debut d'import des operations Summary of changes: .../consumer/CsvConsumerForOperation.java | 30 +++++++++++++++++++--- ...java => FishingOperationNotValidException.java} | 20 +++++++-------- .../service/genericformat/csv/OperationRow.java | 8 ++++++ .../resources/i18n/tutti-service_fr_FR.properties | 2 +- 4 files changed, 46 insertions(+), 14 deletions(-) copy tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/consumer/{CruiseNotValidException.java => FishingOperationNotValidException.java} (71%) -- 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 feature/6688 in repository tutti. See http://git.codelutin.com/tutti.git commit 6c09cdf1a779224fcac90760714847ce99eb7d58 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Feb 19 12:09:06 2015 +0100 debut d'import des operations --- .../consumer/CsvConsumerForOperation.java | 30 +++++++++-- .../FishingOperationNotValidException.java | 58 ++++++++++++++++++++++ .../service/genericformat/csv/OperationRow.java | 8 +++ .../resources/i18n/tutti-service_fr_FR.properties | 2 +- 4 files changed, 94 insertions(+), 4 deletions(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/consumer/CsvConsumerForOperation.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/consumer/CsvConsumerForOperation.java index ac95852..7669392 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/consumer/CsvConsumerForOperation.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/consumer/CsvConsumerForOperation.java @@ -1,11 +1,15 @@ package fr.ifremer.tutti.service.genericformat.consumer; +import fr.ifremer.tutti.persistence.entities.data.Cruise; +import fr.ifremer.tutti.persistence.entities.data.FishingOperation; +import fr.ifremer.tutti.service.ValidationService; import fr.ifremer.tutti.service.csv.CsvComsumer; -import fr.ifremer.tutti.service.genericformat.GenericFormatImportEntityParserFactory; import fr.ifremer.tutti.service.genericformat.GenericFormatImportContext; +import fr.ifremer.tutti.service.genericformat.GenericFormatImportEntityParserFactory; import fr.ifremer.tutti.service.genericformat.csv.OperationModel; import fr.ifremer.tutti.service.genericformat.csv.OperationRow; import org.nuiton.csv.ImportRow; +import org.nuiton.validator.NuitonValidatorResult; import java.nio.file.Path; @@ -21,13 +25,33 @@ public class CsvConsumerForOperation extends CsvComsumer<OperationRow, Operation super(file, OperationModel.forImport(separator, parserFactory)); } - public void checkRow(ImportRow<OperationRow> row, GenericFormatImportContext importContext) { + public void checkRow(ImportRow<OperationRow> row, GenericFormatImportContext importContext, ValidationService validationService) { if (row.isValid()) { OperationRow bean = row.getBean(); - //TODO checks! + Cruise importedCruise = importContext.getImportedCruise(bean.getCruise()); + if (importedCruise == null) { + + addCheckError(row, new CruiseNotFoundException(bean.getCruise())); + + } else { + + bean.setCruise(importedCruise); + + FishingOperation fishingOperation = bean.getFishingOperation(); + NuitonValidatorResult validatorResult = validationService.validateEditFishingOperation(fishingOperation); + + if (validatorResult.hasFatalMessages() || validatorResult.hasErrorMessagess()) { + + addCheckError(row, new FishingOperationNotValidException(fishingOperation, validatorResult)); + + } + + //TODO other checkes ? + + } } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/consumer/FishingOperationNotValidException.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/consumer/FishingOperationNotValidException.java new file mode 100644 index 0000000..f45ecb1 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/consumer/FishingOperationNotValidException.java @@ -0,0 +1,58 @@ +package fr.ifremer.tutti.service.genericformat.consumer; + +import com.google.common.base.Joiner; +import fr.ifremer.tutti.persistence.entities.data.FishingOperation; +import org.nuiton.validator.NuitonValidatorResult; +import org.nuiton.validator.NuitonValidatorScope; + +import java.util.List; + +import static org.nuiton.i18n.I18n.t; + +/** + * Created on 2/19/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.14 + */ +public class FishingOperationNotValidException extends Exception { + + private static final long serialVersionUID = 1L; + + private final FishingOperation fishingOperation; + + private final NuitonValidatorResult validatorResult; + + public FishingOperationNotValidException(FishingOperation fishingOperation, NuitonValidatorResult validatorResult) { + this.fishingOperation = fishingOperation; + this.validatorResult = validatorResult; + } + + public FishingOperation getFishingOperation() { + return fishingOperation; + } + + @Override + public String getMessage() { + + StringBuilder builder = new StringBuilder(); + + if (validatorResult.hasFatalMessages()) { + List<String> fatalMessage = validatorResult.getMessagesForScope(NuitonValidatorScope.FATAL); + builder.append(t("tutti.fatal.messages", Joiner.on("\n-").join(fatalMessage))); + } + if (validatorResult.hasErrorMessagess()) { + List<String> errorsMessage = validatorResult.getMessagesForScope(NuitonValidatorScope.ERROR); + builder.append(t("tutti.error.messages", Joiner.on("\n-").join(errorsMessage))); + } + if (validatorResult.hasWarningMessages()) { + List<String> warningMessage = validatorResult.getMessagesForScope(NuitonValidatorScope.WARNING); + builder.append(t("tutti.warning.messages", Joiner.on("\n-").join(warningMessage))); + } + + String message = t("tutti.genericFormat.import.error.fishingOperationNotValid", builder.toString()); + return message; + + } + +} \ No newline at end of file diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/OperationRow.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/OperationRow.java index 631c4fa..c89b244 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/OperationRow.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/genericformat/csv/OperationRow.java @@ -137,10 +137,18 @@ public class OperationRow implements Serializable { this.cruise = cruise; } + public Cruise getCruise() { + return cruise; + } + public void setFishingOperation(FishingOperation fishingOperation) { this.fishingOperation = fishingOperation; } + public FishingOperation getFishingOperation() { + return fishingOperation; + } + public void setCatchBatch(CatchBatch catchBatch) { this.catchBatch = catchBatch; } diff --git a/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties b/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties index cb5c8ee..3cabedf 100644 --- a/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties +++ b/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties @@ -14,7 +14,7 @@ tutti.genericFormat.import.error.cruiseAlreadyExist=Il existe déjà une campagn tutti.genericFormat.import.error.cruiseAlreadyImported=La campagne avec ce nom %s a déjà été importée tutti.genericFormat.import.error.cruiseNotFound=La campagne (année: %s, série: %s, série partielle %s) n'existe pas tutti.genericFormat.import.error.gearNotFoundInCruise=L'engin %s (position %s) non trouvé dans la campagne (année: %s, série: %s, série partielle %s) -tutti.genericFormat.import.error.cruiseNotValid=La campagne n'est pas valide \:\n%s +tutti.genericFormat.import.error.fishingOperationNotValid=La campagne n'est pas valide \:\n%s tutti.genericFormat.import.gearCaracteristics=Import des caractéristiques d'engin tutti.genericFormat.import.individualObservations=Import des observations individuelles tutti.genericFormat.import.marineLitters=Import des macro-déchets -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm