/* 
* 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 administrador;

import administrador.utiles.ConfiguracionBase;
import java.io.*;
import java.util.*;

public class ListaColasFavoritas extends ConfiguracionBase {

    private static final String nombreFichero = "ColasFavoritas.txt";
    public static boolean importado = false;
    public boolean noExiste = false;
    private static ListaColasFavoritas _yo = null;

    public static ListaColasFavoritas instanciaUnica() {
        if (_yo == null) {
            _yo = new ListaColasFavoritas();
        }
        return _yo;
    }

    private ListaColasFavoritas() {
        super();
        if (!super.cargar(nombreFichero)) {
            noExiste = true;
        }
    }

    public HashMap<String, String> colasServidor(String nombreServidor) {
        HashMap<String, String> hash = new HashMap<>();
        String strColas = valor(nombreServidor, "");
        if (strColas.length() == 0) {
            return null;
        }
        String[] colas = administrador.utiles.Global.split(strColas, ',');
        for (String cola : colas) {
            hash.put(cola, "");
        }
        return hash;
    }

    public void guardar(String clave, ArrayList<String> aColas) {
        StringBuilder s = new StringBuilder();
        for (String cola : aColas) {
            s.append(cola).append(",");
        }
        if (s.length() > 0) {
            s.setLength(s.length() - 1);
            ponValor(clave, s.toString());
            guardar();
        }
    }

    static void importarAntiguo() {
        if (importado) {
            return;
        }
        try {
            File file = new File(nombreFichero);
            BufferedReader bf = new BufferedReader(new FileReader(file));
            String linea;
            String servidorLocal = Configuracion.instanciaUnica().nombreServidorLocal;
            StringBuilder colas = new StringBuilder(servidorLocal);
            colas.append("=");
            while ((linea = bf.readLine()) != null) {
                linea = linea.trim();
                int l = linea.length();
                if (l == 0) {
                    continue;
                }
                if (l > 1) {
                    importado = true;
                    return;
                }
                colas.append(linea).append(",");
            }
            bf.close();
            PrintStream salida = new PrintStream(new FileOutputStream(file));
            colas.setLength(colas.length() - 1);
            salida.println(colas.toString());
            salida.close();
            importado = true;
        } catch (Exception exc) {
        }
    }
}
