Skip to content

Commit

Permalink
feat[utils]: Add ParameterValidator class increasing SoC and SRP
Browse files Browse the repository at this point in the history
  • Loading branch information
Fredrik Marjoni committed Mar 24, 2026
1 parent 16b02a1 commit 316d43c
Showing 1 changed file with 72 additions and 0 deletions.
72 changes: 72 additions & 0 deletions src/main/java/edu/group5/app/utils/ParameterValidator.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
package edu.group5.app.utils;

import java.math.BigDecimal;
/**
* ParameterValidator is a utility class that provides static methods for validating various types of parameters.
* It includes methods for checking strings, integers, objects, and BigDecimal values to ensure they meet specific
* criteria such as not being null, not being blank, or being positive.
*
*/
public final class ParameterValidator {

/**
* Validates that a string parameter is not null and not blank.
* @param stringArg the string parameter to validate
* @param variableName the name of the variable being validated, used in exception messages
* @throws IllegalArgumentException if the string is null or blank
*/
public static final void stringChecker(String stringArg, String variableName) throws IllegalArgumentException {
nullCheck(stringArg, variableName);
if (stringArg.isBlank()) {
throw new IllegalArgumentException(String.format("%s can't be blank", variableName));
}
}

/**
* Validates that an integer parameter is not null and is a positive integer.
* @param intArg the integer parameter to validate
* @param variableName the name of the variable being validated, used in exception messages
* @throws IllegalArgumentException if the integer is null or not a positive integer
*/
public static final void intChecker(int intArg, String variableName) throws IllegalArgumentException {
nullCheck(intArg, variableName);
if (intArg <= 0) {
throw new IllegalArgumentException(String.format("%s must be a positive integer", variableName));
}
}

/**
* Validates that an object parameter is not null.
* @param objectArg the object parameter to validate
* @param variableName the name of the variable being validated, used in exception messages
* @throws IllegalArgumentException if the object is null
*/
public static final void objectChecker(Object objectArg, String variableName) throws IllegalArgumentException {
nullCheck(objectArg, variableName);
}

/**
* Validates that a BigDecimal parameter is not null and is greater than zero.
* @param bigDecimalArg the BigDecimal parameter to validate
* @param variableName the name of the variable being validated, used in exception messages
* @throws IllegalArgumentException if the BigDecimal is null or not greater than zero
*/
public static final void bigDecimalChecker(BigDecimal bigDecimalArg, String variableName) throws IllegalArgumentException {
nullCheck(bigDecimalArg, variableName);
if (bigDecimalArg.compareTo(BigDecimal.ZERO) <= 0) {
throw new IllegalArgumentException(String.format("%s must be larger than 0", variableName));
}
}

/**
* Helper method to check if a variable is null and throw an IllegalArgumentException with a formatted message if it is.
* @param variable the variable to check for null
* @param variableName the name of the variable being checked, used in the exception message
* @throws IllegalArgumentException if the variable is null
*/
private static final void nullCheck(Object variable, String variableName) throws IllegalArgumentException {
if (variable == null) {
throw new IllegalArgumentException(String.format("%s can't be null", variableName));
}
}
}

0 comments on commit 316d43c

Please sign in to comment.