/** * 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); } }
/** * 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; }