MandatoryArgumentChecker.java |
/* * $Id: MandatoryArgumentChecker.java,v 1.24 2010/09/29 17:21:48 agoubard Exp $ * * See the COPYRIGHT file for redistribution and use restrictions. */ package org.xins.common; /** * Utility class used to check mandatory method arguments. * * @version $Revision: 1.24 $ $Date: 2010/09/29 17:21:48 $ * @author <a href="mailto:ernst@ernstdehaan.com">Ernst de Haan</a> * * @since XINS 1.0.0 */ public final class MandatoryArgumentChecker { /** * Constructs a new <code>MandatoryArgumentChecker</code>. This constructor * is private since this no instances of this class should be created. */ private MandatoryArgumentChecker() { // empty } /** * Checks if the specified argument value is <code>null</code>. If it is * <code>null</code>, then an {@link IllegalArgumentException} is thrown. * * @param argName * the name of the argument, cannot be <code>null</code>. * * @param argValue * the value of the argument. * * @throws IllegalArgumentException * if <code>argValue == null</code>. */ public static void check(String argName, Object argValue) throws IllegalArgumentException { // If both are non-null everything is okay, just short-circuit if (argName != null && argValue != null) { return; } // Check if the name is null if (argName == null) { throw Utils.logProgrammingError("argName == null"); } // Otherwise the value is null if (argValue == null) { throw new IllegalArgumentException(argName + " == null"); } } /** * Checks if any of the two specified argument values is <code>null</code>. * If at least one value is <code>null</code>, then an * {@link IllegalArgumentException} is thrown. * * @param argName1 * the name of the first argument, cannot be <code>null</code>. * * @param argValue1 * the value of the first argument. * * @param argName2 * the name of the second argument, cannot be <code>null</code>. * * @param argValue2 * the value of the second argument. * * @throws IllegalArgumentException * if <code>argValue1 == null || argValue2 == null</code>. */ public static void check(String argName1, Object argValue1, String argName2, Object argValue2) throws IllegalArgumentException { // If all are non-null everything is okay, just short-circuit if (argName1 != null && argValue1 != null && argName2 != null && argValue2 != null) { return; } String message = ""; // Check if any of the names is null if (argName1 == null && argName2 == null) { message = "argName1 == null && argName2 == null"; throw Utils.logProgrammingError(message); } // Otherwise (at least) one of the values must be null if (argValue1 == null && argValue2 == null) { message = argName1 + " == null && " + argName2 + " == null"; } else { check(argName1, argValue1); check(argName2, argValue2); } throw new IllegalArgumentException(message); } /** * Checks if any of the three specified argument values is * <code>null</code>. If at least one value is <code>null</code>, then an * {@link IllegalArgumentException} is thrown. * * @param argName1 * the name of the first argument, cannot be <code>null</code>. * * @param argValue1 * the value of the first argument. * * @param argName2 * the name of the second argument, cannot be <code>null</code>. * * @param argValue2 * the value of the second argument. * * @param argName3 * the name of the third argument, cannot be <code>null</code>. * * @param argValue3 * the value of the third argument. * * @throws IllegalArgumentException * if <code>argValue1 == null * || argValue2 == null * || argValue3 == null</code>. */ public static void check(String argName1, Object argValue1, String argName2, Object argValue2, String argName3, Object argValue3) throws IllegalArgumentException { // If all are non-null everything is okay, just short-circuit if (argName1 != null && argValue1 != null && argName2 != null && argValue2 != null && argName3 != null && argValue3 != null) { return; } // Check if any of the names is null String message = ""; if (argName1 == null && argName2 == null && argName3 == null) { message = "argName1 == null && " + "argName2 == null && " + "argName3 == null"; throw Utils.logProgrammingError(message); } // Otherwise (at least) one of the values must be null if (argValue1 == null && argValue2 == null && argValue3 == null) { message = argName1 + " == null && " + argName2 + " == null && " + argName3 + " == null"; } else { check(argName1, argValue1, argName2, argValue2); check(argName1, argValue1, argName3, argValue3); check(argName2, argValue2, argName3, argValue3); } throw new IllegalArgumentException(message); } /** * Checks if any of the four specified argument values is * <code>null</code>. If at least one value is <code>null</code>, then an * {@link IllegalArgumentException} is thrown. * * @param argName1 * the name of the first argument, cannot be <code>null</code>. * * @param argValue1 * the value of the first argument. * * @param argName2 * the name of the second argument, cannot be <code>null</code>. * * @param argValue2 * the value of the second argument. * * @param argName3 * the name of the third argument, cannot be <code>null</code>. * * @param argValue3 * the value of the third argument. * * @param argName4 * the name of the fourth argument, cannot be <code>null</code>. * * @param argValue4 * the value of the fourth argument. * * @throws IllegalArgumentException * if <code>argValue1 == null || argValue2 == null * || argValue3 == null || argValue4 == null</code>. */ public static void check(String argName1, Object argValue1, String argName2, Object argValue2, String argName3, Object argValue3, String argName4, Object argValue4) throws IllegalArgumentException { // If all are non-null everything is okay, just short-circuit if (argName1 != null && argValue1 != null && argName2 != null && argValue2 != null && argName3 != null && argValue3 != null && argName4 != null && argValue4 != null) { return; } // Check if any of the names is null String message = ""; if (argName1 == null && argName2 == null && argName3 == null && argName4 == null) { message = "argName1 == null && argName2 == null && " + "argName3 == null && argName4 == null"; throw Utils.logProgrammingError(message); } // Otherwise (at least) one of the values must be null if (argValue1 == null && argValue2 == null && argValue3 == null && argValue4 == null) { message = argName1 + " == null && " + argName2 + " == null && " + argName3 + " == null && " + argName4 + " == null"; } else { check(argName1, argValue1, argName2, argValue2, argName3, argValue3); check(argName1, argValue1, argName2, argValue2, argName4, argValue4); check(argName2, argValue2, argName3, argValue3, argName4, argValue4); } throw new IllegalArgumentException(message); } }