package controleEstoque.estruturaDados;
import controleEstoque.entidades.Produto;
/**
* @author Eduardo Lacerda
* Data: May 28, 2012
*/
public class ListaProdutos {
No inicio;
/**
* Retorna a lista completa
* @return
*/
public No getInicio() {
return inicio;
}
/**
* Construtor da classe, define a lista como vazia
*/
public ListaProdutos(){
inicio = null;
}
/**
* Adiciona um novo produto a lista
* @param produto
*/
public void adiciona(Produto produto){
No novo = new No(produto);
if(inicio == null){
inicio = novo;
}else{
No aux = inicio;
while(aux.prox != null){
aux = aux.prox;
}
aux.prox = novo;
}
}
/**
* Remove um produto da lista
* @param produto
* @return Retorna o produto removido
*/
public Produto remove(Produto produto){
Produto produtoRetorno = new Produto();
No lista = this.inicio;
while(lista.getProx() != null){
if(lista.getObjeto() == produto){
produtoRetorno = produto;
}
lista.setObjeto(lista.getProx());
}
return produtoRetorno;
}
/**
* Altera um produto especifico
* @param produtoAntigo Objeto a ser modificado
* @param produtoNovo Objeto novo, com atributos atualizados
* @return true se a alteração foi realizada com sucesso
*/
public boolean alteraProduto(Produto produtoAntigo, Produto produtoNovo){
boolean alterar = false;
No lista = this.inicio;
while(lista.getProx() != null){
if(lista.getObjeto() == produtoAntigo){
alterar = true;
}
if(!alterar)
lista.setObjeto(lista.getProx());
else{
lista.setObjeto(produtoNovo);
break;
}
}
return alterar;
}
public No getLista(){
return inicio;
}
public void setLista(No lista){
this.inicio = lista;
}
/**
* Retorna a quantidade de itens da lista
* @return
*/
public int count(){
int i = 0;
No aux = inicio;
while(aux != null){
i++;
aux = aux.getProx();
}
return i;
}
/**
* Percorre os objetos da lista e retorna como String
* @return
*/
public String percorreLista(){
String lista = "";
No aux = inicio;
while(aux != null){
lista += aux.getObjeto().toString();
aux = aux.getProx();
}
return lista;
}
/**
* Retorna um array contendo os objetos da lista em formato String
* @return um objeto para cada indice da lista
*/
public String[] percorreListaArray(){
String[] lista = new String[this.count()];
No aux = inicio;
int i = 0;
while(aux != null){
lista[i] = aux.getObjeto().toString();
aux = aux.getProx();
i++;
}
return lista;
}
}