/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.modelo;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
/**
*
* @author metalklesk
*/
public class AccesoDatos {
private String archivo
= System.
getProperty("
;user.
home"
;) + "
;/usuarios.
xml"
;;
private static AccesoDatos datos = new AccesoDatos();
private AccesoDatos() {
try {
documento
= (Document) (((DocumentBuilderFactory.
newInstance()).
newDocumentBuilder()).
parse(new File(archivo
)));
} catch (SAXException ex) {
Logger.getLogger(AccesoDatos.class.getName()).log(Level.SEVERE, null, ex);
Logger.getLogger(AccesoDatos.class.getName()).log(Level.SEVERE, null, ex);
} catch (ParserConfigurationException ex) {
Logger.getLogger(AccesoDatos.class.getName()).log(Level.SEVERE, null, ex);
}
}
public static AccesoDatos getInstance() {
return datos;
}
NodeList hijos = raiz.getElementsByTagName("usuario");
Usuario usuario = null;
for(int i=0; i<hijos.getLength(); i++) {
String x
= elemento.
getAttribute("
;user
"
;);
String y
= elemento.
getAttribute("
;passwd
"
;);
if(x.equalsIgnoreCase(user) && y.equalsIgnoreCase(passwd)) {
usuario = new Usuario();
usuario.
setId(Integer.
parseInt(elemento.
getAttribute("
;id
"
;)));
usuario.setUser(x);
usuario.setPasswd(y);
usuario.
setActivo(Boolean.
parseBoolean(elemento.
getAttribute("
;activo
"
;)));
break;
}
}
return usuario;
}
public boolean setUsuario(Usuario usuario) {
NodeList hijos = raiz.getElementsByTagName("usuario");
boolean respuesta = false;
for(int i=0; i<hijos.getLength(); i++) {
int id
= Integer.
parseInt(elemento.
getAttribute("
;id
"
;));
if(id == usuario.getId()) {
elemento.
setAttribute("
;id
"
;,
String.
valueOf(id
));
elemento.setAttribute("user", usuario.getUser());
elemento.setAttribute("passwd", usuario.getPasswd());
elemento.
setAttribute("
;activo
"
;,
String.
valueOf(usuario.
isActivo()));
respuesta = actualizarUsuarios();
break;
}
}
return respuesta;
}
private boolean actualizarUsuarios() {
documento.getDocumentElement().normalize();
try {
DOMSource source = new DOMSource(documento);
TransformerFactory transFactory = TransformerFactory.newInstance();
Transformer transformer = transFactory.newTransformer();
transformer.transform(source, result);
return true;
} catch (TransformerException ex) {
Logger.getLogger(AccesoDatos.class.getName()).log(Level.SEVERE, null, ex);
return false;
Logger.getLogger(AccesoDatos.class.getName()).log(Level.SEVERE, null, ex);
return false;
}
}
}