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

almost.functional.utils.Preconditions Maven / Gradle / Ivy

Go to download

Almost Functional is very low impact functional classes inspired by guava, jdk 1.8 and various others.

There is a newer version: 1.8
Show newest version
/*
 * Copyright (c) 2013-2014, [email protected]
 *
 * Permission to use, copy, modify, and/or distribute this software for any purpose with or
 * without fee is hereby granted, provided that the above copyright notice and this permission
 * notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO
 * THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT
 * SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR
 * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
 * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
 * OR PERFORMANCE OF THIS SOFTWARE.
 */

package almost.functional.utils;

/**
 * Utility operations designed to be used as precondition tests.
 */
public final class Preconditions {

    private Preconditions() {
    }

    /**
     * Check that a reference is not null, throwing a NullPointerException if it is.
     *
     * @param reference    The reference to check
     * @param errorMessage the message for the exception if the reference is null
     * @param           the type of the reference
     * @throws NullPointerException if the reference is null
     */
    public static  T checkNotNull(T reference, String errorMessage) {
        if (reference == null) {
            throw new NullPointerException(errorMessage);
        }
		return reference;
    }

	/**
	 * Check that a String is not empty after removing whitespace.
	 * @param reference the string
	 * @param errorMessage the message for the exception
	 * @throws java.lang.NullPointerException if the String is null
	 * @throws java.lang.IllegalArgumentException if the string is non-null but zero length
	 */
	public static String checkNonEmptyString(String reference, String errorMessage) {
        for (Character c : checkNotNull(reference, errorMessage).toCharArray()) {
            if (!Character.isWhitespace(c)) {
                return reference;
            }
        }
        throw new IllegalArgumentException(errorMessage);
	}

    /**
     * Check that one class is assignable to another.
     * @param from the class assigning from
     * @param to the class assigning to
     * @param message the message used in the exception if thrown
     * @throws ClassCastException if the assignment can not be made
     */
    public static Class isAssignableTo(Class from, Class to, String message) {
        if (!to.isAssignableFrom(from)) {
            throw new ClassCastException(message);
        }
		return from;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy