
/**
 * Kontrolleur des Programms.
 * 
 * @author ISB-Arbeitskreis, Umsetzungshilfen Informatik 12
 * @version 1.0
 */
class KONTROLLEUR implements KONTROLLEURINTERFACE
{

    /* Die ereigniserzeugende Oberfl&auml;che */
    private OBERFLAECHENINTERFACE oberflaeche;
    
    /**
     * Besetzt das Attribut vor.
     */
    KONTROLLEUR ()
    {
        oberflaeche = null;
    }

    /**
     * Setzt die Oberfl&auml;che.
     * @param o die ereigniserzeugende Oberfl&auml;che
     */
    void OberflaecheSetzen (OBERFLAECHENINTERFACE o)
    {
        oberflaeche = o;
    }
    
    /**
     * Ausf&uuml;hren der Laufzeitmessungen.
     * @param anzahlElement Anzahl der Datenelemente in Liste bzw. Baum
     * @param anzahlSuchvorgaenge Anzahl der durchzuf&uuml;hrenden Suchverg&auml;nge f&uuml;r die Durchschnitssbildung
     * @param liste gibt an, ob in der Liste gesucht werden soll
     * @param baum gibt an, ob im Baum gesucht werden soll
     */
    public void SuchenAusfuehren (int anzahlElemente, int anzahlSuchvorgaenge, boolean liste, boolean baum)
    {
        Model. TESTSUCHE test;
        oberflaeche. ListenSuchzeitSetzen ("---");
        oberflaeche. BaumSuchzeitSetzen ("---");
        test = new Model. TESTSUCHE (anzahlElemente);
        test. DurchschnittsTest (anzahlSuchvorgaenge, liste, baum);
        if (liste)
        {
            oberflaeche. ListenSuchzeitSetzen ("" + test. ZeitFuerListensucheGeben ());
        }
        if (baum)
        {
            oberflaeche. BaumSuchzeitSetzen ("" + test. ZeitFuerBaumsucheGeben ());
        }
        
    }
    
    /**
     * Beendet das Programm.
     */
    public void BeendenAusfuehren ()
    {
        System. exit (0);
    }
}
