All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.fabric8.utils.NullArgumentException Maven / Gradle / Ivy

/**
 *  Copyright 2005-2016 Red Hat, Inc.
 *
 *  Red Hat licenses this file to you under the Apache License, version
 *  2.0 (the "License"); you may not use this file except in compliance
 *  with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
 *  implied.  See the License for the specific language governing
 *  permissions and limitations under the License.
 */
package io.fabric8.utils;

import java.util.Properties;

/**
 * Exception thrown when the argument to a method or constructor is
 * null and not handled by the method/constructor/class.
 * 

* The argument in the only constructor of this exception should only * take the name of the declared argument that is null, for instance; *

 *     public Person( String name, int age )
 *     {
 *         NullArgumentException.validateNotEmpty( name, "name" )
 *         if( age > 120 )
 *             throw new IllegalArgumentException( "age > 120" );
 *         if( age < 0 )
 *             throw new IllegalArgumentException( "age < 0" );
 *     }
 * 
*/ public class NullArgumentException extends IllegalArgumentException { private static final long serialVersionUID = 1L; private static final String IS_NULL = " is null."; private static final String IS_EMPTY = " is empty string."; /** * Constructor. * * @param msg The message to use in the exception describing the problem. */ public NullArgumentException(String msg) { super(msg); } /** * Validates that the object obj is not null. * * @param obj The object to be tested. * @param objectName The name of the object, which is used to construct the exception message. * @throws NullArgumentException if the stringToCheck is either null or zero characters long. */ public static void validateNotNull(Object obj, String objectName) throws NullArgumentException { if (obj == null) { throw new NullArgumentException(objectName + IS_NULL); } } /** * Validates that the string is not null and not an empty string without trimming the string. * * @param stringToCheck The object to be tested. * @param argumentName The name of the object, which is used to construct the exception message. * @throws NullArgumentException if the stringToCheck is either null or zero characters long. */ public static void validateNotEmpty(String stringToCheck, String argumentName) throws NullArgumentException { validateNotEmpty(stringToCheck, false, argumentName); } /** * Validates that the string is not null and not an empty string. * * @param stringToCheck The object to be tested. * @param trim If the elements should be trimmed before checking if empty * @param argumentName The name of the object, which is used to construct the exception message. * @throws NullArgumentException if the stringToCheck is either null or zero characters long. */ public static void validateNotEmpty(String stringToCheck, boolean trim, String argumentName) throws NullArgumentException { validateNotNull(stringToCheck, argumentName); if (stringToCheck.length() == 0 || (trim && stringToCheck.trim().length() == 0)) { throw new NullArgumentException(argumentName + IS_EMPTY); } } /** * Validates that the Properties instance is not null and that it has entries. * * @param propertiesToCheck The object to be tested. * @param argumentName The name of the object, which is used to construct the exception message. * @throws NullArgumentException if the Properties instance is null or does not have any entries. */ public static void validateNotEmpty(Properties propertiesToCheck, String argumentName) throws NullArgumentException { validateNotNull(propertiesToCheck, argumentName); if (propertiesToCheck.isEmpty()) { throw new NullArgumentException(argumentName + IS_EMPTY); } } /** * Validates that the array instance is not null and that it has entries. * * @param arrayToCheck The object to be tested. * @param argumentName The name of the object, which is used to construct the exception message. * @throws NullArgumentException if the array instance is null or does not have any entries. * @since 0.5.0, January 18, 2008 */ public static void validateNotEmpty(Object[] arrayToCheck, String argumentName) throws NullArgumentException { validateNotNull(arrayToCheck, argumentName); if (arrayToCheck.length == 0) { throw new NullArgumentException(argumentName + IS_EMPTY); } } /** * Validates that the string array instance is not null and that it has entries that are not null or empty * eithout trimming the string. * * @param arrayToCheck The object to be tested. * @param argumentName The name of the object, which is used to construct the exception message. * @throws NullArgumentException if the array instance is null or does not have any entries. * @since 0.5.0, January 18, 2008 */ public static void validateNotEmptyContent(String[] arrayToCheck, String argumentName) throws NullArgumentException { validateNotEmptyContent(arrayToCheck, false, argumentName); } /** * Validates that the string array instance is not null and that it has entries that are not null or empty. * * @param arrayToCheck The object to be tested. * @param trim If the elements should be trimmed before checking if empty * @param argumentName The name of the object, which is used to construct the exception message. * @throws NullArgumentException if the array instance is null or does not have any entries. * @since 0.5.0, January 18, 2008 */ public static void validateNotEmptyContent(String[] arrayToCheck, boolean trim, String argumentName) throws NullArgumentException { validateNotEmpty(arrayToCheck, argumentName); for (int i = 0; i < arrayToCheck.length; i++) { validateNotEmpty(arrayToCheck[i], arrayToCheck[i] + "[" + i + "]"); if (trim) { validateNotEmpty(arrayToCheck[i].trim(), arrayToCheck[i] + "[" + i + "]"); } } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy