package tutorialJava.examenes.examen20250221.ejercicioD;

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

import tutorialJava.Utils;

public class Principal {

	private static List<SameNumberListener> listeners = 
			new ArrayList<SameNumberListener>();
	
	/**
	 * 
	 */
	public static void addSameNumberListener (SameNumberListener l) {
		listeners.add(l);
	}
	
	/**
	 * 
	 */
	public static void removeSameNumberListener (SameNumberListener l) {
		listeners.remove(l);
	}
	
	/**
	 * 
	 * @param n
	 */
	public static void fireSameNumbers(int n) {
		SameNumbersEvent e = new SameNumbersEvent(n);
		for (SameNumberListener sameNumberListener : listeners) {
			sameNumberListener.sameNumbers(e);
		}
	}
	/**
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		int n = 0, anterior;
		
		Mesa m = new Mesa();
		addSameNumberListener(m);
		Silla s = new Silla();
		addSameNumberListener(s);
		
		try {
			do {
				anterior = n;
				n = Utils.obtenerEnteroConDescripcion(
						"Dame un número igual o superior a 100:");
				
				// Si el número < 100 lanzo una exception
				if (n < 100) {
					throw new NumberUnder100Exception("El número " + n +
							" es inferior a 100. No permitido");
				}
				else if (n == anterior) {
					fireSameNumbers(n);
				}
			} while (true);
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

}
