001
002import java.util.HashMap;
003/**
004 * This class is part of the "Pere-noel" application. 
005 * "Pere Noel" is a very simple, text based adventure game.
006 * 
007 * This class holds an enumeration of all command words known to the game.
008 * It is used to recognise commands as they are typed in.
009 *
010 * @author  Célia PRIOL & Benoît CHAUVEAU
011 */
012
013public class CommandWords
014{
015    // a constant array that holds all valid command words
016    
017        //"go", "quit", "help", "look","eat","back","take","drop"
018    ;
019    private HashMap<String, CommandWord> validCommands;
020    /**
021     * Constructor - initialise the command words.
022     */
023    public CommandWords()
024    {
025//         validCommands = new HashMap<String, CommandWord>();
026//         validCommands.put("help", CommandWord.HELP);
027//         validCommands.put("quit", CommandWord.QUIT);
028//         validCommands.put("go", CommandWord.GO);
029//         validCommands.put("look", CommandWord.LOOK);
030//         validCommands.put("eat", CommandWord.EAT);
031//         validCommands.put("take", CommandWord.TAKE);
032//         validCommands.put("drop", CommandWord.DROP);
033//         validCommands.put("back", CommandWord.BACK);  
034     validCommands = new HashMap<String, CommandWord>();
035        for(CommandWord command : CommandWord.values()) {
036            if(command != CommandWord.UNKNOWN) {
037                validCommands.put(command.toString(), command);
038            }
039        }
040
041    }
042
043    /**
044     * Check whether a given String is a valid command word. 
045     * @return true if a given string is a valid command,
046     * false if it isn't.
047     */
048    public boolean isCommand(String aString)
049    {
050      // for(int i = 0; i < validCommands.length; i++) {
051      // if(validCommands[i].equals(aString))
052      // return true;
053      // }        
054      // return false;
055
056       return validCommands.containsKey(aString);
057    }
058    
059        public CommandWord getCommandWord(String commandWord)
060    {
061        CommandWord command = validCommands.get(commandWord);
062        if(command != null) {
063            return command;
064        }
065        else {
066            return CommandWord.UNKNOWN;
067        }
068    }
069    /**
070     * Retourne une String de toutes les commandes possibles.
071     */
072    public String showAll() 
073    {StringBuilder commands = new StringBuilder();
074    for(String command : validCommands.keySet())
075{
076    commands.append(" "+command );
077}
078return commands.toString();
079}
080    
081}