Java tutorial
/*! ****************************************************************************** * * Pentaho Data Integration * * Copyright (C) 2002-2013 by Pentaho : http://www.pentaho.com * ******************************************************************************* * * Licensed 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 org.pentaho.di.core.util; import java.text.MessageFormat; import java.util.Collection; import java.util.Map; import org.apache.commons.collections.Predicate; import org.apache.commons.lang.StringUtils; /** * @author <a href="mailto:thomas.hoedl@aschauer-edv.at">Thomas Hoedl(asc042)</a> * @version $Revision * */ public final class Assert { // NOPMD private static final int INPUT_MAX_WIDTH = 30; /** * Avoid direct creation. */ private Assert() { super(); } /** * @param input * input to test. * @param predicate * predicate to apply. * @throws IllegalArgumentException * if predicate rejected input. */ public static void assertTrue(final Object input, final Predicate predicate) throws IllegalArgumentException { if (predicate.evaluate(input)) { return; } final StringBuilder builder = new StringBuilder(); builder.append("Predicate rejected input [predicate="); builder.append(predicate); builder.append(", input="); builder.append(StringUtils.abbreviate(String.valueOf(input), INPUT_MAX_WIDTH)); builder.append("]"); throw new IllegalArgumentException(builder.toString()); } /** * @param bool * boolean to test. * @throws IllegalArgumentException * if bool is false. */ public static void assertTrue(final boolean bool) throws IllegalArgumentException { assertTrue(bool, "Value cannot be false"); } /** * @param message * message. * @param bool * boolean to test. * @param args * arguments to set, optional * @throws IllegalArgumentException * if bool is false. */ public static void assertTrue(final boolean bool, final String message, final Object... args) throws IllegalArgumentException { if (bool) { return; } if (args != null && args.length > 0) { throw new IllegalArgumentException(MessageFormat.format(message, args)); } throw new IllegalArgumentException(message); } /** * @param bool * boolean to test. * @throws IllegalArgumentException * if bool is true. */ public static void assertFalse(final boolean bool) throws IllegalArgumentException { assertFalse(bool, "Value cannot be true"); } /** * @param bool * boolean to test. * @param message * message. * @param args * optinal arguments. * @throws IllegalArgumentException * if bool is true. */ public static void assertFalse(final boolean bool, final String message, final Object... args) throws IllegalArgumentException { if (!bool) { return; } if (args != null && args.length > 0) { throw new IllegalArgumentException(MessageFormat.format(message, args)); } throw new IllegalArgumentException(message); } /** * @param input * input to test. * @param predicate * predicate to apply. * @throws IllegalArgumentException * if predicate didn't rejected input. */ public static void assertFalse(final Object input, final Predicate predicate) throws IllegalArgumentException { if (!predicate.evaluate(input)) { return; } final StringBuilder builder = new StringBuilder(); builder.append("Predicate didn't rejected input [predicate="); builder.append(predicate); builder.append(", input="); builder.append(StringUtils.abbreviate(String.valueOf(input), INPUT_MAX_WIDTH)); builder.append("]"); throw new IllegalArgumentException(builder.toString()); } /** * @param collection * collection to test. * @throws IllegalArgumentException * if collection is null or empty. */ public static void assertNotNullOrEmpty(final Collection<?> collection) throws IllegalArgumentException { if (collection == null || collection.isEmpty()) { throw new IllegalArgumentException("Collection cannot be null or empty"); } } /** * @param collection * collection to test. * @param message * the message. * @throws IllegalArgumentException * if collection is null or empty. */ public static void assertNotNullOrEmpty(final Collection<?> collection, final String message) throws IllegalArgumentException { if (collection == null || collection.isEmpty()) { throw new IllegalArgumentException(message); } } /** * @param array * collection to test. * @throws IllegalArgumentException * if collection is null or empty. */ public static void assertNotNullOrEmpty(final Object[] array) throws IllegalArgumentException { if (array == null || array.length == 0) { throw new IllegalArgumentException("Array cannot be null or empty"); } } /** * @param array * array to test. * @param message * the message. * @throws IllegalArgumentException * if collection is null or empty. */ public static void assertNotNullOrEmpty(final Object[] array, final String message) throws IllegalArgumentException { if (array == null || array.length == 0) { throw new IllegalArgumentException(message); } } /** * @param map * collection to test. * @throws IllegalArgumentException * if collection is null or empty. */ public static void assertNotNullOrEmpty(final Map<?, ?> map) throws IllegalArgumentException { if (map == null || map.isEmpty()) { throw new IllegalArgumentException("Map cannot be null or empty"); } } /** * @param map * map to test. * @param message * the message. * @throws IllegalArgumentException * if collection is null or empty. */ public static void assertNotNullOrEmpty(final Map<?, ?> map, final String message) throws IllegalArgumentException { if (map == null || map.isEmpty()) { throw new IllegalArgumentException(message); } } /** * @param input * input to test. * @throws IllegalArgumentException * if input is null or empty. */ public static void assertNotEmpty(final String input) throws IllegalArgumentException { if (StringUtils.isEmpty(input)) { throw new IllegalArgumentException("Input cannot be null or empty"); } } /** * @param input * input to test. * @param message * the message. * @throws IllegalArgumentException * if input is null or empty. */ public static void assertNotEmpty(final String input, final String message) throws IllegalArgumentException { if (StringUtils.isEmpty(input)) { throw new IllegalArgumentException(message); } } /** * @param input * input to test. * @throws IllegalArgumentException * if input is null or empty. */ public static void assertNotBlank(final String input) throws IllegalArgumentException { if (StringUtils.isBlank(input)) { throw new IllegalArgumentException("Input cannot be null or empty"); } } /** * @param input * input to test. * @param message * the message. * @throws IllegalArgumentException * if input is null or empty. */ public static void assertNotBlank(final String input, final String message) throws IllegalArgumentException { if (StringUtils.isBlank(input)) { throw new IllegalArgumentException(message); } } /** * @param input * input to test. * @throws IllegalArgumentException * if input is null. */ public static void assertNotNull(final Object input) throws IllegalArgumentException { if (input == null) { throw new IllegalArgumentException("Input cannot be null"); } } /** * @param input * input to test. * @param message * the message. * @throws IllegalArgumentException * if input is null. */ public static void assertNotNull(final Object input, final String message) throws IllegalArgumentException { if (input == null) { throw new IllegalArgumentException(message); } } /** * @param input * input to test. * @throws IllegalArgumentException * if input isn't null. */ public static void assertNull(final Object input) throws IllegalArgumentException { if (input != null) { throw new IllegalArgumentException("Input must be null"); } } /** * @param input * input to test. * @param message * the message. * @throws IllegalArgumentException * if input isn't null. */ public static void assertNull(final Object input, final String message) throws IllegalArgumentException { if (input != null) { throw new IllegalArgumentException(message); } } /** * @param value * value to test. * @throws IllegalArgumentException * if value is null or <= 0. */ public static void assertGreaterZero(final Integer value) throws IllegalArgumentException { assertGreaterZero(value, "Value must be greater than 0"); } /** * @param value * value to test. * @throws IllegalArgumentException * if value is null or <= 0. */ public static void assertGreaterZero(final Double value) throws IllegalArgumentException { assertGreaterZero(value, "Value must be greater than 0"); } /** * @param value * value to test. * @param message * the message. * @throws IllegalArgumentException * if value is null or <= 0. */ public static void assertGreaterZero(final Double value, final String message) throws IllegalArgumentException { if (value == null || value <= 0) { throw new IllegalArgumentException(message); } } /** * @param value * value to test. * @param message * the message. * @throws IllegalArgumentException * if value is null or <= 0. */ public static void assertGreaterZero(final Integer value, final String message) throws IllegalArgumentException { if (value == null || value <= 0) { throw new IllegalArgumentException(message); } } }