001 /*
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements. See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache license, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License. You may obtain a copy of the License at
008 *
009 * http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the license for the specific language governing permissions and
015 * limitations under the license.
016 */
017 package org.apache.logging.log4j.core.util;
018
019 /**
020 * Utility class providing common validation logic.
021 */
022 public final class Assert {
023 private Assert() {
024 }
025
026 /**
027 * Throws a {@code NullPointerException} if the specified parameter is
028 * {@code null}, otherwise returns the specified parameter.
029 * <p>
030 * On Java 7, just use {@code Objects.requireNonNull(T, String)}
031 * </p>
032 * <p>
033 * Usage:
034 * </p>
035 * <pre>
036 * // earlier you would write this:
037 * public SomeConstructor(Object param) {
038 * if (param == null) {
039 * throw new NullPointerException("param");
040 * }
041 * this.field = param;
042 * }
043 *
044 * // now you can do the same in one line:
045 * public SomeConstructor(Object param) {
046 * this.field = Assert.requireNonNull("param");
047 * }
048 * </pre>
049 *
050 * @param <T> the type of the parameter to check and return
051 * @param object the parameter to check
052 * @param message message to populate the NPE with if necessary
053 * @return the specified parameter
054 * @throws NullPointerException if {@code object} is {@code null}
055 */
056 public static <T> T requireNonNull(final T object, final String message) {
057 if (object == null) {
058 throw new NullPointerException(message);
059 }
060 return object;
061 }
062 }