© APSIS GmbH extern.gif (1249 Byte), Polling, 2000


EinEimer

Statischer Datenbehälter aus der Bibliothek für das Lehrbuch Programmieren mit Java

Dokumentation Programmtext ohne Dokumentation


/*
 * @(#)EinEimer.java
 *	Bibliothek für das Lehrbuch in Java
 * @author Prof. Solymosi, (c): APSIS GmbH
 * @version 3.0
 * @date 28. August 2000
*/
package lehrbuch;
/** Statischer Datenbehälter "Animierter Eimer".
Eine Klasse zum Erweitern (Applet).
Der Eimer wird am Bildschirm zu Beginn dargestellt.
Er kann (mit Getränk) gefüllt und entleert werden (Methoden "fuellen" und "entleeren").
Als Getränke stehen "EinEimer.WASSER" und "EinEimer.WEIN" zur Verfügung. 
Wenn die Reihenfolgebedingungen verletzt werden, ungeprüfte Ausnahmen "lehrbuch.VollFehler" und "lehrbuch.LeerFehler" werden ausgelöst.
Reihenfolgebedingungen:
Als erster Mutator muss "fuellen" aufgerufen werden;
Anschließend dürfen "entleeren" und "fuellen" nur abwechselnd aufgerufen werden, sonst Ausnahme
"inhalt" darf auch nur bei vollem Eimer gerufen werden, sonst Ausnahme
*/
public class EinEimer extends java.applet.Applet {
	// öffentliche Konstanten:
	public final static Getraenk WASSER = Eimer.WASSER;
	public final static Getraenk WEIN = Eimer.WEIN;
	// Wertefunktionen:
	public static Getraenk wasser() {
		return WASSER;
	}
	public static Getraenk wein() {
		return WEIN;
	}
	// Mutatoren:
	/** der Eimer wird animiert mit "getraenk" gefüllt, wenn leer.
		@param getraenk const WASSER oder WEIN
		@exception VollFehler (ungeprüft) wenn voll
	*/
	public static void fuellen (final Getraenk getraenk) throws VollFehler {
		/** Eimer wird animiert mit "getraenk" gefüllt, wenn leer; 
			ansonsten Ausnahme */
		try {
			eimer.fuellen(getraenk);
		}
		catch (VollAusnahme ausnahme) {
			throw new VollFehler();
		}
	}
	/** der Eimer wird animiert gefüllt, wenn leer.
		@exception VollFehler (ungeprüft) wenn voll
	*/
	public static void fuellen() throws VollFehler { 
		fuellen(WASSER);
	}
	/** Eimer wird animiert entleert, wenn voll
		@exception LeerFehler (ungeprüft) wenn Eimer leer
	*/
	public static void entleeren() throws LeerFehler { 
		try {
			eimer.entleeren();
		}
		catch (LeerAusnahme ausnahme) {
			throw new LeerFehler();
		}
	}
	// Informatoren:
	/** Zustandsinformator
		const
		@return true wenn der Eimer gefüllt ist
	*/
	public static boolean gefuellt() {
		return eimer.gefuellt();
	}
	/** Informator
		const
		@return enthaltener Getränk
		@exception LeerFehler (ungeprüft) wenn Eimer leer
	*/
	public static Getraenk inhalt() throws LeerFehler { 
		try {
			return eimer.inhalt(); // Ergebnis wird von einem Informator geliefert
		} 
		catch (LeerAusnahme ausnahme) {
			throw new LeerFehler();
		}
	}
	// Kommunikationsmethoden:
	/** Ausgabe eines Getraenks im Meldungsfenster.
		const
		Beim Aufruf erscheint ein Meldungsfenster. Es muss bestätigt werden.
		@param getraenk const das auszugebende Getränk
		@see EinEimer#meldung(String)
	*/
	public static void meldung(final Getraenk getraenk) { 
		Eimer.meldung(getraenk);
	}
	/** Ausgabe eines boolean Werts im Meldungsfenster.
		const
		Beim Aufruf erscheint ein Meldungsfenster. Es muß bestätigt werden.
		@param wert const der auszugebende Wert
		@see EinEimer#meldung(String)
	*/
	public static void meldung(final boolean wert) { 
		if (wert)
			Anim.meldung("TRUE");
		else
			Anim.meldung("FALSE");
	}
	/** Textausgabe im Meldungsfenster.
		const
		Beim Aufruf erscheint ein Meldungsfenster. Es muss bestätigt werden.
		@param text const der auszugebende Text
		@see Programm#meldung(String)
	*/
	public static void meldung(final String text) {
		Anim.meldung(text);
	}
	// private Teile:
	private static Eimer eimer; // klasseninternes Objekt
	// Initialisierung der Klassenkomponente:
	static {
		eimer = new Eimer();
		eimer.anzeigen();
	}
}

© APSIS GmbH extern.gif (1249 Byte), Polling, 2000