From 7e34ff8c59356fcb2367a7e7908302871a7cb152 Mon Sep 17 00:00:00 2001 From: Andreas Billmann Date: Thu, 22 Sep 2016 21:35:40 +0200 Subject: [PATCH] fixed NPE when string has no format --- .../javafx/smartcsv/validation/Validator.java | 45 ++++++++++++------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/src/main/java/ninja/javafx/smartcsv/validation/Validator.java b/src/main/java/ninja/javafx/smartcsv/validation/Validator.java index 9a9d728..c8c26c4 100644 --- a/src/main/java/ninja/javafx/smartcsv/validation/Validator.java +++ b/src/main/java/ninja/javafx/smartcsv/validation/Validator.java @@ -133,6 +133,15 @@ public class Validator { validationMap.put(validation.getType(), validation); } + private void remove(String column, Validation.Type type) { + Map validationMap = columnValidationMap.get(column); + if (validationMap == null) { + validationMap = new HashMap<>(); + columnValidationMap.put(column, validationMap); + } + validationMap.remove(type); + } + private void clear(String column) { Map validationMap = columnValidationMap.get(column); if (validationMap != null) { @@ -186,24 +195,26 @@ public class Validator { add(column.getName(), new DateValidation(format)); } - if (column.getType() == STRING && column.getFormat().equalsIgnoreCase(EMAIL.getExternalValue())) { - add(column.getName(), new EmailValidation()); - } - - if (column.getType() == STRING && column.getFormat().equalsIgnoreCase(URI.getExternalValue())) { - add(column.getName(), new UriValidation()); - } - - if (column.getType() == STRING && column.getFormat().equalsIgnoreCase(UUID.getExternalValue())) { - add(column.getName(), new UuidValidation()); - } - - if (column.getType() == STRING && column.getFormat().equalsIgnoreCase(BINARY.getExternalValue())) { - add(column.getName(), new BinaryValidation()); - } - if (column.getType() == STRING && column.getFormat() == null) { - columnValidationMap.get(column).remove(Validation.Type.STRING); + remove(column.getName(), Validation.Type.STRING); + } else { + + if (column.getType() == STRING && column.getFormat().equalsIgnoreCase(EMAIL.getExternalValue())) { + add(column.getName(), new EmailValidation()); + } + + if (column.getType() == STRING && column.getFormat().equalsIgnoreCase(URI.getExternalValue())) { + add(column.getName(), new UriValidation()); + } + + if (column.getType() == STRING && column.getFormat().equalsIgnoreCase(UUID.getExternalValue())) { + add(column.getName(), new UuidValidation()); + } + + if (column.getType() == STRING && column.getFormat().equalsIgnoreCase(BINARY.getExternalValue())) { + add(column.getName(), new BinaryValidation()); + } + } }