Ver Fonte

Usual Residence fields in birth certificate validator

Andrew Grant há 5 meses atrás
pai
commit
951e1f2d6a

+ 1 - 0
src/main/java/scot/carricksoftware/grants/constants/ValidationConstants.java

@@ -46,6 +46,7 @@ public class ValidationConstants {
     public static final String WHEN_BORN_IS_NULL = "When born cannot be null.";
     public static final String FATHER_AND_UNTRACKED_FATHER = "One and only one father and untracked father must be specified.";
     public static final String WHERE_BORN_AND_UNTRACKED_WHERE_BORN = "One and only one where born and untracked where born must be specified.";
+    public static final String FATHER_USUAL_RESIDENCE_AND_UNTRACKED_FATHER_USUAL_RESIDENCE = "Only one usual residence and untracked usual residence may be specified.";
     public static final String BRIDE_IS_NULL = "The bride cannot be null.";
     public static final String GROOM_IS_NULL = "The groom cannot be null.";
     public static final String SAME_BRIDE_AND_GROOM = "The bride and groom cannot be the same person.";

+ 7 - 0
src/main/java/scot/carricksoftware/grants/validators/certificates/birthcertificate/BirthCertificateCommandPartThreeValidatorImpl.java

@@ -34,6 +34,7 @@ public class BirthCertificateCommandPartThreeValidatorImpl implements BirthCerti
         validateFatherAndUntrackedFather(birthCertificateCommand, bindingResult);
         validateWhereBornAndUntrackedWhereBorn(birthCertificateCommand, bindingResult);
         validateWhenRegistered(birthCertificateCommand, bindingResult);
+        validateUsualResidences(birthCertificateCommand, bindingResult);
     }
 
 
@@ -63,6 +64,12 @@ public class BirthCertificateCommandPartThreeValidatorImpl implements BirthCerti
                 "whereBorn", "untrackedWhereBorn", ValidationConstants.WHERE_BORN_AND_UNTRACKED_WHERE_BORN,bindingResult);
     }
 
+    private void validateUsualResidences(BirthCertificateCommand birthCertificateCommand, BindingResult bindingResult) {
+        logger.debug("Validating where Usual Residence and untracked usual residence");
+        validateTypes.validateOptionalPlaceAndUntrackedPlace(birthCertificateCommand.getFatherUsualResidence(), birthCertificateCommand.getUntrackedFatherUsualResidence(),
+                "fatherUsualResidence", "untrackedFatherUsualResidence", ValidationConstants.FATHER_USUAL_RESIDENCE_AND_UNTRACKED_FATHER_USUAL_RESIDENCE,bindingResult);
+    }
+
     private void validateWhenRegistered(BirthCertificateCommand birthCertificateCommand, BindingResult bindingResult) {
         logger.debug("Validating birth certificate Registration Date");
         validateTypes.validatePastDate(birthCertificateCommand.getWhenRegistered(),

+ 2 - 0
src/main/java/scot/carricksoftware/grants/validators/helpers/ValidateTypes.java

@@ -38,4 +38,6 @@ public interface ValidateTypes {
 
     @SuppressWarnings("EmptyMethod")
     void validatePlaceAndUntrackedPlace(Place place, String untrackedPlace, String placeFieldName, String untrackedFieldName, String message, BindingResult bindingResult);
+
+    void validateOptionalPlaceAndUntrackedPlace(Place place, String untrackedPlace, String placeFieldName, String untrackedFieldName, String message, BindingResult bindingResult);
 }

+ 8 - 0
src/main/java/scot/carricksoftware/grants/validators/helpers/ValidateTypesImpl.java

@@ -131,4 +131,12 @@ public class ValidateTypesImpl implements ValidateTypes {
         }
     }
 
+    @Override
+    public void validateOptionalPlaceAndUntrackedPlace(Place place, String untrackedPlace, String placeFieldName, String untrackedFieldName, String message, BindingResult bindingResult) {
+        if (!(place == null) && untrackedPlace != null &&  !(untrackedPlace.trim().isEmpty())) {
+            bindingResult.rejectValue(placeFieldName, ApplicationConstants.EMPTY_STRING, null, message);
+            bindingResult.rejectValue(untrackedFieldName, ApplicationConstants.EMPTY_STRING, null, message);
+        }
+    }
+
 }