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