예제 #1
0
  /**
   * Inicializa os mapas para a validação do fluxo.
   *
   * @param transacoes transações de atividades
   * @param mapAnteriores {@link Map} para armazenar as transações anteriores
   * @param mapPosteriores {@link Map} para armazenar as transações posteriores
   * @param listaAtividades {@link List} com as atividades
   * @throws NegocioException caso não haja fluxo definido
   */
  private void inicializarValidacaoFluxo(
      List<TransacaoAtividade> transacoes,
      Map<Integer, Integer> mapAnteriores,
      Map<Integer, Integer> mapPosteriores,
      List<Atividade> listaAtividades)
      throws NegocioException {
    // Valida para que haja definição de fluxos
    if ((listaAtividades != null)
        && !listaAtividades.isEmpty()
        && ((transacoes != null) && transacoes.isEmpty())) {
      throw new NegocioException("erro.fluxo.definicao.atividade");
    }

    for (Atividade atividade : listaAtividades) {
      mapAnteriores.put(atividade.getId(), null);
      mapPosteriores.put(atividade.getId(), null);
    }

    Integer anterior;
    Integer posterior;
    for (TransacaoAtividade transacaoAtividade : transacoes) {
      anterior = transacaoAtividade.getAnterior().getId();
      posterior = transacaoAtividade.getPosterior().getId();

      mapAnteriores.put(posterior, anterior);
      mapPosteriores.put(anterior, posterior);
    }
  }