package configuracion; import java.io.File; import java.io.IOException; import javax.xml.transform.stream.StreamSource; import javax.xml.validation.Schema; import javax.xml.validation.SchemaFactory; import javax.xml.validation.Validator; import org.jdom.Document; import org.jdom.Element; import org.jdom.JDOMException; import org.jdom.input.SAXBuilder; /** * @author kdreamer */ public class Config { /** * @uml.property name="userBD" */ private String userBD; /** * @uml.property name="passBD" */ private String passBD; /** * @uml.property name="fuenteDatos" */ private String fuenteDatos; /** * @uml.property name="protocoloBD" */ private String protocoloBD; /** * @uml.property name="puertoBD" */ private String puertoBD; /** * @uml.property name="driverBD" */ private String driverBD; /** * @uml.property name="serverBD" */ private String serverBD; /** * @uml.property name="urlBD" */ private String urlBD; /** * @uml.property name="serverRMI" */ private String serverRMI; /** * @uml.property name="puertoRMI" */ private String puertoRMI; /** * @uml.property name="servicioRMI" */ private String servicioRMI; private String urlRMI; /** * @uml.property name="ficheroReservas" */ private String ficheroReservas; private final String USER_BD = "userBD"; private final String PASS_BD = "passBD"; private final String FUENTE_DATOS = "fuenteDatos"; private final String PROTOCLO_BD = "protocoloBD"; private final String PUERTO_BD = "puertoBD"; private final String DRIVER_BD = "driverBD"; private final String SERVER_BD = "serverBD"; private final String SERVER_RMI = "serverRMI"; private final String PUERTO_RMI = "puertoRMI"; private final String SERVICIO_RMI = "servicioRMI"; private final String FICHERO_RESERVAS = "ficheroReservas"; /** * @uml.property name="instancia" * @uml.associationEnd */ private static Config instancia = new Config(); private static final String FICHERO = "src/configuracion/config.xml"; private static final String SCHEMA = "src/configuracion/config.xsd"; private Config() { /* fuenteDatos= "BDCasasRurales"; protocoloBD = "jdbc:odbc"; puertoBD ="3306"; driverBD ="sun.jdbc.odbc.JdbcOdbcDriver"; serverBD = "localhost"; serverRMI = "localhost"; puertoRMI = "1099"; servicioRMI = "casaRural2010"; ficheroReservas= "numeroReserva.txt"; urlBD = protocoloBD + "://" + serverBD + ":" + puertoBD + "/" + fuenteDatos; urlBD= protocoloBD+ ":" + fuenteDatos; urlRMI = "rmi://" + serverRMI + ":" + puertoRMI + "/" + servicioRMI; */ try { if (!validarXML()) { System.out.println("Error en la configuracion de la aplicacion."); System.exit(-3); } SAXBuilder builder = new SAXBuilder(); Document doc = builder.build(FICHERO); Element raiz = doc.getRootElement(); userBD = raiz.getChild(USER_BD).getText(); passBD = raiz.getChild(PASS_BD).getText(); serverBD = raiz.getChild(SERVER_BD).getText(); fuenteDatos = raiz.getChild(FUENTE_DATOS).getText(); driverBD = raiz.getChild(DRIVER_BD).getText(); protocoloBD = raiz.getChild(PROTOCLO_BD).getText(); puertoBD = raiz.getChild(PUERTO_BD).getText(); serverRMI = raiz.getChild(SERVER_RMI).getText(); puertoRMI = raiz.getChild(PUERTO_RMI).getText(); servicioRMI = raiz.getChild(SERVICIO_RMI).getText(); ficheroReservas = raiz.getChild(FICHERO_RESERVAS).getText(); urlBD = protocoloBD + ":"+ fuenteDatos; urlRMI = "rmi://" + serverRMI + ":" + puertoRMI + "/" + servicioRMI; } catch (JDOMException e1) { System.out.println("Error al leer el fichero de configuracion.\n"); System.out.println(e1.getMessage()); System.exit(-1); } catch (IOException e1) { System.out .println("No se ha podido leer el fichero de configuracion.\n"); System.exit(-2); } } private boolean validarXML() { boolean correcto = false; SchemaFactory schemaFactory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema"); try { Schema schemaGrammar = schemaFactory.newSchema(new File(SCHEMA)); Validator schemaValidator = schemaGrammar.newValidator(); schemaValidator.validate(new StreamSource(FICHERO)); correcto = true; } catch (Exception e) { System.out.println(e.getMessage()); } return correcto; } public static Config getInstance() { return instancia; } /** * @return * @uml.property name="userBD" */ public String getUserBD() { return userBD; } /** * @return * @uml.property name="passBD" */ public String getPassBD() { return passBD; } /** * @return * @uml.property name="driverBD" */ public String getDriverBD() { return driverBD; } /** * @return * @uml.property name="fuenteDatos" */ public String getFuenteDatos() { return fuenteDatos; } /** * @return * @uml.property name="protocoloBD" */ public String getProtocoloBD() { return protocoloBD; } /** * @return * @uml.property name="puertoBD" */ public String getPuertoBD() { return puertoBD; } /** * @return * @uml.property name="serverBD" */ public String getServerBD() { return serverBD; } /** * @return * @uml.property name="urlBD" */ public String getUrlBD() { return urlBD; } /** * @return * @uml.property name="serverRMI" */ public String getServerRMI() { return serverRMI; } /** * @return * @uml.property name="puertoRMI" */ public String getPuertoRMI() { return puertoRMI; } /** * @return * @uml.property name="servicioRMI" */ public String getServicioRMI() { System.out.println("FEO "+ servicioRMI); return servicioRMI; } /** * @return * @uml.property name="ficheroReservas" */ public String getFicheroReservas() { return ficheroReservas; } public String getUrlRmi() { return urlRMI; } public String toString() { return urlBD + "\nUser: " + userBD + "\nPass: " + passBD + "\nDriver: " + driverBD + "\nRMI: " + urlRMI + "\nFichero reservas: " + ficheroReservas; } }