Author: aidan
Date: Tue Jan 13 01:26:41 2009
New Revision: 734081

URL: http://svn.apache.org/viewvc?rev=734081&view=rev
Log:
QPID-1528: Use central list of commands for parsing and completing.

Modified:
    
qpid/trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/CommandExecutionEngine.java
    
qpid/trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/CommandLineInterpreter.java

Modified: 
qpid/trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/CommandExecutionEngine.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/CommandExecutionEngine.java?rev=734081&r1=734080&r2=734081&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/CommandExecutionEngine.java
 (original)
+++ 
qpid/trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/CommandExecutionEngine.java
 Tue Jan 13 01:26:41 2009
@@ -58,6 +58,11 @@
     {
         _commands.put(name, newCommand);
     }
+    
+    public static Map<String, Class<? extends Command>> getCommands()
+    {
+        return _commands;
+    }
 
     public void runcommand()
     {

Modified: 
qpid/trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/CommandLineInterpreter.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/CommandLineInterpreter.java?rev=734081&r1=734080&r2=734081&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/CommandLineInterpreter.java
 (original)
+++ 
qpid/trunk/qpid/java/management/tools/qpid-cli/src/org/apache/qpid/CommandLineInterpreter.java
 Tue Jan 13 01:26:41 2009
@@ -22,6 +22,8 @@
 package org.apache.qpid;
 
 import java.io.PrintWriter;
+import java.util.HashSet;
+import java.util.Set;
 import java.util.StringTokenizer;
 
 import javax.management.MBeanServerConnection;
@@ -46,6 +48,13 @@
 
 public class CommandLineInterpreter
 {
+    private static final String OBJECT_VIRTUALHOST = "virtualhost";
+    private static final String OBJECT_USERMANAGEMENT = "usermanagement";
+    private static final String OBJECT_CONNECTION = "connection";
+    private static final String OBJECT_EXCHANGE = "exchange";
+    private static final String OBJECT_QUEUE = "queue";
+    private static final String COMMAND_QUIT = "quit";
+    private static final String COMMAND_EXIT = "exit";
 
     public static void main(String[] args)
     {
@@ -118,13 +127,9 @@
                  */
                 for (int i = 0; i < args.length; i++)
                 {
-                    if (args[i].compareTo("list") == 0 || 
args[i].compareTo("info") == 0
-                            || args[i].compareTo("view") == 0 || 
args[i].compareTo("viewcontent") == 0
-                            || args[i].compareTo("delete") == 0 || 
args[i].compareTo("move") == 0
-                            || args[i].compareTo("set") == 0 || 
args[i].compareTo("get") == 0)
+                    if 
(CommandExecutionEngine.getCommands().keySet().contains(args[i]))
                     {
                         oneshotmode(args, commandlineoptionparser, jmxc, mbsc);
-
                         return;
                     }
                 }
@@ -140,13 +145,18 @@
 
             /* prividing GNU readline features using Jline library */
             PrintWriter out = new PrintWriter(System.out);
-            reader.addCompletor(new ArgumentCompletor(new SimpleCompletor(new 
String[] { "get", "set", "list", "info",
-                    "exit", "quit", "delete", "move", "view", "viewcontent", 
"queue", "exchange", "connection",
-                    "usermanagement", "virtualhost" })));
+            SimpleCompletor completer = new SimpleCompletor(new String[] { 
+                    COMMAND_EXIT, COMMAND_QUIT, OBJECT_QUEUE, OBJECT_EXCHANGE, 
OBJECT_CONNECTION,
+                    OBJECT_USERMANAGEMENT, OBJECT_VIRTUALHOST});
+            for (String commandName : 
CommandExecutionEngine.getCommands().keySet())
+            {
+                completer.addCandidateString(commandName);
+            }
+            reader.addCompletor(new ArgumentCompletor(completer));
             while ((line = reader.readLine("qpid-admin-$ ")) != null)
             {
                 out.flush();
-                if (removeSpaces(line).equalsIgnoreCase("quit") || 
removeSpaces(line).equalsIgnoreCase("exit"))
+                if (removeSpaces(line).equalsIgnoreCase(COMMAND_QUIT) || 
removeSpaces(line).equalsIgnoreCase(COMMAND_EXIT))
                     break;
                 else if (line.length() == 0)
                     continue;


Reply via email to