All pastes #720053 Raw Edit

Something

public text v1 · immutable
#720053 ·published 2007-09-29 22:42 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>();

	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();
	}
	
}

==================================================================
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();
	}
	
}