Bom pessoal. estou querendo fazer umas validações que não deverão ser permitidas, por exemplo: cidades destino consecutivas, incluindo validação com base na cidade de origem, ou seja, caso o usuário escolha a cidade inicial do roteiro como sendo Rio de Janeiro (RJ), a primeira cidade de destino não poderá ser a cidade Rio de Janeiro (RJ), outro exemplo, caso ele selecione a primeira cidade de destino igual a Belo Horizonte (MG) a próxima cidade de destino não poderá ser Belo Horizonte (MG). Essa validação deverá ser feita no momento que o usuário solicitar seguir para o próximo passo. Classe SelecionarDestinoForm no método validade().
ae esta as duas classe:
[code]package br.com.petrobras.roteirosonline.application.form;
import java.util.ArrayList;
import java.util.Collection;
import br.com.petrobras.roteirosonline.support.exception.BusinessException;
import br.com.petrobras.roteirosonline.support.form.Form;
/**
-
Classe do tipo formulário usada para a seleção das cidades de destino
-
do usuário.
*/
public class SelecionarDestinoForm extends Form {private String[] estadosSelecionados = null;
private String[] cidadesSelecionadas = null;
private Collection estados = new ArrayList();
private Collection[] cidades = null;
private Integer[] totalDias = null;
private Integer numCidadesVisitar = new Integer(0);/**
- Construtor da classe.
*/
public SelecionarDestinoForm() {
}
/**
- Retorna um vetor contendo a lista das cidades para cada estado selecionado.
-
@return the cidades
*/
public Collection[] getCidades() {
return cidades;
}
/**
- Informa um vetor contendo a lista das cidades para cada estado selecionado.
-
@param cidades the cidades to set
*/
public void setCidades(Collection[] cidades) {
this.cidades = cidades;
}
/**
- Informa uma lista de cidades para uma determinada posiçao do vetor de cidades.
- @param cidades
-
@param posicao
*/
public void setCidades(Collection cidades, int posicao) {
this.cidades[posicao] = cidades;
}
/**
- Retorna um vetor contendo os IDs das cidades selecionadas.
-
@return the cidadesSelecionadas
*/
public String[] getCidadesSelecionadas() {
return cidadesSelecionadas;
}
/**
- Informa um vetor contendo os IDs das cidades selecionadas.
-
@param cidadesSelecionadas the cidadesSelecionadas to set
*/
public void setCidadesSelecionadas(String[] cidadesSelecionadas) {
this.cidadesSelecionadas = cidadesSelecionadas;
}
/**
- Retorna a lista de estados.
-
@return the estados
*/
public Collection getEstados() {
return estados;
}
/**
- Informa a lista de estados.
-
@param estados the estados to set
*/
public void setEstados(Collection estados) {
this.estados = estados;
}
/**
- Retorna um vetor contendo as siglas dos estados selecionados.
-
@return the estadosSelecionados
*/
public String[] getEstadosSelecionados() {
return estadosSelecionados;
}
/**
- Informa um vetor contendo as siglas dos estados selecionados.
-
@param estadosSelecionados the estadosSelecionados to set
*/
public void setEstadosSelecionados(String[] estadosSelecionados) {
this.estadosSelecionados = estadosSelecionados;
}
/**
- Retorna o total de ciades que o usuário deseja visitar.
-
@return the numCidades
*/
public Integer getNumCidadesVisitar() {
return numCidadesVisitar;
}
/**
- Informa o total de ciades que o usuário deseja visitar.
-
@param numCidades the numCidades to set
*/
public void setNumCidadesVisitar(Integer numCidades) {
this.numCidadesVisitar = numCidades;
}
/**
- Retorna um vetor com o total em dias que o usuário deseja passar em cada
- cidade.
-
@return the totalDias
*/
public Integer[] getTotalDias() {
return totalDias;
}
/**
- Informa um vetor com o total em dias que o usuário deseja passar em cada
- cidade.
-
@param totalDias the totalDias to set
*/
public void setTotalDias(Integer[] totalDias) {
this.totalDias = totalDias;
}
/**
- Método para validação dos dados
- Esse método deverá ser complementado para não permitir que cidades
- iguais e consecutivas sejam selecionadas.
*/
public void validate() throws BusinessException {
if (estadosSelecionados == null || estadosSelecionados.length < numCidadesVisitar.intValue()) {
throw new BusinessException("Todos os estados devem ser informados.");
}
for (int i=0; i < estadosSelecionados.length; i++) {
if (estadosSelecionados[i] == null || estadosSelecionados[i].trim().length() == 0) {
throw new BusinessException("O estado na posição " + (i + 1) + " deve ser informado.");
}
}
if (cidadesSelecionadas == null || cidadesSelecionadas.length < numCidadesVisitar.intValue()) {
throw new BusinessException("Todas as cidades devem ser informadas.");
}
for (int i=0; i < cidadesSelecionadas.length; i++) {
if (cidadesSelecionadas[i] == null || cidadesSelecionadas[i].trim().length() == 0) {
throw new BusinessException("A cidade na posição " + (i + 1) + " deve ser informada.");
}
}
if (totalDias == null || totalDias.length < numCidadesVisitar.intValue()) {
throw new BusinessException("Todos os números de dias devem ser informados.");
}
for (int i=0; i < totalDias.length; i++) {
if (totalDias[i] == null || totalDias[i].intValue() <= 0) {
throw new BusinessException("O total de dias na posição " + (i + 1) + " deve ser informado e deve ser maior do que zero.");
}
}
}
}[/code]
- Construtor da classe.
[code]package br.com.petrobras.roteirosonline.application.form;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
import br.com.petrobras.roteirosonline.support.exception.BusinessException;
import br.com.petrobras.roteirosonline.support.form.Form;
/**
-
Classe do tipo formulário usada para selecionar a cidade de origem do usuário.
*/
public class SelecionarOrigemForm extends Form {private SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
private String estadoSelecionado = "";
private Collection estados = new ArrayList();
private String cidadeSelecionada = "";
private Collection cidades = new ArrayList();
private String dataViagem = sdf.format(Calendar.getInstance().getTime());
private Integer numCidades = new Integer(0);/**
- Construtor da classe.
*/
public SelecionarOrigemForm() {
}
/**
- Retorna o número de cidades que o usuário deseja visitar.
-
@return the numCidades
*/
public Integer getNumCidades() {
return numCidades;
}
/**
- Informa o número de cidades que o usuário deseja visitar.
-
@param numCidades the numCidades to set
*/
public void setNumCidades(Integer numCidades) {
this.numCidades = numCidades;
}
/**
- Retorna a coleção de cidades do estado selecionado.
-
@return the cidades
*/
public Collection getCidades() {
return cidades;
}
/**
- Informa a coleção de cidades do estado selecionado.
-
@param cidades the cidades to set
*/
public void setCidades(Collection cidades) {
this.cidades = cidades;
}
/**
- Retorna a cidade selecionada.
-
@return the cidadeSelecionada
*/
public String getCidadeSelecionada() {
return cidadeSelecionada;
}
/**
- Informa a cidade selecionada.
-
@param cidadeSelecionada the cidadeSelecionada to set
*/
public void setCidadeSelecionada(String cidadeSelecionada) {
this.cidadeSelecionada = cidadeSelecionada;
}
/**
- Retorna a data pretendida para a viagem.
-
@return the dataViagem
*/
public String getDataViagem() {
return dataViagem;
}
/**
- Informa a data pretendida para a viagem.
-
@param dataViagem the dataViagem to set
*/
public void setDataViagem(String dataViagem) {
this.dataViagem = dataViagem;
}
/**
- Retorna a coleção de estados.
-
@return the estados
*/
public Collection getEstados() {
return estados;
}
/**
- Informa a coleção de estados.
-
@param estados the estados to set
*/
public void setEstados(Collection estados) {
this.estados = estados;
}
/**
- Retorna a sigla do estado selecionado.
-
@return the estadoSelecionado
*/
public String getEstadoSelecionado() {
return estadoSelecionado;
}
/**
- Informa a sigla do estado selecionado.
-
@param estadoSelecionado the estadoSelecionado to set
*/
public void setEstadoSelecionado(String estadoSelecionado) {
this.estadoSelecionado = estadoSelecionado;
}
/**
- Método para validação dos dados.
/
public void validate() throws BusinessException {
//Validar o estado
if (estadoSelecionado == null || estadoSelecionado.trim().length() == 0) {
throw new BusinessException(“Um estado deve ser selecionado.”);
}
//Validar a cidade
if (cidadeSelecionada == null || cidadeSelecionada.trim().length() == 0) {
throw new BusinessException(“Uma cidade deve ser selecionada.”);
}
//Validar a data
if (dataViagem == null || dataViagem.trim().length() != 10) {
throw new BusinessException(“A data prevista para sua viagem deve ser informada.”);
}
Calendar data = Calendar.getInstance();
try {
data.setTime(sdf.parse(dataViagem));
} catch (Exception e) {
throw new BusinessException(“Formato da data prevista para viagem não é válida.”);
}
if (data.before(Calendar.getInstance())) {
throw new BusinessException(“A data prevista para viagem deve ser maior do que a data atual.”);
}
//Validar o numero de cidades a visitar
if (numCidades == null || numCidades.intValue() <= 0) {
throw new BusinessException(“Informe quantas cidades você deseja visitar.”);
}
}
}[/code]
SE ALGUEM PUDER ME AJUDAR AGRADEÇO
[size=“11”][color=“red”] Editado: Lembre-se de utilizar BBCode em seus códigos - Cassolato[/color][/size] :joia:
- Construtor da classe.