Diferenças entre edições de "Java EE/Restrições Embutidas"

150 bytes adicionados ,  13h52min de 28 de dezembro de 2015
Abaixo são descritas todas as anotações contidas no pacote citado.
 
===NotNull===
<code>@NotNull</code>, conforme vista na seção anterior, define que a variável anotada não pode ser nula. Qualquer tipo de variável de referência pode ser utilizado.
 
Object obj;
</source>
<hr>
 
===AssertTrue e AssertFalse===
<code>@AssertTrue</code> define que a variável deve ser <code>true</code>. Já <code>@AssertFalse</code> define o contrário. Obviamente apenas os tipos <code>Boolean</code> e <code>boolean</code> podem ser utilizados.
<source lang="Java">
boolean funcionando;
</source>
<hr>
 
===Max e Min===
<code>@Max</code> restringe a variável a armazenar valor igual ou menor ao que essa anotação define. <code>@Min</code> restringe de forma inversa. Apenas valores do tipo <code>long</code> são suportados no elemento <code>value</code> dessas anotações.
 
int valor; //Será inicializado com 0 caso vinculado com <h:inputText>, porém a validação só ocorrerá na primeira submissão dos dados para o servidor.
</source>
<hr>
 
===DecimalMax e DecimalMin===
<code>@DecimalMax</code> e <code>@DecimalMin</code> são similares às de <code>@Max</code> e <code>@Min</code>, com a diferença de que seus elementos <code>value</code> são de tipo <code>String</code> e suportam valores decimais (na implementação esse elemento é convertido em BigDecimal).
 
Short valor;
</source>
<hr>
 
===Digits===
<code>@Digits</code> restringe a quantidade '''máxima''' de dígitos que uma variável pode conter. O elemento <code>int integer</code> restringe os dígitos inteiros e o <code>int fraction</code> os decimais. Ambos os elementos são obrigatórios.
 
Long numero; //Obviamente fraction é despropositado aqui, mas a funcionalidade de integer permanece.
</source>
<hr>
 
===Size===
<code>@Size</code> restringe a quantidade mínima e/ou máxima de caracteres que a variável anotada pode conter e de elementos que uma coleção pode ter. O elemento <code>int min</code> define o a quantidade mínima e o <code>int max</code> a máxima. Ambos os elementos são opcionais, seus valores padrão são 0 e <code>Integer.MAX_VALUE</code> respectivamente.
 
String palavra;
</source>
<hr>
 
===Pattern===
<code>@Pattern</code> restringe o conteúdo da variável a obedecer à uma expressão regular. O elemento obrigatório <code>String regexp</code> define a expressão regular.
 
As flags abaixo listadas são as mesmas constantes no objeto <code> [https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html java.util.regex.Pattern] </code> do Java SE 8.
 
<hr/>
<code>Pattern.Flag.CANON_EQ </code> sinaliza que um caractere Unicode na expressão regular pode corresponder à sua forma canonicamente decomposta.
 
String s = "é";
</source>
<hr/>
 
 
A flag <code>Pattern.Flag.CASE_INSENSITIVE</code> permite que os caracteres na expressão regular correspondam em sua forma maiúscula ou minúscula.
String categoriaCNH = "a";
</source>
<hr/>
 
<code>Pattern.Flag.COMMENTS</code> permite que espaços em branco e comentários na expressão regular sejam ignorados na correspondência. <code>#</code> inicia os comentários na expressão regular.
 
A variávelString <code>palavraa</code> é aceita pela validação já que os caracteres após <code>#</code> na expressão regular são ignorados bem como o espaço em branco na expressão regular da anotação na variável <code>sigla</code>.
 
<source lang="Java">
String sigla = "ABC";
</source>
<hr/>
 
<code>Pattern.Flag.DOTALL</code>
<hr/>
 
<code>Pattern.Flag.LITERAL</code>
<hr/>
 
<code>Pattern.Flag.MULTILINE</code>
<hr/>
 
<code>Pattern.Flag.UNICODE_CASE</code>
<hr/>
 
<code>Pattern.Flag.UNICODE_CHARACTER_CLASS</code>
<hr/>
 
<code>Pattern.Flag.UNIX_LINES</code>
 
===Future e Past===
 
 
<hr>
 
<code>@Future</code> e <code>@Past</code> definem que a variável represente apenas data futura ou passada, respectivamente.