From f2160f4bd1c8ac67e5a86a6710d431e8932877f9 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Fri, 28 May 2010 11:47:51 +0000
Subject: [PATCH] Synchronize SDK on java.net with internal repository.

---
 sdk/src/com/sun/opends/sdk/tools/MultiColumnPrinter.java |  300 +++++++++++++++++++++++++++++++++---------------------------
 1 files changed, 165 insertions(+), 135 deletions(-)

diff --git a/sdk/src/com/sun/opends/sdk/tools/MultiColumnPrinter.java b/sdk/src/com/sun/opends/sdk/tools/MultiColumnPrinter.java
index 1f80177..f0bcd44 100644
--- a/sdk/src/com/sun/opends/sdk/tools/MultiColumnPrinter.java
+++ b/sdk/src/com/sun/opends/sdk/tools/MultiColumnPrinter.java
@@ -2,7 +2,8 @@
  * CDDL HEADER START
  *
  * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Versiance
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
  * with the License.
  *
  * You can obtain a copy of the license at
@@ -21,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2009 Sun Microsystems, Inc.
+ *      Copyright 2010 Sun Microsystems, Inc.
  */
 
 package com.sun.opends.sdk.tools;
@@ -38,9 +39,8 @@
  * <P>
  * This class allows you to specify:
  * <UL>
- * <LI>The number of columns in the output. This will determine the
- * dimension of the string arrays passed to add(String[]) or
- * addTitle(String[]).
+ * <LI>The number of columns in the output. This will determine the dimension of
+ * the string arrays passed to add(String[]) or addTitle(String[]).
  * <LI>spacing/gap between columns
  * <LI>character to use for title border (null means no border)
  * <LI>column alignment. Only LEFT/CENTER is supported for now.
@@ -77,8 +77,8 @@
  *  John       john@foo.com   456-7890
  * </PRE>
  * <P>
- * This class also supports multi-row titles and having title strings
- * spanning multiple collumns. Example usage:
+ * This class also supports multi-row titles and having title strings spanning
+ * multiple collumns. Example usage:
  *
  * <PRE>
  * TestPrinter tp = new TestPrinter(4, 2, &quot;-&quot;);
@@ -147,13 +147,48 @@
 
   private Vector<int[]> titleSpanTable = null;
 
-  private int curLength[];
+  private final int curLength[];
 
   private final ConsoleApplication app;
 
 
 
   /**
+   * Creates a sorted new MultiColumnPrinter class using LEFT alignment and with
+   * no title border.
+   *
+   * @param numCol
+   *          number of columns
+   * @param gap
+   *          gap between each column
+   */
+  MultiColumnPrinter(final int numCol, final int gap,
+      final ConsoleApplication app)
+  {
+    this(numCol, gap, null, LEFT, app);
+  }
+
+
+
+  /**
+   * Creates a sorted new MultiColumnPrinter class using LEFT alignment.
+   *
+   * @param numCol
+   *          number of columns
+   * @param gap
+   *          gap between each column
+   * @param border
+   *          character used to frame the titles
+   */
+  MultiColumnPrinter(final int numCol, final int gap, final String border,
+      final ConsoleApplication app)
+  {
+    this(numCol, gap, border, LEFT, app);
+  }
+
+
+
+  /**
    * Creates a new MultiColumnPrinter class.
    *
    * @param numCol
@@ -165,8 +200,8 @@
    * @param align
    *          type of alignment within columns
    */
-  MultiColumnPrinter(int numCol, int gap, String border, int align,
-      ConsoleApplication app)
+  MultiColumnPrinter(final int numCol, final int gap, final String border,
+      final int align, final ConsoleApplication app)
   {
 
     titleTable = new Vector<String[]>();
@@ -185,50 +220,19 @@
 
 
   /**
-   * Creates a sorted new MultiColumnPrinter class using LEFT alignment.
-   *
-   * @param numCol
-   *          number of columns
-   * @param gap
-   *          gap between each column
-   * @param border
-   *          character used to frame the titles
-   */
-  MultiColumnPrinter(int numCol, int gap, String border,
-      ConsoleApplication app)
-  {
-    this(numCol, gap, border, LEFT, app);
-  }
-
-
-
-  /**
-   * Creates a sorted new MultiColumnPrinter class using LEFT alignment
-   * and with no title border.
-   *
-   * @param numCol
-   *          number of columns
-   * @param gap
-   *          gap between each column
-   */
-  MultiColumnPrinter(int numCol, int gap, ConsoleApplication app)
-  {
-    this(numCol, gap, null, LEFT, app);
-  }
-
-
-
-  /**
    * Adds to the row of strings to be used as the title for the table.
    *
    * @param row
    *          Array of strings to print in one row of title.
    */
-  void addTitle(String[] row)
+  void addTitle(final String[] row)
   {
-    if (row == null) return;
+    if (row == null)
+    {
+      return;
+    }
 
-    int[] span = new int[row.length];
+    final int[] span = new int[row.length];
     for (int i = 0; i < row.length; i++)
     {
       span[i] = 1;
@@ -240,12 +244,12 @@
 
 
   /**
-   * Adds to the row of strings to be used as the title for the table.
-   * Also allows for certain title strings to span multiple collumns The
-   * span parameter is an array of integers which indicate how many
-   * collumns the corresponding title string will occupy. For a row that
-   * is 4 collumns wide, it is possible to have some title strings in a
-   * row to 'span' multiple collumns:
+   * Adds to the row of strings to be used as the title for the table. Also
+   * allows for certain title strings to span multiple collumns The span
+   * parameter is an array of integers which indicate how many collumns the
+   * corresponding title string will occupy. For a row that is 4 collumns wide,
+   * it is possible to have some title strings in a row to 'span' multiple
+   * collumns:
    * <P>
    *
    * <PRE>
@@ -257,9 +261,9 @@
    * John   Doe    john@foo.com  456-7890
    * </PRE>
    *
-   * In the example above, the title row has a string 'Name' that spans
-   * 2 collumns. The string 'Contact' also spans 2 collumns. The above
-   * is done by passing in to addTitle() an array that contains:
+   * In the example above, the title row has a string 'Name' that spans 2
+   * collumns. The string 'Contact' also spans 2 collumns. The above is done by
+   * passing in to addTitle() an array that contains:
    *
    * <PRE>
    * span[0] = 2; // spans 2 collumns
@@ -286,12 +290,12 @@
    *          Array of integers that reflect the number of collumns the
    *          corresponding title string will occupy.
    */
-  void addTitle(String[] row, int span[])
+  void addTitle(final String[] row, final int span[])
   {
     // Need to create a new instance of it, otherwise the new values
     // will always overwrite the old values.
 
-    String[] rowInstance = new String[(row.length)];
+    final String[] rowInstance = new String[(row.length)];
     for (int i = 0; i < row.length; i++)
     {
       rowInstance[i] = row[i];
@@ -304,18 +308,6 @@
 
 
   /**
-   * Set alignment for title strings
-   *
-   * @param titleAlign
-   */
-  void setTitleAlign(int titleAlign)
-  {
-    this.titleAlign = titleAlign;
-  }
-
-
-
-  /**
    * Clears title strings.
    */
   void clearTitle()
@@ -327,6 +319,54 @@
 
 
   /**
+   * Adds one row of text to output.
+   *
+   * @param row
+   *          Array of strings to print in one row.
+   */
+  void printRow(final String... row)
+  {
+    for (int i = 0; i < numCol; i++)
+    {
+      if (titleAlign == RIGHT)
+      {
+        final int spaceBefore = curLength[i] - row[i].length();
+        printSpaces(spaceBefore);
+        app.getOutputStream().print(row[i]);
+        if (i < numCol - 1)
+        {
+          printSpaces(gap);
+        }
+      }
+      else if (align == CENTER)
+      {
+        int space1, space2;
+        space1 = (curLength[i] - row[i].length()) / 2;
+        space2 = curLength[i] - row[i].length() - space1;
+
+        printSpaces(space1);
+        app.getOutputStream().print(row[i]);
+        printSpaces(space2);
+        if (i < numCol - 1)
+        {
+          printSpaces(gap);
+        }
+      }
+      else
+      {
+        app.getOutputStream().print(row[i]);
+        if (i < numCol - 1)
+        {
+          printSpaces(curLength[i] - row[i].length() + gap);
+        }
+      }
+    }
+    app.getOutputStream().println("");
+  }
+
+
+
+  /**
    * Prints the table title
    */
   void printTitle()
@@ -338,23 +378,27 @@
     Enumeration<int[]> spanEnum = titleSpanTable.elements();
     while (elm.hasMoreElements())
     {
-      String[] row = elm.nextElement();
-      int[] curSpan = spanEnum.nextElement();
+      final String[] row = elm.nextElement();
+      final int[] curSpan = spanEnum.nextElement();
 
       for (int i = 0; i < numCol; i++)
       {
         // None of the fields should be null, but if it
         // happens to be so, replace it with "-".
-        if (row[i] == null) row[i] = "-";
+        if (row[i] == null)
+        {
+          row[i] = "-";
+        }
 
         int len = row[i].length();
 
         /*
-         * If a title string spans multiple collumns, then the space it
-         * occupies in each collumn is at most len/span (since we have
-         * gap to take into account as well).
+         * If a title string spans multiple collumns, then the space it occupies
+         * in each collumn is at most len/span (since we have gap to take into
+         * account as well).
          */
-        int span = curSpan[i], rem = 0;
+        final int span = curSpan[i];
+        int rem = 0;
         if (span > 1)
         {
           rem = len % span;
@@ -373,8 +417,7 @@
             }
 
             /*
-             * Add remainder to last collumn in span to avoid round-off
-             * errors.
+             * Add remainder to last collumn in span to avoid round-off errors.
              */
             curLength[(i + span) - 1] += rem;
           }
@@ -388,14 +431,18 @@
 
     while (elm.hasMoreElements())
     {
-      String[] row = elm.nextElement();
-      int[] curSpan = spanEnum.nextElement();
+      final String[] row = elm.nextElement();
+      final int[] curSpan = spanEnum.nextElement();
 
       for (int i = 0; i < numCol; i++)
       {
-        int availableSpace = 0, span = curSpan[i];
+        int availableSpace = 0;
+        final int span = curSpan[i];
 
-        if (span == 0) continue;
+        if (span == 0)
+        {
+          continue;
+        }
 
         availableSpace = curLength[i];
 
@@ -410,27 +457,35 @@
 
         if (titleAlign == RIGHT)
         {
-          int space_before = availableSpace - row[i].length();
-          printSpaces(space_before);
+          final int spaceBefore = availableSpace - row[i].length();
+          printSpaces(spaceBefore);
           app.getOutputStream().print(row[i]);
-          if (i < numCol - 1) printSpaces(gap);
+          if (i < numCol - 1)
+          {
+            printSpaces(gap);
+          }
         }
         else if (titleAlign == CENTER)
         {
-          int space_before, space_after;
-          space_before = (availableSpace - row[i].length()) / 2;
-          space_after = availableSpace - row[i].length() - space_before;
+          int spaceBefore, spaceAfter;
+          spaceBefore = (availableSpace - row[i].length()) / 2;
+          spaceAfter = availableSpace - row[i].length() - spaceBefore;
 
-          printSpaces(space_before);
+          printSpaces(spaceBefore);
           app.getOutputStream().print(row[i]);
-          printSpaces(space_after);
-          if (i < numCol - 1) printSpaces(gap);
+          printSpaces(spaceAfter);
+          if (i < numCol - 1)
+          {
+            printSpaces(gap);
+          }
         }
         else
         {
           app.getOutputStream().print(row[i]);
           if (i < numCol - 1)
+          {
             printSpaces(availableSpace - row[i].length() + gap);
+          }
         }
 
       }
@@ -442,58 +497,23 @@
 
 
   /**
-   * Adds one row of text to output.
+   * Set alignment for title strings
    *
-   * @param row
-   *          Array of strings to print in one row.
+   * @param titleAlign
    */
-  void printRow(String... row)
+  void setTitleAlign(final int titleAlign)
   {
-    for (int i = 0; i < numCol; i++)
-    {
-      if (titleAlign == RIGHT)
-      {
-        int space_before = curLength[i] - row[i].length();
-        printSpaces(space_before);
-        app.getOutputStream().print(row[i]);
-        if (i < numCol - 1) printSpaces(gap);
-      }
-      else if (align == CENTER)
-      {
-        int space1, space2;
-        space1 = (curLength[i] - row[i].length()) / 2;
-        space2 = curLength[i] - row[i].length() - space1;
-
-        printSpaces(space1);
-        app.getOutputStream().print(row[i]);
-        printSpaces(space2);
-        if (i < numCol - 1) printSpaces(gap);
-      }
-      else
-      {
-        app.getOutputStream().print(row[i]);
-        if (i < numCol - 1)
-          printSpaces(curLength[i] - row[i].length() + gap);
-      }
-    }
-    app.getOutputStream().println("");
-  }
-
-
-
-  private void printSpaces(int count)
-  {
-    for (int i = 0; i < count; ++i)
-    {
-      app.getOutputStream().print(" ");
-    }
+    this.titleAlign = titleAlign;
   }
 
 
 
   private void printBorder()
   {
-    if (border == null) return;
+    if (border == null)
+    {
+      return;
+    }
 
     // For the value in each column
     for (int i = 0; i < numCol; i++)
@@ -514,4 +534,14 @@
     }
     app.getOutputStream().println("");
   }
+
+
+
+  private void printSpaces(final int count)
+  {
+    for (int i = 0; i < count; ++i)
+    {
+      app.getOutputStream().print(" ");
+    }
+  }
 }

--
Gitblit v1.10.0