package parziale.p251110;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;

public class Clinica {
	
	ArrayList<Paziente> pazienti = new ArrayList<Paziente>();
	
	// 1. Numero di pazienti Ricoverati
	public int pazientiRicoverati() {
		return pazienti.size();
	}
	
	// 2. Inserimento del paziente
	/*
	 * Dal momento che non ci è permesso adoperare 
	 * TreeSet per l'ordine e per l'unicità
	 */
	public boolean ricoveraPaziente(Paziente paziente) {
		// Se il paziente è nullo, nulla verrà aggiunto
		if (paziente == null) return false;
		
		// Controllo se il paziente è già presente nella lista ricoveri
		Iterator<Paziente> it = pazienti.iterator();
		while (it.hasNext()) {
			Paziente current = it.next();
			if (paziente.equals(current)) return false;	// Se è già presente un paziente con id uguale allora non viene aggiunto e ritorna false
		}
		
		// Aggiunta del paziente 
		ListIterator<Paziente> lit = pazienti.listIterator();
		while (lit.hasNext()) {
			Paziente current = lit.next();
			int cmp = current.compareTo(paziente);
			if (cmp > 0) {
				lit.add(paziente);
				return true;
			}
		}
		
		return false;
	}
	
}
