1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache license, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the license for the specific language governing permissions and 15 * limitations under the license. 16 */ 17 package org.apache.logging.log4j.core.util; 18 19 import java.util.Objects; 20 21 /** 22 * Utility class providing common validation logic. 23 */ 24 public final class Assert { 25 private Assert() { 26 } 27 28 public static int valueIsAtLeast(final int value, final int minValue) { 29 if (value < minValue) { 30 throw new IllegalArgumentException("Value should be at least " + minValue + " but was " + value); 31 } 32 return value; 33 } 34 35 /** 36 * Throws a {@code NullPointerException} if the specified parameter is 37 * {@code null}, otherwise returns the specified parameter. 38 * <p> 39 * On Java 7, just use {@code Objects.requireNonNull(T, String)} 40 * </p> 41 * <p> 42 * Usage: 43 * </p> 44 * <pre> 45 * // earlier you would write this: 46 * public SomeConstructor(Object param) { 47 * if (param == null) { 48 * throw new NullPointerException("param"); 49 * } 50 * this.field = param; 51 * } 52 * 53 * // now you can do the same in one line: 54 * public SomeConstructor(Object param) { 55 * this.field = Assert.requireNonNull("param"); 56 * } 57 * </pre> 58 * 59 * @param <T> the type of the parameter to check and return 60 * @param object the parameter to check 61 * @param message message to populate the NPE with if necessary 62 * @return the specified parameter 63 * @throws NullPointerException if {@code object} is {@code null} 64 * @deprecated Will be removed in 2.5. 65 */ 66 @Deprecated 67 public static <T> T requireNonNull(final T object, final String message) { 68 return Objects.requireNonNull(object, message); 69 } 70 }