getType();
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/src/main/java/br/com/safeguard/interfaces/BasePattern.java:
--------------------------------------------------------------------------------
1 | package br.com.safeguard.interfaces;
2 |
3 | import br.com.caelum.stella.validation.InvalidValue;
4 |
5 | /**
6 | * Interface que extende de (br.com.caelum.stella.validation) que deve ser
7 | * implementada por um (Enum) de padrões (Pattern) para ser usado em um (Enum) que implementa a interface (BaseParam)
8 | *
9 | *
10 | * @see
11 | *
12 | * - https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html
13 | * - Exemplo de implementação
14 | *
15 | *
16 | * {@code TIPO_DO_PADRAO(new String("[pattern]")) }
17 | * {@code private String pattern; }
18 | * {@code private Patterns(String pattern) }
19 | * {@code this.pattern = pattern; }
20 | * {@code @Override }
21 | * {@code public String getPattern() }
22 | * {@code return pattern; }
23 | *
24 | *
25 | * @author Gilmar Carlos
26 | *
27 | */
28 | public interface BasePattern extends InvalidValue {
29 |
30 | String getPattern();
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/src/main/java/br/com/safeguard/interfaces/Check.java:
--------------------------------------------------------------------------------
1 | package br.com.safeguard.interfaces;
2 |
3 | import java.util.List;
4 |
5 | import br.com.safeguard.check.SafeguardCheck;
6 | import br.com.safeguard.types.ParametroTipo;
7 |
8 | /**
9 | * Interface com os métodos funcionais para validação de cadeia de caracteres ou objetos com atributos
10 | * anotado com (@Verify), que deve ser implementado pela as classes funcionais
11 | *
12 | * @author Gilmar Carlos
13 | *
14 | */
15 | public interface Check {
16 |
17 | /**
18 | * Método que recebe um (String) e um (ParametroTipo) para ser adicionado em um (Map) de elementos
19 | *
20 | * @param value Valor a ser validado
21 | * @param tipo Padrão usado na validação
22 | * @return this retorna a própria classe
23 | */
24 | SafeguardCheck elementOf(String value, ParametroTipo tipo);
25 |
26 |
27 | /**
28 | * Método que recebe um (String) e um (BaseParam) para ser adicionado em um (Map) de elementos
29 | *
30 | * @param value Valor a ser validado
31 | * @param tipo Padrão usado na validação
32 | * @return this retorna a própria classe
33 | */
34 | SafeguardCheck elementOf(String value, BaseParam tipo);
35 |
36 | /**
37 | * Método que recebe um objeto que tenha atributos da classe anotados com (@Verify) para ser adicionado
38 | * em um (List) de elementos
39 | *
40 | * @param object Instancia da classe anotada com (@Verify)
41 | * @return this retorna a própria classe
42 | */
43 | SafeguardCheck elementOf(Object object);
44 |
45 | /**
46 | * O método que faz a validação dos valores passados anteriormente no método {@code elementOf()},
47 | * e retorna a própria classe
48 | *
49 | *
50 | *
51 | * Para implementação do método
52 | *
53 | *
54 | * Deve passar um (List) de objects que tenha atributos anotados com (@Verify) e/ou um (Map) de elementos com
55 | * chave (String), que representa o valor a ser validado, e um valor do tipo (Enum) que implemente a interface
56 | * (BaseParam)
57 | *
58 | *
59 | *
60 | * As coleções devem ser passadas ao método {@code void validate(Map elements) throws SafeguardException} da
61 | * da classe (ParamVerify), a chamada do método lança uma exceção do tipo checked para garantir que a coleção
62 | * passada não esteja vazia
63 | *
64 | *
65 | * @return this retorna a própria classe
66 | */
67 | SafeguardCheck validate();
68 |
69 | /**
70 | * Deve retornar o resultado do método {@code Boolean hasError()} da classe (ParamVerify)
71 | *
72 | * @return Boolean retorna true se houver erros de validação
73 | */
74 | Boolean hasError();
75 |
76 | /**
77 | * Deve retornar uma lista de elementos inválidos chamando o método {@code List getInvalidElements()} da classe (ParamVerify)
78 | *
79 | * @return List Lista de lementos inválidos
80 | */
81 | List getInvalidElements();
82 |
83 | /**
84 | * Deve retornar uma lista de elementos válidos chamando o método {@code List getValidElements()} da classe (ParamVerify)
85 | *
86 | * @return List Lista de elementos válidos
87 | */
88 | List getValidElements();
89 |
90 | }
91 |
--------------------------------------------------------------------------------
/src/main/java/br/com/safeguard/messages/ErrorMessage.java:
--------------------------------------------------------------------------------
1 | package br.com.safeguard.messages;
2 |
3 | import br.com.caelum.stella.MessageProducer;
4 | import br.com.caelum.stella.SimpleValidationMessage;
5 | import br.com.caelum.stella.ValidationMessage;
6 | import br.com.caelum.stella.validation.InvalidValue;
7 |
8 | /**
9 | * Faz a busca de mensagens de erros nas validações
10 | *
11 | * implementa a interface {@link br.com.caelum.stella.MessageProducer}
12 | *
13 | * @author Gilmar Carlos
14 | *
15 | */
16 | public class ErrorMessage implements MessageProducer {
17 |
18 | @Override
19 | public ValidationMessage getMessage(InvalidValue invalidValue) {
20 | String simpleName = invalidValue.getClass().getSimpleName();
21 | String errorName = invalidValue.name();
22 | String key = simpleName + "." + " O VALOR NÃO CORRESPONDE AO PADRÃO DO TIPO " + errorName;
23 | String message;
24 | message = key.replaceFirst("[.]", " : ").replaceAll("_", " ");
25 | return new SimpleValidationMessage(message);
26 | }
27 |
28 |
29 |
30 | }
31 |
--------------------------------------------------------------------------------
/src/main/java/br/com/safeguard/params/Param.java:
--------------------------------------------------------------------------------
1 | package br.com.safeguard.params;
2 |
3 | import java.io.Serializable;
4 |
5 | import br.com.safeguard.interfaces.BaseParam;
6 |
7 | /**
8 | *
9 | * Classe pojo usada para servir de bind para validação de paramentros
10 | *
11 | * @author Gilmar Carlos
12 | *
13 | */
14 | public class Param implements Serializable{
15 |
16 | private static final long serialVersionUID = 1L;
17 |
18 | private BaseParam type;
19 | private String value;
20 |
21 | public Param(BaseParam type, String value) {
22 | this.type = type;
23 | this.value = value;
24 | }
25 | public BaseParam getType() {
26 | return type;
27 | }
28 | public void setType(BaseParam type) {
29 | this.type = type;
30 | }
31 | public String getValue() {
32 | return value;
33 | }
34 | public void setValue(String value) {
35 | this.value = value;
36 | }
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/src/main/java/br/com/safeguard/patterns/Patterns.java:
--------------------------------------------------------------------------------
1 | package br.com.safeguard.patterns;
2 |
3 | import br.com.safeguard.interfaces.BasePattern;
4 |
5 | /**
6 | * Enum que determina o tipo dos padrões que vão ser utilizados pelos validadores.
7 | *
8 | * O Enum implementa a interface (BasePattern), e retorna o padrão correspondente ao validador registrado em (ParametroTipo)
9 | *
10 | * @author Gilmar Carlos
11 | *
12 | */
13 | public enum Patterns implements BasePattern{
14 |
15 | DEFAULT (new String("[\\u0020-\\u00FC]+")),
16 | DEFAULT_SEM_SIMBOLO_DE_MAIOR (new String("[\\u0020-\\u00FC&&[^>]]+")),
17 | DEFAULT_SEM_SIMBOLO_DE_MENOR (new String("[\\u0020-\\u00FC&&[^<]]+")),
18 | DEFAULT_SEM_SIMBOLO_DE_MENOR_E_MAIOR (new String("[\\u0020-\\u00FC&&[^<>]]+")),
19 | DEFAULT_SEM_SIMBOLO_DE_CHAVES (new String("[\\u0020-\\u00FC&&[^\\{\\}]]+")),
20 | DEFAULT_SEM_SIMBOLO_DE_COLCHETES (new String("[\\u0020-\\u00FC&&[^\\[\\]]]+")),
21 | DEFAULT_SEM_SIMBOLO_DE_PARENTESES (new String("[\\u0020-\\u00FC&&[^\\(\\)]]+")),
22 | DEFAULT_SEM_SIMBOLO_DE_ASTERISCO (new String("[\\u0020-\\u00FC&&[^*]]+")),
23 | DEFAULT_SEM_SIMBOLO_DE_ARROBA (new String("[\\u0020-\\u00FC&&[^@]]+")),
24 | DEFAULT_SEM_SIMBOLO_DE_HASHTAG (new String("[\\u0020-\\u00FC&&[^#]]+")),
25 | DEFAULT_SEM_SIMBOLO_DE_SIFRAO (new String("[\\u0020-\\u00FC&&[^$]]+")),
26 | DEFAULT_SEM_SIMBOLO_DE_PORCENTAGEM (new String("[\\u0020-\\u00FC&&[^%]]+")),
27 | DEFAULT_SEM_SIMBOLO_DE_TREMA (new String("[\\u0020-\\u00FC&&[^¨]]+")),
28 | DEFAULT_SEM_SIMBOLO_DE_E_COMERCIAL (new String("[\\u0020-\\u00FC&&[^&]]+")),
29 | DEFAULT_SEM_SIMBOLO_DE_UNDERLINE (new String("[\\u0020-\\u00FC&&[^_]]+")),
30 | DEFAULT_SEM_SIMBOLO_DE_HIFEM (new String("[\\u0020-\\u00FC&&[^\\-]]+")),
31 | DEFAULT_SEM_SIMBOLO_DE_MAIS (new String("[\\u0020-\\u00FC&&[^+]]+")),
32 | DEFAULT_SEM_SIMBOLO_DE_ASPAS_SIMPLES (new String("[\\u0020-\\u00FC&&[^\']]+")),
33 | DEFAULT_SEM_SIMBOLO_DE_ASPAS_DUPLA (new String("[\\u0020-\\u00FC&&[^\"]]+")),
34 | DEFAULT_SEM_SIMBOLO_DE_PONTO (new String("[\\u0020-\\u00FC&&[^.]]+")),
35 | DEFAULT_SEM_SIMBOLO_DE_VIRGULA (new String("[\\u0020-\\u00FC&&[^,]]+")),
36 | DEFAULT_SEM_SIMBOLO_DE_DOIS_PONTOS (new String("[\\u0020-\\u00FC&&[^:]]+")),
37 | DEFAULT_SEM_SIMBOLO_DE_PONTO_E_VIRGULA (new String("[\\u0020-\\u00FC&&[^;]]+")),
38 | DEFAULT_SEM_SIMBOLO_DE_PONTO_DE_EXCLAMACAO (new String("[\\u0020-\\u00FC&&[^!]]+")),
39 | DEFAULT_SEM_SIMBOLO_DE_PONTO_DE_INTERROGACAO (new String("[\\u0020-\\u00FC&&[^?]]+")),
40 | DEFAULT_SEM_PONTUACAO (new String("[\\u0020-\\u00FC&&[^!?.,:;]]+")),
41 | DEFAULT_SEM_NUMEROS (new String("[\\u0020-\\u00FC&&[^\\d]]+")),
42 | DEFAULT_SEM_SINAIS_MATEMATICOS (new String("[\\u0020-\\u00FC&&[^/*\\-+=]]+")),
43 | DEFAULT_SEM_CARACTERES_ESPECIAIS (new String("[\\u0020-\\u00FC&&[^\\p{Punct}]]+")),
44 |
45 | TEXTO_SEM_CARACTERES_ESPECIAIS (new String("[\\u0020-\\u00FC&&[^\\d\\p{Punct}\\u007F-\\u00BF]]+")),
46 | TEXTO_SEM_CARACTERES_ESPECIAIS_COM_HIFEM (new String("[\\u0020-\\u00FC&&[\\sa-zA-Z\\-\\u00C0-\\u00FC]]+")),
47 | TEXTO_SEM_CARACTERES_ESPECIAIS_COM_UNDERLINE (new String("[\\u0020-\\u00FC&&[\\sa-zA-Z_\\u00C0-\\u00FC]]+")),
48 | TEXTO_SEM_CARACTERES_ESPECIAIS_COM_VIRGULA (new String("[\\u0020-\\u00FC&&[\\sa-zA-Z,\\u00C0-\\u00FC]]+")),
49 | TEXTO_SEM_CARACTERES_ESPECIAIS_COM_PONTUACAO (new String("[\\u0020-\\u00FC&&[\\sa-zA-Z!?.,:;\\u00C0-\\u00FC]]+")),
50 | TEXTO_SEM_CARACTERES_ESPECIAIS_COM_PONTUACAO_HIFEM_UNDERLINE (new String("[\\u0020-\\u00FC&&[\\sa-zA-Z!?.,:;_\\-\\u00C0-\\u00FC]]+")),
51 |
52 | TEXTO_NUMERO_SEM_CARACTERES_ESPECIAIS (new String("[\\u0020-\\u00FC&&[^\\p{Punct}\\u007F-\\u00BF]]+")),
53 | TEXTO_NUMERO_SEM_CARACTERES_ESPECIAIS_COM_HIFEM (new String("[\\u0020-\\u00FC&&[\\d\\sa-zA-Z\\-\\u00C0-\\u00FC]]+")),
54 | TEXTO_NUMERO_SEM_CARACTERES_ESPECIAIS_COM_UNDERLINE (new String("[\\u0020-\\u00FC&&[\\d\\sa-zA-Z_\\u00C0-\\u00FC]]+")),
55 | TEXTO_NUMERO_SEM_CARACTERES_ESPECIAIS_COM_VIRGULA (new String("[\\u0020-\\u00FC&&[\\d\\sa-zA-Z,\\u00C0-\\u00FC]]+")),
56 | TEXTO_NUMERO_SEM_CARACTERES_ESPECIAIS_COM_PONTUACAO (new String("[\\u0020-\\u00FC&&[\\d\\sa-zA-Z!?.,:;\\u00C0-\\u00FC]]+")),
57 | TEXTO_NUMERO_SEM_CARACTERES_ESPECIAIS_COM_PONTUACAO_HIFEM_UNDERLINE (new String("[\\u0020-\\u00FC&&[\\d\\sa-zA-Z!?.,:;_\\-\\u00C0-\\u00FC]]+")),
58 | TEXTO_NUMERO_VIRGULA_HIFEM_UNDERLINE_SEM_PONTUACAO (new String("[^<>`´~^'¬¢£³²¹!?@#$%¨&*+=§/\\|\\^\\]\\[\\{\\}\\(\\)\"]+")),
59 |
60 | NUMERO (new String("[^\\D]+")),
61 |
62 | EMAIL (new String("^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}$")),
63 |
64 | CEP (new String("[^\\D]{8}")),
65 | CEP_FORMATADO (new String("\\d{5}-\\d{3}")),
66 |
67 | PLACA_DE_VEICULO_BRASIL (new String("[A-Z]{3}\\d{4}")),
68 | PLACA_DE_VEICULO_FORMATADO_BRASIL (new String("[A-Z]{3}\\-\\d{4}")),
69 |
70 | TELEFONE (new String("([0]{1}(12|15|21|31|41|43))?[1-9]{2}[9]?[\\d]{8}")),
71 | TELEFONE_FORMATADO_BRASIL (new String("([0]{1}(12|15|21|31|41|43))?\\([1-9]{2}\\)[9]?[\\d]{4}\\-[\\d]{4}")),
72 | TELEFONE_FORMATADO_INTERNACIONAL (new String("\\+[\\d]{1,3}\\s[1-9]{2}\\s[9]?[\\d]{4}\\-[\\d]{4}"));
73 |
74 | private String pattern;
75 |
76 | private Patterns(String pattern) {
77 | this.pattern = pattern;
78 | }
79 |
80 | @Override
81 | public String getPattern() {
82 | return pattern;
83 | }
84 |
85 | }
86 |
--------------------------------------------------------------------------------
/src/main/java/br/com/safeguard/types/ParametroTipo.java:
--------------------------------------------------------------------------------
1 | package br.com.safeguard.types;
2 |
3 | import br.com.caelum.stella.validation.CNPJValidator;
4 | import br.com.caelum.stella.validation.CPFValidator;
5 | import br.com.caelum.stella.validation.NITValidator;
6 | import br.com.caelum.stella.validation.TituloEleitoralValidator;
7 | import br.com.caelum.stella.validation.Validator;
8 | import br.com.caelum.stella.validation.ie.IEAcreValidator;
9 | import br.com.caelum.stella.validation.ie.IEAlagoasValidator;
10 | import br.com.caelum.stella.validation.ie.IEAmapaValidator;
11 | import br.com.caelum.stella.validation.ie.IEAmazonasValidator;
12 | import br.com.caelum.stella.validation.ie.IEBahiaValidator;
13 | import br.com.caelum.stella.validation.ie.IECearaValidator;
14 | import br.com.caelum.stella.validation.ie.IEDistritoFederalValidator;
15 | import br.com.caelum.stella.validation.ie.IEEspiritoSantoValidator;
16 | import br.com.caelum.stella.validation.ie.IEGoiasValidator;
17 | import br.com.caelum.stella.validation.ie.IEMaranhaoValidator;
18 | import br.com.caelum.stella.validation.ie.IEMatoGrossoDoSulValidator;
19 | import br.com.caelum.stella.validation.ie.IEMatoGrossoValidator;
20 | import br.com.caelum.stella.validation.ie.IEMinasGeraisValidator;
21 | import br.com.caelum.stella.validation.ie.IEParaValidator;
22 | import br.com.caelum.stella.validation.ie.IEParaibaValidator;
23 | import br.com.caelum.stella.validation.ie.IEParanaValidator;
24 | import br.com.caelum.stella.validation.ie.IEPernambucoValidator;
25 | import br.com.caelum.stella.validation.ie.IEPiauiValidator;
26 | import br.com.caelum.stella.validation.ie.IERioDeJaneiroValidator;
27 | import br.com.caelum.stella.validation.ie.IERioGrandeDoNorteValidator;
28 | import br.com.caelum.stella.validation.ie.IERioGrandeDoSulValidator;
29 | import br.com.caelum.stella.validation.ie.IERondoniaValidator;
30 | import br.com.caelum.stella.validation.ie.IERoraimaValidator;
31 | import br.com.caelum.stella.validation.ie.IESantaCatarinaValidator;
32 | import br.com.caelum.stella.validation.ie.IESaoPauloValidator;
33 | import br.com.caelum.stella.validation.ie.IESergipeValidator;
34 | import br.com.caelum.stella.validation.ie.IETocantinsValidator;
35 | import br.com.safeguard.interfaces.BaseParam;
36 | import br.com.safeguard.patterns.Patterns;
37 | import br.com.safeguard.validators.PatternValidator;
38 |
39 | /**
40 | * Enum que determina o tipo das validações e retornam o validador correspondente.
41 | *
42 | * O Enum implementa a interface (BaseParam), e faz uso dos padrões registrados em (Patterns)
43 | *
44 | *
45 | * Default é validação padrão registrada pelo validador
46 | *
47 | *
48 | * @author Gilmar Carlos
49 | *
50 | */
51 | public enum ParametroTipo implements BaseParam{
52 |
53 | /**Cadeia de caracteres que representa um documento de CPF*/
54 | CPF (new CPFValidator()),
55 | /**Cadeia de caracteres que representa um documento de CPF formatado*/
56 | CPF_FORMATADO (new CPFValidator(true)),
57 | /**Cadeia de caracteres que representa um documento de Titulo de Eleitor*/
58 | TITULO_DE_ELEITOR (new TituloEleitoralValidator()),
59 | /**Cadeia de caracteres que representa um documento de Titulo de Eleitor formatado*/
60 | TITULO_DE_ELEITOR_FORMATADO (new TituloEleitoralValidator(true)),
61 | /**Cadeia de caracteres que representa um documento de Número de Indentificação do Trabalhador*/
62 | NIT (new NITValidator()),
63 | /**Cadeia de caracteres que representa um documento de Número de Indentificação do Trabalhador formatado*/
64 | NIT_FORMATADO (new NITValidator(true)),
65 |
66 | /**Cadeia de caracteres que representa um CNPJ*/
67 | CNPJ (new CNPJValidator()),
68 | /**Cadeia de caracteres que representa um CNPJ formatado*/
69 | CNPJ_FORMATADO (new CNPJValidator(true)),
70 |
71 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
72 | IE_ACRE_AC (new IEAcreValidator()),
73 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
74 | IE_ACRE_AC_FORMATADO (new IEAcreValidator(true)),
75 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
76 | IE_ALAGOAS_AL (new IEAlagoasValidator()),
77 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
78 | IE_ALAGOAS_AL_FORMATADO (new IEAlagoasValidator(true)),
79 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
80 | IE_AMAPA_AP (new IEAmapaValidator()),
81 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
82 | IE_AMAPA_AP_FORMATADO (new IEAmapaValidator(true)),
83 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
84 | IE_AMAZONAS_AM (new IEAmazonasValidator()),
85 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
86 | IE_AMAZONAS_AM_FORMATADO (new IEAmazonasValidator(true)),
87 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
88 | IE_BAHIA_BA (new IEBahiaValidator()),
89 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
90 | IE_BAHIA_BA_FORMATADO (new IEBahiaValidator(true)),
91 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
92 | IE_CEARA_CE (new IECearaValidator()),
93 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
94 | IE_CEARA_CE_FORMATADO (new IECearaValidator(true)),
95 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
96 | IE_DISTRITO_FEDERAL_DF (new IEDistritoFederalValidator()),
97 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
98 | IE_DISTRITO_FEDERAL_DF_FORMATADO (new IEDistritoFederalValidator(true)),
99 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
100 | IE_ESPIRITO_SANTO_ES (new IEEspiritoSantoValidator()),
101 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
102 | IE_ESPIRITO_SANTO_ES_FORMATADO (new IEEspiritoSantoValidator(true)),
103 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
104 | IE_GOIAIS_GO (new IEGoiasValidator()),
105 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
106 | IE_GOIAIS_GO_FORMATADO (new IEGoiasValidator(true)),
107 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
108 | IE_MARANHAO_MA (new IEMaranhaoValidator()),
109 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
110 | IE_MARANHAO_MA_FORMATADO (new IEMaranhaoValidator(true)),
111 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
112 | IE_MATO_GROSSO_MT (new IEMatoGrossoValidator()),
113 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
114 | IE_MATO_GROSSO_MT_FORMATADO (new IEMatoGrossoValidator(true)),
115 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
116 | IE_MATO_GROSSO_DO_SUL_MS (new IEMatoGrossoDoSulValidator()),
117 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
118 | IE_MATO_GROSSO_DO_SUL_MS_FORMATADO (new IEMatoGrossoDoSulValidator(true)),
119 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
120 | IE_MINAS_GERAIS_MG (new IEMinasGeraisValidator()),
121 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
122 | IE_MINAS_GERAIS_MG_FORMATADO (new IEMinasGeraisValidator(true)),
123 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
124 | IE_PARA_PA (new IEParaValidator()),
125 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
126 | IE_PARA_PA_FORMATADO (new IEParaValidator(true)),
127 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
128 | IE_PARAIBA_PB (new IEParaibaValidator()),
129 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
130 | IE_PARAIBA_PB_FORMATADO (new IEParaibaValidator(true)),
131 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
132 | IE_PARARA_PR (new IEParanaValidator()),
133 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
134 | IE_PARARA_PR_FORMATADO (new IEParanaValidator(true)),
135 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
136 | IE_PERNAMBUCO_PE (new IEPernambucoValidator()),
137 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
138 | IE_PERNAMBUCO_PE_FORMATADO (new IEPernambucoValidator(true)),
139 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
140 | IE_PIAUI_PI (new IEPiauiValidator()),
141 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
142 | IE_PIAUI_PI_FORMATADO (new IEPiauiValidator(true)),
143 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
144 | IE_RIO_DE_JANEIRO_RJ (new IERioDeJaneiroValidator()),
145 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
146 | IE_RIO_DE_JANEIRO_RJ_FORMATADO (new IERioDeJaneiroValidator(true)),
147 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
148 | IE_RIO_GRANDE_DO_NORTE_RN (new IERioGrandeDoNorteValidator()),
149 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
150 | IE_RIO_GRANDE_DO_NORTE_RN_FORMATADO (new IERioGrandeDoNorteValidator(true)),
151 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
152 | IE_RIO_GRANDE_DO_SUL_RS (new IERioGrandeDoSulValidator()),
153 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
154 | IE_RIO_GRANDE_DO_SUL_RS_FORMATADO (new IERioGrandeDoSulValidator(true)),
155 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
156 | IE_RONDONIA_RO (new IERondoniaValidator()),
157 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
158 | IE_RONDONIA_RO_FORMATADO (new IERondoniaValidator(true)),
159 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
160 | IE_RORAIMA_RR (new IERoraimaValidator()),
161 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
162 | IE_RORAIMA_RR_FORMATADO (new IERoraimaValidator(true)),
163 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
164 | IE_SANTA_CATARINA_SC (new IESantaCatarinaValidator()),
165 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
166 | IE_SANTA_CATARINA_SC_FORMATADO (new IESantaCatarinaValidator(true)),
167 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
168 | IE_SAO_PAULO_SP (new IESaoPauloValidator()),
169 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
170 | IE_SAO_PAULO_SP_FORMATADO (new IESaoPauloValidator(true)),
171 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
172 | IE_SERGIPE_SE (new IESergipeValidator()),
173 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
174 | IE_SERGIPE_SE_FORMATADO (new IESergipeValidator(true)),
175 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
176 | IE_TOCANTINS_TO (new IETocantinsValidator()),
177 | /**Cadeia de caracteres que representa uma Inscrição estadual*/
178 | IE_TOCANTINS_TO_FORMATADO (new IETocantinsValidator(true)),
179 |
180 | /**
181 | * Cadeia de caracteres de texto padrão, contendo caracters da tabela unicode
182 | * iniciando em \u0020 e terminando em \u00FC
183 | */
184 | DEFAULT (new PatternValidator()),
185 | /**Cadeia de caracteres de texto padrão sem o sinal de maior */
186 | DEFAULT_SEM_SIMBOLO_DE_MAIOR (new PatternValidator(Patterns.DEFAULT_SEM_SIMBOLO_DE_MAIOR)),
187 | /**Cadeia de caracteres de texto padrão sem o sinal de menor */
188 | DEFAULT_SEM_SIMBOLO_DE_MENOR (new PatternValidator(Patterns.DEFAULT_SEM_SIMBOLO_DE_MENOR)),
189 | /**Cadeia de caracteres de texto padrão sem o sinal de menor e maior*/
190 | DEFAULT_SEM_SIMBOLO_DE_MENOR_E_MAIOR (new PatternValidator(Patterns.DEFAULT_SEM_SIMBOLO_DE_MENOR_E_MAIOR)),
191 | /**Cadeia de caracteres de texto padrão sem o sinal de chaves */
192 | DEFAULT_SEM_SIMBOLO_DE_CHAVES (new PatternValidator(Patterns.DEFAULT_SEM_SIMBOLO_DE_CHAVES)),
193 | /**Cadeia de caracteres de texto padrão sem o sinal de colchetes */
194 | DEFAULT_SEM_SIMBOLO_DE_COLCHETES (new PatternValidator(Patterns.DEFAULT_SEM_SIMBOLO_DE_COLCHETES)),
195 | /**Cadeia de caracteres de texto padrão sem o sinal de parneteses */
196 | DEFAULT_SEM_SIMBOLO_DE_PARENTESES (new PatternValidator(Patterns.DEFAULT_SEM_SIMBOLO_DE_PARENTESES)),
197 | /**Cadeia de caracteres de texto padrão sem o sinal de asterisco */
198 | DEFAULT_SEM_SIMBOLO_DE_ASTERISCO (new PatternValidator(Patterns.DEFAULT_SEM_SIMBOLO_DE_ASTERISCO)),
199 | /**Cadeia de caracteres de texto padrão sem o sinal de arroba */
200 | DEFAULT_SEM_SIMBOLO_DE_ARROBA (new PatternValidator(Patterns.DEFAULT_SEM_SIMBOLO_DE_ARROBA)),
201 | /**Cadeia de caracteres de texto padrão sem o sinal de hashtag */
202 | DEFAULT_SEM_SIMBOLO_DE_HASHTAG (new PatternValidator(Patterns.DEFAULT_SEM_SIMBOLO_DE_HASHTAG)),
203 | /**Cadeia de caracteres de texto padrão sem o sinal de sifrão */
204 | DEFAULT_SEM_SIMBOLO_DE_SIFRAO (new PatternValidator(Patterns.DEFAULT_SEM_SIMBOLO_DE_SIFRAO)),
205 | /**Cadeia de caracteres de texto padrão sem o sinal de porcentagem */
206 | DEFAULT_SEM_SIMBOLO_DE_PORCENTAGEM (new PatternValidator(Patterns.DEFAULT_SEM_SIMBOLO_DE_PORCENTAGEM)),
207 | /**Cadeia de caracteres de texto padrão sem o sinal de trema */
208 | DEFAULT_SEM_SIMBOLO_DE_TREMA (new PatternValidator(Patterns.DEFAULT_SEM_SIMBOLO_DE_TREMA)),
209 | /**Cadeia de caracteres de texto padrão sem o sinal de e comercial */
210 | DEFAULT_SEM_SIMBOLO_DE_E_COMERCIAL (new PatternValidator(Patterns.DEFAULT_SEM_SIMBOLO_DE_E_COMERCIAL)),
211 | /**Cadeia de caracteres de texto padrão sem o sinal de underline */
212 | DEFAULT_SEM_SIMBOLO_DE_UNDERLINE (new PatternValidator(Patterns.DEFAULT_SEM_SIMBOLO_DE_UNDERLINE)),
213 | /**Cadeia de caracteres de texto padrão sem o sinal de hífem */
214 | DEFAULT_SEM_SIMBOLO_DE_HIFEM (new PatternValidator(Patterns.DEFAULT_SEM_SIMBOLO_DE_HIFEM)),
215 | /**Cadeia de caracteres de texto padrão sem o sinal de mais */
216 | DEFAULT_SEM_SIMBOLO_DE_MAIS (new PatternValidator(Patterns.DEFAULT_SEM_SIMBOLO_DE_MAIS)),
217 | /**Cadeia de caracteres de texto padrão sem o sinal de aspas simples */
218 | DEFAULT_SEM_SIMBOLO_DE_ASPAS_SIMPLES (new PatternValidator(Patterns.DEFAULT_SEM_SIMBOLO_DE_ASPAS_SIMPLES)),
219 | /**Cadeia de caracteres de texto padrão sem o sinal de aspas duplas */
220 | DEFAULT_SEM_SIMBOLO_DE_ASPAS_DUPLA (new PatternValidator(Patterns.DEFAULT_SEM_SIMBOLO_DE_ASPAS_DUPLA)),
221 | /**Cadeia de caracteres de texto padrão sem o sinal de ponto */
222 | DEFAULT_SEM_SIMBOLO_DE_PONTO (new PatternValidator(Patterns.DEFAULT_SEM_SIMBOLO_DE_PONTO)),
223 | /**Cadeia de caracteres de texto padrão sem o sinal de virgula */
224 | DEFAULT_SEM_SIMBOLO_DE_VIRGULA (new PatternValidator(Patterns.DEFAULT_SEM_SIMBOLO_DE_VIRGULA)),
225 | /**Cadeia de caracteres de texto padrão sem o sinal de dois pontos */
226 | DEFAULT_SEM_SIMBOLO_DE_DOIS_PONTOS (new PatternValidator(Patterns.DEFAULT_SEM_SIMBOLO_DE_DOIS_PONTOS)),
227 | /**Cadeia de caracteres de texto padrão sem o sinal de ponto e virgula */
228 | DEFAULT_SEM_SIMBOLO_DE_PONTO_E_VIRGULA (new PatternValidator(Patterns.DEFAULT_SEM_SIMBOLO_DE_PONTO_E_VIRGULA)),
229 | /**Cadeia de caracteres de texto padrão sem o sinal de exclamação */
230 | DEFAULT_SEM_SIMBOLO_DE_PONTO_DE_EXCLAMACAO (new PatternValidator(Patterns.DEFAULT_SEM_SIMBOLO_DE_PONTO_DE_EXCLAMACAO)),
231 | /**Cadeia de caracteres de texto padrão sem o sinal de interrogação */
232 | DEFAULT_SEM_SIMBOLO_DE_PONTO_DE_INTERROGACAO (new PatternValidator(Patterns.DEFAULT_SEM_SIMBOLO_DE_PONTO_DE_INTERROGACAO)),
233 | /**Cadeia de caracteres de texto padrão sem pontuação */
234 | DEFAULT_SEM_PONTUACAO (new PatternValidator(Patterns.DEFAULT_SEM_PONTUACAO)),
235 | /**Cadeia de caracteres de texto padrão sem números */
236 | DEFAULT_SEM_NUMEROS (new PatternValidator(Patterns.DEFAULT_SEM_NUMEROS)),
237 | /**Cadeia de caracteres de texto padrão sem sinais matemáticos */
238 | DEFAULT_SEM_SINAIS_MATEMATICOS (new PatternValidator(Patterns.DEFAULT_SEM_SINAIS_MATEMATICOS)),
239 | /**Cadeia de caracteres de texto padrão sem caracteres especiais */
240 | DEFAULT_SEM_CARACTERES_ESPECIAIS (new PatternValidator(Patterns.DEFAULT_SEM_CARACTERES_ESPECIAIS)),
241 |
242 | /**Cadeia de caracteres apenas com texto, sem númeors ou caracteres especiais*/
243 | TEXTO_SEM_CARACTERES_ESPECIAIS (new PatternValidator(Patterns.TEXTO_SEM_CARACTERES_ESPECIAIS)),
244 | /**Cadeia de caracteres apenas com texto e hífem, sem númeors ou caracteres especiais*/
245 | TEXTO_SEM_CARACTERES_ESPECIAIS_COM_HIFEM (new PatternValidator(Patterns.TEXTO_SEM_CARACTERES_ESPECIAIS_COM_HIFEM)),
246 | /**Cadeia de caracteres apenas com texto e underline, sem númeors ou caracteres especiais*/
247 | TEXTO_SEM_CARACTERES_ESPECIAIS_COM_UNDERLINE (new PatternValidator(Patterns.TEXTO_SEM_CARACTERES_ESPECIAIS_COM_UNDERLINE)),
248 | /**Cadeia de caracteres apenas com texto e virgula, sem númeors ou caracteres especiais*/
249 | TEXTO_SEM_CARACTERES_ESPECIAIS_COM_VIRGULA (new PatternValidator(Patterns.TEXTO_SEM_CARACTERES_ESPECIAIS_COM_VIRGULA)),
250 | /**Cadeia de caracteres apenas com texto e pontuação, sem númeors ou caracteres especiais*/
251 | TEXTO_SEM_CARACTERES_ESPECIAIS_COM_PONTUACAO (new PatternValidator(Patterns.TEXTO_SEM_CARACTERES_ESPECIAIS_COM_PONTUACAO)),
252 | /**Cadeia de caracteres apenas com texto, pontuação, hífem e underline, sem númeors ou caracteres especiais*/
253 | TEXTO_SEM_CARACTERES_ESPECIAIS_COM_PONTUACAO_HIFEM_UNDERLINE (new PatternValidator(Patterns.TEXTO_SEM_CARACTERES_ESPECIAIS_COM_PONTUACAO_HIFEM_UNDERLINE)),
254 |
255 | /**Cadeia de caracteres com texto e número, sem caracteres especiais*/
256 | TEXTO_NUMERO_SEM_CARACTERES_ESPECIAIS (new PatternValidator(Patterns.TEXTO_NUMERO_SEM_CARACTERES_ESPECIAIS)),
257 | /**Cadeia de caracteres com texto, números e hífem, sem caracteres especiais*/
258 | TEXTO_NUMERO_SEM_CARACTERES_ESPECIAIS_COM_HIFEM (new PatternValidator(Patterns.TEXTO_NUMERO_SEM_CARACTERES_ESPECIAIS_COM_HIFEM)),
259 | /**Cadeia de caracteres com texto, números e underline, sem caracteres especiais*/
260 | TEXTO_NUMERO_SEM_CARACTERES_ESPECIAIS_COM_UNDERLINE (new PatternValidator(Patterns.TEXTO_NUMERO_SEM_CARACTERES_ESPECIAIS_COM_UNDERLINE)),
261 | /**Cadeia de caracteres com texto, números e virgula, sem caracteres especiais*/
262 | TEXTO_NUMERO_SEM_CARACTERES_ESPECIAIS_COM_VIRGULA (new PatternValidator(Patterns.TEXTO_NUMERO_SEM_CARACTERES_ESPECIAIS_COM_VIRGULA)),
263 | /**Cadeia de caracteres com texto, números e pontuação, sem caracteres especiais*/
264 | TEXTO_NUMERO_SEM_CARACTERES_ESPECIAIS_COM_PONTUACAO (new PatternValidator(Patterns.TEXTO_NUMERO_SEM_CARACTERES_ESPECIAIS_COM_PONTUACAO)),
265 | /**Cadeia de caracteres com texto, números, pontuação, hífem e underline, sem caracteres especiais*/
266 | TEXTO_NUMERO_SEM_CARACTERES_ESPECIAIS_COM_PONTUACAO_HIFEM_UNDERLINE (new PatternValidator(Patterns.TEXTO_NUMERO_SEM_CARACTERES_ESPECIAIS_COM_PONTUACAO_HIFEM_UNDERLINE)),
267 | /**Cadeia de caracteres com texto, números, virgula, hífem e underline, sem caracteres especiais*/
268 | TEXTO_NUMERO_VIRGULA_HIFEM_UNDERLINE_SEM_PONTUACAO (new PatternValidator(Patterns.TEXTO_NUMERO_VIRGULA_HIFEM_UNDERLINE_SEM_PONTUACAO)),
269 |
270 | /**Cadeia de caracteres contendo apenas números*/
271 | NUMERO (new PatternValidator(Patterns.NUMERO)),
272 |
273 | /**Cadeia de caracteres que representa um email*/
274 | EMAIL (new PatternValidator(Patterns.EMAIL)),
275 |
276 | /**Cadeia de caracteres que representa um CEP*/
277 | CEP (new PatternValidator(Patterns.CEP)),
278 | /**Cadeia de caracteres que representa um CEP formatado*/
279 | CEP_FORMATADO (new PatternValidator(Patterns.CEP_FORMATADO)),
280 |
281 | /**Cadeia de caracteres que representa uma placa de veículo*/
282 | PLACA_DE_VEICULO_BRASIL (new PatternValidator(Patterns.PLACA_DE_VEICULO_BRASIL)),
283 | /**Cadeia de caracteres que representa uma placa de veículo formatado*/
284 | PLACA_DE_VEICULO_FORMATADO_BRASIL (new PatternValidator(Patterns.PLACA_DE_VEICULO_FORMATADO_BRASIL)),
285 |
286 | /**
287 | * Cadeia de caracteres que representa um telefone fixo ou móvel com ou sem número da operadora, DD + NÚMERO
288 | *
289 | *
290 | * Exemplos:
291 | *
292 | * - Com número da operadora 01211988774455, obs.: O dígito 9 pode ser omitido para telefones fixos 1133445566
293 | * - Sem o número da operadora 11988774455
294 | *
295 | *
296 | *
297 | */
298 | TELEFONE (new PatternValidator(Patterns.TELEFONE)),
299 |
300 | /**
301 | * Cadeia de caracteres que representa um telefone fixo ou móvel com ou sem número da operadora, DD + NÚMERO formatado
302 | *
303 | *
304 | * Exemplos:
305 | *
306 | * - Com número da operadora 012(11)98877-4455, obs.: O dígito 9 pode ser omitido para telefones fixos (11)3344-5566
307 | * - Sem o número da operadora (11)98877-4455
308 | *
309 | *
310 | *
311 | */
312 | TELEFONE_FORMATADO_BRASIL (new PatternValidator(Patterns.TELEFONE_FORMATADO_BRASIL)),
313 | /**
314 | * Cadeia de caracteres que representa um telefone fixo ou móvel com o número do país, DD + NÚMERO formatado
315 | *
316 | *
317 | * Exemplos:
318 | *
319 | * - Formato internacional: +55 11 98877-4455, obs.: O dígito 9 pode ser omitido para telefones fixos +55 11 3344-5566
320 | *
321 | *
322 | *
323 | */
324 | TELEFONE_FORMATADO_INTERNACIONAL (new PatternValidator(Patterns.TELEFONE_FORMATADO_INTERNACIONAL));
325 |
326 | private Validator type;
327 |
328 | private ParametroTipo(Validator type){
329 | this.type = type;
330 | }
331 |
332 | @Override
333 | public Validator getType() {
334 | return type;
335 | }
336 |
337 | }
338 |
--------------------------------------------------------------------------------
/src/main/java/br/com/safeguard/validators/PatternValidator.java:
--------------------------------------------------------------------------------
1 | package br.com.safeguard.validators;
2 |
3 | import java.util.ArrayList;
4 | import java.util.List;
5 | import java.util.regex.Pattern;
6 |
7 | import br.com.caelum.stella.MessageProducer;
8 | import br.com.caelum.stella.ValidationMessage;
9 | import br.com.caelum.stella.validation.InvalidStateException;
10 | import br.com.caelum.stella.validation.Validator;
11 | import br.com.safeguard.interfaces.BasePattern;
12 | import br.com.safeguard.messages.ErrorMessage;
13 | import br.com.safeguard.patterns.Patterns;
14 |
15 | /**
16 | * Classe que verifica uma cadeia de caracteres baseado em padrões (Patterns), implementa
17 | * a interface {@link br.com.caelum.stella.validation.Validator}
18 | *
19 | * @author Gilmar Carlos
20 | *
21 | */
22 | public class PatternValidator implements Validator {
23 |
24 | private MessageProducer message;
25 | private BasePattern pattern;
26 |
27 | /**
28 | * Construtror padrão que inicializa o pattern default e a classe de mensagens de erros (ErrorMessage)
29 | */
30 | public PatternValidator() {
31 |
32 | this.pattern = Patterns.DEFAULT;
33 | this.message = new ErrorMessage();
34 | }
35 |
36 | /**
37 | * Construtror genérico que recebe qualquer padrão que implemente (BasePattern) e inicializa a classe de mensagens de erros
38 | *
39 | * @param pattern Instancia do padrão a ser analisado
40 | */
41 | public PatternValidator(BasePattern pattern){
42 | this.pattern = pattern;
43 | this.message = new ErrorMessage();
44 | }
45 |
46 | /**
47 | * Construtror distinto que recebe padrões do tipo (Patterns) e inicializa a classe de mensagens de erros
48 | *
49 | * @param pattern Instancia do padrão a ser analisado
50 | */
51 | public PatternValidator(Patterns pattern) {
52 | this.pattern = pattern;
53 | this.message = new ErrorMessage();
54 | }
55 |
56 | /**
57 | *
58 | * Método que adiciona elementos inválidos em um (List) caso sua validação contenha erros
59 | *
60 | * @param value Valor a ser analisado
61 | * @return List Lista de mensagens de erros
62 | */
63 | private List getInvalidValues(String value) {
64 | List errors = new ArrayList<>();
65 | if (!Pattern.matches(pattern.getPattern(), value)) {
66 | errors.add(message.getMessage(pattern));
67 | }
68 | return errors;
69 | }
70 |
71 | @Override
72 | public void assertValid(String value) {
73 | List errors = getInvalidValues(value);
74 | if (!errors.isEmpty()) {
75 | throw new InvalidStateException(errors);
76 | }
77 | }
78 |
79 |
80 | @Override
81 | public List invalidMessagesFor(String value) {
82 | return getInvalidValues(value);
83 | }
84 |
85 |
86 | @Override
87 | public boolean isEligible(String object) {
88 |
89 | if (object != null) {
90 | return true;
91 | }
92 |
93 | return false;
94 | }
95 |
96 | }
97 |
--------------------------------------------------------------------------------
/src/main/java/br/com/safeguard/verifies/ParamVerify.java:
--------------------------------------------------------------------------------
1 | package br.com.safeguard.verifies;
2 |
3 | import java.lang.reflect.Field;
4 | import java.util.ArrayList;
5 | import java.util.List;
6 | import java.util.Map;
7 |
8 | import br.com.caelum.stella.validation.InvalidStateException;
9 | import br.com.safeguard.constraint.annotations.Verify;
10 | import br.com.safeguard.exceptions.SafeguardException;
11 | import br.com.safeguard.interfaces.BaseParam;
12 | import br.com.safeguard.params.Param;
13 |
14 | /**
15 | * Classe de verificação genérica para uma cadeia de caracteres formatados ou não, os dados podem ser
16 | * validados a partir de uma (Map) com chaves do tipo (String) e valores de tipos (ParametroTipo) que implementam
17 | * a interface (BaseParam)
18 | *
19 | * @author Gilmar Carlos
20 | *
21 | */
22 | public class ParamVerify {
23 |
24 | private List validElements;
25 | private List invalidElements;
26 |
27 | /**
28 | * Construtor padrão, que inicializa a implementação de (List)
29 | */
30 | public ParamVerify() {
31 | this(new ArrayList(), new ArrayList());
32 | }
33 |
34 | /**
35 | * Construtor secundário, que recebe a implementação de (List)
36 | *
37 | * @param validElements Lista de elementos válidos
38 | * @param invalidElements Lista de elementos inválidos
39 | *
40 | */
41 | public ParamVerify(List validElements, List invalidElements) {
42 | this.validElements = validElements;
43 | this.invalidElements = invalidElements;
44 | }
45 |
46 | /**
47 | * Método public que recebe um (Map) de elementos, verifica se a coleção não está vazia, percorre os elementos e
48 | * chama o método {@code void assertValid(String value, BaseParam param)} para cada interação
49 | *
50 | * @param elements Uma coleção de elementos
51 | * @throws SafeguardException se o (Map) estiver vazio
52 | *
53 | */
54 | public void validate(Map elements) throws SafeguardException {
55 | if(elements.isEmpty()) {
56 | throw new SafeguardException("The map can not be empty");
57 | }
58 | elements.forEach((Integer, param) -> assertValid(param.getValue(), param.getType()));
59 | }
60 |
61 | /**
62 | * Método public que recebe um (List) de elementos, verifica se a coleção não está vazia, percorre os elementos e
63 | * chama o método {@code void validate(Object object)} para cada interação
64 | *
65 | * @param elements Uma lista de elementos
66 | * @throws SafeguardException se o (List) estiver vazio
67 | *
68 | */
69 | public void validate(List