This is an automated email from the git hooks/post-receive script. New commit to branch feature/8130 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit 38f75a82358eb60974944c8a20f377630860b422 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Mar 16 07:51:03 2016 +0100 Surcharge de la méthode put de CaracteristicMap pour bien vérifier de ce qui est mis dedans --- .../persistence/entities/CaracteristicMap.java | 33 ++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/CaracteristicMap.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/CaracteristicMap.java index 09fa9e5..ce5af9b 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/CaracteristicMap.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/CaracteristicMap.java @@ -24,6 +24,7 @@ package fr.ifremer.tutti.persistence.entities; 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 java.io.Serializable; import java.util.Collection; @@ -57,8 +58,7 @@ public class CaracteristicMap extends LinkedHashMap<Caracteristic, Serializable> public boolean hasNonNullValues(Collection<Caracteristic> caracteristicsToIgnore) { return keySet().stream() - .filter(caracteristic -> caracteristicsToIgnore.contains(caracteristic) - && get(caracteristic) != null) + .filter(caracteristic -> caracteristicsToIgnore.contains(caracteristic) && get(caracteristic) != null) .count() > 0; } @@ -86,4 +86,33 @@ public class CaracteristicMap extends LinkedHashMap<Caracteristic, Serializable> return (Float) remove; } + @Override + public Serializable put(Caracteristic key, Serializable value) { + + if (value != null) { + CaracteristicType caracteristicType = key.getCaracteristicType(); + switch (caracteristicType) { + + case NUMBER: + if (!(value instanceof Number)) { + throw new IllegalArgumentException("caracteristic value for " + key + " is not a number: " + value); + } + break; + case QUALITATIVE: + + // check value is a qualitative value + if (!(value instanceof CaracteristicQualitativeValue)) { + throw new IllegalArgumentException("caracteristic value for " + key + " is not qualitative: " + value); + } + break; + case TEXT: + if (!(value instanceof String)) { + throw new IllegalArgumentException("caracteristic value for " + key + " is not text: " + value); + } + break; + } + } + + return super.put(key, value); + } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.