All pastes #720070 Raw Edit

Something

public text v1 · immutable
#720070 ·published 2007-09-29 23:05 UTC
rendered paste body
package catalogo;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;

public class KitProduto extends Produto {

	private List produtos = new ArrayList<Produto>();

        // alterei aqui
        public KitProduto(){
           this.produtos = new ArrayList<Produto>();
         }  
 

	public void addProduto(Produto p) {
		this.produtos.add(p);
	}

	public void removeProduto(Produto p) {
		this.produtos.remove(p);
	}
	
	public Produto getChild(int num) {
		return (Produto) this.produtos.get(num);
	}

	public BigDecimal getPreco() {
		BigDecimal total = new BigDecimal(0.0);
		ListIterator it = (ListIterator) this.produtos.listIterator();
		
		while (it.hasNext()) {
			total = total.add(((Produto) it.next()).getPreco()); 
		}
		
		return total;
	}

	public String getDescricao() {
		String desc = null;
		ListIterator it = (ListIterator) this.produtos.listIterator();
		
		while (it.hasNext()) {
			desc = desc + " " + ((Produto) it.next()).getDescricao(); 
		}
		
		return (String) desc;
	}

}


==========================================================================================
package catalogo;

import java.math.BigDecimal;

public abstract class ProdutoDecorator extends Produto {
	private Produto produtodecorado;
	
	public ProdutoDecorator(Produto p) {
		this.produtodecorado = p;
	}
	public BigDecimal getPreco() {
		return this.produtodecorado.getPreco();
	}
	
	public String getDescricao() {
		return this.produtodecorado.getDescricao();
	}
       //alterei daqui pra baixo
       // são os métodos de Produto 
       public void addProduto(Produto p){
           this.produtoDecorado.add(p);
       }

       public Prodtuo getChild(int num){
           this.produtoDecorado.getChild(num);
       }
    
       public void remove(Produto p){
           this.produtoDecorado.remove(p);
        }
	
}

==================================================================
package catalogo;

import java.math.BigDecimal;

public abstract class Produto {
	private String descricao;
	private String codigo;
	
	public abstract BigDecimal getPreco();
	public abstract String getDescricao();
	
	public void addProduto (Produto p)  throws UnsupportedOperationException {
		throw new UnsupportedOperationException();
	}
	public void removeProduto (Produto p) throws UnsupportedOperationException {
		throw new UnsupportedOperationException();
	}
	public Produto getChild(int num) throws UnsupportedOperationException {
		throw new UnsupportedOperationException();
	}
	
}