Finalizar método e reiniciá-lo [Resolvido]

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

Já resolvi.

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? :smiley:

[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? :smiley: [/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? :smiley: [/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]
:smiley: :smiley: