javatechie

Custom Validator

Oct 20th, 2019
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.16 KB | None | 0 0
  1. package com.report.validator;
  2.  
  3. import com.report.excel.Employee;
  4.  
  5. import java.lang.reflect.Field;
  6. import java.util.ArrayList;
  7. import java.util.List;
  8.  
  9. public class Validator {
  10.  
  11.     public List<Error> validate(Object object) {
  12.         Error error = null;
  13.         List<Error> errors = new ArrayList<>();
  14.         Class<?> thisClass = null;
  15.         try {
  16.             thisClass = Class.forName(object.getClass().getName());
  17.             Field[] aClassFields = thisClass.getDeclaredFields();
  18.             for (Field f : aClassFields) {
  19.                 Field field = object.getClass().getDeclaredField(f.getName());
  20.                 field.setAccessible(true);
  21.                 Object value = field.get(object);
  22.                 System.out.println(value);
  23.                 if (value instanceof String) {
  24.                     error = validateString(value.toString(), f.getName());
  25.                     if (error != null) {
  26.                         errors.add(error);
  27.                     }
  28.  
  29.                 } else if (value instanceof Integer) {
  30.                     error = validateInt((Integer) value, f.getName());
  31.                     if (error != null) {
  32.                         errors.add(error);
  33.                     }
  34.                 }
  35.             }
  36.         } catch (Exception e) {
  37.             e.printStackTrace();
  38.         }
  39.         return errors;
  40.     }
  41.  
  42.     private Error validateString(String field, String fieldName) {
  43.         Error error = null;
  44.         if (field.isEmpty()) {
  45.             error = new Error(fieldName, fieldName + " Shouldn't be empty");
  46.         }
  47.         if (field == null) {
  48.             error = new Error(fieldName, fieldName + " Shouldn't be null");
  49.         }
  50.         return error;
  51.     }
  52.  
  53.     private Error validateInt(Integer field, String fieldName) {
  54.         Error error = null;
  55.         if (field.intValue() == 0) {
  56.             error = new Error(fieldName, fieldName + " Shouldn't be 0");
  57.         }
  58.         if (field == null) {
  59.             error = new Error(fieldName, fieldName + " Shouldn't be null");
  60.         }
  61.         return error;
  62.     }
  63.  
  64.     public static void main(String[] args) {
  65.         Validator validator = new Validator();
  66.         Employee employee = new Employee(0, "", "s@gmail.com", "IT");
  67.         System.out.println(validator.validate(employee));
  68.  
  69.  
  70.     }
  71. }
  72.  
  73.  
  74. package com.report.validator;
  75.  
  76. public class Error {
  77.  
  78.     private String fieldName;
  79.     private String errorMessage;
  80.  
  81.     public String getFieldName() {
  82.         return fieldName;
  83.     }
  84.  
  85.     public void setFieldName(String fieldName) {
  86.         this.fieldName = fieldName;
  87.     }
  88.  
  89.     public String getErrorMessage() {
  90.         return errorMessage;
  91.     }
  92.  
  93.     public void setErrorMessage(String errorMessage) {
  94.         this.errorMessage = errorMessage;
  95.     }
  96.  
  97.     public Error() {
  98.     }
  99.  
  100.     public Error(String fieldName, String errorMessage) {
  101.         this.fieldName = fieldName;
  102.         this.errorMessage = errorMessage;
  103.     }
  104.  
  105.     @Override
  106.     public String toString() {
  107.         return "Error{" +
  108.                 "fieldName='" + fieldName + '\'' +
  109.                 ", errorMessage='" + errorMessage + '\'' +
  110.                 '}';
  111.     }
  112. }
Add Comment
Please, Sign In to add comment