Banque.java 2.82 KB
import java.util.*;

public class Banque {
	List<Compte> comptes;
	int nbComptes =0;
	
	public Banque(){
		comptes = new ArrayList<Compte>();
		this.nbComptes = 0 ;
	}
	
	public int ouvrirCompte(){
        comptes.add(new Compte());
        nbComptes ++;
        return this.nbComptes;
	}
	
	public int ouvrirCompteEpargne(double credit, double interet){
        comptes.add(new CompteEpargne(credit,interet));
        nbComptes ++;
        return nbComptes;
	}
	
	public Compte getCompte(int i) throws CompteInexistantException{
        if(i > nbComptes && i>0){
            throw new CompteInexistantException();
           
        }else{
            return this.comptes.get(i-1);
        }
	}
	
	public void crediter(int i, double x)throws CompteInexistantException{
        if(i > nbComptes && i>0){
            throw new CompteInexistantException();
        }else{
            getCompte(i).crediter(x);
        }
	}
	
	public void debiter(int i, double x)throws CompteInexistantException{
        if(i > nbComptes && i>0){
            throw new CompteInexistantException();
        }else{
            getCompte(i).debiter(x);
        }
	}
	
	public double totalSolde(){
        double totalSolde = 0;
        if(!comptes.isEmpty()){
        for(Compte compte : comptes){
            totalSolde += compte.solde();
        }}
        return totalSolde;
	}
	
	public String etat(int i) throws CompteInexistantException{
        if(i > nbComptes){
            throw new CompteInexistantException();
        }else{
            return  getCompte(i).toString();
        }
	}
	
	public void etat() {
        System.out.println("Vos comptes: ");
        int indice=0;
        for(Compte compte : comptes){
            indice++;
            System.out.println("Pour le compte: " + indice + " et "+ compte.toString());
        }
	}
	
	public void virement(int numSrc, int numDest, double x)throws CompteInexistantException{
        if((numSrc > nbComptes)||(numDest > nbComptes)){
               throw new CompteInexistantException();
        }else{
          getCompte(numSrc).virerVers(x, getCompte(numDest));
        }
	}
	
    public double interets(int i)throws CompteInexistantException{
      if(i > nbComptes){
        throw new CompteInexistantException();
      }else{
            try{
            CompteEpargne ce = (CompteEpargne)getCompte(i);
            return ce.interets();
            } catch (ClassCastException e){
            
            }
            
        
      }
        return 0;
        
    }
    
    public void echeance(int i)throws CompteInexistantException{
        if(i > nbComptes){
            throw new CompteInexistantException();
        }else{
            try{
                CompteEpargne ce = (CompteEpargne)getCompte(i);
                ce.echeance();
              } catch (ClassCastException e){   
            }
        }
    }
    
    
}