/** * Obtém os relacionamentos categoria/atributo para a categoria informada * * @param objCategoriaTalento Categoria de talento desejada * @return List Contendo os registros * @throws CDException se ocorrer algum erro relacionado ao negócio */ public List obterCategoriaAtributosTalento(CategoriaTalento objCategoriaTalento) throws CDException { if (log.isDebugEnabled()) { log.debug("Entrada no metodo"); } // Instancia DAO e obtém o registro pela chave CategoriaAtributoTalentoDAO objCategoriaAtributoTalentoDAO = new CategoriaAtributoTalentoDAO(); List lstCategoriaAtributosTalento = null; try { lstCategoriaAtributosTalento = objCategoriaAtributoTalentoDAO.obterPorCategoriaTalento(objCategoriaTalento); objCategoriaAtributoTalentoDAO.inicializarAtributoTalento(lstCategoriaAtributosTalento); } catch (Exception daoe) { CDException.dispararExcecao(daoe); } finally { DAO.desconectar(); } return lstCategoriaAtributosTalento; }
private void verificarValoracoesObrigatorias( CategoriaTalento objCategoriaTalento, List lstAtributosTalentoValorados) throws CDException { try { // Declarações CategoriaAtributoTalentoDAO objCategoriaAtributoTalentoDAO = new CategoriaAtributoTalentoDAO(); // Obtém categoria/atributos da categoria List lstCategoriaAtributosTalento = objCategoriaAtributoTalentoDAO.obterPorCategoriaTalento(objCategoriaTalento); // Verifica os atributos de talento obrigatórios Iterator itrCategoriaAtributosTalento = lstCategoriaAtributosTalento.iterator(); while (itrCategoriaAtributosTalento.hasNext()) { // Obtém categoria/atributo atual e marca a presença como falsa CategoriaAtributoTalento objCategoriaAtributoTalento = (CategoriaAtributoTalento) itrCategoriaAtributosTalento.next(); boolean blnPresente = false; boolean blnPreenchido = false; // Verifica o nome do atributo de talento String strNomeCampo; if (objCategoriaAtributoTalento.getApelido() == null || "".equals(objCategoriaAtributoTalento.getApelido())) { strNomeCampo = objCategoriaAtributoTalento.getAtributoTalento().getNome(); } else { strNomeCampo = objCategoriaAtributoTalento.getApelido(); } // Verifica se o atributo está presente e foi preenchido Iterator itrAtributosTalentoValorados = lstAtributosTalentoValorados.iterator(); while (itrAtributosTalentoValorados.hasNext()) { AtributoTalentoValorado objAtributoTalentoValorado = (AtributoTalentoValorado) itrAtributosTalentoValorados.next(); if (objCategoriaAtributoTalento .getIdentificador() .equals( objAtributoTalentoValorado.getCategoriaAtributoTalento().getIdentificador())) { blnPresente = true; if (objAtributoTalentoValorado.getValoracao() != null && !"".equals(objAtributoTalentoValorado.getValoracao())) { blnPreenchido = true; break; } } } // Verifica se o atributo não está presente e é obrigatório if (!blnPreenchido && "S".equals(objCategoriaAtributoTalento.getIndicativoObrigatoriedade())) { // Se for obrigatório, dispara um erro throw new CDException("O atributo " + strNomeCampo + " é obrigatório"); } else if (!blnPresente) { // Se não for obrigatório, cria valoração vazia e insere na lista AtributoTalentoValorado objAtributoTalentoValorado = new AtributoTalentoValorado(); objAtributoTalentoValorado.setCategoriaAtributoTalento(objCategoriaAtributoTalento); objAtributoTalentoValorado.setValoracao(""); lstAtributosTalentoValorados.add(objAtributoTalentoValorado); } } } catch (Exception daoe) { CDException.dispararExcecao(daoe); } finally { DAO.desconectar(); } }