Boa noite pessoal,
Estou a desenvolver um simulador de um BD com objetos java. Meu simulador tem uma classe Banco.java e Produto.java cujo Banco.java armazena de forma estática diversos objetos de produtos. Cada produto tem um Id, descricao, entre outros atributos. Meu problema é simples, mas está sendo chato de resolver. Toda vez que eu gero um novo produto, devo informar os valores deles por Sets, porém, o meu método setID deve localizar se existe um produto com um mesmo ID, se existir ele deve finalizar a operação dizendo “Produto já cadastrado” e solicitar novamente o método de inserção.
Bom, meu método setId, da classe Produto
public void setIdProduto(int paramIdProduto) {
boolean jaCadastrado = false;
for(int j =0; j<Banco.vetorProdutos.length; j++)
{
if(Banco.vetorProdutos[j] != null)
{//Verifica se tem elementos no vetor
if(Banco.vetorProdutos[j].getIdProduto() == paramIdProduto)
{//verifica se id é igual
jaCadastrado = true;
break;
}
}
jaCadastrado = false;
}
if(jaCadastrado == false){
this.idProduto = paramIdProduto;
}
else if(jaCadastrado == true){
JOptionPane.showMessageDialog(null,"Produto já cadastrado. \nTente outro Id", "Aviso", JOptionPane.WARNING_MESSAGE);
}
}
Minha que gera o produto
public static Produto geraProduto(){
Produto produto = new Produto();
produto.setIdProduto(Integer.parseInt((JOptionPane.showInputDialog("PRODUTO - Id: " ))));
produto.setDescricao(JOptionPane.showInputDialog("PRODUTO - Descricao: " ));
produto.setEstoqueMinimo(Integer.parseInt((JOptionPane.showInputDialog("PRODUTO - Estoque min.: " ))));
return produto;
}
Obs: os produtos ficam armazenados em um vetor
não entendi muito bem o que vc quer, mas posso te dar uma idéia. Seu método setIdProduto deveria retornar um false se o produto já estivesse cadastrado e true se ainda não estivesse cadastrado. Assim, vc teria um retorno e chamaria os métodos baseados no retorno deste.
pegou? 
[quote=walissongpi]não entendi muito bem o que vc quer, mas posso te dar uma idéia. Seu método setIdProduto deveria retornar um false se o produto já estivesse cadastrado e true se ainda não estivesse cadastrado. Assim, vc teria um retorno e chamaria os métodos baseados no retorno deste.
pegou?
[/quote]
Opa, é resolvi com esta ideia mesmo, abaixo o código.
Na classe setId eu atribuo o valor informado pelo usuário, somente se ele não existir dentro do vetor.
Produto produto = new Produto();
int idProduto = Integer.parseInt((JOptionPane.showInputDialog("PRODUTO - Id: " )));
produto.setIdProduto(idProduto);
if(produto.getIdProduto() == idProduto){
produto.setDescricao(JOptionPane.showInputDialog("PRODUTO - Descricao: " ));
else{
geraProduto();
}
abraço
[quote=augustocolom][quote=walissongpi]não entendi muito bem o que vc quer, mas posso te dar uma idéia. Seu método setIdProduto deveria retornar um false se o produto já estivesse cadastrado e true se ainda não estivesse cadastrado. Assim, vc teria um retorno e chamaria os métodos baseados no retorno deste.
pegou?
[/quote]
Opa, é resolvi com esta ideia mesmo, abaixo o código.
Na classe setId eu atribuo o valor informado pelo usuário, somente se ele não existir dentro do vetor.
Produto produto = new Produto();
int idProduto = Integer.parseInt((JOptionPane.showInputDialog("PRODUTO - Id: " )));
produto.setIdProduto(idProduto);
if(produto.getIdProduto() == idProduto){
produto.setDescricao(JOptionPane.showInputDialog("PRODUTO - Descricao: " ));
else{
geraProduto();
}
abraço[/quote]
