diff --git a/src/Befehlswort.java b/src/Befehlswort.java index 2ea28b7..3e7e8ff 100644 --- a/src/Befehlswort.java +++ b/src/Befehlswort.java @@ -7,46 +7,49 @@ import java.util.HashSet; * @author tebe * @version 1.0 */ -public class Befehlswort { +public enum Befehlswort { - // Ein HashSet mit den gueltigen Befehlswoertern als Klassenvariable - private static final HashSet gueltigeBefehle = new HashSet(); - static { - gueltigeBefehle.add("gehe"); - gueltigeBefehle.add("beenden"); - gueltigeBefehle.add("hilfe"); - } + UNBEKANNT("unbekannt"), GEHE("gehe"), HILFE("hilfe"), BEENDEN("beenden"); - /** - * Konstruktor - initialisiere die Befehlswörter. + /* + Das Befehlswort als String */ - public Befehlswort() - { - // tut momentan nichts - } + private String befehl; - /** - * Pruefe, ob eine gegebene Zeichenkette ein gueltiger - * Befehl ist. - * - * @return 'true', wenn die gegebene Zeichenkette ein gueltiger - * Befehl ist, 'false' sonst. - */ - public static boolean istBefehl(String eingabe) - { - return gueltigeBefehle.contains(eingabe); - } - - /** - * Gibt die akzeptierten Befehlsworte als Text zurueck. - * - * @return Die akzeptierten Befehlsworte als Text - */ - public static String gibBefehlsworteAlsText() { - String text = ""; - for (String befehl : gueltigeBefehle) { - text = text + befehl + " "; + public static Befehlswort gibBefehlswort(String wort) { + for(Befehlswort befehlswort : Befehlswort.values()){ + if(befehlswort.getBefehl().equals(wort)) { + return befehlswort; + } } - return text; + return null; } + + public static String gibBefehlsworteAlsText() { + String string = ""; + for(Befehlswort befehlswort : Befehlswort.values()){ + string += befehlswort.getBefehl() + " "; + } + return string; + } + + /** + * Konstruktor - Speichere das Befehlswort als String + * @param befehlswort + */ + Befehlswort(String befehlswort) + { + this.befehl = befehlswort; + } + + /** + * Gibt das Datenfeld befehl zurueck. + * + * @return Das Befehlswort als String + */ + public String getBefehl() { + return befehl; + } + + } diff --git a/src/Kontroller.java b/src/Kontroller.java index e50577e..bab1ad7 100644 --- a/src/Kontroller.java +++ b/src/Kontroller.java @@ -1,3 +1,6 @@ +import java.util.Arrays; +import java.util.List; + /** * Diese Klasse verarbeitet Befehle vom Typ * {@link Befehl Befehl} und löst die dazu @@ -16,15 +19,16 @@ public class Kontroller { */ public boolean verarbeiteBefehl(Befehl befehl) { boolean macheWeiter = true; - String befehlswort = befehl.gibBefehlswort(); - if (Befehlswort.istBefehl(befehlswort)) { - - if (befehlswort.equals("gehe")) { - System.out.println("Befehl GEHE " + befehl.gibZweitesWort() + " wird ausgefuehrt"); - } else if (befehlswort.equals("hilfe")) { - System.out.println("Gueltige Befehle: " - + Befehlswort.gibBefehlsworteAlsText()); - } else if (befehlswort.equals("beenden")) { + String befehlswortString = befehl.gibBefehlswort(); + if (Arrays.asList(Befehlswort.gibBefehlsworteAlsText().split(" ")).contains(befehlswortString)) { + if (befehlswortString.equals(Befehlswort.GEHE.getBefehl())) { + System.out.println("Befehl LAUFE " + befehl.gibZweitesWort() + " wird ausgefuehrt"); + } else if (befehlswortString.equals(Befehlswort.HILFE.getBefehl())) { + System.out.println("Gueltige Befehle: "); + for(Befehlswort befehlswort : Befehlswort.values()) { + System.out.println(befehlswort.getBefehl()); + } + } else if (befehlswortString.equals(Befehlswort.BEENDEN.getBefehl())) { System.out.println("Befehl BEENDEN wird ausgefuehrt."); macheWeiter = false; } else {