E ae bl?
no enum seguinte:
public enum TPCampo {
INTEIRO,
TEXTO,
MOEDA,
LÓGICO;
/**
* Verifica se um dado valor é válido para o tipo atual.
* Valores vazios ou nulos e tipos inexistentes
* são sempre válidos.
* @param valor
* @return
*/
public static boolean isValido(String valor, String tipo) {
/*codigo do metodo*/
}
private static boolean isInteiroValido(String valor) {
/*codigo do metodo*/
}
private static boolean isLogicoValido(String valor) {
/*codigo do metodo*/
}
private static boolean isMoedaValido(String valor) {
/*codigo do metodo*/
}
}
o método
isValido() verifica a validação dos campos dependendo do tipo do campo por enquanto ele está assim:
public static boolean isValido(String valor, String tipo) {
if (valor != null && !valor.trim().equals("")) {
if (INTEIRO.equals( TPCampo.valueOf(tipo) ) ) {
return isInteiroValido(valor);
}else if (MOEDA.equals( TPCampo.valueOf(tipo) ) ) {
return isMoedaValido(valor);
}else if (LÓGICO.equals( TPCampo.valueOf(tipo) ) ) {
return isLogicoValido(valor);
}
}
return true;
}
mas pra mim ele parece lendo por causa dos vários
TPCampo.valueOf(tipo), e não tão claro, eu leio as instruções assim: "se tipo do campo é igual ao tipo INTEIRO,MOEDA,LOGICO então", mas se reparar a instrução if estão na ordem inversa, preciso ler a instrução de traz pra frente para ler dessa maneira por isso pensei em fazer da seguinte maneira:
public static boolean isValido(String valor, String tipo) {
if (valor != null && !valor.trim().equals("")) {
TPCampo tipoCampo = TPCampo.valueOf(tipo);
if (tipoCampo.equals(INTEIRO) ) {
return isInteiroValido(valor);
}else if (tipoCampo.equals(MOEDA) ) {
return isMoedaValido(valor);
}else if (tipoCampo.equals(LÓGICO) ) {
return isLogicoValido(valor);
}
}
return true;
}
assim pra mim fica mais claro (se tipoCampo = INTEIRO) e rápido (apenas um valueOf() )
mas poderia dar um NullPointerException se o tipo passado fosse nulo certo?
então para ficar um pouco mais claro e rápido e ainda evitar a ecessão poderia ficar da seguinte forma:
public static boolean isValido(String valor, String tipo) {
if (valor != null && !valor.trim().equals("")) {
TPCampo tipoCampo = TPCampo.valueOf(tipo);
if (INTEIRO.equals( tipoCampo ) ) {
return isInteiroValido(valor);
}else if (MOEDA.equals( tipoCampo ) ) {
return isMoedaValido(valor);
}else if (LÓGICO.equals( tipoCampo ) ) {
return isLogicoValido(valor);
}
}
return true;
}
o que os nobres colegas acham? :lol: