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

org.apache.hadoop.lib.util.Check Maven / Gradle / Ivy

The newest version!
/**
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you 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.apache.hadoop.lib.util;

import org.apache.hadoop.classification.InterfaceAudience;

import java.text.MessageFormat;
import java.util.List;
import java.util.regex.Pattern;

/**
 * Utility methods to check preconditions.
 * 

* Commonly used for method arguments preconditions. */ @InterfaceAudience.Private public class Check { /** * Verifies a variable is not NULL. * * @param obj the variable to check. * @param name the name to use in the exception message. * * @return the variable. * * @throws IllegalArgumentException if the variable is NULL. */ public static T notNull(T obj, String name) { if (obj == null) { throw new IllegalArgumentException(name + " cannot be null"); } return obj; } /** * Verifies a list does not have any NULL elements. * * @param list the list to check. * @param name the name to use in the exception message. * * @return the list. * * @throws IllegalArgumentException if the list has NULL elements. */ public static List notNullElements(List list, String name) { notNull(list, name); for (int i = 0; i < list.size(); i++) { notNull(list.get(i), MessageFormat.format("list [{0}] element [{1}]", name, i)); } return list; } /** * Verifies a string is not NULL and not emtpy * * @param str the variable to check. * @param name the name to use in the exception message. * * @return the variable. * * @throws IllegalArgumentException if the variable is NULL or empty. */ public static String notEmpty(String str, String name) { if (str == null) { throw new IllegalArgumentException(name + " cannot be null"); } if (str.length() == 0) { throw new IllegalArgumentException(name + " cannot be empty"); } return str; } /** * Verifies a string list is not NULL and not emtpy * * @param list the list to check. * @param name the name to use in the exception message. * * @return the variable. * * @throws IllegalArgumentException if the string list has NULL or empty * elements. */ public static List notEmptyElements(List list, String name) { notNull(list, name); for (int i = 0; i < list.size(); i++) { notEmpty(list.get(i), MessageFormat.format("list [{0}] element [{1}]", name, i)); } return list; } private static final String IDENTIFIER_PATTERN_STR = "[a-zA-Z_][a-zA-Z0-9_\\-]*"; private static final Pattern IDENTIFIER_PATTERN = Pattern.compile("^" + IDENTIFIER_PATTERN_STR + "$"); /** * Verifies a value is a valid identifier, * [a-zA-Z_][a-zA-Z0-9_\-]*, up to a maximum length. * * @param value string to check if it is a valid identifier. * @param maxLen maximun length. * @param name the name to use in the exception message. * * @return the value. * * @throws IllegalArgumentException if the string is not a valid identifier. */ public static String validIdentifier(String value, int maxLen, String name) { Check.notEmpty(value, name); if (value.length() > maxLen) { throw new IllegalArgumentException( MessageFormat.format("[{0}] = [{1}] exceeds max len [{2}]", name, value, maxLen)); } if (!IDENTIFIER_PATTERN.matcher(value).find()) { throw new IllegalArgumentException( MessageFormat.format("[{0}] = [{1}] must be \"{2}\"", name, value, IDENTIFIER_PATTERN_STR)); } return value; } /** * Verifies an integer is greater than zero. * * @param value integer value. * @param name the name to use in the exception message. * * @return the value. * * @throws IllegalArgumentException if the integer is zero or less. */ public static int gt0(int value, String name) { return (int) gt0((long) value, name); } /** * Verifies an long is greater than zero. * * @param value long value. * @param name the name to use in the exception message. * * @return the value. * * @throws IllegalArgumentException if the long is zero or less. */ public static long gt0(long value, String name) { if (value <= 0) { throw new IllegalArgumentException( MessageFormat.format("parameter [{0}] = [{1}] must be greater than zero", name, value)); } return value; } /** * Verifies an integer is greater or equal to zero. * * @param value integer value. * @param name the name to use in the exception message. * * @return the value. * * @throws IllegalArgumentException if the integer is greater or equal to zero. */ public static int ge0(int value, String name) { return (int) ge0((long) value, name); } /** * Verifies an long is greater or equal to zero. * * @param value integer value. * @param name the name to use in the exception message. * * @return the value. * * @throws IllegalArgumentException if the long is greater or equal to zero. */ public static long ge0(long value, String name) { if (value < 0) { throw new IllegalArgumentException(MessageFormat.format( "parameter [{0}] = [{1}] must be greater than or equals zero", name, value)); } return value; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy