/*
* Copyright 2015 Red Hat, Inc. and/or its affiliates.
*
* 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.uberfire.commons.validation;
import java.util.Collection;
import java.util.Map;
/**
* Helper class for parameters validation, such as not null arguments.
*/
public class PortablePreconditions {
/**
* Should not be instantiated
*/
protected PortablePreconditions() {
throw new IllegalStateException("This class should be not instantiated!");
}
/**
* Assert that this parameter is marked as valid by the condition passed as parameter.
* @param name of parameter
* @param condition itself
*/
public static void checkCondition(final String name,
final boolean condition) {
if (!condition) {
throw new IllegalStateException("Condition '" + name + "' is invalid!");
}
}
/**
* Assert that this parameter is not null, as also each item of the array is not null.
* @param <T> parameter type
* @param name of parameter
* @param parameters itself
*/
public static <T> void checkEachParameterNotNull(final String name,
final T... parameters) {
if (parameters == null) {
throw new IllegalArgumentException("Parameter named '" + name + "' should be not null!");
}
for (final Object parameter : parameters) {
if (parameter == null) {
throw new IllegalArgumentException("Parameter named '" + name + "' should be not null!");
}
}
}
/**
* Assert that this parameter is not empty. It will test for null and also the size of this array.
* @param name of parameter
* @param parameter itself
*/
public static <T extends Collection<?>> T checkNotEmpty(final String name,
final T parameter) {
if (parameter == null || parameter.size() == 0) {
throw new IllegalArgumentException("Parameter named '" + name + "' should be filled!");
}
return parameter;
}
/**
* Assert that this parameter is not empty. It will test for null and also the size of this array.
* @param name of parameter
* @param parameter itself
*/
public static void checkNotEmpty(final String name,
final Map<?, ?> parameter) {
if (parameter == null || parameter.size() == 0) {
throw new IllegalArgumentException("Parameter named '" + name + "' should be filled!");
}
}
/**
* Assert that this parameter is not empty. It trims the parameter to see if have any valid data on that.
* @param name of parameter
* @param parameter itself
*/
public static String checkNotEmpty(final String name,
final String parameter) {
if (parameter == null || parameter.trim().length() == 0) {
throw new IllegalArgumentException("Parameter named '" + name + "' should be filled!");
}
return parameter;
}
/**
* Assert that this parameter is not empty. It will test for null and also the size of this array.
* @param <T> type of the array
* @param name of parameter
* @param parameter itself
*/
public static <T> T[] checkNotEmpty(final String name,
final T[] parameter) {
if (parameter == null || parameter.length == 0) {
throw new IllegalArgumentException("Parameter named '" + name + "' should be filled!");
}
return parameter;
}
/**
* Assert that this parameter is not null.
* @param name of parameter
* @param parameter itself
*/
public static <T> T checkNotNull(final String name,
final T parameter) {
if (parameter == null) {
throw new IllegalArgumentException("Parameter named '" + name + "' should be not null!");
}
return parameter;
}
/**
* Assert that this parameter is null.
* @param name of parameter
* @param parameter itself
*/
public static void checkNullMandatory(final String name,
final Object parameter) {
if (parameter != null) {
throw new IllegalArgumentException("Parameter named '" + name + "' should be null!");
}
}
}