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

import java.util.*;
import servidor.utiles.*;

public class CursorVinculados implements MemCursor {

   MemTablaCandidatos tabla;
   ArrayList<RegistroCandidatos> indice;
   int n;
   int total;
   RegistroCandidatos regActual = null;

   public CursorVinculados(MemTablaCandidatos tabla) {
      this.tabla = tabla;
      indice = new ArrayList<>();
   }

   public void actualizar(String clave) {
      indice.clear();
      for (int i = 0; i < tabla.filas.size(); i++) {
         RegistroCandidatos reg = tabla.registro(i);
         if (reg.getTurno().equals(Global.main.getTurno()) &&
                 reg.getEstado().equals("X") &&
                 reg.getCitaVinculada().equals(clave)) {
            indice.add(reg);
         }
      }
      total = indice.size();
      principio();
   }

   public RegistroCandidatos buscar(Object key) {
      return null;
   }

   @Override
   public boolean haySiguiente() {
      return (n < total - 1);
   }

   @Override
   public MemRegistro siguiente() {
      n++;
      if (n < total) {
         return indice.get(n);
      }
      return null;
   }

   @Override
   public void principio() {
      n = -1;
   }

   public int actual() {
      return n;
   }

   public void update(MemRegistro reg) {
      try {
         tabla.update(reg);
      } catch (Exception exc) {}
   }

   @Override
   public int count() {
      return indice.size();
   }
}
