From 8feee36de8e6042f928439b06a03d50018423afe Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Fri, 17 Aug 2007 00:53:26 +0000
Subject: [PATCH] The following modifications have the following goals:

---
 opends/src/server/org/opends/server/util/args/SubCommandArgumentParser.java |   53 ++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 36 insertions(+), 17 deletions(-)

diff --git a/opends/src/server/org/opends/server/util/args/SubCommandArgumentParser.java b/opends/src/server/org/opends/server/util/args/SubCommandArgumentParser.java
index 0aca8af..5d8a591 100644
--- a/opends/src/server/org/opends/server/util/args/SubCommandArgumentParser.java
+++ b/opends/src/server/org/opends/server/util/args/SubCommandArgumentParser.java
@@ -63,7 +63,7 @@
  * it is allowed to re-use subcommand-specific options for different purposes
  * between different subcommands.
  */
-public class SubCommandArgumentParser
+public class SubCommandArgumentParser extends ArgumentParser
 {
   // The argument that will be used to trigger the display of usage information.
   private Argument usageArgument;
@@ -138,6 +138,7 @@
   public SubCommandArgumentParser(String mainClassName, Message toolDescription,
                                   boolean longArgumentsCaseSensitive)
   {
+    super(mainClassName, toolDescription, longArgumentsCaseSensitive);
     this.mainClassName              = mainClassName;
     this.toolDescription            = toolDescription;
     this.longArgumentsCaseSensitive = longArgumentsCaseSensitive;
@@ -1496,7 +1497,7 @@
    * @return  A string containing usage information based on the defined
    *          arguments.
    */
-  public Message getUsage()
+  public String getUsage()
   {
     MessageBuilder buffer = new MessageBuilder();
 
@@ -1513,7 +1514,7 @@
       getSubCommandUsage(buffer, subCommand);
     }
 
-    return buffer.toMessage();
+    return buffer.toMessage().toString();
   }
 
 
@@ -1607,9 +1608,10 @@
   }
 
 
-
-  // Get default usage.
-  private void getUsage(OutputStream outputStream)
+  /**
+   * {@inheritDoc}
+   */
+  public void getUsage(OutputStream outputStream)
       throws IOException {
     outputStream.write(getBytes(String.valueOf(getUsage())));
   }
@@ -1636,20 +1638,29 @@
     buffer.append("  ");
     buffer.append(scriptName);
 
-    buffer.append(" {subcommand} {options}");
-
-    buffer.append(EOL);
-    buffer.append(EOL);
-
-    if (c.isEmpty())
+    if (subCommands.isEmpty())
     {
-      buffer.append(INFO_SUBCMDPARSER_SUBCMD_HELP_HEADING.get());
+      buffer.append(" "+INFO_SUBCMDPARSER_OPTIONS.get());
     }
     else
     {
-      buffer.append(INFO_SUBCMDPARSER_SUBCMD_HEADING.get());
+      buffer.append(" "+INFO_SUBCMDPARSER_SUBCMD_AND_OPTIONS.get());
     }
-    buffer.append(EOL);
+
+    if (!subCommands.isEmpty())
+    {
+      buffer.append(EOL);
+      buffer.append(EOL);
+      if (c.isEmpty())
+      {
+        buffer.append(INFO_SUBCMDPARSER_SUBCMD_HELP_HEADING.get());
+      }
+      else
+      {
+        buffer.append(INFO_SUBCMDPARSER_SUBCMD_HEADING.get());
+      }
+      buffer.append(EOL);
+    }
 
     if (c.isEmpty()) {
       // Display usage arguments (except the default one).
@@ -1691,8 +1702,16 @@
     buffer.append(EOL);
 
     if (showGlobalOptions) {
-      buffer.append(INFO_SUBCMDPARSER_GLOBAL_HEADING.get());
-      buffer.append(EOL);
+      if (subCommands.isEmpty())
+      {
+        buffer.append(INFO_SUBCMDPARSER_WHERE_OPTIONS_INCLUDE.get());
+        buffer.append(EOL);
+      }
+      else
+      {
+        buffer.append(INFO_SUBCMDPARSER_GLOBAL_HEADING.get());
+        buffer.append(EOL);
+      }
 
       // --version is a builtin option
       boolean dashVAccepted = true;

--
Gitblit v1.10.0