/** simuliert ein einfaches Kombinationsschloss 
 *
 * @author Jan Johannsen
 * @version 0.1
 */
public class Schloss
{

    private String kombination ;
    private String einstellung ; 
    private boolean istOffen ;

    /** erzeugt ein Schloss mit gegebener Kombination 
     *
     * @param neueKombination Kombination fuer das neue Schloss
     * Annahme: neueKombination besteht aus drei Grossbuchstaben.
     */
    public Schloss(String neueKombination) 
    {
	kombination = neueKombination ; 
	istOffen = false ; 
	einstellung = "aaa" ; 
    }

    /** stellt einen Buchstaben der Kombination ein 
     * 
     * @param buchstabe der eingestellte Buchstabe
     */ 
    public void einstellen(String buchstabe)
    {
        buchstabe = buchstabe.substring(0,1) ;
	if ( buchstabe.compareTo("A") >= 0 && buchstabe.compareTo("Z") <= 0)
	    einstellung = einstellung.substring(1) + buchstabe ;  
    }
 
    /** versucht das Schloss zu oeffnen 
     */
    public void oeffnen() 
    {
	if ( kombination.equals(einstellung) ) 
	    istOffen = true ; 
    }
 
    /** schliesst das Schloss 
     */
    public void schliessen()
    {
	istOffen = false ; 
	einstellung = "aaa" ; 
    }

    /** testet, ob das Schloss offen ist
     */
    public boolean istOffen()
    {
	return istOffen ;
    }

}
