/* 
* 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 monitor.utiles;

import java.util.*;
import monitor.*;

public class ListaTickets {

   SortedMap<String,String> lista;

   public ListaTickets() {
      lista = Collections.synchronizedSortedMap(new TreeMap<String,String>());
   }

   public void clear() {
      lista.clear();
   }

   public void put(String ticket) {
      String[] p = Global.split(ticket, '-');
      lista.put(p[0], p[1]);
   }

   public String[] generarDatosParaMostrar(ArrayList<String> validos) {
      synchronized (lista) {
         ArrayList<String> ll = new ArrayList<String>();
         for(String k : lista.keySet()) {
            if (validos.contains(k)) {
               ll.add(k + "-" + lista.get(k));
            }
         }
         String[] r = new String[ll.size()];
         return ll.toArray(r);
      }
   }

   public void actualizarListaPendientes(String msg) {
      try {
      synchronized (lista) {
         clear();
         String partes[] = Global.split(msg, '=');
         for (int i = 0; i < partes.length; i++) {
            put(partes[i]);
         }
      }
      } catch (Exception exc) {
         Ventana.logException("Error en 'actualizarListaPendientes'. Mensaje:\n" + msg, exc);
      }
   }
}
