private Element crearEstructuraXML() { Element historialNotas = new Element(ConstantesArchivosXML.SUPERPADRE); Query q = entityManager.createQuery(ConsultasJpql.HISTORIAL_NOTAS_ESTUDIANTES); @SuppressWarnings("unchecked") List<Usuario> usuarios = (List<Usuario>) q.getResultList(); for (Usuario usuario : usuarios) { Element usuarioXML = crearXMLUsuario(usuario); Query q2 = entityManager.createQuery(ConsultasJpql.HISTORIAL_NOTAS); q2.setParameter("parametro", usuario.getId()); @SuppressWarnings("unchecked") List<HistorialNotas> notasCurso = (List<HistorialNotas>) q2.getResultList(); for (HistorialNotas curso : notasCurso) { Element cursoXML = crearXMLCurso( curso.getGrupoCurso().getCursoGrupo(), curso.getNota(), curso.getGrupoCurso().getIdGrupo(), curso.getGrupoCurso().getSemestre()); usuarioXML.addContent(cursoXML); } historialNotas.addContent(usuarioXML); } return historialNotas; }
/* * (non-Javadoc) * * @see com.mydomain.maizsoft.cargaarchivos.ArchivoXML#read() */ @Override public void read() { @SuppressWarnings("deprecation") SAXBuilder leer = new SAXBuilder(false); try { Document document = leer.build(getPath() + getNombre()); Element raiz = document.getRootElement(); raiz.getAttributeValue(ConstantesArchivosXML.SUPERPADRE); Element padre = raiz.getChild(ConstantesArchivosXML.PADRE); List usuarios = raiz.getChildren(ConstantesArchivosXML.PADRE); Iterator padres = usuarios.iterator(); while (padres.hasNext()) { Element elePadre = (Element) padres.next(); Element idPadre = elePadre.getChild(ConstantesArchivosXML.PADREID); List cursos = elePadre.getChildren(ConstantesArchivosXML.HIJO); Iterator hijos = cursos.iterator(); long var2 = Long.parseLong(idPadre.getText()); HistorialNotas nueva = new HistorialNotas(); nueva.setUserAccount(entityManager.find(Usuario.class, var2)); while (hijos.hasNext()) { Element eleHijo = (Element) hijos.next(); Element idHijo = eleHijo.getChild(ConstantesArchivosXML.HIJOID); Element semestre = eleHijo.getChild(ConstantesArchivosXML.HIJOSEMESTRE); Element nota = eleHijo.getChild(ConstantesArchivosXML.HIJONOTA); long var = Long.parseLong(idHijo.getText()); nueva.setGrupoCurso(entityManager.find(GrupoCurso.class, var)); double notad = Double.parseDouble(nota.getText()); nueva.setSemestre(semestre.getText()); nueva.setNota(notad); entityManager.persist(nueva); } } } catch (Exception e) { FacesMessages mensaje = (FacesMessages) Component.getInstance(FacesMessages.class); mensaje.add("Se produjo un error técnico :("); } FacesMessages mensaje = (FacesMessages) Component.getInstance(FacesMessages.class); mensaje.add("Proceso exitoso :-)"); }