    001package com.basilv.core;
    002
    003
    004/**
    005 * Provides assertion support. A failed assertion will throw an AssertionError.
    006 * <P>
    007 * The methods are generally of the form: methodXXX(message, expression). If the
    008 * expression fails the assertion, then the AssertionException is created using
    009 * the specified message and then thrown.
    010 */
    011public class Assert
    012{
    013        /**
    014         * Fails the assertion if the specified expression is false.
    015         */
    016        public static void isTrue(String expressionDescription, boolean expression) {
    017                if (!expression) {
    018                        throwException(expressionDescription + " is not true.");
    019                }
    020        }
    021
    022        /**
    023         * Fails the assertion if the specified expression is false.
    024         */
    025        public static void isTrue(boolean expression) {
    026                isTrue("Expression asserted as true", expression);
    027        }
    028
    029        /**
    030         * Fails the assertion if the specified expression is true.
    031         */
    032        public static void isFalse(String expressionDescription, boolean expression) {
    033                if (expression) {
    034                        throwException(expressionDescription + " is not false.");
    035                }
    036        }
    037
    038        /**
    039         * Fails the assertion if the specified expression is true.
    040         */
    041        public static void isFalse(boolean expression) {
    042                isFalse("Expression asserted as false", expression);
    043        }
    044
    045        /**
    046         * Fails the assertion if the specified object is null.
    047         */
    048        public static void notNull(Object evalObj) {
    049                notNull("Object asserted as not null", evalObj);
    050        }
    051
    052        /**
    053         * Fails the assertion if the specified object is null.
    054         */
    055        public static void notNull(String objDescription, Object evalObj) {
    056                if (evalObj == null) {
    057                        throwException(objDescription + " is null.");
    058                }
    059        }
    060
    061        /**
    062         * Fails the assertion if the specified string is null or empty.
    063         */
    064        public static void notNullOrEmpty(String evalString) {
    065                notNullOrEmpty("String asserted as not null or empty", evalString);
    066        }
    067
    068        /**
    069         * Fails the assertion if the specified string is null or empty.
    070         *
    071         * @param stringDescription A description of the string being evaluated.
    072         * @param evalString The string to evaluate.
    073         */
    074        public static void notNullOrEmpty(String stringDescription, String evalString) {
    075                if (StringUtilities.isNullOrEmpty(evalString)) {
    076                        throwException(stringDescription + " is null or empty.");
    077                }
    078        }
    079
    080        /**
    081         * Fails the assertion if the integer is less than zero.
    082         *
    083         * @param evalInt The integer to evaluate.
    084         */
    085        public static void notNegative(int evalInt) {
    086                notNegative("Integer value " + evalInt + " asserted as not negative", evalInt);
    087        }
    088
    089        /**
    090         * Fails the assertion if the integer is less than zero.
    091         *
    092         * @param intDescription A description of the integer being evaluated.
    093         * @param evalInt The integer to evaluate.
    094         */
    095        public static void notNegative(String intDescription, int evalInt) {
    096                if (evalInt < 0) {
    097                        throwException(intDescription + " is negative.");
    098                }
    099        }
    100
    101        /**
    102         * Fails the assertion if the integer is not greater than zero.
    103         *
    104         * @param evalInt The integer to evaluate.
    105         */
    106        public static void greaterThanZero(int evalInt) {
    107                greaterThanZero("Integer value " + evalInt + " asserted as greater than zero", evalInt);
    108        }
    109
    110        /**
    111         * Fails the assertion if the integer is not greater than zero.
    112         *
    113         * @param intDescription A description of the integer being evaluated.
    114         * @param evalInt The integer to evaluate.
    115         */
    116        public static void greaterThanZero(String intDescription, int evalInt) {
    117                if (evalInt <= 0) {
    118                        throwException(intDescription + " is not greater than zero.");
    119                }
    120        }
    121
    122        /**
    123         * Automatically throws an AssertionException.
    124         */
    125        public static void shouldNotReach() {
    126                shouldNotReach("Failed assertion in shouldNotReach().");
    127        }
    128
    129        /**
    130         * Automatically throws an AssertionException using the specified message.
    131         */
    132        public static void shouldNotReach(String message) {
    133                throwException(message);
    134        }
    135
    136        private static void throwException(String message) {
    137                throw new AssertionError(message);
    138        }
    139
    140} // class Assert