@Override public Resposta<Pacote> criar(Usuario autor, Pacote pacote, Projeto projetoSelecionado) { List<String> inconsistencias = validarEntradasCriacao(pacote, autor, projetoSelecionado); if (!inconsistencias.isEmpty()) { return UtilsNegocio.criarRespostaComErro(inconsistencias); } String recursoId = "recursoId-criar"; AutorizadorDeAcesso autorizador = new AutorizadorDeAcesso(recursoId, autor, projetoSelecionado); if (!autorizador.isAutorizado()) { return UtilsNegocio.criarRespostaComErro(autorizador.getDetalhes()); } pacote.setAbandonado(false); pacote.setDataCriacao(UtilsNegocio.buscarDataAtual()); pacote.setProjeto(projetoSelecionado); pacote.setIdProjeto(projetoSelecionado.getId()); inconsistencias = pacote.validar(); if (!inconsistencias.isEmpty()) { String menssagemErro = "Pacote inconsistente"; Logger.getLogger(GestorDePacotes.class.getName()).log(Level.SEVERE, null, menssagemErro); return UtilsNegocio.criarRespostaComErro(inconsistencias); } Andamento andamento = new Andamento(); andamento.setDataModificacao(pacote.getDataCriacao()); andamento.setDataPrevistaConclusao(pacote.getDataPrevistaRealizacao()); andamento.setDescricao("Criação do pacote"); andamento.setEstado(pacote.getEstado()); andamento.setPacote(pacote); andamento.setUsuarioDestinatario(null); andamento.setUsuarioRemetente(autor); inconsistencias = andamento.validar(); if (!inconsistencias.isEmpty()) { String menssagemErro = "Pacote inconsistente"; Logger.getLogger(GestorDePacotes.class.getName()).log(Level.SEVERE, null, menssagemErro); return UtilsNegocio.criarRespostaComErro(inconsistencias); } IDaoAndamento daoAndamento = new DaoAndamento(); IDaoPacote daoPacote = new DaoPacote(); Transacao transacao = null; try { transacao = Transacao.getInstance(); daoPacote.salvar(pacote, transacao); andamento.setIdPacote(pacote.getId()); daoAndamento.salvar(andamento, transacao); transacao.confirmar(); } catch (SQLException ex) { UtilsNegocio.fecharTransacao(getClass(), transacao, ex); } return UtilsNegocio.criarRespostaValida(pacote); }
private List<String> validarEntradasCriacao( Pacote pacote, Usuario autor, Projeto projetoSelecionado) { List<String> inconsistencias = new ArrayList<>(); if (pacote == null) { inconsistencias.add("Pacote não informado"); } if (autor == null || autor.getId() < 1) { inconsistencias.add("Usuário não informado"); } if (projetoSelecionado == null || projetoSelecionado.getId() < 1) { inconsistencias.add("Projeto não informado"); } return inconsistencias; }