Author: chatellier Date: 2010-10-29 15:31:13 +0000 (Fri, 29 Oct 2010) New Revision: 133 Log: Correction pour avoir les lignes des validations portant sur plusieurs lignes Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/ValidationService.java Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/ValidationService.java =================================================================== --- trunk/coser-business/src/main/java/fr/ifremer/coser/services/ValidationService.java 2010-10-29 15:04:40 UTC (rev 132) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/ValidationService.java 2010-10-29 15:31:13 UTC (rev 133) @@ -400,34 +400,43 @@ Double oldValue = nombreForKey.get(key); Double newValue = oldValue + nombre; nombreForKey.put(key, newValue); - - // sauvegarde la premiere ligne qui correspond a un regroupement de clé - firstLineForKey.put(key, lineNumber); } else { nombreForKey.put(key, nombre); + // sauvegarde la premiere ligne qui correspond a un regroupement de clé + firstLineForKey.put(key, lineNumber); } - // autre validation (rien a voir avec le reste attention) // Vérifier que le nombre d'individus dans CAPT$Nombre n'est pas 0 si le poids dans CAPT$Poids>0. String poidsValue = tuple[Catch.INDEX_WEIGHT]; - Double poids = Double.valueOf(poidsValue); - if (poids > 0 && nombre <= 0) { - ValidationError error = new ValidationError(); - error.setLevel(ValidationLevel.ERROR); - error.setLineNumber(lineNumber); - error.setMessage(_("coser.business.control.error.noCatchNumberWithWeight")); - validationErrors.add(error); + try { + Double poids = Double.valueOf(poidsValue); + if (poids > 0 && nombre <= 0) { + ValidationError error = new ValidationError(); + error.setLevel(ValidationLevel.ERROR); + error.setLineNumber(lineNumber); + error.setMessage(_("coser.business.control.error.noCatchNumberWithWeight")); + validationErrors.add(error); + } } + catch (NumberFormatException ex) { + // par trop grave, normalement les données deviennent + // valide au fil de la validation + if (log.isWarnEnabled()) { + log.warn("Can't parse '" + poidsValue + "' as double"); + } + } } catch (NumberFormatException ex) { - // par trop grave, normalement les données deviennet + // par trop grave, normalement les données deviennent // valide au fil de la validation if (log.isWarnEnabled()) { - log.warn("Can't parse " + nombreValue + " as double"); + log.warn("Can't parse '" + nombreValue + "' as double"); } } + + } // now look for invalid data @@ -439,9 +448,9 @@ String lineNumber = firstLineForKey.get(key); ValidationError error = new ValidationError(); - error.setLevel(ValidationLevel.ERROR); + error.setLevel(ValidationLevel.WARNING); error.setLineNumber(lineNumber); - error.setMessage(_("coser.business.control.error.minObservationCount", key)); + error.setMessage(_("coser.business.control.error.minObservationCount", key, value)); validationErrors.add(error); } } @@ -505,12 +514,11 @@ Double oldValue = nombreForKey.get(key); Double newValue = oldValue + nombre; nombreForKey.put(key, newValue); - - // sauvegarde la premiere ligne qui correspond a un regroupement de clé - firstLineForKey.put(key, lineNumber); } else { nombreForKey.put(key, nombre); + // sauvegarde la premiere ligne qui correspond a un regroupement de clé + firstLineForKey.put(key, lineNumber); } } catch (NumberFormatException ex) {