Ver código fonte

BirthCertificateCommandPartThreeValidator

Andrew Grant 6 meses atrás
pai
commit
af0b4f6c90

+ 7 - 20
src/main/java/scot/carricksoftware/grants/validators/certificates/BirthCertificateCommandPartOneValidator.java

@@ -10,11 +10,9 @@ import org.apache.logging.log4j.Logger;
 import org.springframework.stereotype.Component;
 import org.springframework.validation.BindingResult;
 import scot.carricksoftware.grants.commands.certificates.birthcertificates.BirthCertificateCommand;
-import scot.carricksoftware.grants.constants.ApplicationConstants;
 import scot.carricksoftware.grants.constants.ValidationConstants;
 import scot.carricksoftware.grants.validators.helpers.ValidateTypes;
 
-import java.time.LocalDate;
 
 @Component
 public class BirthCertificateCommandPartOneValidator {
@@ -56,28 +54,17 @@ public class BirthCertificateCommandPartOneValidator {
 
     private void validateCertificateType(BirthCertificateCommand birthCertificateCommand, BindingResult bindingResult) {
         logger.debug("Validating birth certificate Certificate Type");
-        if (birthCertificateCommand.getCertificateType() == null ) {
-            bindingResult.rejectValue("certificateType", ApplicationConstants.EMPTY_STRING,
-                    null,
-                    ValidationConstants.CERTIFICATE_TYPE_IS_NULL);
-        }
+        validateTypes.validateCertificateType(birthCertificateCommand.getCertificateType(), "certificateType", ValidationConstants.CERTIFICATE_TYPE_IS_NULL, bindingResult);
     }
 
     private void validateCertificateDate(BirthCertificateCommand birthCertificateCommand, BindingResult bindingResult) {
         logger.debug("Validating birth certificate Certificate Date");
-        if (birthCertificateCommand.getCertificateDate() == null || birthCertificateCommand.getCertificateDate().isEmpty()) {
-            bindingResult.rejectValue("certificateDate", ApplicationConstants.EMPTY_STRING,
-                    null,
-                    ValidationConstants.CERTIFICATE_DATE_IS_NULL);
-        } else {
-            try {
-                LocalDate.parse(birthCertificateCommand.getCertificateDate(), ApplicationConstants.FORMATTER);
-            } catch (Exception e) {
-                bindingResult.rejectValue("certificateDate", ApplicationConstants.EMPTY_STRING,
-                        null,
-                        ValidationConstants.DATE_IS_INVALID);
-            }
-        }
+        validateTypes.validatePastDate(birthCertificateCommand.getCertificateDate(),
+                "certificateDate",
+                ValidationConstants.CERTIFICATE_DATE_IS_NULL,
+                ValidationConstants.DATE_IS_INVALID,
+                ValidationConstants.DATE_IN_FUTURE,
+                bindingResult);
     }
 
 

+ 3 - 4
src/main/java/scot/carricksoftware/grants/validators/certificates/BirthCertificateCommandPartThreeValidator.java

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) Andrew Grant of Carrick Software 19/03/2025, 09:50. All rights reserved.
+ * Copyright (c) 2025.  Andrew Grant Carrick Software. All rights reserved
  *
  */
 
@@ -13,11 +13,13 @@ import scot.carricksoftware.grants.commands.certificates.birthcertificates.Birth
 import scot.carricksoftware.grants.constants.ApplicationConstants;
 import scot.carricksoftware.grants.constants.ValidationConstants;
 
+
 @Component
 public class BirthCertificateCommandPartThreeValidator {
 
     private static final Logger logger = LogManager.getLogger(BirthCertificateCommandPartThreeValidator.class);
 
+
     public void validate(BirthCertificateCommand birthCertificateCommand, BindingResult bindingResult) {
         logger.debug("Validating birth certificate command (part two)");
 
@@ -103,7 +105,4 @@ public class BirthCertificateCommandPartThreeValidator {
             validateInteger(parts[1], 0, 59, ValidationConstants.WHEN_BORN_INCORRECT_FORMAT, "whenBorn", bindingResult);
         }
     }
-
-
 }
-

+ 10 - 30
src/main/java/scot/carricksoftware/grants/validators/certificates/BirthCertificateCommandPartTwoValidator.java

@@ -10,14 +10,20 @@ import org.apache.logging.log4j.Logger;
 import org.springframework.stereotype.Component;
 import org.springframework.validation.BindingResult;
 import scot.carricksoftware.grants.commands.certificates.birthcertificates.BirthCertificateCommand;
-import scot.carricksoftware.grants.constants.ApplicationConstants;
 import scot.carricksoftware.grants.constants.ValidationConstants;
+import scot.carricksoftware.grants.validators.helpers.ValidateTypes;
 
 @Component
 public class BirthCertificateCommandPartTwoValidator {
 
     private static final Logger logger = LogManager.getLogger(BirthCertificateCommandPartTwoValidator.class);
 
+    private final ValidateTypes validateTypes;
+
+    public BirthCertificateCommandPartTwoValidator(ValidateTypes validateTypes) {
+        this.validateTypes = validateTypes;
+    }
+
     public void validate(BirthCertificateCommand birthCertificateCommand, BindingResult bindingResult) {
         logger.debug("Validating birth certificate command (part two)");
 
@@ -29,43 +35,17 @@ public class BirthCertificateCommandPartTwoValidator {
 
     private void validateNumber(BirthCertificateCommand birthCertificateCommand, BindingResult bindingResult) {
         logger.debug("Validating registration number");
-        if (birthCertificateCommand.getNumber() == null || birthCertificateCommand.getNumber().isEmpty()) {
-            bindingResult.rejectValue("number", ApplicationConstants.EMPTY_STRING,
-                    null,
-                    ValidationConstants.NUMBER_IS_NULL);
-        } else {
-            try {
-                int number = Integer.parseInt(birthCertificateCommand.getNumber());
-                if (number < 0) {
-                    bindingResult.rejectValue("number", ApplicationConstants.EMPTY_STRING,
-                            null,
-                            ValidationConstants.NUMBER_IS_INVALID);
-                }
-            } catch (NumberFormatException e) {
-                bindingResult.rejectValue("number", ApplicationConstants.EMPTY_STRING,
-                        null,
-                        ValidationConstants.NUMBER_IS_INVALID);
-            }
-        }
+        validateTypes.validateNonNegativeInteger(birthCertificateCommand.getNumber(), "volume", ValidationConstants.NUMBER_IS_NULL, ValidationConstants.NUMBER_IS_INVALID,bindingResult);
     }
 
-
     private void validateVolume(BirthCertificateCommand birthCertificateCommand, BindingResult bindingResult) {
         logger.debug("Validating number Registration Volume");
-        if (birthCertificateCommand.getVolume() == null || birthCertificateCommand.getVolume().isEmpty()) {
-            bindingResult.rejectValue("volume", ApplicationConstants.EMPTY_STRING,
-                    null,
-                    ValidationConstants.REGISTRATION_VOLUME_IS_NULL);
-        }
+        validateTypes.validateNullOrEmptyString(birthCertificateCommand.getVolume(), "volume", ValidationConstants.REGISTRATION_VOLUME_IS_NULL,bindingResult);
     }
 
     private void validateRegistrationAuthority(BirthCertificateCommand birthCertificateCommand, BindingResult bindingResult) {
         logger.debug("Validating birth certificate Registration Authority");
-        if (birthCertificateCommand.getRegistrationAuthority() == null) {
-            bindingResult.rejectValue("registrationAuthority", ApplicationConstants.EMPTY_STRING,
-                    null,
-                    ValidationConstants.REGISTRATION_AUTHORITY_IS_NULL);
-        }
+        validateTypes.validateOrganisation(birthCertificateCommand.getRegistrationAuthority(), "certificateSource", ValidationConstants.REGISTRATION_AUTHORITY_IS_NULL, bindingResult);
     }
 
 }

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

@@ -8,11 +8,20 @@ package scot.carricksoftware.grants.validators.helpers;
 import org.springframework.validation.BindingResult;
 import scot.carricksoftware.grants.domains.people.Person;
 import scot.carricksoftware.grants.domains.places.Organisation;
+import scot.carricksoftware.grants.enums.certificates.CertificateType;
 
 public interface ValidateTypes {
     void validatePerson(Person person, String field, String message, BindingResult bindingResult);
 
     void validateOrganisation(Organisation organisation, String field, String message, BindingResult bindingResult);
 
+    void validateCertificateType(CertificateType certificateType, String field, String message, BindingResult bindingResult);
+
     void validateNullOrEmptyString(String string, @SuppressWarnings("SameParameterValue") String field, @SuppressWarnings("SameParameterValue") String message, BindingResult bindingResult);
+
+    @SuppressWarnings({"unused", "EmptyMethod"})
+    void validatePastDate(String dateString, String fieldName, @SuppressWarnings("SameParameterValue") String nullMessage, String formatMessage, String pastMessage, BindingResult bindingResult);
+
+    @SuppressWarnings({"unused", "EmptyMethod"})
+    void validateNonNegativeInteger(String integerString, String fieldName, @SuppressWarnings("SameParameterValue") String nullMessage, String formatMessage, BindingResult bindingResult);
 }

+ 23 - 6
src/main/java/scot/carricksoftware/grants/validators/helpers/ValidateTypesImpl.java

@@ -10,28 +10,45 @@ import org.springframework.validation.BindingResult;
 import scot.carricksoftware.grants.constants.ApplicationConstants;
 import scot.carricksoftware.grants.domains.people.Person;
 import scot.carricksoftware.grants.domains.places.Organisation;
+import scot.carricksoftware.grants.enums.certificates.CertificateType;
 
 @Component
 public class ValidateTypesImpl implements ValidateTypes {
 
     @Override
-    public void validatePerson(Person person, String field, String message, BindingResult bindingResult) {
+    public void validatePerson(Person person, String fieldName, String message, BindingResult bindingResult) {
         if (person == null ) {
-            bindingResult.rejectValue(field, ApplicationConstants.EMPTY_STRING, null, message);
+            bindingResult.rejectValue(fieldName, ApplicationConstants.EMPTY_STRING, null, message);
         }
     }
 
     @Override
-    public void validateOrganisation(Organisation organisation, String field, String message, BindingResult bindingResult) {
+    public void validateOrganisation(Organisation organisation, String fieldName, String message, BindingResult bindingResult) {
         if (organisation == null ) {
-            bindingResult.rejectValue(field, ApplicationConstants.EMPTY_STRING, null, message);
+            bindingResult.rejectValue(fieldName, ApplicationConstants.EMPTY_STRING, null, message);
         }
     }
 
     @Override
-    public void validateNullOrEmptyString(String string, @SuppressWarnings("SameParameterValue") String field, @SuppressWarnings("SameParameterValue") String message, BindingResult bindingResult) {
+    public void validateCertificateType(CertificateType certificateType, String fieldName, String message, BindingResult bindingResult) {
+        if (certificateType == null ) {
+            bindingResult.rejectValue(fieldName, ApplicationConstants.EMPTY_STRING, null, message);
+        }
+    }
+
+    @Override
+    public void validateNullOrEmptyString(String string, String fieldName, @SuppressWarnings("SameParameterValue") String message, BindingResult bindingResult) {
         if (string == null||string.isEmpty()) {
-            bindingResult.rejectValue(field, ApplicationConstants.EMPTY_STRING, null, message);
+            bindingResult.rejectValue(fieldName, ApplicationConstants.EMPTY_STRING, null, message);
         }
     }
+
+    @Override
+    public void validatePastDate(String dateString, String fieldName, String nullMessage, String formatMessage, String pastMessage, BindingResult bindingResult) {
+    }
+
+    @Override
+    public void validateNonNegativeInteger(String integerString, String fieldName, @SuppressWarnings("SameParameterValue") String nullMessage, String formatMessage, BindingResult bindingResult) {
+    }
+
 }