Exemplo n.º 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);
    }
  }
Exemplo n.º 2
0
  /**
   * Recupera a lista de transações criadas para as atividades.
   *
   * @param fluxos fluxos definidos pelo usuário
   * @return {@link List} de {@link TransacaoAtividade}
   */
  private List<TransacaoAtividade> getTransacoes(String[] fluxos) {
    List<TransacaoAtividade> lista = new ArrayList<TransacaoAtividade>();
    if (fluxos != null) {
      TransacaoAtividade transacao;
      Atividade atividadeAnterior;
      Atividade atividadePosterior;
      for (String fluxo : fluxos) {
        String[] atividades = fluxo.split(","); // Formato: <origem>,<destino>

        transacao = new TransacaoAtividade();
        atividadeAnterior = new Atividade();
        atividadePosterior = new Atividade();

        atividadeAnterior.setId(Integer.parseInt(atividades[0]));
        atividadePosterior.setId(Integer.parseInt(atividades[1]));

        transacao.setAnterior(atividadeAnterior);
        transacao.setPosterior(atividadePosterior);
        lista.add(transacao);
      }
    }
    return lista;
  }