You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by ro...@apache.org on 2004/04/14 20:25:44 UTC

cvs commit: jakarta-commons/cli/src/java/org/apache/commons/cli2/util HelpFormatter.java

roxspring    2004/04/14 11:25:44

  Modified:    cli/src/test/org/apache/commons/cli2/util Tag:
                        RESEARCH_CLI_2_ROXSPRING HelpFormatterTest.java
               cli/src/java/org/apache/commons/cli2/util Tag:
                        RESEARCH_CLI_2_ROXSPRING HelpFormatter.java
  Log:
  HelpFormatter print methods now use the member PrintWriter rather than a parameter
  
  Revision  Changes    Path
  No                   revision
  No                   revision
  1.1.2.3   +14 -8     jakarta-commons/cli/src/test/org/apache/commons/cli2/util/Attic/HelpFormatterTest.java
  
  Index: HelpFormatterTest.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/cli/src/test/org/apache/commons/cli2/util/Attic/HelpFormatterTest.java,v
  retrieving revision 1.1.2.2
  retrieving revision 1.1.2.3
  diff -u -r1.1.2.2 -r1.1.2.3
  --- HelpFormatterTest.java	1 Apr 2004 21:13:36 -0000	1.1.2.2
  +++ HelpFormatterTest.java	14 Apr 2004 18:25:43 -0000	1.1.2.3
  @@ -136,8 +136,8 @@
   
       public void testPrintHelp() throws IOException {
           final StringWriter writer = new StringWriter();
  -        helpFormatter.printHelp(new PrintWriter(writer));
  -        //System.out.println(writer);
  +        helpFormatter.setPrintWriter(new PrintWriter(writer));
  +        helpFormatter.printHelp();
           final BufferedReader reader =
               new BufferedReader(new StringReader(writer.toString()));
           assertEquals(
  @@ -172,8 +172,9 @@
   
       public void testPrintHelp_WithException() throws IOException {
           final StringWriter writer = new StringWriter();
  +        helpFormatter.setPrintWriter(new PrintWriter(writer));
           helpFormatter.setException(new OptionException(verbose));
  -        helpFormatter.printHelp(new PrintWriter(writer));
  +        helpFormatter.printHelp();
           //System.out.println(writer);
           final BufferedReader reader =
               new BufferedReader(new StringReader(writer.toString()));
  @@ -191,8 +192,9 @@
   
       public void testPrintException() throws IOException {
           final StringWriter writer = new StringWriter();
  +        helpFormatter.setPrintWriter(new PrintWriter(writer));
           helpFormatter.setException(new OptionException(verbose, "cli.error.missing.option"));
  -        helpFormatter.printException(new PrintWriter(writer));
  +        helpFormatter.printException();
           //System.out.println(writer);
           final BufferedReader reader =
               new BufferedReader(new StringReader(writer.toString()));
  @@ -207,7 +209,8 @@
   
       public void testPrintUsage() throws IOException {
           final StringWriter writer = new StringWriter();
  -        helpFormatter.printUsage(new PrintWriter(writer));
  +        helpFormatter.setPrintWriter(new PrintWriter(writer));
  +        helpFormatter.printUsage();
           final BufferedReader reader =
               new BufferedReader(new StringReader(writer.toString()));
           assertEquals(
  @@ -227,7 +230,8 @@
   
       public void testPrintHeader() throws IOException {
           final StringWriter writer = new StringWriter();
  -        helpFormatter.printHeader(new PrintWriter(writer));
  +        helpFormatter.setPrintWriter(new PrintWriter(writer));
  +        helpFormatter.printHeader();
           final BufferedReader reader =
               new BufferedReader(new StringReader(writer.toString()));
           assertEquals(
  @@ -241,7 +245,8 @@
   
       public void testPrintFooter() throws IOException {
           final StringWriter writer = new StringWriter();
  -        helpFormatter.printFooter(new PrintWriter(writer));
  +        helpFormatter.setPrintWriter(new PrintWriter(writer));
  +        helpFormatter.printFooter();
           final BufferedReader reader =
               new BufferedReader(new StringReader(writer.toString()));
           assertEquals(
  @@ -258,7 +263,8 @@
   
       public void testPrintDivider() throws IOException {
           final StringWriter writer = new StringWriter();
  -        helpFormatter.printDivider(new PrintWriter(writer));
  +        helpFormatter.setPrintWriter(new PrintWriter(writer));
  +        helpFormatter.printDivider();
           final BufferedReader reader =
               new BufferedReader(new StringReader(writer.toString()));
           assertEquals(
  
  
  
  No                   revision
  No                   revision
  1.1.2.2   +158 -59   jakarta-commons/cli/src/java/org/apache/commons/cli2/util/Attic/HelpFormatter.java
  
  Index: HelpFormatter.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/cli/src/java/org/apache/commons/cli2/util/Attic/HelpFormatter.java,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- HelpFormatter.java	31 Mar 2004 00:50:45 -0000	1.1.2.1
  +++ HelpFormatter.java	14 Apr 2004 18:25:43 -0000	1.1.2.2
  @@ -32,16 +32,51 @@
   import org.apache.commons.cli2.Option;
   import org.apache.commons.cli2.OptionException;
   
  +/**
  + * Presents on screen help based on the application's Options
  + */
   public class HelpFormatter {
   
  +    /**
  +     * The default screen width
  +     */
       public static final int DEFAULT_FULL_WIDTH = 80;
   
  +    /**
  +     * The default screen furniture left of screen
  +     */
       public static final String DEFAULT_GUTTER_LEFT = "";
  +    
  +    /**
  +     * The default screen furniture right of screen
  +     */
       public static final String DEFAULT_GUTTER_CENTER = "    ";
  +    
  +    /**
  +     * The default screen furniture between columns
  +     */
       public static final String DEFAULT_GUTTER_RIGHT = "";
   
  +    /**
  +     * The default DisplaySettings used to select the elements to display in the
  +     * displayed line of full usage information.
  +     * 
  +     * @see DisplaySetting
  +     */
       public static final Set DEFAULT_FULL_USAGE_SETTINGS;
  +    
  +    /**
  +     * The default DisplaySettings used to select the elements of usage per help 
  +     * line in the main body of help
  +     * 
  +     * @see DisplaySetting
  +     */
       public static final Set DEFAULT_LINE_USAGE_SETTINGS;
  +    
  +    /**
  +     * The default DisplaySettings used to select the help lines in the main
  +     * body of help 
  +     */
       public static final Set DEFAULT_DISPLAY_USAGE_SETTINGS;
   
       static {
  @@ -84,6 +119,9 @@
   
       private final int pageWidth;
   
  +    /**
  +     * Creates a new HelpFormatter using the defaults
  +     */
       public HelpFormatter() {
           this(
               DEFAULT_GUTTER_LEFT,
  @@ -92,6 +130,13 @@
               DEFAULT_FULL_WIDTH);
       }
   
  +    /**
  +     * Creates a new HelpFormatter using the specified parameters
  +     * @param gutterLeft the string marking left of screen
  +     * @param gutterCenter the string marking center of screen
  +     * @param gutterRight the string marking right of screen
  +     * @param fullWidth the width of the screen
  +     */
       public HelpFormatter(
           final String gutterLeft,
           final String gutterCenter,
  @@ -125,25 +170,37 @@
                       + "Supply shorter gutters or more width.");
           }
       }
  -
  +    
  +    /**
  +     * Prints the Option help.
  +     * @throws IOException if an error occurs
  +     */
       public void print() throws IOException {
  -        printHeader(out);
  -        printException(out);
  -        printUsage(out);
  -        printHelp(out);
  -        printFooter(out);
  +        printHeader();
  +        printException();
  +        printUsage();
  +        printHelp();
  +        printFooter();
           out.flush();
       }
   
  -    public void printException(final PrintWriter out) throws IOException {
  +    /**
  +     * Prints any error message. 
  +     * @throws IOException if an error occurs
  +     */
  +    public void printException() throws IOException {
           if (exception != null) {
  -            printDivider(out);
  -            printWrapped(out, exception.getMessage());
  +            printDivider();
  +            printWrapped(exception.getMessage());
           }
       }
   
  -    public void printHelp(final PrintWriter out) throws IOException {
  -        printDivider(out);
  +    /**
  +     * Prints detailed help per option. 
  +     * @throws IOException if an error occurs
  +     */
  +    public void printHelp() throws IOException {
  +        printDivider();
   
           final Option option;
           if (exception != null && exception.getOption() != null) {
  @@ -172,73 +229,99 @@
                   wrap(helpLine.getDescription(), descriptionWidth);
               final Iterator j = descriptionLines.iterator();
   
  -            printGutterLeft(out);
  +            printGutterLeft();
               pad(helpLine.usage(lineUsageSettings, comparator), usageWidth, out);
               out.print(gutterCenter);
               pad((String)j.next(), descriptionWidth, out);
  -            printGutterRight(out);
  +            printGutterRight();
               out.println();
   
               while (j.hasNext()) {
  -                printGutterLeft(out);
  +                printGutterLeft();
                   //pad(helpLine.getUsage(),usageWidth,out);
                   out.print(blankBuffer);
                   out.print(gutterCenter);
                   pad((String)j.next(), descriptionWidth, out);
  -                printGutterRight(out);
  +                printGutterRight();
                   out.println();
               }
           }
  -        printDivider(out);
  +        printDivider();
       }
   
  -    public void printUsage(final PrintWriter out) throws IOException {
  -        printDivider(out);
  +    /**
  +     * Prints a single line of usage information (wrapping if necessary) 
  +     * @throws IOException if an error occurs
  +     */
  +    public void printUsage() throws IOException {
  +        printDivider();
           final StringBuffer buffer = new StringBuffer("Usage:\n");
           buffer.append(shellCommand).append(' ');
           group.appendUsage(buffer, fullUsageSettings, comparator, " ");
  -        printWrapped(out, buffer.toString());
  +        printWrapped(buffer.toString());
       }
   
  -    public void printHeader(final PrintWriter out) throws IOException {
  +    /**
  +     * Prints a header string if necessary 
  +     * @throws IOException if an error occurs
  +     */
  +    public void printHeader() throws IOException {
           if (header != null) {
  -            printDivider(out);
  -            printWrapped(out, header);
  +            printDivider();
  +            printWrapped(header);
           }
       }
   
  -    public void printFooter(final PrintWriter out) throws IOException {
  +    /**
  +     * Prints a footer string if necessary 
  +     * @throws IOException if an error occurs
  +     */
  +    public void printFooter() throws IOException {
           if (footer != null) {
  -            printWrapped(out, footer);
  -            printDivider(out);
  +            printWrapped(footer);
  +            printDivider();
           }
       }
   
  -    public void printWrapped(final PrintWriter out, final String text)
  +    /**
  +     * Prints a string wrapped if necessary
  +     * @param text the string to wrap 
  +     * @throws IOException if an error occurs
  +     */
  +    protected void printWrapped(final String text)
           throws IOException {
           for (final Iterator i = wrap(text, pageWidth).iterator();
               i.hasNext();
               ) {
  -            printGutterLeft(out);
  +            printGutterLeft();
               pad((String)i.next(), pageWidth, out);
  -            printGutterRight(out);
  +            printGutterRight();
               out.println();
           }
       }
   
  -    public void printGutterLeft(final PrintWriter out) {
  +    /**
  +     * Prints the left gutter string 
  +     */
  +    public void printGutterLeft() {
           if (gutterLeft != null) {
               out.print(gutterLeft);
           }
       }
   
  -    public void printGutterRight(final PrintWriter out) {
  +    /**
  +     * Prints the right gutter string 
  +     */
  +    public void printGutterRight() {
           if (gutterRight != null) {
               out.print(gutterRight);
           }
       }
   
  -    public void printDivider(final PrintWriter out) {
  +    /**
  +     * Prints the divider text
  +     */
  +    public void printDivider() {
           if (divider != null) {
               out.println(divider);
           }
  @@ -321,41 +404,52 @@
       }
   
       /**
  -     * @param comparator
  +     * The Comparator to use when sorting Options
  +     * @param comparator Comparator to use when sorting Options
        */
       public void setComparator(Comparator comparator) {
           this.comparator = comparator;
       }
  -
  +    
       /**
  -     * @param displaySettings
  +     * The DisplaySettings used to select the help lines in the main body of
  +     * help
  +     * 
  +     * @param displaySettings the settings to use
  +     * @see DisplaySetting
        */
       public void setDisplaySettings(Set displaySettings) {
           this.displaySettings = displaySettings;
       }
   
       /**
  -     * @param divider
  +     * Sets the string to use as a divider between sections of help
  +     * @param divider the dividing string
        */
       public void setDivider(String divider) {
           this.divider = divider;
       }
  -
  +    
       /**
  -     * @param exception
  +     * Sets the exception to document
  +     * @param exception the exception that occured
        */
       public void setException(OptionException exception) {
           this.exception = exception;
       }
   
       /**
  -     * @param footer
  +     * Sets the footer text of the help screen
  +     * @param footer the footer text
        */
       public void setFooter(String footer) {
           this.footer = footer;
       }
   
       /**
  +     * The DisplaySettings used to select the elements to display in the
  +     * displayed line of full usage information. 
  +     * @see DisplaySetting
        * @param fullUsageSettings
        */
       public void setFullUsageSettings(Set fullUsageSettings) {
  @@ -363,141 +457,146 @@
       }
   
       /**
  -     * @param group
  +     * Sets the Group of Options to document
  +     * @param group the options to document
        */
       public void setGroup(Group group) {
           this.group = group;
       }
   
       /**
  -     * @param header
  +     * Sets the footer text of the help screen
  +     * @param header the footer text
        */
       public void setHeader(String header) {
           this.header = header;
       }
   
       /**
  -     * @param lineUsageSettings
  +     * Sets the DisplaySettings used to select elements in the per helpline 
  +     * usage strings.
  +     * @see DisplaySetting
  +     * @param lineUsageSettings the DisplaySettings to use
        */
       public void setLineUsageSettings(Set lineUsageSettings) {
           this.lineUsageSettings = lineUsageSettings;
       }
   
       /**
  -     * @param shellCommand
  +     * Sets the command string used to invoke the application
  +     * @param shellCommand the invokation command
        */
       public void setShellCommand(String shellCommand) {
           this.shellCommand = shellCommand;
       }
   
       /**
  -     * @return
  +     * @return the Comparator used to sort the Group
        */
       public Comparator getComparator() {
           return comparator;
       }
   
       /**
  -     * @return
  +     * @return the DisplaySettings used to select HelpLines
        */
       public Set getDisplaySettings() {
           return displaySettings;
       }
   
       /**
  -     * @return
  +     * @return the String used as a horizontal section divider
        */
       public String getDivider() {
           return divider;
       }
   
       /**
  -     * @return
  +     * @return the Exception being documented by this HelpFormatter
        */
       public OptionException getException() {
           return exception;
       }
   
       /**
  -     * @return
  +     * @return the help screen footer text
        */
       public String getFooter() {
           return footer;
       }
   
       /**
  -     * @return
  +     * @return the DisplaySettings used in the full usage string
        */
       public Set getFullUsageSettings() {
           return fullUsageSettings;
       }
   
       /**
  -     * @return
  +     * @return the group documented by this HelpFormatter
        */
       public Group getGroup() {
           return group;
       }
   
       /**
  -     * @return
  +     * @return the String used as the central gutter
        */
       public String getGutterCenter() {
           return gutterCenter;
       }
   
       /**
  -     * @return
  +     * @return the String used as the left gutter
        */
       public String getGutterLeft() {
           return gutterLeft;
       }
   
       /**
  -     * @return
  +     * @return the String used as the right gutter
        */
       public String getGutterRight() {
           return gutterRight;
       }
   
       /**
  -     * @return
  +     * @return the help screen header text
        */
       public String getHeader() {
           return header;
       }
   
       /**
  -     * @return
  +     * @return the DisplaySettings used in the per help line usage strings
        */
       public Set getLineUsageSettings() {
           return lineUsageSettings;
       }
   
       /**
  -     * @return
  +     * @return the width of the screen in characters
        */
       public int getPageWidth() {
           return pageWidth;
       }
   
       /**
  -     * @return
  +     * @return the command used to execute the application  
        */
       public String getShellCommand() {
           return shellCommand;
       }
   
       /**
  -     * @param out
  -     *            The out to set.
  +     * @param out the PrintWriter to write to
        */
       public void setPrintWriter(PrintWriter out) {
           this.out = out;
       }
   
       /**
  -     * @return Returns the out.
  +     * @return the PrintWriter that will be written to
        */
       public PrintWriter getPrintWriter() {
           return out;
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org