package br.com.centralit.bpm.negocio;
import java.util.List;
import br.com.centralit.bpm.util.Enumerados.TipoFinalizacao;
public class Finalizacao extends ItemTrabalho {
public List<ItemTrabalho> resolve() throws Exception {
SequenciaFluxo sequenciaFluxo = new SequenciaFluxo(instanciaFluxo);
boolean bTodosExecutados = true;
List<ItemTrabalho> origens = sequenciaFluxo.getOrigens(this);
if (origens != null) {
for (ItemTrabalho itemOrigem : origens) {
if (!itemOrigem.finalizado()) {
bTodosExecutados = false;
break;
}
}
}
if (!bTodosExecutados)
return null;
if (elementoFluxoDto.getSubTipo() != null && elementoFluxoDto.getSubTipo().equals(TipoFinalizacao.Encadeada.name())) {
if (elementoFluxoDto.getNomeFluxoEncadeado() != null && elementoFluxoDto.getNomeFluxoEncadeado().trim().length() > 0) {
ExecucaoFluxo novoFluxo = ExecucaoFluxo.getInstancia(instanciaFluxo.getExecucaoFluxo());
novoFluxo.inicia(elementoFluxoDto.getNomeFluxoEncadeado(), null);
}
}
instanciaFluxo.verificaSLA(this);
instanciaFluxo.getExecucaoFluxo().encerra();
return null;
}
}