
/**
 * Write a description of class SeguroVida here.
 * 
 * @author FMM 
 * @version (a version number or a date)
 */
import java.util.*;
import java.io.Serializable;
public class SeguroVida extends Seguro {
    
    // Variáveis e Métodos de Classe
    // Variáveis de Classe
    private static TreeMap<String,  Clausula> tabClaus = new TreeMap<String, Clausula>();
    public static void addClausula(Clausula cl) { tabClaus.put(cl.getCodClausula(), cl.clone()); }
    public static Clausula getClausula(String cod) { return tabClaus.get(cod); }
    public static void removeClausula(String cod) { tabClaus.remove(cod); }

    // Variáveis de Instância
    private TreeMap<String,  Clausula> tabClausPagas = new TreeMap<String,  Clausula>();

   
   
   // Construtores para SeguroVida
   
    public SeguroVida() { super(); }
    public SeguroVida(TreeMap<String, Clausula> tabClaus) { }
    public SeguroVida(SeguroVida segVida) { }
    
    public TreeMap<String, Clausula> getClausulas() {
        TreeMap<String, Clausula> tabAux = new TreeMap<String, Clausula>();
        for(Clausula claus : tabClausPagas.values()) 
               tabAux.put(claus.getCodClausula(), claus.clone());
        return tabAux;
    }
    
    public SeguroVida clone() { return new SeguroVida(this); }
    
    // métodos dummy ! Não codificados
    
    public double calculaPagamento() { return 0.0; }
    public String emiteFactura() { return ""; }
    public void registaPagamento() { }
    public Set<Clausula> todasAsClausulasPagas() { return new HashSet<Clausula>(); }
}
