package examenes.examen20250221.ejercicio04.listener;

import examenes.examen20250221.ejercicio04.NumeroMenor100Exception;
import examenes.examen20250221.utils.Utils;

import java.util.ArrayList;
import java.util.List;

public class CheckeadorNums {
    private static int numAnterior;
    static List<NumsListener> listeners = new ArrayList<NumsListener>();

    public static void addNumRepetidoListener(NumsListener l) {
        listeners.add(l);
    }

    public static void removeNumRepetidoListener(NumsListener l) {
        listeners.remove(l);
    }

    private static void fireNumRepetido(int resultado) {
        for (NumsListener opl : listeners) {
            opl.numeroRepetido(new NumRepetidoEvent(resultado));
        }
    }


    public static int solicitarNumMayor100() throws NumeroMenor100Exception {
        int num = Utils.solicitarIntScannerInline("Introduzca un número igual o mayor que 100: ");
        if (num < 100) throw new NumeroMenor100Exception("El número " + num + " es menor de 100.");
        if (numAnterior == num) fireNumRepetido(num);
        numAnterior = num;
        return num;
    }
}
