package frames.conta;

public class ConjuntoContas {
  private static final IllegalArgumentException e = new IllegalArgumentException();
  private Conta[] contas;
  private int indice;

  public ConjuntoContas (int tam) {
    contas = new Conta[tam];
    indice = 0;
  }

  /* ... */

  public void inserir(Conta c) throws IllegalArgumentException {
    if (c != null) {
      contas[indice] = c;
      indice = indice + 1;
    } else throw e;
  }

  public void remover(String num) throws CNEException {
    if(existe(num)){
      for(int j=procurarIndice(num); j<indice; j++)
        contas[j] = contas[j+1];
      indice = indice - 1;
    }
    else
      throw new CNEException(num);
  }

  public Conta procurar(String n) throws CNEException {
    Conta c = null;
    int i = this.procurarIndice(n);
    if (i == indice) throw new CNEException(n);
    else c = contas[i];
    return c;
  }

  public boolean existe(String n) {
    int i = this.procurarIndice(n);
    return (i != indice);
  }

  private int procurarIndice(String n) {
    int i = 0;
    boolean achou = false   ;
    while((!achou) && (i < indice)) {
      if ((contas[i].getNumero()).equals(n))
        achou = true;
      else i = i + 1;
    }
    return i;
  }
}