Package controleEstoque.estruturaDados

Source Code of controleEstoque.estruturaDados.ListaProdutos

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;             
    }
}
TOP

Related Classes of controleEstoque.estruturaDados.ListaProdutos

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.