/* 
* Copyright 2016 Agencia Estatal de Administración Tibutaria
*
* Licencia con arreglo a la EUPL, Versión 1.1 o –en cuanto
* sean aprobadas por la Comisión Europea– versiones
* posteriores de la EUPL (la «Licencia»);
* Solo podrá usarse esta obra si se respeta la Licencia.
* Puede obtenerse una copia de la Licencia en:
*  
* https://joinup.ec.europa.eu/software/page/eupl
*  
* Salvo cuando lo exija la legislación aplicable o se acuerde
* por escrito, el programa distribuido con arreglo a la
* Licencia se distribuye «TAL CUAL», SIN GARANTÍAS NI CONDICIONES
* DE NINGÚN TIPO, ni expresasni implícitas.
*
* Véase la Licencia en el idioma concreto que rige los permisos y 
* limitaciones que establece la Licencia.
*/ 

package servidor.datos;

import java.sql.*;
import java.util.*;

/**
 *
 * @author admf11600q4
 */
public class ConfiguracionEnBd {
   private final HashMap<String, RegistroConf> valores;
   private boolean cargado = false;
   private String idServidor = "0";

   public ConfiguracionEnBd() {
      valores = new HashMap<>();
   }

   public boolean cargar() {
      try {
         ResultSet rs = BaseDatos.bd().abrirTabla("SELECT * FROM confiSer");
         while(rs.next()) {
            RegistroConf rc = new RegistroConf();
            rc.clave = rs.getString(1);
            rc.valor = rs.getString(2);
            valores.put(rc.clave.toLowerCase(), rc);
         }
         rs.close();
         cargado = true;
         return true;
      } catch(Exception exc) {
      }
      return false;
   }

   public String getIdServidor() {
      return idServidor;
   }
   
   public boolean IdServidorPresente() {
      if(!cargado && !cargar()) {
         return false;
      }
      if(!valores.containsKey("servidor")) {
         return false;  // no hay clave en la tabla, no arrancamos
      }
      RegistroConf reg = valores.get("servidor");
      idServidor = reg.valor;
      try {
         Integer.parseInt(idServidor);
      } catch(NumberFormatException exc) {
         return false;  // no es un número, no arrancamos 
      }
      return true;
   }

   class RegistroConf {
      public String clave;
      public String valor;
   }
}
