private Command parse(String userInput)
   {
      if (userInput == null)
      {
         return null;
      }

      StringTokenizer tokenizer = new StringTokenizer(userInput);
      if (tokenizer.countTokens() == 0)
      {
         return null;
      }

      CommandName commandName = null;
      String userName = null;
      float amount = 0;
      int userInputTokenNo = 1;

      while (tokenizer.hasMoreTokens())
      {
         switch (userInputTokenNo)
         {
            case 1:
               try
               {
                  String commandNameString = tokenizer.nextToken();
                  commandName = CommandName.valueOf(CommandName.class, commandNameString);
               }
               catch (IllegalArgumentException commandDoesNotExist)
               {
                  System.out.println("Illegal command");
                  return null;
               }
               break;
            case 2:
               userName = tokenizer.nextToken();
               break;
            case 3:
               try
               {
                  amount = Float.parseFloat(tokenizer.nextToken());
               }
               catch (NumberFormatException e)
               {
                  System.out.println("Illegal amount");
                  return null;
               }
               break;
            default:
               System.out.println("Illegal command");
               return null;
         }
         userInputTokenNo++;
      }
      return new Command(commandName, userName, amount);
   }