You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by eb...@apache.org on 2010/06/20 00:06:00 UTC

svn commit: r956303 - in /commons/proper/cli/trunk/src: main/java/org/apache/commons/cli/ test/java/org/apache/commons/cli/

Author: ebourg
Date: Sat Jun 19 22:06:00 2010
New Revision: 956303

URL: http://svn.apache.org/viewvc?rev=956303&view=rev
Log:
The default argument name displayed is now properly controlled by the help formatter (CLI-205)

Modified:
    commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/HelpFormatter.java
    commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/Option.java
    commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/OptionBuilder.java
    commons/proper/cli/trunk/src/test/java/org/apache/commons/cli/HelpFormatterTest.java

Modified: commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/HelpFormatter.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/HelpFormatter.java?rev=956303&r1=956302&r2=956303&view=diff
==============================================================================
--- commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/HelpFormatter.java (original)
+++ commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/HelpFormatter.java Sat Jun 19 22:06:00 2010
@@ -648,14 +648,14 @@ public class HelpFormatter
         {
             buff.append("--").append(option.getLongOpt());
         }
-
-        // if the Option has a value
-        if (option.hasArg() && option.hasArgName())
+        
+        // if the Option has a value and a non blank argname
+        if (option.hasArg() && (option.getArgName() == null || option.getArgName().length() != 0))
         {
             buff.append(option.getOpt() == null ? longOptSeparator : " ");
-            buff.append("<").append(option.getArgName()).append(">");
+            buff.append("<").append(option.getArgName() != null ? option.getArgName() : getArgName()).append(">");
         }
-
+        
         // if the Option is not a required option
         if (!required)
         {
@@ -781,14 +781,16 @@ public class HelpFormatter
 
             if (option.hasArg())
             {
-                if (option.hasArgName())
+                String argName = option.getArgName();
+                if (argName != null && argName.length() == 0)
                 {
-                    optBuf.append(option.hasLongOpt() ? longOptSeparator : " ");
-                    optBuf.append("<").append(option.getArgName()).append(">");
+                    // if the option has a blank argname
+                    optBuf.append(' ');
                 }
                 else
                 {
-                    optBuf.append(' ');
+                    optBuf.append(option.hasLongOpt() ? longOptSeparator : " ");
+                    optBuf.append("<").append(argName != null ? option.getArgName() : getArgName()).append(">");
                 }
             }
 

Modified: commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/Option.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/Option.java?rev=956303&r1=956302&r2=956303&view=diff
==============================================================================
--- commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/Option.java (original)
+++ commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/Option.java Sat Jun 19 22:06:00 2010
@@ -54,7 +54,7 @@ public class Option implements Cloneable
     private String longOpt;
 
     /** the name of the argument for this option */
-    private String argName = "arg";
+    private String argName;
 
     /** description of the option */
     private String description;
@@ -319,11 +319,9 @@ public class Option implements Cloneable
     }
 
     /**
-     * Returns whether the display name for the argument value
-     * has been set.
+     * Returns whether the display name for the argument value has been set.
      *
-     * @return if the display name for the argument value has been
-     * set.
+     * @return if the display name for the argument value has been set.
      */
     public boolean hasArgName()
     {

Modified: commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/OptionBuilder.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/OptionBuilder.java?rev=956303&r1=956302&r2=956303&view=diff
==============================================================================
--- commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/OptionBuilder.java (original)
+++ commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/OptionBuilder.java Sat Jun 19 22:06:00 2010
@@ -77,7 +77,7 @@ public final class OptionBuilder
     private static void reset()
     {
         description = null;
-        argName = "arg";
+        argName = null;
         longopt = null;
         type = null;
         required = false;

Modified: commons/proper/cli/trunk/src/test/java/org/apache/commons/cli/HelpFormatterTest.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/src/test/java/org/apache/commons/cli/HelpFormatterTest.java?rev=956303&r1=956302&r2=956303&view=diff
==============================================================================
--- commons/proper/cli/trunk/src/test/java/org/apache/commons/cli/HelpFormatterTest.java (original)
+++ commons/proper/cli/trunk/src/test/java/org/apache/commons/cli/HelpFormatterTest.java Sat Jun 19 22:06:00 2010
@@ -305,6 +305,22 @@ public class HelpFormatterTest extends T
         assertEquals("usage: app -f" + EOL, out.toString());
     }
 
+    public void testDefaultArgName()
+    {
+        Option option = OptionBuilder.hasArg().isRequired().create("f");
+        
+        Options options = new Options();
+        options.addOption(option);
+        
+        StringWriter out = new StringWriter();
+
+        HelpFormatter formatter = new HelpFormatter();
+        formatter.setArgName("argument");
+        formatter.printUsage(new PrintWriter(out), 80, "app", options);
+
+        assertEquals("usage: app -f <argument>" + EOL, out.toString());
+    }
+
     public void testRtrim()
     {
         HelpFormatter formatter = new HelpFormatter();