private Conta getConta(String nomeConta) throws ExtratoAnalyseException {
    ContaDAO dao = new ContaDAO();

    Conta conta = dao.getByNome(nomeConta);

    if (conta == null) {
      throw new ExtratoAnalyseException("Conta \"" + nomeConta + "\" não encontrada...");
    }

    return conta;
  }
  private List<InternalManualReference> makeManualRefList(ExtratoAnalyseSwitches switches)
      throws ExtratoAnalyseException {
    List<InternalManualReference> mrl = new ArrayList<InternalManualReference>();

    ContaDAO dao = new ContaDAO();

    for (ManualReference mr : switches.getManualRefList()) {
      InternalManualReference imr = new InternalManualReference();

      Conta conta = dao.getByNome(mr.getNomeConta());

      if (conta == null) {
        throw new ExtratoAnalyseException(
            "Referências manuais: conta " + mr.getNomeConta() + "não encontrada.");
      }

      imr.setConta(conta);
      imr.setRegex(mr.getRegex());

      mrl.add(imr);
    }

    return mrl;
  }
  private Conta resolveReference(ContaDAO contaDAO, String referencia) {
    // Consulta as referências manuais para resolver a conta
    for (InternalManualReference imr : manualRefList) {
      if (referencia.matches(imr.getRegex())) {
        return imr.getConta();
      }
    }

    // Se não conseguiu, vai para as referências automaticas
    Conta conta = contaDAO.resolveExtratoLine(banco, referencia);

    if (conta != null) {
      return conta;
    }

    return null;
  }