Seguinte galera…
tenho este array cujo o Objeto é um Enum e passo duas constantes para carregar uma combo em determinada situação:
public static MencaoTAF[] getMencaoSituacao50Anos() {
MencaoTAF[] mencoes = {SEM_MENCAO, EXCELENTE};
return mencoes;
}
o problema acontece quando eu passo somente uma constante nesse array, quando seleciono o valor na combo para carregar outra ele chama a validação nativa do selectOneMenu
“valid is not Valid” e nem chega no meu método…
public static MencaoTAF[] getMencaoSituacao50Anos() {
MencaoTAF[] mencoes = {SEM_MENCAO};
return mencoes;
}
meu Enum
package br.mil.eb.dgp.sirf3.negocio.enums;
/**
* Domínio que representa a menção para uma avaliação de TAF
* ou TAT para um militar.
*
* O militar pode ser avaliado de Excelente até Insuficiente
*/
public enum MencaoTAF {
EXCELENTE (1, "E", "Excelente"),
MUITO_BOM (2, "MB", "Muito Bom"),
BOM (3, "B", "Bom"),
REGULAR (4, "R", "Regular"),
INSUFICIENTE (5, "I", "Insuficiente"),
SEM_MENCAO (9, "SM", "Sem Menção");
private Integer id;
private String descricao;
private String sigla;
/**
* Cria um novo objeto do tipo menção, instanciado apenas
* pela própria classe.
*/
private MencaoTAF(Integer id, String sigla, String descricao) {
this.id = id;
this.descricao = descricao;
this.sigla = sigla;
}
/**
* Retorna o código da menção
*/
public Integer getId() {
return id;
}
/**
* Retorna a sigla da menção
*/
public String getSigla() {
return sigla;
}
/**
* Retorna a descrição da menção
*/
public String getDescricao() {
return descricao;
}
/**
* Retorna a menção a partir do seu respectivo código
*/
public static MencaoTAF valueOf(Integer id) {
for (MencaoTAF s: MencaoTAF.values()) {
if (s.getId() != null && s.getId().equals(id)) {
return s;
}
}
return null;
}
public static MencaoTAF[] getMencoesSituacaoAptoRecomMaiorIgual15Meses() {
MencaoTAF[] mencoes = {REGULAR, INSUFICIENTE};
return mencoes;
}
public static MencaoTAF[] getMencoesSituacaoNormal() {
MencaoTAF[] mencoes = {EXCELENTE, MUITO_BOM, BOM, REGULAR, INSUFICIENTE};
return mencoes;
}
public static MencaoTAF[] getMencoesSituacaoAntes2006() {
MencaoTAF[] mencoes = {EXCELENTE, MUITO_BOM, BOM, REGULAR};
return mencoes;
}
public static MencaoTAF[] getMencaoSituacao50Anos() {
MencaoTAF[] mencoes = {SEM_MENCAO, EXCELENTE};
return mencoes;
}
}
Alguém já passou por este problema?
Fiz vários teste aqui e ele só apresenta esse erro quando passo um valor somente para o array…