org.jrimum.utilix.Collections Maven / Gradle / Ivy
Show all versions of bpp-cobranca Show documentation
/*
* Copyright 2010 JRimum Project
*
* 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.
*
* Created at: 01/08/2010 - 21:30:00
*
* ================================================================================
*
* Direitos autorais 2010 JRimum Project
*
* Licenciado sob a Licença Apache, Versão 2.0 ("LICENÇA"); você não pode usar
* esse arquivo exceto em conformidade com a esta LICENÇA. Você pode obter uma
* cópia desta LICENÇA em http://www.apache.org/licenses/LICENSE-2.0 A menos que
* haja exigência legal ou acordo por escrito, a distribuição de software sob
* esta LICENÇA se dará “COMO ESTÁ”, SEM GARANTIAS OU CONDIÇÕES DE QUALQUER
* TIPO, sejam expressas ou tácitas. Veja a LICENÇA para a redação específica a
* reger permissões e limitações sob esta LICENÇA.
*
* Criado em: 01/08/2010 - 21:30:00
*
*/
package org.jrimum.utilix;
import java.util.Collection;
import java.util.Map;
/**
* Classe utilitária para validações de coleções em geral, com e sem exceções.
*
*
* Fornece métodos booleanos e métodos que verificam se uma coleção está de
* acordo com o desejado e, caso não estejam, lançam exceção.
*
*
* @author Gilmar P.S.L.
* @author Rômulo Augusto
*
* @since 0.2
*
* @version 0.2
*/
public final class Collections {
/**
* Utility class pattern: classe não instanciável
*
* @throws IllegalStateException
* Caso haja alguma tentativa de utilização deste construtor.
*/
private Collections() {
Exceptions.throwIllegalStateException("Instanciação não permitida!");
}
/**
* Verifica se a Collection
passada por parâmetro é
* null
ou não possui elementos e lança
* exceção caso não preencha estes requisitos.
*
* @param collection
* - Instância de Collection
analisada.
*
* @throws IllegalArgumentException - Caso a coleção não
* seja null
e possua elementos.
*
* @see #checkEmpty(Collection, String)
* @see #isEmpty(Collection)
* @see #isNotEmpty(Collection)
*
* @since 0.2
*/
public static void checkEmpty(Collection> collection) {
checkEmpty(collection, "Collection não nulo e com elementos! Valor ["
+ collection + "].");
}
/**
* Verifica se a Collection
passado por parâmetro é
* null
ou não possui elementos e lança
* exceção, com a mensagem informada, caso não preencha estes requisitos.
*
* @param collection
* - Instância de Collection
analisada.
* @param message
* - Mensagem utilizada na exceção.
*
* @throws IllegalArgumentException - Caso a coleção não
* seja null
e possua elementos.
*
* @see #isEmpty(Collection)
* @see #isNotEmpty(Collection)
*
* @since 0.2
*/
public static void checkEmpty(Collection> collection, String message) {
if (hasElement(collection)) {
Exceptions.throwIllegalArgumentException(message);
}
}
/**
* Verifica se a Collection
passada por parâmetro
* não é null
e possui elementos e lança
* exceção caso não preencha estes requisitos.
*
* @param collection
* - Instância de Collection
analisada.
*
* @throws IllegalArgumentException
* - Caso a coleção seja null
ou a coleção
* não possua elementos.
*
* @see #checkNotEmpty(Collection, String)
* @see #isEmpty(Collection)
* @see #isNotEmpty(Collection)
*
* @since 0.2
*/
public static void checkNotEmpty(Collection> collection) {
checkNotEmpty(collection, "Objeto nulo!", "Collection sem elementos!");
}
/**
* Verifica se a Collection
passada por parâmetro
* não é null
e possui elementos e lança
* exceção, com a mensagem informada, caso não preencha estes requisitos.
*
* @param collection
* - Instância de Collection
analisada.
* @param message
* - Mensagem utiliada na exceção.
*
* @throws IllegalArgumentException
* - Caso a coleção seja null
ou a coleção
* não possua elementos.
*
* @see #isEmpty(Collection)
* @see #isNotEmpty(Collection)
*
* @since 0.2
*/
public static void checkNotEmpty(Collection> collection, String message) {
checkNotEmpty(collection, message, message);
}
/**
* Verifica se o Map
passado por parâmetro é null
* ou não possui elementos e lança exceção caso não
* preencha estes requisitos.
*
* @param map
* - Instância de Map
analisada.
*
* @throws IllegalArgumentException - Caso o mapa não seja
* null
e possua elementos.
*
* @see #checkEmpty(Map, String)
* @see #isEmpty(Map)
* @see #isNotEmpty(Map)
*
* @since 0.2
*/
public static void checkEmpty(Map, ?> map) {
checkEmpty(map, "Map não nulo e com elementos. Valor [" + map + "]");
}
/**
* Verifica se o Map
passado por parâmetro é null
* ou não possui elementos e lança exceção, com a mensagem
* informada, caso não preencha estes requisitos.
*
* @param map
* - Instância de Map
analisada.
* @param message
* - Mensagem utilizada na exceção.
*
* @throws IllegalArgumentException - Caso o mapa não seja
* null
e possua elementos.
*
* @see #isEmpty(Map)
* @see #isNotEmpty(Map)
*
* @since 0.2
*/
public static void checkEmpty(Map, ?> map, String message) {
if (hasElement(map)) {
Exceptions.throwIllegalArgumentException(message);
}
}
/**
* Verifica se o Map
passado por parâmetro não
* é null
e possui elementos e lança exceção caso não preencha
* estes requisitos.
*
* @param map
* - Instância de Map
analisada.
*
* @throws IllegalArgumentException
* - Caso o mapa seja null
ou o mapa
* não possua elementos.
*
* @see #checkNotEmpty(Map, String)
* @see #isEmpty(Map)
* @see #isNotEmpty(Map)
*
* @since 0.2
*/
public static void checkNotEmpty(Map, ?> map) {
checkNotEmpty(map, "Objeto nulo", "Map sem elementos");
}
/**
* Verifica se o Map
passado por parâmetro não
* é null
e possui elementos e lança exceção, com a mensagem
* informada, caso não preencha estes requisitos.
*
* @param map
* - Instância de Map
analisada.
* @param message
* - Mensagem utiliada na exceção.
*
* @throws IllegalArgumentException
* - Caso o mapa seja null
ou o mapa
* não possua elementos.
*
* @see #isEmpty(Map)
* @see #isNotEmpty(Map)
*
* @since 0.2
*/
public static void checkNotEmpty(Map, ?> map, String message) {
checkNotEmpty(map, message, message);
}
/**
* Verifica se a Collection
passada por parâmetro é
* null
ou não possui elementos.
*
* @param collection
* - Instância de Collection
analisada.
* @return !hasElement(collection)
*
* @since 0.2
*/
public static boolean isEmpty(Collection> collection) {
return !hasElement(collection);
}
/**
* Verifica se a Collection
passada por parâmetro
* não é null
e possui elementos.
*
* @param collection
* - Instância de Collection
analisada.
* @return hasElement(collection)
*
* @see #isEmpty(Collection)
*
* @since 0.2
*/
public static boolean isNotEmpty(Collection> collection) {
return hasElement(collection);
}
/**
* Verifica se o Map
passado por parâmetro é null
* ou não possui elementos.
*
* @param map
* - Instância de Map
analisada.
* @return !hasElement(map)
*
* @since 0.2
*/
public static boolean isEmpty(Map, ?> map) {
return !hasElement(map);
}
/**
* Verifica se o Map
passado por parâmetro não
* é null
e possui elementos.
*
* @param map
* - Instância de Map
analisada.
* @return hasElement(map)
*
* @see #isEmpty(Map)
*
* @since 0.2
*/
public static boolean isNotEmpty(Map, ?> map) {
return hasElement(map);
}
/**
* Indica se pelo menos uma coleção tem algum elemento sem gerar NPE.
*
* @param cols
* - Coleções para teste.
*
* @return indicativo
*/
public static boolean hasElement(Collection> ... cols) {
if(Arrays.hasElement(cols)){
for(Collection> c : cols){
if(hasElement(c)){
return true;
}
}
}
return false;
}
/**
* Indica se pelo menos um mapa tem algum elemento sem gerar NPE.
*
* @param maps
* - Mapas para teste.
*
* @return indicativo
*/
public static boolean hasElement(Map, ?> ... maps) {
if(Arrays.hasElement(maps)){
for(Map, ?> m : maps){
if(hasElement(m)){
return true;
}
}
}
return false;
}
/**
* Indica se uma dada coleção tem elementos sem gerar NPE.
*
* Resposta direta para o seguinte código:
* (c != null && !c.isEmpty())
.
*
*
* @param c
* - A coleção a ser testada.
*
* @return (c != null && !c.isEmpty())
*
* @since 0.2
*/
public static boolean hasElement(Collection> c) {
return (c != null && !c.isEmpty());
}
/**
* Indica se um dado mapa tem elementos sem gerar NPE.
*
* Resposta direata para o seguinte código:
* (m != null && !m.isEmpty())
.
*
*
* @param m
* - O mapa a ser testado.
*
* @return (m != null && !m.isEmpty())
*
* @since 0.2
*/
public static boolean hasElement(Map, ?> m) {
return (m != null && !m.isEmpty());
}
/**
* Retorna a quantidade de elementos de uma dada coleção sem gerar NPE.
*
* Resposta direata para o seguinte código:
* (c != null ? c.size() : 0)
.
*
*
* @param c
* - Coleção com ou sem elementos.
*
* @return (c != null ? c.size() : 0)
*/
public static int size(Collection> c) {
return (c != null ? c.size() : 0);
}
/**
* Retorna a quantidade de elementos de um dado mapa sem gerar NPE.
*
* Resposta direata para o seguinte código:
* (m != null ? m.size() : 0)
.
*
*
* @param m
* - Mapa com ou sem elementos.
*
* @return (m != null ? m.size() : 0)
*/
public static int size(Map, ?> m) {
return (m != null ? m.size() : 0);
}
/**
* Verifica se o coleção passado por parâmetro não é
* null
ou se é vazio.
*
* Caso o objeto seja null
, lança
* NullPointerException
com a mensagem informada no parâmetro
* messageNullPointer
(primeiro parâmetro String). Caso o
* objeto não seja null
e não possua elementos, lança
* IllegalArgumentException
com a mensagem informada no
* parâmetro messageIllegalArgument
(segundo parâmetro String).
*
*
* @param collection
* - Objeto analisado.
* @param messageNullPointer
* - Mensagem utiliada na exceção
* IllegalArgumentException
.
* @param messageIllegalArgument
* - Mensagem utiliada na exceção
* IllegalArgumentException
.
*
* @throws IllegalArgumentException
*
* @since 0.2
*/
public static void checkNotEmpty(Collection> collection,
String messageNullPointer, String messageIllegalArgument) {
if (collection == null) {
Exceptions.throwIllegalArgumentException(messageNullPointer);
}
if (collection.isEmpty()) {
Exceptions.throwIllegalArgumentException(messageIllegalArgument);
}
}
/**
* Verifica se o mapa passado por parâmetro não é
* null
ou se é vazio.
*
* Caso o objeto seja null
, lança
* NullPointerException
com a mensagem informada no parâmetro
* messageNullPointer
(primeiro parâmetro String). Caso o
* objeto não seja null
e não possua elementos, lança
* IllegalArgumentException
com a mensagem informada no
* parâmetro messageIllegalArgument
(segundo parâmetro String).
*
*
* @param map
* - Objeto analisado.
* @param messageNullPointer
* - Mensagem utiliada na exceção
* IllegalArgumentException
.
* @param messageIllegalArgument
* - Mensagem utiliada na exceção
* IllegalArgumentException
.
*
* @throws IllegalArgumentException
*
* @since 0.2
*/
public static void checkNotEmpty(Map, ?> map, String messageNullPointer,
String messageIllegalArgument) {
if (map == null) {
Exceptions.throwIllegalArgumentException(messageNullPointer);
}
if (map.isEmpty()) {
Exceptions.throwIllegalArgumentException(messageIllegalArgument);
}
}
}