Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package modelo; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.text.ParseException; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped; import org.jdom2.Attribute; import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.JDOMException; import org.jdom2.filter.Filter; import org.jdom2.input.SAXBuilder; import org.jdom2.output.XMLOutputter; /** * * @author scarlet */ @ManagedBean @RequestScoped public class RegistroCitaXML { /** * Creates a new instance of RegistroCitaXML */ public RegistroCitaXML() { } private Element raiz; private Document documento; private String ruta; public RegistroCitaXML(File archivoXML) { this.ruta = archivoXML.getAbsolutePath(); if (archivoXML.exists()) { abrirArchivo(); } else { crearArchivo(); } } public void crearArchivo() { raiz = new Element("citas"); documento = new Document(raiz); guardar(); } public void guardar() { XMLOutputter xMLOutputter = new XMLOutputter(); try { xMLOutputter.output(documento, new PrintWriter(ruta)); } catch (IOException ex) { Logger.getLogger(RegistroUsuarioXML.class.getName()).log(Level.SEVERE, null, ex); } } public void abrirArchivo() { try { SAXBuilder sAXBuilder = new SAXBuilder(); sAXBuilder.setIgnoringElementContentWhitespace(true); documento = sAXBuilder.build(ruta); raiz = documento.getRootElement(); } catch (JDOMException | IOException ex) { System.out.println("error"); } } public boolean verificarCita(String hora, String paciente, Date fecha, String especialidad) { boolean state = false; List<Element> listaE = (List<Element>) raiz.getChildren(); for (Element listaE1 : listaE) { if (listaE1.getChildText("nombre").equals(paciente) && listaE1.getChildText("especialidad").equals(especialidad) && listaE1.getChildText("hora").equals(hora) && listaE1.getChildText("fecha").equals(fecha.toString())) { state = true; } else { state = false; } } return state; } public String addCita(Cita cita, Usuario usuario) throws IOException { if (verificarCita(cita.getHora(), usuario.getNombre(), cita.getFecha(), cita.getEspecialidad()) != true) { Element eCita = new Element("cita"); Element nombre = new Element("nombre"); Element telefono = new Element("telefono"); Element fechaNacimiento = new Element("fechaNacimiento"); Element sexo = new Element("sexo"); Element direccion = new Element("direccion"); Element correo = new Element("correo"); Element fechaDeCita = new Element("fechaDeCita"); Element hora = new Element("hora"); Element especialidad = new Element("especialidad"); Attribute cedula = new Attribute("cedula", usuario.getCedula()); nombre.addContent(usuario.getNombre()); telefono.addContent(usuario.getTelefono()); fechaNacimiento.addContent(usuario.getFechaNacimiento().toString()); sexo.addContent(usuario.getSexo()); direccion.addContent(usuario.getDireccion()); correo.addContent(usuario.getCorreo()); fechaDeCita.addContent(cita.getFecha().toString()); hora.addContent(cita.getHora()); especialidad.addContent(cita.getEspecialidad()); eCita.setAttribute(cedula); eCita.addContent(nombre); eCita.addContent(telefono); eCita.addContent(fechaNacimiento); eCita.addContent(sexo); eCita.addContent(direccion); eCita.addContent(correo); eCita.addContent(fechaDeCita); eCita.addContent(hora); eCita.addContent(especialidad); raiz.addContent(eCita); this.guardar(); return "historialCitas"; } return "errorMessage"; } public ArrayList<Cita> getCitasEspecificas(String correo) throws ParseException { ArrayList<Cita> listaCitas = new ArrayList<>(); Cita cita; Usuario usuario; List<Element> listaE = (List<Element>) raiz.getChildren(); for (Element listaE1 : listaE) { if (listaE1.getChildText("correo").equals(correo)) { usuario = new Usuario(); Date fecha = new Date(listaE1.getChildText("fechaNacimiento")); Date fecha2 = new Date(listaE1.getChildText("fechaDeCita")); usuario.setCedula(listaE1.getAttributeValue("cedula")); usuario.setNombre(listaE1.getChildText("nombre")); usuario.setTelefono(listaE1.getChildText("telefono")); usuario.setFechaNacimiento(fecha); usuario.setSexo(listaE1.getChildText("sexo")); usuario.setCorreo(listaE1.getChildText("correo")); cita = new Cita(); cita.setFecha(fecha2); cita.setEspecialidad(listaE1.getChildText("especialidad")); cita.setHora(listaE1.getChildText("hora")); cita.setUsuario(usuario); listaCitas.add(cita); } } return listaCitas; } public ArrayList<Cita> getCitas() throws ParseException { ArrayList<Cita> listaCitas = new ArrayList<>(); Cita cita; Usuario usuario; List<Element> listaE = (List<Element>) raiz.getChildren(); for (Element listaE1 : listaE) { usuario = new Usuario(); Date fecha = new Date(listaE1.getChildText("fechaNacimiento")); Date fecha2 = new Date(listaE1.getChildText("fechaDeCita")); usuario.setCedula(listaE1.getAttributeValue("cedula")); usuario.setNombre(listaE1.getChildText("nombre")); usuario.setTelefono(listaE1.getChildText("telefono")); usuario.setFechaNacimiento(fecha); usuario.setSexo(listaE1.getChildText("sexo")); usuario.setCorreo(listaE1.getChildText("correo")); cita = new Cita(); cita.setFecha(fecha2); cita.setEspecialidad(listaE1.getChildText("especialidad")); cita.setHora(listaE1.getChildText("hora")); cita.setUsuario(usuario); listaCitas.add(cita); } return listaCitas; } public ArrayList<String> getArrayDeCitas(String correo) { ArrayList<String> listaCitas = new ArrayList<>(); List<Element> listaE = (List<Element>) raiz.getChildren(); for (Element listaE1 : listaE) { if (listaE1.getChildText("correo").equals(correo)) { listaCitas.add(listaE1.getChildText("especialidad")); } } return listaCitas; } public Element buscarCitaXCorreo(String correo) throws ParseException { Cita cita; Usuario usuario; List<Element> listaE = (List<Element>) raiz.getChildren(); for (Element listaE1 : listaE) { if (listaE1.getChildText("correo").equals(correo)) { return listaE1; } } return null; } public void eliminarCita(String correo) throws IOException, ParseException { raiz.removeContent(buscarCitaXCorreo(correo)); guardar(); } }