You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by sc...@apache.org on 2002/11/17 22:46:43 UTC

cvs commit: jakarta-commons/lang/src/java/org/apache/commons/lang/builder CompareToBuilder.java EqualsBuilder.java ToStringBuilder.java HashCodeBuilder.java ToStringStyle.java StandardToStringStyle.java

scolebourne    2002/11/17 13:46:42

  Modified:    lang/src/java/org/apache/commons/lang/builder
                        CompareToBuilder.java EqualsBuilder.java
                        ToStringBuilder.java HashCodeBuilder.java
                        ToStringStyle.java StandardToStringStyle.java
  Log:
  Javadoc style fix, from Fredrik Westermarck
  
  Revision  Changes    Path
  1.5       +168 -102  jakarta-commons/lang/src/java/org/apache/commons/lang/builder/CompareToBuilder.java
  
  Index: CompareToBuilder.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/lang/src/java/org/apache/commons/lang/builder/CompareToBuilder.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- CompareToBuilder.java	28 Sep 2002 10:44:51 -0000	1.4
  +++ CompareToBuilder.java	17 Nov 2002 21:46:42 -0000	1.5
  @@ -58,21 +58,22 @@
   
   import org.apache.commons.lang.NumberUtils;
   /** 
  - * <code>CompareTo</code> generation routines.
  - * <p>
  - * This class provides methods to build a good <comde>compareTo()</code> method for any class.
  - * It is consistent with the <code>equals</code> and <code>hashcode</code> built
  - * with EqualsBuilder and HashCodeBuilder.
  - * <p>
  - * Two object that compare equal using equals should compare equals using
  - * compareTo.
  - * <p>
  - * All relevant fields should be included in the calculation of the comparison. Derived
  - * fields may be ignored. The same fields, in the same order, should be used in
  - * both <code>compareTo</code> and <code>equals</code>.
  - * <p>
  - * Typical use for the code is as follows:
  + * <p><code>CompareTo</code> generation routines.</p>
    *
  + * <p>This class provides methods to build a good <comde>compareTo()</code>
  + * method for any class. It is consistent with the <code>equals</code> and
  + * <code>hashcode</code> built with {@link EqualsBuilder} and
  + * {@link HashCodeBuilder}.</p>
  + *
  + * <p>Two object that compare equal using equals should compare equals using
  + * compareTo</p>.
  + *
  + * <p>All relevant fields should be included in the calculation of the
  + * comparison. Derived fields may be ignored. The same fields, in the same
  + * order, should be used in both <code>compareTo</code> and
  + * <code>equals</code>.</p>
  + *
  + * <p>Typical use for the code is as follows:</p>
    * <pre>
    *  public int comapareTo(Object o) {
    *    MyClass rhs = (MyClass) o;
  @@ -83,20 +84,21 @@
    *                 .toComparison();
    *  }
    * </pre>
  - * <p>
  - * Alternatively, there is a method that uses reflection to determine
  + *
  + * <p>Alternatively, there is a method that uses reflection to determine
    * the fields to test. Because these fields are usually private, the method,
    * <code>reflectionCompare</code>, uses <code>Field.setAccessible</code> to change
    * the visibility of the fields. This will fail under a security manager,
    * unless the appropriate permissions are set. It is also slower than testing
  - * explicitly.
  - * <p>
  - * A typical invocation for this method would look like:
  + * explicitly.</p>
  + *
  + * <p>A typical invocation for this method would look like:</p>
    * <pre>
    * public int compareTo(Object o) {
    *   return CompareToBuilder.reflectionCompare(this, obj);
    * }
    * </pre>
  + *
    * @author <a href="mailto:steve.downey@netfolio.com">Steve Downey</a>
    * @author <a href="mailto:scolebourne@joda.org">Stephen Colebourne</a>
    * @version $Id$
  @@ -108,8 +110,10 @@
       private int comparison;
   
       /**
  -     * Constructor for CompareToBuilder.
  -     * Starts off assuming that the objects are equal.
  +     * <p>Constructor for CompareToBuilder.</p>
  +     *
  +     * <p>Starts off assuming that the objects are equal.</p>
  +     *
        * @see java.lang.Object#Object()
        */
       public CompareToBuilder() {
  @@ -120,47 +124,56 @@
       //-------------------------------------------------------------------------
       
       /** 
  -     * This method uses reflection to determine the ordering between two objects.
  -     * <p>
  -     * It uses Field.setAccessible to gain access to private fields. This means
  -     * that it will throw a security exception if run under a security manger, if
  -     * the permissions are not set up.
  -     * It is also not as efficient as testing explicitly.
  -     * Transient members will be not be tested, as they are likely derived
  -     * fields, and not part of the value of the object.
  -     * Static fields will not be tested.
  +     * <p>This method uses reflection to determine the ordering between two
  +     * Objects.</p>
  +     *
  +     * <p>It uses <code>Field.setAccessible</code> to gain access to private
  +     * fields. This means that it will throw a security exception if run under
  +     * a security manger, if the permissions are not set up correctly. It is
  +     * also not as efficient as testing explicitly.</p>
  +     *
  +     * <p>Transient members will be not be tested, as they are likely derived
  +     * fields, and not part of the value of the object.</p>
  +     *
  +     * <p>Static fields will not be tested.</p>
  +     *
        * @param lhs  Left Hand Side
        * @param rhs  Right Hand Side
        * @return a negative integer, zero, or a positive integer as this 
  -     * object is less than, equal to, or greater than the specified object.
  -     * @throws NullPointerException  if either (but not both) parameter is null
  -     * @throws ClassCastException  if the specified object's type prevents it 
  -     * from being compared to this Object.
  +     *  Object is less than, equal to, or greater than the specified Object.
  +     * @throws NullPointerException  if either (but not both) parameter is
  +     *  <code>null</code>
  +     * @throws ClassCastException  if the specified Object's type prevents it
  +     *  from being compared to this Object.
        */
       public static int reflectionCompare(Object lhs, Object rhs) {
           return reflectionCompare(lhs, rhs, false);
       }
   
       /**
  -     * This method uses reflection to determine if the two object are equal. 
  -     * <p>
  -     * It uses Field.setAccessible to gain access to private fields. This means
  -     * that it will throw a security exception if run under a security manger, if
  -     * the permissions are not set up.
  -     * It is also not as efficient as testing explicitly. 
  -     * If the TestTransients parameter is set to true, transient members will be
  -     * tested, otherwise they are ignored, as they are likely derived fields, and
  -     * not part of the value of the object. 
  -     * Static fields will not be tested.
  +     * <p>This method uses reflection to determine if the two Objects are
  +     * equal.</p>
  +     *
  +     * <p>It uses <code>Field.setAccessible</code> to gain access to private
  +     * fields. This means that it will throw a security exception if run under
  +     * a security manger, if  the permissions are not set up correctly. It is
  +     * also not as efficient as testing explicitly.</p>
  +     *
  +     * <p>If the <code>testTransients</code> is set to <code>true</code>,
  +     * transient members will be tested, otherwise they are ignored, as they
  +     * are likely derived fields, and not part of the value of the object.</p>
  +     *
  +     * <p>Static fields will not be tested.</p>
        * 
        * @param lhs  Left Hand Side
        * @param rhs  Right Hand Side
        * @param testTransients  whether to include transient fields
        * @return a negative integer, zero, or a positive integer as this 
  -     * object is less than, equal to, or greater than the specified object.
  -     * @throws NullPointerException  if either (but not both) parameter is null
  -     * @throws ClassCastException  if the specified object's type prevents it 
  -     * from being compared to this Object.
  +     *  Object is less than, equal to, or greater than the specified Object.
  +     * @throws NullPointerException  if either (but not both) parameter is
  +     *  <code>null</code>
  +     * @throws ClassCastException  if the specified Object's type prevents it
  +     *  from being compared to this Object.
        */
       public static int reflectionCompare(Object lhs, Object rhs, 
               boolean testTransients) {
  @@ -196,17 +209,20 @@
   
       //-------------------------------------------------------------------------
       
  -    /** Test if two <code>Object</code>s are equal using either the
  +    /**
  +     * <p>Test if two <code>Object</code>s are equal using either the
        * <code>compareTo</code> method, or native comparison if the Objects are
  -     * actually arrays.
  -     * <p>
  -     * The objects must be <code>Comparable</code>. If they are not, the method
  -     * will throw a <code>ClassCastException</code>.
  +     * actually arrays.</p>
  +     *
  +     * <p>The objects must be <code>Comparable</code>. If they are not, the
  +     * method will throw a <code>ClassCastException</code>.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return CompareToBuilder - used to chain calls.
  -     * @throws NullPointerException  if either (but not both) parameter is null
  -     * @throws ClassCastException if the specified object's type prevents it
  +     * @throws NullPointerException  if either (but not both) parameter is
  +     *  <code>null</code>
  +     * @throws ClassCastException if the specified Object's type prevents it
        * from being compared to this Object.
        */
       public CompareToBuilder append(Object lhs, Object rhs) {
  @@ -251,7 +267,8 @@
       }
   
       /**
  -     * Test if two <code>long</code>s are <, > or ==.
  +     * <p>Test if two <code>long</code>s are <, > or ==.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return CompareToBuilder - used to chain calls.
  @@ -265,7 +282,8 @@
       }
   
       /**
  -     * Test if two <code>int</code>s are <, > or ==.
  +     * <p>Test if two <code>int</code>s are <, > or ==.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return CompareToBuilder - used to chain calls.
  @@ -279,7 +297,7 @@
       }
   
       /**
  -     * Test if two <code>short</code>s are <, > or ==.
  +     * <p>Test if two <code>short</code>s are <, > or ==.</p>
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return CompareToBuilder - used to chain calls.
  @@ -293,7 +311,8 @@
       }
   
       /**
  -     * Test if two <code>char</code>s are <, > or ==.
  +     * <p>Test if two <code>char</code>s are <, > or ==.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return CompareToBuilder - used to chain calls.
  @@ -307,7 +326,7 @@
       }
   
       /**
  -     * Test if two <code>byte</code>s are <, > or ==.
  +     * <p>Test if two <code>byte</code>s are <, > or ==.</p>
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return CompareToBuilder - used to chain calls.
  @@ -321,9 +340,13 @@
       }
   
       /**
  -     * Test if two <code>double</code>s are <, > or ==. This handles NaNs, 
  -     * Infinties, and -0.0. It is compatible with the hash code generated by 
  -     * <code>HashCodeBuilder</code>.
  +     * <p>Test if two <code>double</code>s are <, > or ==.</p>
  +     *
  +     * <p>This handles NaNs, Infinties, and <code>-0.0</code>.</p>
  +     *
  +     * <p>It is compatible with the hash code generated by
  +     * <code>HashCodeBuilder</code>.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return CompareToBuilder - used to chain calls.
  @@ -337,9 +360,13 @@
       }
   
       /**
  -     * Test if two <code>double</code>s are <, > or ==. This handles NaNs, 
  -     * Infinties, and -0.0. It is compatible with the hash code generated by 
  -     * <code>HashCodeBuilder</code>.
  +     * <p>Test if two <code>double</code>s are <, > or ==.</p>
  +     *
  +     * <p>This handles NaNs, Infinties, and <code>-0.0</code>.</p>
  +     *
  +     * <p>It is compatible with the hash code generated by
  +     * <code>HashCodeBuilder</code>.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return CompareToBuilder - used to chain calls.
  @@ -353,7 +380,8 @@
       }
   
       /**
  -     * Test if two <code>booleans</code>s are <, > or ==.
  +     * <p>Test if two <code>booleans</code>s are <, > or ==.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return CompareToBuilder - used to chain calls.
  @@ -374,17 +402,22 @@
       }
   
       /**
  -     * Performs a deep comparison of two object arrays. This also will be
  -     * called for the top level of multi-dimensional, ragged, and multi-typed
  -     * arrays. If two arrays are of different lengths, and all elements of the
  +     * <p>Performs a deep comparison of two Object arrays.</p>
  +     *
  +     * <p>This also will be called for the top level of multi-dimensional,
  +     * ragged, and multi-typed arrays.</p>
  +     *
  +     * <p>If two arrays are of different lengths, and all elements of the
        * shorter array are equal to the elements in the longer array, the longer
  -     * array is the greater. This is dictionary, or lexical, ordering.
  +     * array is the greater. This is dictionary, or lexical, ordering.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return CompareToBuilder - used to chain calls.
  -     * @throws NullPointerException  if either (but not both) parameter is null
  -     * @throws ClassCastException  if the specified object's type prevents it 
  -     * from being compared to this Object.
  +     * @throws NullPointerException  if either (but not both) parameter is
  +     *  <code>null</code>
  +     * @throws ClassCastException  if the specified Object's type prevents it
  +     *  from being compared to this Object.
        */
       public CompareToBuilder append(Object[] lhs, Object[] rhs) {
           if (comparison != 0) {
  @@ -412,12 +445,16 @@
       }
   
       /**
  -     * Deep comparison of array of <code>long</code> Length and all values
  -     *  are compared. The method append(long, long) is used.
  +     * <p>Deep comparison of array of <code>long</code> Length and all values
  +     * are compared.</p>
  +     *
  +     * <p>The method {@link #append(long, long)} is used.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return CompareToBuilder - used to chain calls.
  -     * @throws NullPointerException  if either (but not both) parameter is null
  +     * @throws NullPointerException  if either (but not both) parameter is
  +     *  <code>null</code>
        */
       public CompareToBuilder append(long[] lhs, long[] rhs) {
           if (comparison != 0) {
  @@ -440,12 +477,16 @@
       }
   
       /**
  -     * Deep comparison of array of <code>int</code> Length and all values
  -     *  are compared. The method append(int, int) is used.
  +     * <p>Deep comparison of array of <code>int</code> Length and all values
  +     * are compared.</p>
  +     *
  +     * <p>The method {@link #append(int, int)} is used.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return CompareToBuilder - used to chain calls.
  -     * @throws NullPointerException  if either (but not both) parameter is null
  +     * @throws NullPointerException  if either (but not both) parameter is
  +     *  <code>null</code>
        */
       public CompareToBuilder append(int[] lhs, int[] rhs) {
           if (comparison != 0) {
  @@ -468,12 +509,16 @@
       }
   
       /**
  -     * Deep comparison of array of <code>short</code> Length and all values
  -     *  are compared. The method append(short, short) is used.
  +     * <p>Deep comparison of array of <code>short</code> Length and all values
  +     * are compared.</p>
  +     *
  +     * <p>The method {@link #append(short, short)} is used.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return CompareToBuilder - used to chain calls.
  -     * @throws NullPointerException  if either (but not both) parameter is null
  +     * @throws NullPointerException  if either (but not both) parameter is
  +     *  <code>null<code>
        */
       public CompareToBuilder append(short[] lhs, short[] rhs) {
           if (comparison != 0) {
  @@ -496,12 +541,16 @@
       }
   
       /**
  -     * Deep comparison of array of <code>char</code> Length and all values
  -     *  are compared. The method append(char, char) is used.
  +     * <p>Deep comparison of array of <code>char</code> Length and all values
  +     * are compared.</p>
  +     *
  +     * <p>The method {@link #append(char, char)} is used.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return CompareToBuilder - used to chain calls.
  -     * @throws NullPointerException  if either (but not both) parameter is null
  +     * @throws NullPointerException  if either (but not both) parameter is
  +     *  <code>null</code>
        */
       public CompareToBuilder append(char[] lhs, char[] rhs) {
           if (comparison != 0) {
  @@ -524,12 +573,16 @@
       }
   
       /**
  -     * Deep comparison of array of <code>byte</code> Length and all values
  -     *  are compared. The method append(byte, byte) is used.
  +     * <p>Deep comparison of array of <code>byte</code> Length and all values
  +     * are compared.</p>
  +     *
  +     * <p>The method {@link #append(byte, byte)} is used.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return CompareToBuilder - used to chain calls.
  -     * @throws NullPointerException  if either (but not both) parameter is null
  +     * @throws NullPointerException  if either (but not both) parameter is
  +     *  <code>null</code>
        */
       public CompareToBuilder append(byte[] lhs, byte[] rhs) {
           if (comparison != 0) {
  @@ -552,12 +605,16 @@
       }
   
       /**
  -     * Deep comparison of array of <code>double</code> Length and all values
  -     *  are compared. The method append(double, double) is used.
  +     * <p>Deep comparison of array of <code>double</code> Length and all values
  +     * are compared.</p>
  +     *
  +     * <p>The method {@link #append(double, double)} is used.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return CompareToBuilder - used to chain calls.
  -     * @throws NullPointerException  if either (but not both) parameter is null
  +     * @throws NullPointerException  if either (but not both) parameter is
  +     *  <code>null</code>
        */
       public CompareToBuilder append(double[] lhs, double[] rhs) {
           if (comparison != 0) {
  @@ -580,12 +637,16 @@
       }
   
       /**
  -     * Deep comparison of array of <code>float</code> Length and all values
  -     *  are compared. The method append(float, float) is used.
  +     * <p>Deep comparison of array of <code>float</code> Length and all values
  +     * are compared.</p>
  +     *
  +     * <p>The method {@link #append(float, float)} is used.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return CompareToBuilder - used to chain calls.
  -     * @throws NullPointerException  if either (but not both) parameter is null
  +     * @throws NullPointerException  if either (but not both) parameter is
  +     *  <code>null</code>
        */
       public CompareToBuilder append(float[] lhs, float[] rhs) {
           if (comparison != 0) {
  @@ -608,12 +669,16 @@
       }
   
       /**
  -     * Deep comparison of array of <code>boolean</code> Length and all values
  -     *  are compared. The method append(boolean, boolean) is used.
  +     * <p>Deep comparison of array of <code>boolean</code> Length and all values
  +     * are compared.</p>
  +     *
  +     * <p>The method {@link #append(boolean, boolean)} is used.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return CompareToBuilder - used to chain calls.
  -     * @throws NullPointerException  if either (but not both) parameter is null
  +     * @throws NullPointerException  if either (but not both) parameter is
  +     *  <code>null</code>
        */
       public CompareToBuilder append(boolean[] lhs, boolean[] rhs) {
           if (comparison != 0) {
  @@ -636,11 +701,12 @@
       }
   
       /**
  -     * Return a negative integer if the object is less than, a positive 
  -     * integer if the object is greater than, or 0 if the object is equal.
  +     * <p>Return a negative integer if the Object is less than, a positive
  +     * integer if the Object is greater than, or <code>0</code> if the
  +     * Object is equal.
        * 
        * @return int - a negative integer, zero, or a positive integer as this 
  -     * object is less than, equal to, or greater than the specified object.
  +     *  Object is less than, equal to, or greater than the specified Object.
        */
       public int toComparison() {
           return comparison;
  
  
  
  1.6       +136 -85   jakarta-commons/lang/src/java/org/apache/commons/lang/builder/EqualsBuilder.java
  
  Index: EqualsBuilder.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/lang/src/java/org/apache/commons/lang/builder/EqualsBuilder.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- EqualsBuilder.java	1 Nov 2002 16:40:41 -0000	1.5
  +++ EqualsBuilder.java	17 Nov 2002 21:46:42 -0000	1.6
  @@ -56,22 +56,25 @@
   import java.lang.reflect.Field;
   import java.lang.reflect.Modifier;
   /**
  - * <code>Equals</code> generation routines. 
  - * <p>
  - * This class provides methods to build a good equals method for any class.  
  - * It follows rules laid out in Effective Java, by Joshua Bloch. In particular
  - * the rule for comparing <code>doubles </code>, <code>floats</code>, and 
  - * arrays can be tricky. Also, making  sure that <code>equals()</code>
  - * and <code>hashCode()</code> are consistent can be difficult.
  - * <p>
  - * Two object that compare as equals must generate the same hash code. But two
  - * objects with the same hash code do not have to be equal.
  - * <p>
  - * All relevant fields should be included in the calculation of equals. Derived
  - * fields may be ignored. In particular, any field used in generating a hash 
  - * code must be used in the equals method, and vice versa.
  - * <p>
  - * Typical use for the code is as follows:
  + * <p><code>Equals</code> generation routines.</p>
  + *
  + * <p> This class provides methods to build a good equals method for any
  + * class. It follows rules laid out in
  + * <a href="http://java.sun.com/docs/books/effective/index.html">Effective Java</a>
  + * , by Joshua Bloch. In particular the rule for comparing <code>doubles</code>,
  + * <code>floats</code>, and arrays can be tricky. Also, making sure that
  + * <code>equals()</code> and <code>hashCode()</code> are consistent can be
  + * difficult.</p>
  + *
  + * <p>Two Object that compare as equals must generate the same hash code.
  + * But two Objects with the same hash code do not have to be equal.</p>
  + *
  + * <p>All relevant fields should be included in the calculation of equals.
  + * Derived fields may be ignored. In particular, any field used in
  + * generating a hash code must be used in the equals method, and vice
  + * versa.</p>
  + *
  + * <p>Typical use for the code is as follows:</p>
    * <pre>
    * public boolean equals(Object o) {
    *   if ( !(o instanceof MyClass) ) {
  @@ -85,15 +88,15 @@
    *                 .isEquals();
    *  }
    * </pre>
  - * <p>
  - * Alternatively, there is a method that uses reflection to determine
  - * the fields to test. Because these fields are usually private, the method, 
  - * <code>reflectionEquals</code>, uses <code>Field.setAccessible</code> to change
  - * the visibility of the fields. This will fail under a security manager, 
  - * unless the appropriate permissions are set. It is also slower than testing 
  - * explicitly.
  - * <p>
  - * A typical invocation for this method would look like:
  + *
  + * <p> Alternatively, there is a method that uses reflection to determine
  + * the fields to test. Because these fields are usually private, the method,
  + * <code>reflectionEquals</code>, uses <code>Field.setAccessible</code> to
  + * change the visibility of the fields. This will fail under a security
  + * manager, unless the appropriate permissions are set up correctly. It is
  + * also slower than testing explicitly.</p>
  + *
  + * <p> A typical invocation for this method would look like:</p>
    * <pre>
    * public boolean equals(Object o) {
    *   return EqualsBuilder.reflectionEquals(this, obj);
  @@ -111,8 +114,9 @@
       private boolean isEquals;
   
       /**
  -     * Constructor for EqualsBuilder.
  -     * Starts off assuming that equals is true.
  +     * <p>Constructor for EqualsBuilder.</p>
  +     *
  +     * <p>Starts off assuming that equals is <code>true</code>.</p>
        * @see java.lang.Object#Object()
        */
       public EqualsBuilder() {
  @@ -123,40 +127,44 @@
       //-------------------------------------------------------------------------
       
       /**
  -     * This method uses reflection to determine if the two object are equal. 
  -     * <p>
  -     * It uses Field.setAccessible to gain access to private fields. This means
  -     * that it will throw a security exception if run under a security manger, if
  -     * the permissions are not set up.
  -     * It is also not as efficient as testing explicitly. 
  -     * Transient members will be not be tested, as they are likely derived
  -     * fields, and not part of the value of the object.
  -     * Static fields will not be tested.
  +     * <p>This method uses reflection to determine if the two Object are equal.</p>
  +     *
  +     * <p>It uses <code>Field.setAccessible</code> to gain access to private
  +     * fields. This means that it will throw a security exception if run under
  +     * a security manger, if the permissions are not set up correctly. It is also
  +     * not as efficient as testing explicitly.</p>
  +     *
  +     * <p>Transient members will be not be tested, as they are likely derived
  +     * fields, and not part of the value of the Object.</p>
  +     *
  +     * <p>Static fields will not be tested.</p>
        * 
        * @param lhs  Left Hand Side
        * @param rhs  Right Hand Side
  -     * @return boolean - if the two objects have tested equals.
  +     * @return <code>true</code> if the two Objects have tested equals.
        */
       public static boolean reflectionEquals(Object lhs, Object rhs) {
           return reflectionEquals(lhs, rhs, false);
       }
   
       /**
  -     * This method uses reflection to determine if the two object are equal. 
  -     * <p>
  -     * It uses Field.setAccessible to gain access to private fields. This means
  -     * that it will throw a security exception if run under a security manger, if
  -     * the permissions are not set up.
  -     * It is also not as efficient as testing explicitly. 
  -     * If the TestTransients parameter is set to true, transient members will be
  -     * tested, otherwise they are ignored, as they are likely derived fields, and
  -     * not part of the value of the object. 
  -     * Static fields will not be tested.
  +     * <p>This method uses reflection to determine if the two Object are equal.</p>
  +     *
  +     * <p>It uses <code>Field.setAccessible</code> to gain access to private
  +     * fields. This means that it will throw a security exception if run under
  +     * a security manger, if the permissions are not set up correctly. It is also
  +     * not as efficient as testing explicitly.</p>
  +     *
  +     * <p>If the TestTransients parameter is set to <code>true</code>, transient
  +     * members will be tested, otherwise they are ignored, as they are likely
  +     * derived fields, and not part of the value of the Object.</p>
  +     *
  +     * <p>Static fields will not be tested.</p>
        * 
        * @param lhs  Left Hand Side
        * @param rhs  Right Hand Side
        * @param testTransients  whether to include transient fields
  -     * @return boolean - if the two objects have tested equals.
  +     * @return <code>true</code> if the two Objects have tested equals.
        */
       public static boolean reflectionEquals(Object lhs, Object rhs, 
               boolean testTransients) {
  @@ -193,8 +201,9 @@
       //-------------------------------------------------------------------------
       
       /**
  -     * Test if two <code>Object</code>s are equal using their <code>equals</code>
  -     *  method.
  +     * <p>Test if two <code>Object</code>s are equal using their
  +     * <code>equals</code> method.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return EqualsBuilder - used to chain calls.
  @@ -242,7 +251,8 @@
       }
   
       /**
  -     * Test if two <code>long</code>s are equal using ==.
  +     * <p>Test if two <code>long</code>s are equal using ==.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return EqualsBuilder - used to chain calls.
  @@ -256,7 +266,8 @@
       }
   
       /**
  -     * Test if two <code>int</code>s are equal using ==.
  +     * <p>Test if two <code>int</code>s are equal using ==.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return EqualsBuilder - used to chain calls.
  @@ -270,7 +281,8 @@
       }
   
       /**
  -     * Test if two <code>short</code>s are equal using ==.
  +     * <p>Test if two <code>short</code>s are equal using ==.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return EqualsBuilder - used to chain calls.
  @@ -284,7 +296,8 @@
       }
   
       /**
  -     * Test if two <code>char</code>s are equal using ==.
  +     * <p>Test if two <code>char</code>s are equal using ==.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return EqualsBuilder - used to chain calls.
  @@ -298,7 +311,8 @@
       }
   
       /**
  -     * Test if two <code>byte</code>s are equal using ==.
  +     * <p>Test if two <code>byte</code>s are equal using ==.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return EqualsBuilder - used to chain calls.
  @@ -312,10 +326,14 @@
       }
   
       /**
  -     * Test if two <code>double</code>s are equal by testing that the 
  -     * pattern of bits returned by doubleToLong are equal. This handles NaNs, 
  -     * Infinties, and -0.0. It is compatible with the hash code generated by 
  -     * <code>HashCodeBuilder</code>.
  +     * <p>Test if two <code>double</code>s are equal by testing that the
  +     * pattern of bits returned by <code>doubleToLong</code> are equal.</p>
  +     *
  +     * <p>This handles NaNs, Infinties, and <code>-0.0</code>.</p>
  +     *
  +     * <p>It is compatible with the hash code generated by
  +     * <code>HashCodeBuilder</code>.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return EqualsBuilder - used to chain calls.
  @@ -328,10 +346,14 @@
       }
   
       /**
  -     * Test if two <code>float</code>s are equal byt testing that the 
  -     * pattern of bits returned by doubleToLong are equal. This handles NaNs, 
  -     * Infinties, and -0.0. It is compatible with the hash code generated by 
  -     * <code>HashCodeBuilder</code>.
  +     * <p>Test if two <code>float</code>s are equal byt testing that the
  +     * pattern of bits returned by doubleToLong are equal.</p>
  +     *
  +     * <p>This handles NaNs, Infinties, and <code>-0.0</code>.</p>
  +     *
  +     * <p>It is compatible with the hash code generated by
  +     * <code>HashCodeBuilder</code>.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return EqualsBuilder - used to chain calls.
  @@ -344,7 +366,8 @@
       }
   
       /**
  -     * Test if two <code>booleans</code>s are equal using ==.
  +     * <p>Test if two <code>booleans</code>s are equal using ==.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return EqualsBuilder - used to chain calls.
  @@ -358,9 +381,11 @@
       }
   
       /**
  -     * Performs a deep comparison of two object arrays. This also will be
  -     * called for the top level of multi-dimensional, ragged, and multi-typed
  -     * arrays. 
  +     * <p>Performs a deep comparison of two Object arrays.</p>
  +     *
  +     * <p>This also will be called for the top level of
  +     * multi-dimensional, ragged, and multi-typed arrays.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return EqualsBuilder - used to chain calls.
  @@ -392,8 +417,11 @@
       }
   
       /**
  -     * Deep comparison of array of <code>long</code> Length and all values
  -     *  are compared. The method append(long, long) is used.
  +     * <p>Deep comparison of array of <code>long</code> Length and all values
  +     * are compared.</p>
  +     *
  +     * <p>The method {@link #append(long, long)} is used.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return EqualsBuilder - used to chain calls.
  @@ -420,8 +448,11 @@
       }
   
       /**
  -     * Deep comparison of array of <code>int</code> Length and all values
  -     *  are compared. The method append(int, int) is used.
  +     * <p>Deep comparison of array of <code>int</code> Length and all values
  +     * are compared.</p>
  +     *
  +     * <p>The method {@link #append(int, int)} is used.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return EqualsBuilder - used to chain calls.
  @@ -448,8 +479,11 @@
       }
   
       /**
  -     * Deep comparison of array of <code>short</code> Length and all values
  -     *  are compared. The method append(short, short) is used.
  +     * <p>Deep comparison of array of <code>short</code> Length and all values
  +     * are compared.</p>
  +     *
  +     * <p>The method {@link #append(short, short)} is used.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return EqualsBuilder - used to chain calls.
  @@ -476,8 +510,11 @@
       }
   
       /**
  -     * Deep comparison of array of <code>char</code> Length and all values
  -     *  are compared. The method append(char, char) is used.
  +     * <p>Deep comparison of array of <code>char</code> Length and all values
  +     * are compared.</p>
  +     *
  +     * <p>The method {@link #append(char, char)} is used.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return EqualsBuilder - used to chain calls.
  @@ -504,8 +541,11 @@
       }
   
       /**
  -     * Deep comparison of array of <code>byte</code> Length and all values
  -     *  are compared. The method append(byte, byte) is used.
  +     * <p>Deep comparison of array of <code>byte</code> Length and all values
  +     * are compared.</p>
  +     *
  +     * <p>The method {@link #append(byte, byte)} is used.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return EqualsBuilder - used to chain calls.
  @@ -532,8 +572,11 @@
       }
   
       /**
  -     * Deep comparison of array of <code>double</code> Length and all values
  -     *  are compared. The method append(double, double) is used.
  +     * <p>Deep comparison of array of <code>double</code> Length and all values
  +     * are compared.</p>
  +     *
  +     * <p>The method {@link #append(double, double)} is used.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return EqualsBuilder - used to chain calls.
  @@ -560,8 +603,11 @@
       }
   
       /**
  -     * Deep comparison of array of <code>float</code> Length and all values
  -     *  are compared. The method append(float, float) is used.
  +     * <p>Deep comparison of array of <code>float</code> Length and all values
  +     * are compared.</p>
  +     *
  +     * <p>The method {@link #append(float, float)} is used.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return EqualsBuilder - used to chain calls.
  @@ -588,8 +634,11 @@
       }
   
       /**
  -     * Deep comparison of array of <code>boolean</code> Length and all values
  -     *  are compared. The method append(boolean, boolean) is used.
  +     * <p>Deep comparison of array of <code>boolean</code> Length and all values
  +     * are compared.</p>
  +     *
  +     * <p>The method {@link #append(boolean, boolean)} is used.</p>
  +     *
        * @param lhs - Left Hand Side
        * @param rhs - Right Hand Side
        * @return EqualsBuilder - used to chain calls.
  @@ -616,7 +665,9 @@
       }
   
       /**
  -     * Return true if the fields that have been checked are all equal.
  +     * <p>Return <code>true</code> if the fields that have been checked
  +     * are all equal.</p>
  +     *
        * @return boolean
        */
       public boolean isEquals() {
  
  
  
  1.8       +326 -231  jakarta-commons/lang/src/java/org/apache/commons/lang/builder/ToStringBuilder.java
  
  Index: ToStringBuilder.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/lang/src/java/org/apache/commons/lang/builder/ToStringBuilder.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- ToStringBuilder.java	30 Oct 2002 21:31:13 -0000	1.7
  +++ ToStringBuilder.java	17 Nov 2002 21:46:42 -0000	1.8
  @@ -56,19 +56,19 @@
   import java.lang.reflect.Field;
   import java.lang.reflect.Modifier;
   /**
  - * <code>ToString</code> generation routine.
  - * <p>
  - * This class enables a good toString to be built for any class. This class aims 
  - * to simplify the process by:
  + * <p><code>ToString</code> generation routine.</p>
  + *
  + * <p>This class enables a good <code>toString</code> to be built for any
  + * class. This class aims to simplify the process by:</p>
    * <ul>
    * <li>allowing field names
    * <li>handling all types consistently
    * <li>handling nulls consistently
    * <li>outputting arrays and multi-dimensional arrays
  - * <li>enabling the detail level to be controlled for objects and collections
  + * <li>enabling the detail level to be controlled for Objects and Collections
    * </ul>
  - * <p>
  - * To use this class write code as follows:
  + *
  + * <p>To use this class write code as follows:
    * <pre>
    * public class Person {
    *   String name;
  @@ -86,25 +86,25 @@
    *   }
    * }
    * </pre>
  - * This will produce a toString of the format:
  - * <code>Person@7f54[name=Stephen,age=29,smoker=false]</code>
  - * <p>
  - * Alternatively, there is a method that uses reflection to determine
  + * <p>This will produce a toString of the format:
  + * <code>Person@7f54[name=Stephen,age=29,smoker=false]</code></p>
  + *
  + * <p>Alternatively, there is a method that uses reflection to determine
    * the fields to test. Because these fields are usually private, the method, 
  - * <code>reflectionToString</code>, uses <code>Field.setAccessible</code> to change
  - * the visibility of the fields. This will fail under a security manager, 
  - * unless the appropriate permissions are set. It is also slower than testing 
  - * explicitly.
  - * <p>
  - * A typical invocation for this method would look like:
  + * <code>reflectionToString</code>, uses <code>Field.setAccessible</code> to
  + * change the visibility of the fields. This will fail under a security manager,
  + * unless the appropriate permissions are set up correctly. It is also
  + * slower than testing explicitly.</p>
  + *
  + * <p>A typical invocation for this method would look like:</p>
    * <pre>
    * public String toString() {
    *   return ToStringBuilder.reflectionToString(this);
    * }
    * </pre>
  - * <p>
  - * The exact format of the toString is determined by the {@link ToStringStyle}
  - * passed into the constructor.
  + *
  + * <p>The exact format of the <code>toString</code> is determined by
  + * the {@link ToStringStyle} passed into the constructor.</p>
    *
    * @author <a href="mailto:scolebourne@joda.org">Stephen Colebourne</a>
    * @version $Id$
  @@ -129,40 +129,52 @@
       private final Object object;
       
       /**
  -     * Constructor for ToStringBuilder.
  -     * This constructor outputs using the default style set with 
  -     * <code>setDefaultStyle</code>.
  +     * <p>Constructor for <code>ToStringBuilder</code>.</p>
  +     *
  +     * <p>This constructor outputs using the default style set with
  +     * <code>setDefaultStyle</code>.</p>
        * 
  -     * @param object  the object to build a toString for, must not be null
  -     * @throws IllegalArgumentException  if the object passed in is null
  +     * @param object  the Object to build a <code>toString</code> for,
  +     *  must not be <code>null</code>
  +     * @throws IllegalArgumentException  if the Object passed in is
  +     *  <code>null</code>
        */
       public ToStringBuilder(Object object) {
           this(object, getDefaultStyle(), null);
       }
       
       /**
  -     * Constructor for ToStringBuilder specifying the output style.
  -     * <p>
  -     * If the style is null, the default style is used.
  +     * <p>Constructor for <code>ToStringBuilder</code> specifying the
  +     * output style.</p>
  +     *
  +     * <p>If the style is <code>null</code>, the default style is used.</p>
        * 
  -     * @param object  the object to build a toString for, must not be null
  -     * @param style  the style of the toString to create, may be null
  -     * @throws IllegalArgumentException  if the object passed in is null
  +     * @param object  the Object to build a <code>toString</code> for,
  +     *  must not be <code>null</code>
  +     * @param style  the style of the <code>toString</code> to create,
  +     *  may be <code>null</code>
  +     * @throws IllegalArgumentException  if the Object passed in is
  +     *  <code>null</code>
        */
       public ToStringBuilder(Object object, ToStringStyle style) {
           this(object, style, null);
       }
       
       /**
  -     * Constructor for ToStringBuilder.
  -     * <p>
  -     * If the style is null, the default style is used.
  -     * If the buffer is null, a new one is created.
  +     * <p>Constructor for <code>ToStringBuilder</code>.</p>
  +     *
  +     * <p>If the style is <code>null</code>, the default style is used.</p>
  +     *
  +     * <p>If the buffer is <code>null</code>, a new one is created.</p>
        * 
  -     * @param object  the object to build a toString for, must not be null
  -     * @param style  the style of the toString to create, may be null
  -     * @param buffer  the string buffer to populate, may be null
  -     * @throws IllegalArgumentException  if the object passed in is null
  +     * @param object  the Object to build a <code>toString</code> for,
  +     *  must not be <code>null</code>
  +     * @param style  the style of the <code>toString</code> to create,
  +     *  may be <code>null</code>
  +     * @param buffer  the <code>StringBuffer</code> to populate, may be
  +     *  <code>null</code>
  +     * @throws IllegalArgumentException  if the Object passed in is
  +     *  <code>null</code>
        */
       public ToStringBuilder(Object object, ToStringStyle style, StringBuffer buffer) {
           super();
  @@ -185,23 +197,26 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Gets the default style to use.
  -     * <p>
  -     * This could allow the toString style to be controlled for an entire
  -     * application with one call. This might be used to have a verbose toString
  -     * during development and a compact toString in production.
  +     * <p>Gets the default <code>ToStringStyle</code> to use.</p>
  +     *
  +     * <p>This could allow the <code>ToStringStyle</code> to be
  +     * controlled for an entire application with one call.</p>
  +     *
  +     * <p>This might be used to have a verbose
  +     * <code>ToStringStyle</code> during development and a compact
  +     * <code>ToStringStyle</code> in production.</p>
        * 
  -     * @return the default toString style
  +     * @return the default <code>ToStringStyle</code>
        */
       public static ToStringStyle getDefaultStyle() {
           return defaultStyle;
       }
       
       /**
  -     * Sets the default style to use.
  +     * <p>Sets the default <code>ToStringStyle</code> to use.</p>
        * 
  -     * @param style  the default toString style
  -     * @throws IllegalArgumentException if the style is null
  +     * @param style  the default <code>ToStringStyle</code>
  +     * @throws IllegalArgumentException if the style is <code>null</code>
        */
       public static void setDefaultStyle(ToStringStyle style) {
           if (style == null) {
  @@ -213,65 +228,80 @@
       //-------------------------------------------------------------------------
       
       /**
  -     * This method uses reflection to build a suitable toString using the default style.
  -     * <p>
  -     * It uses Field.setAccessible to gain access to private fields. This means
  -     * that it will throw a security exception if run under a security manger, if
  -     * the permissions are not set up.
  -     * It is also not as efficient as testing explicitly. 
  -     * Transient members will be not be included, as they are likely derived.
  -     * Static fields will be not be included.
  -     * fields, and not part of the value of the object. 
  -     * 
  -     * @param object  the object to be output
  +     * <p>This method uses reflection to build a suitable
  +     * <code>toString<code> using the default <code>ToStringStyle</code>.
  +     *
  +     * <p>It uses <code>Field.setAccessible</code> to gain access to private
  +     * fields. This means that it will throw a security exception if run
  +     * under a security manger, if the permissions are not set up correctly.
  +     * It is also not as efficient as testing explicitly.</p>
  +     *
  +     * <p>Transient members will be not be included, as they are likely derived.</p>
  +     *
  +     * <p>Static fields will be not be included.</p>
  +     *
  +     * @param object  the Object to be output
        * @return the String result
  -     * @throws IllegalArgumentException if the object is null
  +     * @throws IllegalArgumentException if the Object is <code>null</code>
        */
       public static String reflectionToString(Object object) {
           return reflectionToString(object, null, false);
       }
   
       /**
  -     * This method uses reflection to build a suitable toString.
  -     * <p>
  -     * It uses Field.setAccessible to gain access to private fields. This means
  -     * that it will throw a security exception if run under a security manger, if
  -     * the permissions are not set up.
  -     * It is also not as efficient as testing explicitly. 
  -     * Transient members will be not be included, as they are likely derived.
  -     * Static fields will be not be included.
  -     * fields, and not part of the value of the object. 
  -     * <p>
  -     * If the style is null, the default style is used.
  +     * <p>This method uses reflection to build a suitable
  +     * <code>toString</code>.</p>
  +     *
  +     * <p>It uses <code>Field.setAccessible</code> to gain access to private
  +     * fields. This means that it will throw a security exception if run
  +     * under a security manger, if the permissions are not set up correctly.
  +     * It is also not as efficient as testing explicitly.</p>
  +     *
  +     * <p>Transient members will be not be included, as they are likely
  +     * derived.</p>
  +     *
  +     * <p>Static fields will be not be included.</p>
  +     *
  +     * <p>If the style is <code>null</code>, the default
  +     * <code>ToStringStyle</code> is used.</p>
        * 
  -     * @param object  the object to be output
  -     * @param style  the style of the toString to create, may be null
  +     * @param object  the Object to be output
  +     * @param style  the style of the <code>toString</code> to create,
  +     *  may be <code>null</code>
        * @return the String result
  -     * @throws IllegalArgumentException if the object or style is null
  +     * @throws IllegalArgumentException if the Object or
  +     *  <code>ToStringStyle</code> is <code>null</code>
        */
       public static String reflectionToString(Object object, ToStringStyle style) {
           return reflectionToString(object, style, false);
       }
   
       /**
  -     * This method uses reflection to build a suitable toString.
  -     * <p>
  -     * It uses Field.setAccessible to gain access to private fields. This means
  -     * that it will throw a security exception if run under a security manger, if
  -     * the permissions are not set up.
  -     * It is also not as efficient as testing explicitly. 
  -     * If the outputTransients parameter is set to true, transient members will be
  -     * output, otherwise they are ignored, as they are likely derived fields, and
  -     * not part of the value of the object. 
  -     * Static fields will not be tested.
  +     * <p>This method uses reflection to build a suitable
  +     * <code>toString</code>.</p>
  +     *
  +     * <p>It uses <code>Field.setAccessible</code> to gain access to private
  +     * fields. This means that it will throw a security exception if run
  +     * under a security manger, if the permissions are not set up correctly.
  +     * It is also not as efficient as testing explicitly. </p>
  +     *
  +     * <p>If the <code>outputTransients</code> is <code>true</code>,
  +     * transient members will be output, otherwise they are ignored,
  +     * as they are likely derived fields, and not part of the value of the
  +     * Object.</p>
  +     *
  +     * <p>Static fields will not be tested.</p>
  +     *
        * <p>
  -     * If the style is null, the default style is used.
  +     * If the style is <code>null</code>, the default
  +     * <code>ToStringStyle</code> is used.</p>
        * 
  -     * @param object  the object to be output
  -     * @param style  the style of the toString to create, may be null
  +     * @param object  the Object to be output
  +     * @param style  the style of the <code>toString</code> to create,
  +     *  may be <code>null</code>
        * @param outputTransients  whether to include transient fields
        * @return the String result
  -     * @throws IllegalArgumentException if the object is null
  +     * @throws IllegalArgumentException if the Object is <code>null</code>
        */
       public static String reflectionToString(Object object, ToStringStyle style, 
               boolean outputTransients) {
  @@ -305,9 +335,10 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString an Object value.
  +     * <p>Append to the <code>toString</code> an <code>Object</code>
  +     * value.</p>
        *
  -     * @param object  the value to add to the toString
  +     * @param object  the value to add to the <code>toString</code>
        * @return this
        */
       public ToStringBuilder append(Object object) {
  @@ -316,10 +347,11 @@
       }
   
       /**
  -     * Append to the toString an Object value.
  +     * <p>Append to the <code>toString</code> an <code>Object</code>
  +     * value.</p>
        *
  -     * @param object  the value to add to the toString
        * @param fieldName  the field name
  +     * @param object  the value to add to the <code>toString</code>
        * @return this
        */
       public ToStringBuilder append(String fieldName, Object object) {
  @@ -328,11 +360,13 @@
       }
   
       /**
  -     * Append to the toString an Object value.
  +     * <p>Append to the <code>toString</code> an <code>Object</code>
  +     * value.</p>
        *
  -     * @param object  the value to add to the toString
        * @param fieldName  the field name
  -     * @param fullDetail  true for detail, false for summary info
  +     * @param object  the value to add to the <code>toString</code>
  +     * @param fullDetail  <code>true</code> for detail,
  +     *  <code>false</code> for summary info
        * @return this
        */
       public ToStringBuilder append(String fieldName, Object object, boolean fullDetail) {
  @@ -343,9 +377,10 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString a long value.
  +     * <p>Append to the <code>toString</code> a <code>long</code>
  +     * value.</p>
        *
  -     * @param value  the value to add to the toString
  +     * @param value  the value to add to the <code>toString</code>
        * @return this
        */
       public ToStringBuilder append(long value) {
  @@ -354,10 +389,11 @@
       }
   
       /**
  -     * Append to the toString a long value.
  +     * <p>Append to the <code>toString</code> a <code>long</code>
  +     * value.</p>
        *
  -     * @param value  the value to add to the toString
        * @param fieldName  the field name
  +     * @param value  the value to add to the <code>toString</code>
        * @return this
        */
       public ToStringBuilder append(String fieldName, long value) {
  @@ -368,9 +404,10 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString an int value.
  +     * <p>Append to the <code>toString</code> an <code>int</code>
  +     * value.</p>
        *
  -     * @param value  the value to add to the toString
  +     * @param value  the value to add to the <code>toString</code>
        * @return this
        */
       public ToStringBuilder append(int value) {
  @@ -379,10 +416,11 @@
       }
   
       /**
  -     * Append to the toString an int value.
  +     * <p>Append to the <code>toString</code> an <code>int</code>
  +     * value.</p>
        *
  -     * @param value  the value to add to the toString
        * @param fieldName  the field name
  +     * @param value  the value to add to the <code>toString</code>
        * @return this
        */
       public ToStringBuilder append(String fieldName, int value) {
  @@ -393,9 +431,10 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString a short value.
  +     * <p>Append to the <code>toString</code> an <code>short</code>
  +     * value.</p>
        *
  -     * @param value  the value to add to the toString
  +     * @param value  the value to add to the <code>toString</code>
        * @return this
        */
       public ToStringBuilder append(short value) {
  @@ -404,10 +443,11 @@
       }
   
       /**
  -     * Append to the toString a short value.
  +     * <p>Append to the <code>toString</code> an <code>short</code>
  +     * value.</p>
        *
  -     * @param value  the value to add to the toString
        * @param fieldName  the field name
  +     * @param value  the value to add to the <code>toString</code>
        * @return this
        */
       public ToStringBuilder append(String fieldName, short value) {
  @@ -418,9 +458,10 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString a char value.
  +     * <p>Append to the <code>toString</code> an <code>char</code>
  +     * value.</p>
        *
  -     * @param value  the value to add to the toString
  +     * @param value  the value to add to the <code>toString</code>
        * @return this
        */
       public ToStringBuilder append(char value) {
  @@ -429,10 +470,11 @@
       }
   
       /**
  -     * Append to the toString a char value.
  +     * <p>Append to the <code>toString</code> an <code>char</code>
  +     * value.</p>
        *
  -     * @param value  the value to add to the toString
        * @param fieldName  the field name
  +     * @param value  the value to add to the <code>toString</code>
        * @return this
        */
       public ToStringBuilder append(String fieldName, char value) {
  @@ -443,9 +485,10 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString a byte value.
  +     * <p>Append to the <code>toString</code> an <code>byte</code>
  +     * value.</p>
        *
  -     * @param value  the value to add to the toString
  +     * @param value  the value to add to the <code>toString</code>
        * @return this
        */
       public ToStringBuilder append(byte value) {
  @@ -454,10 +497,11 @@
       }
   
       /**
  -     * Append to the toString a byte value.
  +     * <p>Append to the <code>toString</code> an <code>byte</code>
  +     * value.</p>
        *
  -     * @param value  the value to add to the toString
        * @param fieldName  the field name
  +     * @param value  the value to add to the <code>toString</code>
        * @return this
        */
       public ToStringBuilder append(String fieldName, byte value) {
  @@ -468,9 +512,10 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString a double value.
  +     * <p>Append to the <code>toString</code> an <code>double</code>
  +     * value.</p>
        *
  -     * @param value  the value to add to the toString
  +     * @param value  the value to add to the <code>toString</code>
        * @return this
        */
       public ToStringBuilder append(double value) {
  @@ -479,10 +524,11 @@
       }
   
       /**
  -     * Append to the toString a double value.
  +     * <p>Append to the <code>toString</code> an <code>double</code>
  +     * value.</p>
        *
  -     * @param value  the value to add to the toString
        * @param fieldName  the field name
  +     * @param value  the value to add to the <code>toString</code>
        * @return this
        */
       public ToStringBuilder append(String fieldName, double value) {
  @@ -493,9 +539,10 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString a float value.
  +     * <p>Append to the <code>toString</code> an <code>float</code>
  +     * value.</p>
        *
  -     * @param value  the value to add to the toString
  +     * @param value  the value to add to the <code>toString</code>
        * @return this
        */
       public ToStringBuilder append(float value) {
  @@ -504,10 +551,11 @@
       }
   
       /**
  -     * Append to the toString a float value.
  +     * <p>Append to the <code>toString</code> an <code>float</code>
  +     * value.</p>
        *
  -     * @param value  the value to add to the toString
        * @param fieldName  the field name
  +     * @param value  the value to add to the <code>toString</code>
        * @return this
        */
       public ToStringBuilder append(String fieldName, float value) {
  @@ -518,9 +566,10 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString a boolean value.
  +     * <p>Append to the <code>toString</code> an <code>boolean</code>
  +     * value.</p>
        *
  -     * @param value  the value to add to the toString
  +     * @param value  the value to add to the <code>toString</code>
        * @return this
        */
       public ToStringBuilder append(boolean value) {
  @@ -529,10 +578,11 @@
       }
   
       /**
  -     * Append to the toString a boolean value.
  +     * <p>Append to the <code>toString</code> an <code>boolean</code>
  +     * value.</p>
        *
  -     * @param value  the value to add to the toString
        * @param fieldName  the field name
  +     * @param value  the value to add to the <code>toString</code>
        * @return this
        */
       public ToStringBuilder append(String fieldName, boolean value) {
  @@ -543,9 +593,10 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString an Object array.
  +     * <p>Append to the <code>toString</code> an <code>Object</code>
  +     * array.</p>
        *
  -     * @param array  the array to add to the toString
  +     * @param array  the array to add to the <code>toString</code>
        * @return this
        */
       public ToStringBuilder append(Object[] array) {
  @@ -554,10 +605,11 @@
       }
   
       /**
  -     * Append to the toString an Object array.
  +     * <p>Append to the <code>toString</code> an <code>Object</code>
  +     * array.</p>
        *
        * @param fieldName  the field name
  -     * @param array  the array to add to the toString
  +     * @param array  the array to add to the <code>toString</code>
        * @return this
        */
       public ToStringBuilder append(String fieldName, Object[] array) {
  @@ -566,15 +618,18 @@
       }
   
       /**
  -     * Append to the toString an Object array.
  -     * <p>
  -     * A boolean parameter controls the level of detail to show. Setting true
  -     * will output the array in full. Setting false will output a summary,
  -     * typically the size of the array.
  +     * <p>Append to the <code>toString</code> an <code>Object</code>
  +     * array.</p>
  +     *
  +     * <p>A boolean parameter controls the level of detail to show.
  +     * Setting <code>true</code> will output the array in full. Setting
  +     * <code>false</code> will output a summary, typically the size of
  +     * the array.</p>
        *
        * @param fieldName  the field name
  -     * @param array  the array to add to the toString
  -     * @param fullDetail  true for detail, false for summary info
  +     * @param array  the array to add to the <code>toString</code>
  +     * @param fullDetail  <code>true</code> for detail, <code>false</code>
  +     *  for summary info
        * @return this
        */
       public ToStringBuilder append(String fieldName, Object[] array, boolean fullDetail) {
  @@ -585,9 +640,10 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString a long array.
  +     * <p>Append to the <code>toString</code> a <code>long</code>
  +     * array.</p>
        *
  -     * @param array  the array to add to the toString
  +     * @param array  the array to add to the <code>toString</code>
        * @return this
        */
       public ToStringBuilder append(long[] array) {
  @@ -596,10 +652,11 @@
       }
   
       /**
  -     * Append a hashCode for a long array.
  +     * <p>Append a <code>hashCode</code> for a <code>long</code>
  +     * array.</p>
        *
        * @param fieldName  the field name
  -     * @param array  the array to add to the hashCode
  +     * @param array  the array to add to the <code>hashCode</code>
        * @return this
        */
       public ToStringBuilder append(String fieldName, long[] array) {
  @@ -608,15 +665,18 @@
       }
   
       /**
  -     * Append to the toString a long array.
  -     * <p>
  -     * A boolean parameter controls the level of detail to show. Setting true
  -     * will output the array in full. Setting false will output a summary,
  -     * typically the size of the array.
  +     * <p>Append to the <code>toString</code> a <code>long</code>
  +     * array.</p>
  +     *
  +     * <p>A boolean parameter controls the level of detail to show.
  +     * Setting <code>true</code> will output the array in full. Setting
  +     * <code>false</code> will output a summary, typically the size of
  +     * the array.</p>
        *
        * @param fieldName  the field name
  -     * @param array  the array to add to the toString
  -     * @param fullDetail  true for detail, false for summary info
  +     * @param array  the array to add to the <code>toString</code>
  +     * @param fullDetail  <code>true</code> for detail, <code>false</code>
  +     *  for summary info
        * @return this
        */
       public ToStringBuilder append(String fieldName, long[] array, boolean fullDetail) {
  @@ -627,9 +687,10 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString a int array.
  +     * <p>Append to the <code>toString</code> a <code>int</code>
  +     * array.</p>
        *
  -     * @param array  the array to add to the toString
  +     * @param array  the array to add to the <code>toString</code>
        * @return this
        */
       public ToStringBuilder append(int[] array) {
  @@ -638,10 +699,11 @@
       }
   
       /**
  -     * Append a hashCode for an int array.
  +     * <p>Append a <code>hashCode</code> for an <code>int</code>
  +     * array.</p>
        *
        * @param fieldName  the field name
  -     * @param array  the array to add to the hashCode
  +     * @param array  the array to add to the <code>hashCode</code>
        * @return this
        */
       public ToStringBuilder append(String fieldName, int[] array) {
  @@ -650,15 +712,18 @@
       }
   
       /**
  -     * Append to the toString an int array.
  -     * <p>
  -     * A boolean parameter controls the level of detail to show. Setting true
  -     * will output the array in full. Setting false will output a summary,
  -     * typically the size of the array.
  +     * <p>Append to the <code>toString</code> an <code>int</code>
  +     * array.</p>
  +     *
  +     * <p>A boolean parameter controls the level of detail to show.
  +     * Setting <code>true</code> will output the array in full. Setting
  +     * <code>false</code> will output a summary, typically the size of
  +     * the array.</p>
        *
        * @param fieldName  the field name
  -     * @param array  the array to add to the toString
  -     * @param fullDetail  true for detail, false for summary info
  +     * @param array  the array to add to the <code>toString</code>
  +     * @param fullDetail  <code>true</code> for detail, <code>false</code>
  +     *  for summary info
        * @return this
        */
       public ToStringBuilder append(String fieldName, int[] array, boolean fullDetail) {
  @@ -669,9 +734,10 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString a short array.
  +     * <p>Append to the <code>toString</code> a <code>short</code>
  +     * array.</p>
        *
  -     * @param array  the array to add to the toString
  +     * @param array  the array to add to the <code>toString</code>
        * @return this
        */
       public ToStringBuilder append(short[] array) {
  @@ -680,10 +746,11 @@
       }
   
       /**
  -     * Append a hashCode for a short array.
  +     * <p>Append a <code>hashCode</code> for a <code>short</code>
  +     * array.</p>
        *
        * @param fieldName  the field name
  -     * @param array  the array to add to the hashCode
  +     * @param array  the array to add to the <code>hashCode</code>
        * @return this
        */
       public ToStringBuilder append(String fieldName, short[] array) {
  @@ -692,15 +759,18 @@
       }
   
       /**
  -     * Append to the toString a short array.
  -     * <p>
  -     * A boolean parameter controls the level of detail to show. Setting true
  -     * will output the array in full. Setting false will output a summary,
  -     * typically the size of the array.
  +     * <p>Append to the <code>toString</code> a <code>short</code>
  +     * array.</p>
  +     *
  +     * <p>A boolean parameter controls the level of detail to show.
  +     * Setting <code>true</code> will output the array in full. Setting
  +     * <code>false</code> will output a summary, typically the size of
  +     * the array.
        *
        * @param fieldName  the field name
  -     * @param array  the array to add to the toString
  -     * @param fullDetail  true for detail, false for summary info
  +     * @param array  the array to add to the <code>toString</code>
  +     * @param fullDetail  <code>true</code> for detail, <code>false</code>
  +     *  for summary info
        * @return this
        */
       public ToStringBuilder append(String fieldName, short[] array, boolean fullDetail) {
  @@ -711,9 +781,10 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString a char array.
  +     * <p>Append to the <code>toString</code> a <code>char</code>
  +     * array.</p>
        *
  -     * @param array  the array to add to the toString
  +     * @param array  the array to add to the <code>toString</code>
        * @return this
        */
       public ToStringBuilder append(char[] array) {
  @@ -722,10 +793,11 @@
       }
   
       /**
  -     * Append a hashCode for a char array.
  +     * <p>Append a <code>hashCode</code> for a <code>char</code>
  +     * array.</p>
        *
        * @param fieldName  the field name
  -     * @param array  the array to add to the hashCode
  +     * @param array  the array to add to the <code>hashCode</code>
        * @return this
        */
       public ToStringBuilder append(String fieldName, char[] array) {
  @@ -734,15 +806,18 @@
       }
   
       /**
  -     * Append to the toString a char array.
  -     * <p>
  -     * A boolean parameter controls the level of detail to show. Setting true
  -     * will output the array in full. Setting false will output a summary,
  -     * typically the size of the array.
  +     * <p>Append to the <code>toString</code> a <code>char</code>
  +     * array.</p>
  +     *
  +     * <p>A boolean parameter controls the level of detail to show.
  +     * Setting <code>true</code> will output the array in full. Setting
  +     * <code>false</code> will output a summary, typically the size of
  +     * the array.</p>
        *
        * @param fieldName  the field name
  -     * @param array  the array to add to the toString
  -     * @param fullDetail  true for detail, false for summary info
  +     * @param array  the array to add to the <code>toString</code>
  +     * @param fullDetail  <code>true</code> for detail, <code>false</code>
  +     *  for summary info
        * @return this
        */
       public ToStringBuilder append(String fieldName, char[] array, boolean fullDetail) {
  @@ -753,9 +828,10 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString a byte array.
  +     * <p>Append to the <code>toString</code> a <code>byte</code>
  +     * array.</p>
        *
  -     * @param array  the array to add to the toString
  +     * @param array  the array to add to the <code>toString</code>
        * @return this
        */
       public ToStringBuilder append(byte[] array) {
  @@ -764,10 +840,11 @@
       }
   
       /**
  -     * Append a hashCode for a byte array.
  +     * <p>Append a <code>hashCode</code> for a <code>byte</code>
  +     * array.</p>
        *
        * @param fieldName  the field name
  -     * @param array  the array to add to the hashCode
  +     * @param array  the array to add to the <code>hashCode</code>
        * @return this
        */
       public ToStringBuilder append(String fieldName, byte[] array) {
  @@ -776,15 +853,18 @@
       }
   
       /**
  -     * Append to the toString a byte array.
  -     * <p>
  -     * A boolean parameter controls the level of detail to show. Setting true
  -     * will output the array in full. Setting false will output a summary,
  -     * typically the size of the array.
  +     * <p>Append to the <code>toString</code> a <code>byte</code>
  +     * array.</p>
  +     *
  +     * <p>A boolean parameter controls the level of detail to show.
  +     * Setting <code>true</code> will output the array in full. Setting
  +     * <code>false</code> will output a summary, typically the size of
  +     * the array.
        *
        * @param fieldName  the field name
  -     * @param array  the array to add to the toString
  -     * @param fullDetail  true for detail, false for summary info
  +     * @param array  the array to add to the <code>toString</code>
  +     * @param fullDetail  <code>true</code> for detail, <code>false</code>
  +     *  for summary info
        * @return this
        */
       public ToStringBuilder append(String fieldName, byte[] array, boolean fullDetail) {
  @@ -795,9 +875,10 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString a double array.
  +     * <p>Append to the <code>toString</code> a <code>double</code>
  +     * array.</p>
        *
  -     * @param array  the array to add to the toString
  +     * @param array  the array to add to the <code>toString</code>
        * @return this
        */
       public ToStringBuilder append(double[] array) {
  @@ -806,10 +887,11 @@
       }
   
       /**
  -     * Append a hashCode for a double array.
  +     * <p>Append a <code>hashCode</code> for a <code>double</code>
  +     * array.</p>
        *
        * @param fieldName  the field name
  -     * @param array  the array to add to the hashCode
  +     * @param array  the array to add to the <code>hashCode</code>
        * @return this
        */
       public ToStringBuilder append(String fieldName, double[] array) {
  @@ -818,15 +900,18 @@
       }
   
       /**
  -     * Append to the toString a double array.
  -     * <p>
  -     * A boolean parameter controls the level of detail to show. Setting true
  -     * will output the array in full. Setting false will output a summary,
  -     * typically the size of the array.
  +     * <p>Append to the <code>toString</code> a <code>double</code>
  +     * array.</p>
  +     *
  +     * <p>A boolean parameter controls the level of detail to show.
  +     * Setting <code>true</code> will output the array in full. Setting
  +     * <code>false</code> will output a summary, typically the size of
  +     * the array.</p>
        *
        * @param fieldName  the field name
  -     * @param array  the array to add to the toString
  -     * @param fullDetail  true for detail, false for summary info
  +     * @param array  the array to add to the <code>toString</code>
  +     * @param fullDetail  <code>true</code> for detail, <code>false</code>
  +     *  for summary info
        * @return this
        */
       public ToStringBuilder append(String fieldName, double[] array, boolean fullDetail) {
  @@ -837,9 +922,10 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString a float array.
  +     * <p>Append to the <code>toString</code> a <code>float</code>
  +     * array.</p>
        *
  -     * @param array  the array to add to the toString
  +     * @param array  the array to add to the <code>toString</code>
        * @return this
        */
       public ToStringBuilder append(float[] array) {
  @@ -848,10 +934,11 @@
       }
   
       /**
  -     * Append a hashCode for a float array.
  +     * <p>Append a <code>hashCode</code> for a <code>float</code>
  +     * array.</p>
        *
        * @param fieldName  the field name
  -     * @param array  the array to add to the hashCode
  +     * @param array  the array to add to the <code>hashCode</code>
        * @return this
        */
       public ToStringBuilder append(String fieldName, float[] array) {
  @@ -860,15 +947,18 @@
       }
   
       /**
  -     * Append to the toString a float array.
  -     * <p>
  -     * A boolean parameter controls the level of detail to show. Setting true
  -     * will output the array in full. Setting false will output a summary,
  -     * typically the size of the array.
  +     * <p>Append to the <code>toString</code> a <code>float</code>
  +     * array.</p>
  +     *
  +     * <p>A boolean parameter controls the level of detail to show.
  +     * Setting <code>true</code> will output the array in full. Setting
  +     * <code>false</code> will output a summary, typically the size of
  +     * the array.</p>
        *
        * @param fieldName  the field name
  -     * @param array  the array to add to the toString
  -     * @param fullDetail  true for detail, false for summary info
  +     * @param array  the array to add to the <code>toString</code>
  +     * @param fullDetail  <code>true</code> for detail, <code>false</code>
  +     *  for summary info
        * @return this
        */
       public ToStringBuilder append(String fieldName, float[] array, boolean fullDetail) {
  @@ -879,9 +969,10 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString a boolean array.
  +     * <p>Append to the <code>toString</code> a <code>boolean</code>
  +     * array.</p>
        *
  -     * @param array  the array to add to the toString
  +     * @param array  the array to add to the <code>toString</code>
        * @return this
        */
       public ToStringBuilder append(boolean[] array) {
  @@ -890,10 +981,11 @@
       }
   
       /**
  -     * Append a hashCode for a boolean array.
  +     * <p>Append a <code>hashCode</code> for a <code>boolean</code>
  +     * array.</p>
        *
        * @param fieldName  the field name
  -     * @param array  the array to add to the hashCode
  +     * @param array  the array to add to the <code>hashCode</code>
        * @return this
        */
       public ToStringBuilder append(String fieldName, boolean[] array) {
  @@ -902,15 +994,18 @@
       }
   
       /**
  -     * Append to the toString a boolean array.
  -     * <p>
  -     * A boolean parameter controls the level of detail to show. Setting true
  -     * will output the array in full. Setting false will output a summary,
  -     * typically the size of the array.
  +     * <p>Append to the <code>toString</code> a <code>boolean</code>
  +     * array.</p>
  +     *
  +     * <p>A boolean parameter controls the level of detail to show.
  +     * Setting <code>true</code> will output the array in full. Setting
  +     * <code>false</code> will output a summary, typically the size of
  +     * the array.</p>
        *
        * @param fieldName  the field name
  -     * @param array  the array to add to the toString
  -     * @param fullDetail  true for detail, false for summary info
  +     * @param array  the array to add to the <code>toString</code>
  +     * @param fullDetail  <code>true</code> for detail, <code>false</code>
  +     *  for summary info
        * @return this
        */
       public ToStringBuilder append(String fieldName, boolean[] array, boolean fullDetail) {
  @@ -921,18 +1016,18 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Gets the buffer being populated
  +     * <p>Gets the <code>StringBuffer</code> being populated.</p>
        * 
  -     * @return the StringBuffer being populated
  +     * @return the <code>StringBuffer</code> being populated
        */    
       public StringBuffer getStringBuffer() {
           return buffer;
       }
   
       /**
  -     * Returns the built toString
  +     * <p>Returns the built <code>toString</code>.</p>
        * 
  -     * @return the String toString
  +     * @return the String <code>toString</code>
        */    
       public String toString() {
           style.appendEnd(buffer, object);
  
  
  
  1.5       +138 -122  jakarta-commons/lang/src/java/org/apache/commons/lang/builder/HashCodeBuilder.java
  
  Index: HashCodeBuilder.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/lang/src/java/org/apache/commons/lang/builder/HashCodeBuilder.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- HashCodeBuilder.java	1 Oct 2002 20:02:08 -0000	1.4
  +++ HashCodeBuilder.java	17 Nov 2002 21:46:42 -0000	1.5
  @@ -56,18 +56,20 @@
   import java.lang.reflect.Field;
   import java.lang.reflect.Modifier;
   /**
  - * <code>HashCode</code> generation routines.
  - * <p>
  - * This class enables a good hashcode to be built for any class. It follows
  - * the rules laid out in the book Effective Java, by Joshua Bloch. Writing a 
  - * good hashCode is actually quite difficult. This class aims to simplify the 
  - * process.
  - * <p>
  - * All relevant fields from the object should be included in the hashCode. Derived
  - * fields may be excluded. In general, any field used in the equals method must be
  - * used in the hashCode method. 
  - * <p>
  - * To use this class write code as follows:
  + * <p><code>HashCode</code> generation routines.</p>
  + *
  + * <p> This class enables a good hashcode to be built for any class. It
  + * follows the rules laid out in the book
  + * <a href="http://java.sun.com/docs/books/effective/index.html">Effective Java</a>
  + * , by Joshua Bloch. Writing a good <code>hashCode</code> is actually quite
  + * difficult. This class aims to simplify the process.</p>
  + *
  + * <p> All relevant fields from the object should be included in the
  + * <code>hashCode</code>. Derived fields may be excluded. In general, any
  + * field used in the equals method must be used in the <code>hashCode</code>
  + * method.</p>
  + *
  + * <p>To use this class write code as follows:</p>
    * <pre>
    * public class Person {
    *   String name;
  @@ -86,15 +88,15 @@
    *   }
    * }
    * </pre>
  - * <p>
  - * Alternatively, there is a method that uses reflection to determine
  + *
  + * <p>Alternatively, there is a method that uses reflection to determine
    * the fields to test. Because these fields are usually private, the method, 
    * <code>reflectionHashCode</code>, uses <code>Field.setAccessible</code> to
    * change the visibility of the fields. This will fail under a security manager, 
  - * unless the appropriate permissions are set. It is also slower than testing 
  - * explicitly.
  - * <p>
  - * A typical invocation for this method would look like:
  + * unless the appropriate permissions are set up correctly. It is also slower
  + * than testing explicitly.</p>
  + *
  + * <p>A typical invocation for this method would look like:</p>
    * <pre>
    * public boolean hashCode(Object o) {
    *   return HashCodeBuilder.reflectionHashCode(this);
  @@ -116,9 +118,10 @@
       private int iTotal = 0;
       
       /**
  -     * Constructor for HashCodeBuilder.
  -     * This constructor uses two hard coded choices for the constants needed
  -     * to build a hashCode.
  +     * <p>Constructor for HashCodeBuilder.</p>
  +     *
  +     * <p>This constructor uses two hard coded choices for the constants
  +     * needed to build a <code>hashCode</code>.</p>
        */
       public HashCodeBuilder() {
           super();
  @@ -127,10 +130,13 @@
       }
       
       /**
  -     * Constructor for HashCodeBuilder.
  -     * Two randomly chosen, non-zero, odd numbers must be passed in. Ideally
  -     * these should be different for each class, however this is not vital.
  -     * Prime numbers are preferred, especially for the multiplier.
  +     * <p>Constructor for <code>HashCodeBuilder</code>.</p>
  +     *
  +     * <p>Two randomly chosen, non-zero, odd numbers must be passed in.
  +     * Ideally these should be different for each class, however this is
  +     * not vital.</p>
  +     *
  +     * <p>Prime numbers are preferred, especially for the multiplier.</p>
        * 
        * @param initialNonZeroOddNumber  a non-zero, odd number used as the initial value
        * @param multiplierNonZeroOddNumber  a non-zero, odd number used as the multiplier
  @@ -157,69 +163,77 @@
       //-------------------------------------------------------------------------
       
       /**
  -     * This method uses reflection to build a valid hash code. 
  -     * <p>
  -     * It uses Field.setAccessible to gain access to private fields. This means
  -     * that it will throw a security exception if run under a security manger, if
  -     * the permissions are not set up.
  -     * It is also not as efficient as testing explicitly. 
  -     * Transient members will be not be used, as they are likely derived 
  -     * fields, and not part of the value of the object. 
  -     * Static fields will not be tested.
  -     * This constructor uses two hard coded choices for the constants needed
  -     * to build a hash code.
  -     * 
  -     * @param object  the object to create a hash code for
  +     * <p>This method uses reflection to build a valid hash code.</p>
  +     *
  +     * <p>This constructor uses two hard coded choices for the constants
  +     * needed to build a hash code.</p>
  +     *
  +     * <p>It uses <code>Field.setAccessible</code> to gain access to private
  +     * fields. This means that it will throw a security exception if run under
  +     * a security manger, if the permissions are not set up correctly. It is
  +     * also not as efficient as testing explicitly.</p>
  +     *
  +     * <p>Transient members will be not be used, as they are likely derived
  +     * fields, and not part of the value of the Object.</p>
  +     *
  +     * <p>Static fields will not be tested.</p>
  +     *
  +     * @param object  the Object to create a <code>hashCode</code> for
        * @return int hash code
  -     * @throws IllegalArgumentException if the object is null
  +     * @throws IllegalArgumentException if the object is <code>null</code>
        */
       public static int reflectionHashCode(Object object) {
           return reflectionHashCode(object, false);
       }
   
       /**
  -     * This method uses reflection to build a valid hash code. 
  -     * <p>
  -     * It uses Field.setAccessible to gain access to private fields. This means
  -     * that it will throw a security exception if run under a security manger, if
  -     * the permissions are not set up.
  -     * It is also not as efficient as testing explicitly. 
  -     * If the TestTransients parameter is set to true, transient members will be
  -     * tested, otherwise they are ignored, as they are likely derived fields, and
  -     * not part of the value of the object. 
  -     * Static fields will not be tested.
  -     * This constructor uses two hard coded choices for the constants needed
  -     * to build a hash code.
  -     * 
  -     * @param object  the object to create a hash code for
  +     * <p>This method uses reflection to build a valid hash code.</p>
  +     *
  +     * <p>This constructor uses two hard coded choices for the constants needed
  +     * to build a hash code.</p>
  +     *
  +     * <p> It uses <code>Field.setAccessible</code> to gain access to private
  +     * fields. This means that it will throw a security exception if run under
  +     * a security manger, if the permissions are not set up correctly. It is
  +     * also not as efficient as testing explicitly.</p>
  +     *
  +     * <P>If the TestTransients parameter is set to <code>true</code>, transient
  +     * members will be tested, otherwise they are ignored, as they are likely
  +     * derived fields, and not part of the value of the Object.</p>
  +     *
  +     * <p>Static fields will not be tested.</p>
  +     *
  +     * @param object  the Object to create a <code>hashCode</code> for
        * @param testTransients  whether to include transient fields
        * @return int hash code
  -     * @throws IllegalArgumentException if the object is null
  +     * @throws IllegalArgumentException if the object is <code>null</code>
        */
       public static int reflectionHashCode(Object object, boolean testTransients) {
           return reflectionHashCode(17, 37, object, testTransients);
       }
           
       /**
  -     * This method uses reflection to build a valid hash code. 
  -     * <p>
  -     * It uses Field.setAccessible to gain access to private fields. This means
  -     * that it will throw a security exception if run under a security manger, if
  -     * the permissions are not set up.
  -     * It is also not as efficient as testing explicitly. 
  -     * Transient members will be not be used, as they are likely derived 
  -     * fields, and not part of the value of the object. 
  -     * Static fields will not be tested.
  -     * <p>
  -     * Two randomly chosen, non-zero, odd numbers must be passed in. Ideally
  +     * <p>This method uses reflection to build a valid hash code.</p>
  +     *
  +     * <p>It uses <code>Field.setAccessible</code> to gain access to private
  +     * fields. This means that it will throw a security exception if run under
  +     * a security manger, if the permissions are not set up correctly. It is
  +     * also not as efficient as testing explicitly.</p>
  +     *
  +     * <p>Transient members will be not be used, as they are likely derived
  +     * fields, and not part of the value of the Object.</p>
  +     *
  +     * <p>Static fields will not be tested.</p>
  +     *
  +     * <p>Two randomly chosen, non-zero, odd numbers must be passed in. Ideally
        * these should be different for each class, however this is not vital.
  -     * Prime numbers are preferred, especially for the multiplier.
  +     * Prime numbers are preferred, especially for the multiplier.</p>
        * 
        * @param initialNonZeroOddNumber  a non-zero, odd number used as the initial value
        * @param multiplierNonZeroOddNumber  a non-zero, odd number used as the multiplier
  -     * @param object  the object to create a hash code for
  +     * @param object  the Object to create a <code>hashCode</code> for
        * @return int hash code
  -     * @throws IllegalArgumentException if the object is null
  +     * @throws IllegalArgumentException if the Object is <code>null</code>
        * @throws IllegalArgumentException if the number is zero or even
        */
       public static int reflectionHashCode(
  @@ -229,27 +243,29 @@
       }
       
       /**
  -     * This method uses reflection to build a valid hash code. 
  -     * <p>
  -     * It uses Field.setAccessible to gain access to private fields. This means
  -     * that it will throw a security exception if run under a security manger, if
  -     * the permissions are not set up.
  -     * It is also not as efficient as testing explicitly. 
  -     * If the TestTransients parameter is set to true, transient members will be
  -     * tested, otherwise they are ignored, as they are likely derived fields, and
  -     * not part of the value of the object. 
  -     * Static fields will not be tested.
  -     * <p>
  -     * Two randomly chosen, non-zero, odd numbers must be passed in. Ideally
  +     * <p>This method uses reflection to build a valid hash code.</p>
  +     *
  +     * <p>It uses <code>Field.setAccessible</code> to gain access to private
  +     * fields. This means that it will throw a security exception if run under
  +     * a security manger, if the permissions are not set up correctly. It is also
  +     * not as efficient as testing explicitly.</p>
  +     *
  +     * <p>If the TestTransients parameter is set to <code>true</code>, transient
  +     * members will be tested, otherwise they are ignored, as they are likely
  +     * derived fields, and not part of the value of the Object.</p>
  +     *
  +     * <p>Static fields will not be tested.</p>
  +     *
  +     * <p>Two randomly chosen, non-zero, odd numbers must be passed in. Ideally
        * these should be different for each class, however this is not vital.
  -     * Prime numbers are preferred, especially for the multiplier.
  +     * Prime numbers are preferred, especially for the multiplier.</p>
        * 
        * @param initialNonZeroOddNumber
        * @param multiplierNonZeroOddNumber
  -     * @param object  the object to create a hash code for
  +     * @param object  the Object to create a <code>hashCode</code> for
        * @param testTransients  whether to include transient fields
        * @return int hash code
  -     * @throws IllegalArgumentException if the object is null
  +     * @throws IllegalArgumentException if the Object is <code>null</code>
        * @throws IllegalArgumentException if the number is zero or even
        */
       public static int reflectionHashCode(
  @@ -282,9 +298,9 @@
       //-------------------------------------------------------------------------
       
       /**
  -     * Append a hashCode for an Object.
  +     * <p>Append a <code>hashCode</code> for an <code>Object</code>.</p>
        *
  -     * @param object  the object to add to the hashCode
  +     * @param object  the Object to add to the <code>hashCode</code>
        * @return this
        */
       public HashCodeBuilder append(Object object) {
  @@ -325,9 +341,9 @@
       }
   
       /**
  -     * Append a hashCode for a long.
  +     * <p>Append a <code>hashCode</code> for a <code>long</code>.</p>
        *
  -     * @param value  the long to add to the hashCode
  +     * @param value  the long to add to the <code>hashCode</code>
        * @return this
        */
       public HashCodeBuilder append(long value) {
  @@ -336,9 +352,9 @@
       }
   
       /**
  -     * Append a hashCode for an int.
  +     * <p>Append a <code>hashCode</code> for an <code>int</code>.</p>
        *
  -     * @param value  the int to add to the hashCode
  +     * @param value  the int to add to the <code>hashCode</code>
        * @return this
        */
       public HashCodeBuilder append(int value) {
  @@ -347,9 +363,9 @@
       }
   
       /**
  -     * Append a hashCode for a short.
  +     * <p>Append a <code>hashCode</code> for a <code>short</code>.</p>
        *
  -     * @param value  the short to add to the hashCode
  +     * @param value  the short to add to the <code>hashCode</code>
        * @return this
        */
       public HashCodeBuilder append(short value) {
  @@ -358,9 +374,9 @@
       }
   
       /**
  -     * Append a hashCode for a char.
  +     * <p>Append a <code>hashCode</code> for a <code>char</code>.</p>
        *
  -     * @param value  the char to add to the hashCode
  +     * @param value  the char to add to the <code>hashCode</code>
        * @return this
        */
       public HashCodeBuilder append(char value) {
  @@ -369,9 +385,9 @@
       }
   
       /**
  -     * Append a hashCode for a byte.
  +     * <p>Append a <code>hashCode</code> for a <code>byte</code>.</p>
        *
  -     * @param value  the byte to add to the hashCode
  +     * @param value  the byte to add to the <code>hashCode</code>
        * @return this
        */
       public HashCodeBuilder append(byte value) {
  @@ -380,9 +396,9 @@
       }
   
       /**
  -     * Append a hashCode for a double.
  +     * <p>Append a <code>hashCode</code> for a <code>double</code>.</p>
        *
  -     * @param value  the double to add to the hashCode
  +     * @param value  the double to add to the <code>hashCode</code>
        * @return this
        */
       public HashCodeBuilder append(double value) {
  @@ -390,9 +406,9 @@
       }
   
       /**
  -     * Append a hashCode for a float.
  +     * <p>Append a <code>hashCode</code> for a <code>float</code>.</p>
        *
  -     * @param value  the float to add to the hashCode
  +     * @param value  the float to add to the <code>hashCode</code>
        * @return this
        */
       public HashCodeBuilder append(float value) {
  @@ -401,9 +417,9 @@
       }
   
       /**
  -     * Append a hashCode for a long.
  +     * <p>Append a <code>hashCode</code> for a <code>long</code>.</p>
        *
  -     * @param value  the long to add to the hashCode
  +     * @param value  the long to add to the <code>hashCode</code>
        * @return this
        */
       public HashCodeBuilder append(boolean value) {
  @@ -412,9 +428,9 @@
       }
   
       /**
  -     * Append a hashCode for an Object array.
  +     * <p>Append a <code>hashCode</code> for an <code>Object</code> array.</p>
        *
  -     * @param array  the array to add to the hashCode
  +     * @param array  the array to add to the <code>hashCode</code>
        * @return this
        */
       public HashCodeBuilder append(Object[] array) {
  @@ -429,9 +445,9 @@
       }
   
       /**
  -     * Append a hashCode for a long array.
  +     * <p>Append a <code>hashCode</code> for a <code>long</code> array.</p>
        *
  -     * @param array  the array to add to the hashCode
  +     * @param array  the array to add to the <code>hashCode</code>
        * @return this
        */
       public HashCodeBuilder append(long[] array) {
  @@ -446,9 +462,9 @@
       }
   
       /**
  -     * Append a hashCode for an int array.
  +     * <p>Append a <code>hashCode</code> for an <code>int</code> array.</p>
        *
  -     * @param array  the array to add to the hashCode
  +     * @param array  the array to add to the <code>hashCode</code>
        * @return this
        */
       public HashCodeBuilder append(int[] array) {
  @@ -463,9 +479,9 @@
       }
   
       /**
  -     * Append a hashCode for a short array.
  +     * <p>Append a <code>hashCode</code> for a <code>short</code> array.</p>
        *
  -     * @param array  the array to add to the hashCode
  +     * @param array  the array to add to the <code>hashCode</code>
        * @return this
        */
       public HashCodeBuilder append(short[] array) {
  @@ -480,9 +496,9 @@
       }
   
       /**
  -     * Append a hashCode for a char array.
  +     * <p>Append a <code>hashCode</code> for a <code>char</code> array.</p>
        *
  -     * @param array  the array to add to the hashCode
  +     * @param array  the array to add to the <code>hashCode</code>
        * @return this
        */
       public HashCodeBuilder append(char[] array) {
  @@ -497,9 +513,9 @@
       }
   
       /**
  -     * Append a hashCode for a byte array.
  +     * <p>Append a <code>hashCode</code> for a <code>byte</code> array.</p>
        *
  -     * @param array  the array to add to the hashCode
  +     * @param array  the array to add to the <code>hashCode</code>
        * @return this
        */
       public HashCodeBuilder append(byte[] array) {
  @@ -514,9 +530,9 @@
       }
   
       /**
  -     * Append a hashCode for a double array.
  +     * <p>Append a <code>hashCode</code> for a <code>double</code> array.</p>
        *
  -     * @param array  the array to add to the hashCode
  +     * @param array  the array to add to the <code>hashCode</code>
        * @return this
        */
       public HashCodeBuilder append(double[] array) {
  @@ -531,9 +547,9 @@
       }
   
       /**
  -     * Append a hashCode for a float array.
  +     * <p>Append a <code>hashCode</code> for a <code>float</code> array.</p>
        *
  -     * @param array  the array to add to the hashCode
  +     * @param array  the array to add to the <code>hashCode</code>
        * @return this
        */
       public HashCodeBuilder append(float[] array) {
  @@ -548,9 +564,9 @@
       }
   
       /**
  -     * Append a hashCode for a boolean array.
  +     * <p>Append a <code>hashCode</code> for a <code>boolean</code> array.</p>
        *
  -     * @param array  the array to add to the hashCode
  +     * @param array  the array to add to the <code>hashCode</code>
        * @return this
        */
       public HashCodeBuilder append(boolean[] array) {
  @@ -565,9 +581,9 @@
       }
   
       /**
  -     * Return the computed hashCode
  +     * <p>Return the computed <code>hashCode</code>.</p>
        * 
  -     * @return int hashCode based on the fields appended
  +     * @return <code>hashCode</code> based on the fields appended
        */    
       public int toHashCode() {
           return iTotal;
  
  
  
  1.5       +502 -309  jakarta-commons/lang/src/java/org/apache/commons/lang/builder/ToStringStyle.java
  
  Index: ToStringStyle.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/lang/src/java/org/apache/commons/lang/builder/ToStringStyle.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ToStringStyle.java	22 Sep 2002 09:18:32 -0000	1.4
  +++ ToStringStyle.java	17 Nov 2002 21:46:42 -0000	1.5
  @@ -59,20 +59,25 @@
   
   import org.apache.commons.lang.SystemUtils;
   /**
  - * <code>ToStringStyle</code> works with ToStringBuilder to create a
  - * toString. The main public interface is always via ToStringBuilder.
  - * <p>
  - * These classes are intended to be used as singletons. There is no need 
  - * to instantiate a new style each time. A program will generally use one
  - * of the predefined constants on this class. Alternatively, the 
  - * {@link StandardToStringStyle} class can be used to set the individual
  - * settings. Thus most styles can be achieved without subclassing.
  - * <p>
  - * If required, a subclass can override as many or as few of the methods as 
  - * it requires.Each object type (from boolean to long to Object to int[]) has 
  - * its own methods to output it. Most have two versions, detail and summary. For
  - * example, the detail version of the array based methods will output the
  - * whole array, whereas the summary method will just output the array length.
  + * <p><code>ToStringStyle</code> works with <code>ToStringBuilder</code>
  + * to create a <code>toString</code>. The main public interface is always
  + * via <code>ToStringBuilder</code>.</p>
  + *
  + * <p>These classes are intended to be used as <code>Singletons</code>.
  + * There is no need to instantiate a new style each time. A program
  + * will generally use one of the predefined constants on this class.
  + * Alternatively, the {@link StandardToStringStyle} class can be used
  + * to set the individual settings. Thus most styles can be achieved
  + * without subclassing.</p>
  + *
  + * <p>If required, a subclass can override as many or as few of the
  + * methods as it requires. Each object type (from <code>boolean</code>
  + * to <code>long</code> to <code>Object</code> to <code>int[]</code>) has
  + * its own methods to output it. Most have two versions, detail and summary.
  + *
  + * <p>For example, the detail version of the array based methods will
  + * output the whole array, whereas the summary method will just output
  + * the array length.</p>
    *
    * @author <a href="mailto:scolebourne@joda.org">Stephen Colebourne</a>
    * @version $Id$
  @@ -97,44 +102,44 @@
       public static final ToStringStyle SIMPLE_STYLE = new SimpleToStringStyle();
   
       /**
  -     * Whether to use the field names 'true'
  +     * Whether to use the field names, the default is <code>true</code>.
        */
       private boolean useFieldNames = true;
       /**
  -     * Whether to use the class name 'true'
  +     * Whether to use the class name, the default is <code>true</code>.
        */
       private boolean useClassName = true;
       /**
  -     * Whether to use short class names 'false'
  +     * Whether to use short class names, the default is <code>false</code>.
        */
       private boolean useShortClassName = false;
       /**
  -     * Whether to use the identity hash code 'true'
  +     * Whether to use the identity hash code, the default is <code>true</code>.
        */
       private boolean useIdentityHashCode = true;
       
       /**
  -     * The content start '['
  +     * The content start <code>'['</code>.
        */
       private String contentStart = "[";
       /**
  -     * The content end ']'
  +     * The content end <code>']'</code>.
        */
       private String contentEnd = "]";
       /**
  -     * The field name value separator '='
  +     * The field name value separator <code>'='</code>.
        */
       private String fieldNameValueSeparator = "=";
       /**
  -     * The field separator ','
  +     * The field separator <code>','</code>.
        */
       private String fieldSeparator = ",";
       /**
  -     * The array start '{'
  +     * The array start <code>'{'</code>.
        */
       private String arrayStart = "{";
       /**
  -     * The array separator ','
  +     * The array separator <code>','</code>.
        */
       private String arraySeparator = ",";
       /**
  @@ -142,38 +147,39 @@
        */
       private boolean arrayContentDetail = true;
       /**
  -     * The array end '}'
  +     * The array end <code>'}'</code>.
        */
       private String arrayEnd = "}";
       /**
  -     * The value to use when fullDetail is null 'true'
  +     * The value to use when fullDetail is <code>null</code>,
  +     * the default value is <code>true</code>.
        */
       private boolean defaultFullDetail = true;
       /**
  -     * The null text '<null>'
  +     * The <code>null</code> text <code>'&lt;null&gt;'</code>.
        */
       private String nullText = "<null>";
       /**
  -     * The summary size text start '<size'
  +     * The summary size text start <code>'<size'</code>.
        */
       private String sizeStartText = "<size=";
       /**
  -     * The summary size text start '>'
  +     * The summary size text start <code>'>'</code>.
        */
       private String sizeEndText = ">";
       /**
  -     * The summary object text start '<'
  +     * The summary object text start <code>'<'</code>.
        */
       private String summaryObjectStartText = "<";
       /**
  -     * The summary object text start '>'
  +     * The summary object text start <code>'>'</code>.
        */
       private String summaryObjectEndText = ">";
       
       //----------------------------------------------------------------------------
       
       /**
  -     * Constructor.
  +     * <p>Constructor.</p>
        */
       protected ToStringStyle() {
           super();
  @@ -182,10 +188,11 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append the start of data indicator.
  +     * <p>Append the start of data indicator.</p>
        * 
  -     * @param buffer  the StringBuffer to populate
  -     * @param object  the object to build a toString for, must not be null
  +     * @param buffer  the <code>StringBuffer</code> to populate
  +     * @param object  the <code>Object</code> to build a
  +     *  <code>toString</code> for, must not be <code>null</code>
        */
       public void appendStart(StringBuffer buffer, Object object) {
           appendClassName(buffer, object);
  @@ -194,10 +201,11 @@
       }
   
       /**
  -     * Append the end of data indicator.
  +     * <p>Append the end of data indicator.</p>
        * 
  -     * @param buffer  the StringBuffer to populate
  -     * @param object  the object to build a toString for, must not be null
  +     * @param buffer  the <code>StringBuffer</code> to populate
  +     * @param object  the <code>Object</code> to build a
  +     *  <code>toString</code> for, must not be <code>null</code>
        */
       public void appendEnd(StringBuffer buffer, Object object) {
           appendContentEnd(buffer);
  @@ -206,13 +214,15 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString an Object value, printing the full 
  -     * toString of the object passed in.
  +     * <p>Append to the <code>toString</code> an <code>Object</code>
  +     * value, printing the full <code>toString</code> of the
  +     * <code>Object</code> passed in.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name
  -     * @param value  the value to add to the toString
  -     * @param fullDetail  true for detail, false for summary info, null for style decides
  +     * @param value  the value to add to the <code>toString</code>
  +     * @param fullDetail  <code>true</code> for detail, <code>false</code>
  +     *  for summary info, <code>null</code> for style decides
        */
       public void append(StringBuffer buffer, String fieldName, Object value, Boolean fullDetail) {
           appendFieldStart(buffer, fieldName);
  @@ -228,15 +238,19 @@
       }
       
       /**
  -     * Append to the toString an Object, correctly interpretting its type.
  -     * <p>
  -     * This method performs the main lookup by Class type to correctly route
  -     * arrays, collections, maps and objects to the appropriate method. Either
  -     * detail or summary views can be specified.
  +     * <p>Append to the <code>toString</code> an <code>Object</code>,
  +     * correctly interpretting its type.</p>
  +     *
  +     * <p>This method performs the main lookup by Class type to correctly
  +     * route arrays, <code>Collections</code>, <code>Maps</code> and
  +     * <code>Objects</code> to the appropriate method.</p>
  +     *
  +     * <p>Either detail or summary views can be specified.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
  -     * @param value  the value to add to the toString, not null
  +     * @param value  the value to add to the <code>toString</code>,
  +     *  not <code>null</code>
        * @param detail  output detail or not
        */
       protected void appendInternal(StringBuffer buffer, String fieldName, Object value, boolean detail) {
  @@ -327,44 +341,50 @@
       }
       
       /**
  -     * Append to the toString an Object value, printing the full detail of the object.
  +     * <p>Append to the <code>toString</code> an <code>Object</code>
  +     * value, printing the full detail of the <code>Object</code>.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
  -     * @param value  the value to add to the toString, not null
  +     * @param value  the value to add to the <code>toString</code>,
  +     *  not <code>null</code>
        */
       protected void appendDetail(StringBuffer buffer, String fieldName, Object value) {
           buffer.append(value);
       }
       
       /**
  -     * Append to the toString a Collection.
  +     * <p>Append to the <code>toString</code> a <code>Collection</code>.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
  -     * @param coll  the collection to add to the toString, not null
  +     * @param coll  the <code>Collection</code> to add to the
  +     *  <code>toString</code>, not <code>null</code>
        */
       protected void appendDetail(StringBuffer buffer, String fieldName, Collection coll) {
           buffer.append(coll);
       }
       
       /**
  -     * Append to the toString a Map.
  +     * <p>Append to the <code>toString</code> a <code>Map<code>.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
  -     * @param map  the maps to add to the toString, not null
  +     * @param map  the <code>Map</code> to add to the <code>toString</code>,
  +     *  not <code>null</code>
        */
       protected void appendDetail(StringBuffer buffer, String fieldName, Map map) {
           buffer.append(map);
       }
       
       /**
  -     * Append to the toString an Object value, printing a summary of the object.
  +     * <p>Append to the <code>toString</code> an <code>Object</code>
  +     * value, printing a summary of the Object.</P>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
  -     * @param value  the value to add to the toString, not null
  +     * @param value  the value to add to the <code>toString</code>,
  +     *  not <code>null</code>
        */
       protected void appendSummary(StringBuffer buffer, String fieldName, Object value) {
           buffer.append(summaryObjectStartText);
  @@ -375,11 +395,12 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString a long value.
  +     * <p>Append to the <code>toString</code> a <code>long</code>
  +     * value.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name
  -     * @param value  the value to add to the toString
  +     * @param value  the value to add to the <code>toString</code>
        */
       public void append(StringBuffer buffer, String fieldName, long value) {
           appendFieldStart(buffer, fieldName);
  @@ -388,11 +409,12 @@
       }
   
       /**
  -     * Append to the toString a long value.
  +     * <p>Append to the <code>toString</code> a <code>long</code>
  +     * value.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
  -     * @param value  the value to add to the toString
  +     * @param value  the value to add to the <code>toString</code>
        */
       protected void appendDetail(StringBuffer buffer, String fieldName, long value) {
           buffer.append(value);
  @@ -401,11 +423,12 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString an int value.
  +     * <p>Append to the <code>toString</code> an <code>int</code>
  +     * value.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name
  -     * @param value  the value to add to the toString
  +     * @param value  the value to add to the <code>toString</code>
        */
       public void append(StringBuffer buffer, String fieldName, int value) {
           appendFieldStart(buffer, fieldName);
  @@ -414,11 +437,12 @@
       }
   
       /**
  -     * Append to the toString an int value.
  +     * <p>Append to the <code>toString</code> an <code>int</code>
  +     * value.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
  -     * @param value  the value to add to the toString
  +     * @param value  the value to add to the <code>toString</code>
        */
       protected void appendDetail(StringBuffer buffer, String fieldName, int value) {
           buffer.append(value);
  @@ -427,11 +451,12 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString a short value.
  +     * <p>Append to the <code>toString</code> a <code>short</code>
  +     * value.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name
  -     * @param value  the value to add to the toString
  +     * @param value  the value to add to the <code>toString</code>
        */
       public void append(StringBuffer buffer, String fieldName, short value) {
           appendFieldStart(buffer, fieldName);
  @@ -440,11 +465,12 @@
       }
   
       /**
  -     * Append to the toString a short value.
  +     * <p>Append to the <code>toString</code> a <code>short</code>
  +     * value.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
  -     * @param value  the value to add to the toString
  +     * @param value  the value to add to the <code>toString</code>
        */
       protected void appendDetail(StringBuffer buffer, String fieldName, short value) {
           buffer.append(value);
  @@ -453,11 +479,12 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString a byte value.
  +     * <p>Append to the <code>toString</code> a <code>byte</code>
  +     * value.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name
  -     * @param value  the value to add to the toString
  +     * @param value  the value to add to the <code>toString</code>
        */
       public void append(StringBuffer buffer, String fieldName, byte value) {
           appendFieldStart(buffer, fieldName);
  @@ -466,11 +493,12 @@
       }
   
       /**
  -     * Append to the toString a byte value.
  +     * <p>Append to the <code>toString</code> a <code>byte</code>
  +     * value.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
  -     * @param value  the value to add to the toString
  +     * @param value  the value to add to the <code>toString</code>
        */
       protected void appendDetail(StringBuffer buffer, String fieldName, byte value) {
           buffer.append(value);
  @@ -479,11 +507,12 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString a char value.
  +     * <p>Append to the <code>toString</code> a <code>char</code>
  +     * value.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name
  -     * @param value  the value to add to the toString
  +     * @param value  the value to add to the <code>toString</code>
        */
       public void append(StringBuffer buffer, String fieldName, char value) {
           appendFieldStart(buffer, fieldName);
  @@ -492,11 +521,12 @@
       }
   
       /**
  -     * Append to the toString a char value.
  +     * <p>Append to the <code>toString</code> a <code>char</code>
  +     * value.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
  -     * @param value  the value to add to the toString
  +     * @param value  the value to add to the <code>toString</code>
        */
       protected void appendDetail(StringBuffer buffer, String fieldName, char value) {
           buffer.append(value);
  @@ -505,11 +535,12 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString a double value.
  +     * <p>Append to the <code>toString</code> a <code>double</code>
  +     * value.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name
  -     * @param value  the value to add to the toString
  +     * @param value  the value to add to the <code>toString</code>
        */
       public void append(StringBuffer buffer, String fieldName, double value) {
           appendFieldStart(buffer, fieldName);
  @@ -518,11 +549,12 @@
       }
   
       /**
  -     * Append to the toString a double value.
  +     * <p>Append to the <code>toString</code> a <code>double</code>
  +     * value.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
  -     * @param value  the value to add to the toString
  +     * @param value  the value to add to the <code>toString</code>
        */
       protected void appendDetail(StringBuffer buffer, String fieldName, double value) {
           buffer.append(value);
  @@ -531,11 +563,12 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString a float value.
  +     * <p>Append to the <code>toString</code> a <code>float</code>
  +     * value.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name
  -     * @param value  the value to add to the toString
  +     * @param value  the value to add to the <code>toString</code>
        */
       public void append(StringBuffer buffer, String fieldName, float value) {
           appendFieldStart(buffer, fieldName);
  @@ -544,11 +577,12 @@
       }
   
       /**
  -     * Append to the toString a float value.
  +     * <p>Append to the <code>toString</code> a <code>float</code>
  +     * value.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
  -     * @param value  the value to add to the toString
  +     * @param value  the value to add to the <code>toString</code>
        */
       protected void appendDetail(StringBuffer buffer, String fieldName, float value) {
           buffer.append(value);
  @@ -557,11 +591,12 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString a boolean value.
  +     * <p>Append to the <code>toString</code> a <code>boolean</code>
  +     * value.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name
  -     * @param value  the value to add to the toString
  +     * @param value  the value to add to the <code>toString</code>
        */
       public void append(StringBuffer buffer, String fieldName, boolean value) {
           appendFieldStart(buffer, fieldName);
  @@ -570,23 +605,26 @@
       }
   
       /**
  -     * Append to the toString a boolean value.
  +     * <p>Append to the <code>toString</code> a <code>boolean</code>
  +     * value.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
  -     * @param value  the value to add to the toString
  +     * @param value  the value to add to the <code>toString</code>
        */
       protected void appendDetail(StringBuffer buffer, String fieldName, boolean value) {
           buffer.append(value);
       }
   
       /**
  -     * Append to the toString an Object array.
  +     * <p>Append to the <code>toString</code> an <code>Object</code>
  +     * array.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name
        * @param array  the array to add to the toString
  -     * @param fullDetail  true for detail, false for summary info, null for style decides
  +     * @param fullDetail  <code>true</code> for detail, <code>false</code>
  +     *  for summary info, <code>null</code> for style decides
        */
       public void append(StringBuffer buffer, String fieldName, Object[] array, Boolean fullDetail) {
           appendFieldStart(buffer, fieldName);
  @@ -607,11 +645,13 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString the detail of an Object array.
  +     * <p>Append to the <code>toString</code> the detail of an
  +     * <code>Object</code> array.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
  -     * @param array  the array to add to the toString, not null
  +     * @param array  the array to add to the <code>toString</code>,
  +     *  not <code>null</code>
        */
       protected void appendDetail(StringBuffer buffer, String fieldName, Object[] array) {
           buffer.append(arrayStart);
  @@ -631,11 +671,13 @@
       }
   
       /**
  -     * Append to the toString a summary of an Object array.
  +     * <p>Append to the <code>toString</code> a summary of an
  +     * <code>Object</code> array.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
  -     * @param array  the array to add to the toString, not null
  +     * @param array  the array to add to the <code>toString</code>,
  +     *  not <code>null</code>
        */
       protected void appendSummary(StringBuffer buffer, String fieldName, Object[] array) {
           appendSummarySize(buffer, fieldName, array.length);
  @@ -644,12 +686,14 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString a long array.
  +     * <p>Append to the <code>toString</code> a <code>long</code>
  +     * array.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name
  -     * @param array  the array to add to the toString
  -     * @param fullDetail  true for detail, false for summary info, null for style decides
  +     * @param array  the array to add to the <code>toString</code>
  +     * @param fullDetail  <code>true</code> for detail, <code>false</code>
  +     *  for summary info, <code>null</code> for style decides
        */
       public void append(StringBuffer buffer, String fieldName, long[] array, Boolean fullDetail) {
           appendFieldStart(buffer, fieldName);
  @@ -668,11 +712,13 @@
       }
   
       /**
  -     * Append to the toString the detail of a long array.
  +     * <p>Append to the <code>toString</code> the detail of a
  +     * <code>long</code> array.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
  -     * @param array  the array to add to the toString, not null
  +     * @param array  the array to add to the <code>toString</code>,
  +     *  not <code>null</code>
        */
       protected void appendDetail(StringBuffer buffer, String fieldName, long[] array) {
           buffer.append(arrayStart);
  @@ -686,11 +732,13 @@
       }
   
       /**
  -     * Append to the toString a summary of a long array.
  +     * <p>Append to the <code>toString</code> a summary of a
  +     * <code>long</code> array.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
  -     * @param array  the array to add to the toString, not null
  +     * @param array  the array to add to the <code>toString</code>,
  +     *  not <code>null</code>
        */
       protected void appendSummary(StringBuffer buffer, String fieldName, long[] array) {
           appendSummarySize(buffer, fieldName, array.length);
  @@ -699,12 +747,14 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString an int array.
  +     * <p>Append to the <code>toString</code> an <code>int</code>
  +     * array.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name
  -     * @param array  the array to add to the toString
  -     * @param fullDetail  true for detail, false for summary info, null for style decides
  +     * @param array  the array to add to the <code>toString</code>
  +     * @param fullDetail  <code>true</code> for detail, <code>false</code>
  +     *  for summary info, <code>null</code> for style decides
        */
       public void append(StringBuffer buffer, String fieldName, int[] array, Boolean fullDetail) {
           appendFieldStart(buffer, fieldName);
  @@ -723,11 +773,13 @@
       }
   
       /**
  -     * Append to the toString the detail of an int array.
  +     * <p>Append to the <code>toString</code> the detail of an
  +     * <code>int</code> array.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
  -     * @param array  the array to add to the toString, not null
  +     * @param array  the array to add to the <code>toString</code>,
  +     *  not <code>null</code>
        */
       protected void appendDetail(StringBuffer buffer, String fieldName, int[] array) {
           buffer.append(arrayStart);
  @@ -741,11 +793,13 @@
       }
   
       /**
  -     * Append to the toString a summary of an int array.
  +     * <p>Append to the <code>toString</code> a summary of an
  +     * <code>int</code> array.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
  -     * @param array  the array to add to the toString, not null
  +     * @param array  the array to add to the <code>toString</code>,
  +     *  not <code>null</code>
        */
       protected void appendSummary(StringBuffer buffer, String fieldName, int[] array) {
           appendSummarySize(buffer, fieldName, array.length);
  @@ -754,12 +808,14 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString a short array.
  +     * <p>Append to the <code>toString</code> a <code>short</code>
  +     * array.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name
  -     * @param array  the array to add to the toString
  -     * @param fullDetail  true for detail, false for summary info, null for style decides
  +     * @param array  the array to add to the <code>toString</code>
  +     * @param fullDetail  <code>true</code> for detail, <code>false</code>
  +     *  for summary info, <code>null</code> for style decides
        */
       public void append(StringBuffer buffer, String fieldName, short[] array, Boolean fullDetail) {
           appendFieldStart(buffer, fieldName);
  @@ -778,11 +834,13 @@
       }
   
       /**
  -     * Append to the toString the detail of a short array.
  +     * <p>Append to the <code>toString</code> the detail of a
  +     * <code>short</code> array.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
  -     * @param array  the array to add to the toString, not null
  +     * @param array  the array to add to the <code>toString</code>,
  +     *  not <code>null</code>
        */
       protected void appendDetail(StringBuffer buffer, String fieldName, short[] array) {
           buffer.append(arrayStart);
  @@ -796,11 +854,13 @@
       }
   
       /**
  -     * Append to the toString a summary of a short array.
  +     * <p>Append to the <code>toString</code> a summary of a
  +     * <code>short</code> array.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
  -     * @param array  the array to add to the toString, not null
  +     * @param array  the array to add to the <code>toString</code>,
  +     *  not <code>null</code>
        */
       protected void appendSummary(StringBuffer buffer, String fieldName, short[] array) {
           appendSummarySize(buffer, fieldName, array.length);
  @@ -809,12 +869,14 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString a byte array.
  +     * <p>Append to the <code>toString</code> a <code>byte</code>
  +     * array.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name
  -     * @param array  the array to add to the toString
  -     * @param fullDetail  true for detail, false for summary info, null for style decides
  +     * @param array  the array to add to the <code>toString</code>
  +     * @param fullDetail  <code>true</code> for detail, <code>false</code>
  +     *  for summary info, <code>null</code> for style decides
        */
       public void append(StringBuffer buffer, String fieldName, byte[] array, Boolean fullDetail) {
           appendFieldStart(buffer, fieldName);
  @@ -833,11 +895,13 @@
       }
   
       /**
  -     * Append to the toString the detail of a byte array.
  +     * <p>Append to the <code>toString</code> the detail of a
  +     * <code>byte</code> array.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
  -     * @param array  the array to add to the toString, not null
  +     * @param array  the array to add to the <code>toString</code>,
  +     *  not <code>null</code>
        */
       protected void appendDetail(StringBuffer buffer, String fieldName, byte[] array) {
           buffer.append(arrayStart);
  @@ -851,11 +915,13 @@
       }
   
       /**
  -     * Append to the toString a summary of a byte array.
  +     * <p>Append to the <code>toString</code> a summary of a
  +     * <code>byte</code> array.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
  -     * @param array  the array to add to the toString, not null
  +     * @param array  the array to add to the <code>toString</code>,
  +     *  not <code>null</code>
        */
       protected void appendSummary(StringBuffer buffer, String fieldName, byte[] array) {
           appendSummarySize(buffer, fieldName, array.length);
  @@ -864,12 +930,14 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString a char array.
  +     * <p>Append to the <code>toString</code> a <code>char</code>
  +     * array.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name
  -     * @param array  the array to add to the toString
  -     * @param fullDetail  true for detail, false for summary info, null for style decides
  +     * @param array  the array to add to the <code>toString</code>
  +     * @param fullDetail  <code>true</code> for detail, <code>false</code>
  +     *  for summary info, <code>null</code> for style decides
        */
       public void append(StringBuffer buffer, String fieldName, char[] array, Boolean fullDetail) {
           appendFieldStart(buffer, fieldName);
  @@ -888,11 +956,13 @@
       }
   
       /**
  -     * Append to the toString the detail of a char array.
  +     * <p>Append to the <code>toString</code> the detail of a
  +     * <code>char</code> array.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
  -     * @param array  the array to add to the toString, not null
  +     * @param array  the array to add to the <code>toString</code>,
  +     *  not <code>null</code>
        */
       protected void appendDetail(StringBuffer buffer, String fieldName, char[] array) {
           buffer.append(arrayStart);
  @@ -906,11 +976,13 @@
       }
   
       /**
  -     * Append to the toString a summary of a char array.
  +     * <p>Append to the <code>toString</code> a summary of a
  +     * <code>char</code> array.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
  -     * @param array  the array to add to the toString, not null
  +     * @param array  the array to add to the <code>toString</code>,
  +     *  not <code>null</code>
        */
       protected void appendSummary(StringBuffer buffer, String fieldName, char[] array) {
           appendSummarySize(buffer, fieldName, array.length);
  @@ -919,12 +991,14 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString a double array.
  +     * <p>Append to the <code>toString</code> a <code>double</code>
  +     * array.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name
        * @param array  the array to add to the toString
  -     * @param fullDetail  true for detail, false for summary info, null for style decides
  +     * @param fullDetail  <code>true</code> for detail, <code>false</code>
  +     *  for summary info, <code>null</code> for style decides
        */
       public void append(StringBuffer buffer, String fieldName, double[] array, Boolean fullDetail) {
           appendFieldStart(buffer, fieldName);
  @@ -943,11 +1017,13 @@
       }
   
       /**
  -     * Append to the toString the detail of a double array.
  +     * <p>Append to the <code>toString</code> the detail of a
  +     * <code>double</code> array.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
  -     * @param array  the array to add to the toString, not null
  +     * @param array  the array to add to the <code>toString</code>,
  +     *  not <code>null</code>
        */
       protected void appendDetail(StringBuffer buffer, String fieldName, double[] array) {
           buffer.append(arrayStart);
  @@ -961,11 +1037,13 @@
       }
   
       /**
  -     * Append to the toString a summary of a double array.
  +     * <p>Append to the <code>toString</code> a summary of a
  +     * <code>double</code> array.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
  -     * @param array  the array to add to the toString, not null
  +     * @param array  the array to add to the <code>toString</code>,
  +     *  not <code>null</code>
        */
       protected void appendSummary(StringBuffer buffer, String fieldName, double[] array) {
           appendSummarySize(buffer, fieldName, array.length);
  @@ -974,12 +1052,14 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString a float array.
  +     * <p>Append to the <code>toString</code> a <code>float</code>
  +     * array.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name
        * @param array  the array to add to the toString
  -     * @param fullDetail  true for detail, false for summary info, null for style decides
  +     * @param fullDetail  <code>true</code> for detail, <code>false</code>
  +     *  for summary info, <code>null</code> for style decides
        */
       public void append(StringBuffer buffer, String fieldName, float[] array, Boolean fullDetail) {
           appendFieldStart(buffer, fieldName);
  @@ -998,11 +1078,13 @@
       }
   
       /**
  -     * Append to the toString the detail of a float array.
  +     * <p>Append to the <code>toString</code> the detail of a
  +     * <code>float</code> array.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
  -     * @param array  the array to add to the toString, not null
  +     * @param array  the array to add to the <code>toString</code>,
  +     *  not <code>null</code>
        */
       protected void appendDetail(StringBuffer buffer, String fieldName, float[] array) {
           buffer.append(arrayStart);
  @@ -1016,11 +1098,13 @@
       }
   
       /**
  -     * Append to the toString a summary of a float array.
  +     * <p>Append to the <code>toString</code> a summary of a
  +     * <code>float</code> array.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
  -     * @param array  the array to add to the toString, not null
  +     * @param array  the array to add to the <code>toString</code>,
  +     *  not <code>null</code>
        */
       protected void appendSummary(StringBuffer buffer, String fieldName, float[] array) {
           appendSummarySize(buffer, fieldName, array.length);
  @@ -1029,12 +1113,14 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append to the toString a boolean array.
  +     * <p>Append to the <code>toString</code> a <code>boolean</code>
  +     * array.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name
        * @param array  the array to add to the toString
  -     * @param fullDetail  true for detail, false for summary info, null for style decides
  +     * @param fullDetail  <code>true</code> for detail, <code>false</code>
  +     *  for summary info, <code>null</code> for style decides
        */
       public void append(StringBuffer buffer, String fieldName, boolean[] array, Boolean fullDetail) {
           appendFieldStart(buffer, fieldName);
  @@ -1053,11 +1139,13 @@
       }
   
       /**
  -     * Append to the toString the detail of a boolean array.
  +     * <p>Append to the <code>toString</code> the detail of a
  +     * <code>boolean</code> array.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
  -     * @param array  the array to add to the toString, not null
  +     * @param array  the array to add to the <code>toString</code>,
  +     *  not <code>null</code>
        */
       protected void appendDetail(StringBuffer buffer, String fieldName, boolean[] array) {
           buffer.append(arrayStart);
  @@ -1071,11 +1159,13 @@
       }
   
       /**
  -     * Append to the toString a summary of a boolean array.
  +     * <p>Append to the <code>toString</code> a summary of a
  +     * <code>boolean</code> array.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
  -     * @param array  the array to add to the toString, not null
  +     * @param array  the array to add to the <code>toString</code>,
  +     *  not <code>null</code>
        */
       protected void appendSummary(StringBuffer buffer, String fieldName, boolean[] array) {
           appendSummarySize(buffer, fieldName, array.length);
  @@ -1084,10 +1174,10 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Append the class name.
  +     * <p>Append the class name.</p>
        * 
  -     * @param buffer  the StringBuffer to populate
  -     * @param object  the object whose name to output
  +     * @param buffer  the <code>StringBuffer</code> to populate
  +     * @param object  the <code>Object</code> whose name to output
        */
       protected void appendClassName(StringBuffer buffer, Object object) {
           if (useClassName) {
  @@ -1100,10 +1190,10 @@
       }
   
       /**
  -     * Append the IdentityHashCode.
  +     * <p>Append the {@link System#identityHashCode(java.lang.Object)}.</p>
        * 
  -     * @param buffer  the StringBuffer to populate
  -     * @param object  the object whose id to output
  +     * @param buffer  the <code>StringBuffer</code> to populate
  +     * @param object  the <code>Object</code> whose id to output
        */
       protected void appendIdentityHashCode(StringBuffer buffer, Object object) {
           if (useIdentityHashCode) {
  @@ -1113,18 +1203,18 @@
       }
   
       /**
  -     * Append the content start to the buffer.
  +     * <p>Append the content start to the buffer.</p>
        * 
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        */
       protected void appendContentStart(StringBuffer buffer) {
           buffer.append(contentStart);
       }
       
       /**
  -     * Append the content end to the buffer.
  +     * <p>Append the content end to the buffer.</p>
        * 
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        */
       protected void appendContentEnd(StringBuffer buffer) {
           int len = buffer.length();
  @@ -1136,10 +1226,11 @@
       }
       
       /**
  -     * Append an indicator for null to the buffer.
  -     * Default output is '<null>'.
  +     * <p>Append an indicator for <code>null</code> to the buffer.</p>
  +     *
  +     * <p>The default indicator is <code>'&lt;null&gt;'</code>.</p>
        * 
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
        */
       protected void appendNullText(StringBuffer buffer, String fieldName) {
  @@ -1147,18 +1238,18 @@
       }
       
       /**
  -     * Append the field separator to the buffer.
  +     * <p>Append the field separator to the buffer.</p>
        * 
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        */
       protected void appendFieldSeparator(StringBuffer buffer) {
           buffer.append(fieldSeparator);
       }
       
       /**
  -     * Append the field start to the buffer.
  +     * <p>Append the field start to the buffer.</p>
        * 
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name
        */
       protected void appendFieldStart(StringBuffer buffer, String fieldName) {
  @@ -1169,9 +1260,9 @@
       }
       
       /**
  -     * Append the field end to the buffer.
  +     * <p>Append the field end to the buffer.</p>
        * 
  -     * @param buffer  the StringBuffer to populate
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
        */
       protected void appendFieldEnd(StringBuffer buffer, String fieldName) {
  @@ -1179,13 +1270,17 @@
       }
       
       /**
  -     * Append to the toString a size summary.
  -     * <p>
  -     * The size summary is used to summarize the contents of collections, maps 
  -     * and arrays. The text output is a prefix, the size (passed in) and a suffix.
  -     * The default format is '&lt;size=n&gt;'.
  +     * <p>Append to the <code>toString</code> a size summary.</p>
  +     *
  +     * <p>The size summary is used to summarize the contents of
  +     * <code>Collections</code>, <code>Maps</code> and arrays.</p>
  +     *
  +     * <p>The output consists of a prefix, the passed in size
  +     * and a suffix.</p>
        *
  -     * @param buffer  the StringBuffer to populate
  +     * <p>The default format is <code>'&lt;size=n&gt;'<code>.</p>
  +     *
  +     * @param buffer  the <code>StringBuffer</code> to populate
        * @param fieldName  the field name, typically not used as already appended
        * @param size  the size to append
        */
  @@ -1196,12 +1291,15 @@
       }
   
       /**
  -     * Is this field to be output in full detail.
  -     * <p>
  -     * This method converts a detail request into a detail level. The calling code
  -     * may request full detail (true), but a subclass might ignore that and always 
  -     * return false. The calling code may pass in null indicating that it doesn't
  -     * care about the detail level. In this case the default detail level is used.
  +     * <p>Is this field to be output in full detail.</p>
  +     *
  +     * <p>This method converts a detail request into a detail level.
  +     * The calling code may request full detail (<code>true</code>),
  +     * but a subclass might ignore that and always return
  +     * <code>false</code>. The calling code may pass in
  +     * <code>null</code> indicating that it doesn't care about
  +     * the detail level. In this case the default detail level is
  +     * used.</p>
        * 
        * @param fullDetailRequest  the detail level requested
        * @return whether full detail is to be shown
  @@ -1214,11 +1312,12 @@
       }
       
       /**
  -     * Gets the short class name for a class.
  -     * <p>
  -     * The short class name is the name excluding the package name.
  +     * <p>Gets the short class name for a class.</p>
        *
  -     * @param cls  the class to get the short name of
  +     * <p>The short class name is the classname excluding
  +     * the package name.</p>
  +     *
  +     * @param cls  the <code>Class</code> to get the short name of
        * @return the short name
        */
       protected String getShortClassName(Class cls) {
  @@ -1236,7 +1335,8 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets whether to use the class name.
  +     * <p>Gets whether to use the class name.</p>
  +     *
        * @return the current useClassName flag
        */
       protected boolean isUseClassName() {
  @@ -1244,7 +1344,8 @@
       }
   
       /**
  -     * Sets whether to use the class name.
  +     * <p>Sets whether to use the class name.</p>
  +     *
        * @param useClassName  the new useClassName flag
        */
       protected void setUseClassName(boolean useClassName) {
  @@ -1254,7 +1355,8 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets whether to output short or long class names.
  +     * <p>Gets whether to output short or long class names.</p>
  +     *
        * @return the current shortClassName flag
        */
       protected boolean isShortClassName() {
  @@ -1262,7 +1364,8 @@
       }
   
       /**
  -     * Sets whether to output short or long class names.
  +     * <p>Sets whether to output short or long class names.</p>
  +     *
        * @param shortClassName  the new shortClassName flag
        */
       protected void setShortClassName(boolean shortClassName) {
  @@ -1272,7 +1375,8 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets whether to use the identity hash code.
  +     * <p>Gets whether to use the identity hash code.</p>
  +     *
        * @return the current useIdentityHashCode flag
        */
       protected boolean isUseIdentityHashCode() {
  @@ -1280,7 +1384,8 @@
       }
   
       /**
  -     * Sets whether to use the identity hash code.
  +     * <p>Sets whether to use the identity hash code.</p>
  +     *
        * @param useIdentityHashCode  the new useIdentityHashCode flag
        */
       protected void setUseIdentityHashCode(boolean useIdentityHashCode) {
  @@ -1290,7 +1395,8 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets whether to use the field names passed in.
  +     * <p>Gets whether to use the field names passed in.</p>
  +     *
        * @return the current useFieldNames flag
        */
       protected boolean isUseFieldNames() {
  @@ -1298,7 +1404,8 @@
       }
   
       /**
  -     * Sets whether to use the field names passed in.
  +     * <p>Sets whether to use the field names passed in.</p>
  +     *
        * @param useFieldNames  the new useFieldNames flag
        */
       protected void setUseFieldNames(boolean useFieldNames) {
  @@ -1308,7 +1415,9 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets whether to use full detail when the caller doesn't specify.
  +     * <p>Gets whether to use full detail when the caller doesn't
  +     * specify.</p>
  +     *
        * @return the current defaultFullDetail flag
        */
       protected boolean isDefaultFullDetail() {
  @@ -1316,7 +1425,9 @@
       }
   
       /**
  -     * Sets whether to use full detail when the caller doesn't specify.
  +     * <p>Sets whether to use full detail when the caller doesn't
  +     * specify.</p>
  +     *
        * @param defaultFullDetail  the new defaultFullDetail flag
        */
       protected void setDefaultFullDetail(boolean defaultFullDetail) {
  @@ -1326,7 +1437,8 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets whether to output array content detail.
  +     * <p>Gets whether to output array content detail.</p>
  +     *
        * @return the current array content detail setting
        */
       protected boolean isArrayContentDetail() {
  @@ -1334,7 +1446,8 @@
       }
       
       /**
  -     * Sets whether to output array content detail.
  +     * <p>Sets whether to output array content detail.</p>
  +     *
        * @param arrayContentDetail  the new arrayContentDetail flag
        */
       protected void setArrayContentDetail(boolean arrayContentDetail) {
  @@ -1344,7 +1457,8 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets the array start text.
  +     * <p>Gets the array start text.</p>
  +     *
        * @return the current array start text
        */
       protected String getArrayStart() {
  @@ -1352,8 +1466,11 @@
       }
   
       /**
  -     * Sets the array start text.
  -     * Null is accepted, but will be converted to a blank string.
  +     * <p>Sets the array start text.</p>
  +     *
  +     * <p><code>Null</code> is accepted, but will be converted to
  +     * a emptry String.</p>
  +     *
        * @param arrayStart  the new array start text
        */
       protected void setArrayStart(String arrayStart) {
  @@ -1366,7 +1483,8 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets the array end text.
  +     * <p>Gets the array end text.</p>
  +     *
        * @return the current array end text
        */
       protected String getArrayEnd() {
  @@ -1374,8 +1492,11 @@
       }
   
       /**
  -     * Sets the array end text.
  -     * Null is accepted, but will be converted to a blank string.
  +     * <p>Sets the array end text.</p>
  +     *
  +     * <p><code>Null</code> is accepted, but will be converted to
  +     * a empty String.</p>
  +     *
        * @param arrayEnd  the new array end text
        */
       protected void setArrayEnd(String arrayEnd) {
  @@ -1388,7 +1509,8 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets the array separator text.
  +     * <p>Gets the array separator text.</p>
  +     *
        * @return the current array separator text
        */
       protected String getArraySeparator() {
  @@ -1396,8 +1518,11 @@
       }
   
       /**
  -     * Sets the array separator text.
  -     * Null is accepted, but will be converted to a blank string.
  +     * <p>Sets the array separator text.</p>
  +     *
  +     * <p><code>Null</code> is accepted, but will be converted to
  +     * a empty String.</p>
  +     *
        * @param arraySeparator  the new array separator text
        */
       protected void setArraySeparator(String arraySeparator) {
  @@ -1410,7 +1535,8 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets the content start text.
  +     * <p>Gets the content start text.</p>
  +     *
        * @return the current content start text
        */
       protected String getContentStart() {
  @@ -1418,8 +1544,11 @@
       }
   
       /**
  -     * Sets the content start text.
  -     * Null is accepted, but will be converted to a blank string.
  +     * <p>Sets the content start text.</p>
  +     *
  +     * <p><code>Null</code> is accepted, but will be converted to
  +     * a empty String.</p>
  +     *
        * @param contentStart  the new content start text
        */
       protected void setContentStart(String contentStart) {
  @@ -1432,7 +1561,8 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets the content end text.
  +     * <p>Gets the content end text.</p>
  +     *
        * @return the current content end text
        */
       protected String getContentEnd() {
  @@ -1440,8 +1570,11 @@
       }
   
       /**
  -     * Sets the content end text.
  -     * Null is accepted, but will be converted to a blank string.
  +     * <p>Sets the content end text.</p>
  +     *
  +     * <p><code>Null</code> is accepted, but will be converted to
  +     * a empty String.</p>
  +     *
        * @param contentEnd  the new content end text
        */
       protected void setContentEnd(String contentEnd) {
  @@ -1454,7 +1587,8 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets the field name value separator text.
  +     * <p>Gets the field name value separator text.</p>
  +     *
        * @return the current field name value separator text
        */
       protected String getFieldNameValueSeparator() {
  @@ -1462,8 +1596,11 @@
       }
   
       /**
  -     * Sets the field name value separator text.
  -     * Null is accepted, but will be converted to a blank string.
  +     * <p>Sets the field name value separator text.</p>
  +     *
  +     * <p><code>Null</code> is accepted, but will be converted to
  +     * a empty String.</p>
  +     *
        * @param fieldNameValueSeparator  the new field name value separator text
        */
       protected void setFieldNameValueSeparator(String fieldNameValueSeparator) {
  @@ -1476,7 +1613,8 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets the field separator text.
  +     * <p>Gets the field separator text.</p>
  +     *
        * @return the current field separator text
        */
       protected String getFieldSeparator() {
  @@ -1484,8 +1622,11 @@
       }
   
       /**
  -     * Sets the field separator text.
  -     * Null is accepted, but will be converted to a blank string.
  +     * <p>Sets the field separator text.</p>
  +     *
  +     * <p><code>Null</code> is accepted, but will be converted to
  +     * a empty String.</p>
  +     *
        * @param fieldSeparator  the new field separator text
        */
       protected void setFieldSeparator(String fieldSeparator) {
  @@ -1498,7 +1639,8 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets the text to output when null found.
  +     * <p>Gets the text to output when <code>null</code> found.</p>
  +     *
        * @return the current text to output when null found
        */
       protected String getNullText() {
  @@ -1506,8 +1648,11 @@
       }
   
       /**
  -     * Sets the text to output when null found.
  -     * Null is accepted, but will be converted to a blank string.
  +     * <p>Sets the text to output when <code>null</code> found.</p>
  +     *
  +     * <p><code>Null</code> is accepted, but will be converted to
  +     * a empty String.</p>
  +     *
        * @param nullText  the new text to output when null found
        */
       protected void setNullText(String nullText) {
  @@ -1520,8 +1665,11 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets the text to output when a Collection, Map or Array size is output.
  -     * This is output before the size value.
  +     * <p>Gets the text to output when a <code>Collection</code>,
  +     * <code>Map</code> or array size is output.</p>
  +     *
  +     * <p>This is output before the size value.</p>
  +     *
        * @return the current start of size text
        */
       protected String getSizeStartText() {
  @@ -1529,9 +1677,14 @@
       }
   
       /**
  -     * Sets the text to output when a Collection, Map or Array size is output.
  -     * This is output before the size value.
  -     * Null is accepted, but will be converted to a blank string.
  +     * <p>Sets the text to output when a <code>Collection</code>,
  +     * <code>Map</code> or array size is output.</p>
  +     *
  +     * <p>This is output before the size value.</p>
  +     *
  +     * <p><code>Null</code> is accepted, but will be converted to
  +     * a empty String.</p>
  +     *
        * @param sizeStartText  the new start of size text
        */
       protected void setSizeStartText(String sizeStartText) {
  @@ -1544,8 +1697,11 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets the text to output when a Collection, Map or Array size is output.
  -     * This is output after the size value.
  +     * <p>Gets the text to output when a <code>Collection</code>,
  +     * <code>Map</code> or array size is output.</p>
  +     *
  +     * <p>This is output after the size value.</p>
  +     *
        * @return the current end of size text
        */
       protected String getSizeEndText() {
  @@ -1553,9 +1709,14 @@
       }
   
       /**
  -     * Sets the text to output when a Collection, Map or Array size is output.
  -     * This is output after the size value.
  -     * Null is accepted, but will be converted to a blank string.
  +     * <p>Sets the text to output when a <code>Collection</code>,
  +     * <code>Map</code> or array size is output.</p>
  +     *
  +     * <p>This is output after the size value.</p>
  +     *
  +     * <p><code>Null</code> is accepted, but will be converted to
  +     * a empty String.</p>
  +     *
        * @param sizeEndText  the new end of size text
        */
       protected void setSizeEndText(String sizeEndText) {
  @@ -1568,8 +1729,11 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets the text to output when an Object is output in summary mode.
  -     * This is output before the size value.
  +     * <p>Gets the text to output when an <code>Object</code> is
  +     * output in summary mode.</p>
  +     *
  +     * <p>This is output before the size value.</p>
  +     *
        * @return the current start of summary text
        */
       protected String getSummaryObjectStartText() {
  @@ -1577,9 +1741,14 @@
       }
   
       /**
  -     * Sets the text to output when an Object is output in summary mode.
  -     * This is output before the size value.
  -     * Null is accepted, but will be converted to a blank string.
  +     * <p>Sets the text to output when an <code>Object</code> is
  +     * output in summary mode.</p>
  +     *
  +     * <p>This is output before the size value.</p>
  +     *
  +     * <p><code>Null</code> is accepted, but will be converted to
  +     * a empty String.</p>
  +     *
        * @param summaryObjectStartText  the new start of summary text
        */
       protected void setSummaryObjectStartText(String summaryObjectStartText) {
  @@ -1592,8 +1761,11 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets the text to output when an Object is output in summary mode.
  -     * This is output after the size value.
  +     * <p>Gets the text to output when an <code>Object</code> is
  +     * output in summary mode.</p>
  +     *
  +     * <p>This is output after the size value.</p>
  +     *
        * @return the current end of summary text
        */
       protected String getSummaryObjectEndText() {
  @@ -1601,9 +1773,14 @@
       }
   
       /**
  -     * Sets the text to output when an Object is output in summary mode.
  -     * This is output after the size value.
  -     * Null is accepted, but will be converted to a blank string.
  +     * <p>Sets the text to output when an <code>Object</code> is
  +     * output in summary mode.</p>
  +     *
  +     * <p>This is output after the size value.</p>
  +     *
  +     * <p><code>Null</code> is accepted, but will be converted to
  +     * a empty String.</p>
  +     *
        * @param summaryObjectEndText  the new end of summary text
        */
       protected void setSummaryObjectEndText(String summaryObjectEndText) {
  @@ -1618,21 +1795,25 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * Default ToStringStyle.
  -     * This is an inner class rather than using StandardToStringStyle to
  -     * ensure its immutability.
  +     * <p>Default <code>ToStringStyle</code>.</p>
  +     *
  +     * <p>This is an inner class rather than using
  +     * <code>StandardToStringStyle</code> to ensure its immutability.</p>
        */
       private static final class DefaultToStringStyle extends ToStringStyle {
           
           /**
  -         * Constructor - use the static constant rather than instantiating.
  +         * <p>Constructor</p>
  +         *
  +         * <p>Use the static constant rather than instantiating.</p>
            */
           private DefaultToStringStyle() {
               super();
           }
           
           /**
  -         * Ensure singleton after serialization.
  +         * <p>Ensure <code>Singleton</code> after serialization.</p>
  +         *
            * @return the singleton
            */
           private Object readResolve() {
  @@ -1644,14 +1825,18 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * ToStringStyle that does not print out the field names.
  -     * This is an inner class rather than using StandardToStringStyle to
  -     * ensure its immutability.
  +     * <p><code>ToStringStyle</code> that does not print out
  +     * the field names.</p>
  +     *
  +     * <p>This is an inner class rather than using
  +     * <code>StandardToStringStyle</code> to ensure its immutability.
        */
       private static final class NoFieldNameToStringStyle extends ToStringStyle {
           
           /**
  -         * Constructor - use the static constant rather than instantiating.
  +         * <p>Constructor</p>
  +         *
  +         * <p>Use the static constant rather than instantiating.</p>
            */
           private NoFieldNameToStringStyle() {
               super();
  @@ -1659,7 +1844,8 @@
           }
           
           /**
  -         * Ensure singleton after serialization.
  +         * <p>Ensure <code>Singleton</code> after serialization.</p>
  +         *
            * @return the singleton
            */
           private Object readResolve() {
  @@ -1671,15 +1857,18 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * ToStringStyle that does not print out the classname, identity hashcode,
  -     * content start or field name.
  -     * This is an inner class rather than using StandardToStringStyle to
  -     * ensure its immutability.
  +     * <p><code>ToStringStyle</code> that does not print out the
  +     * classname, identity hashcode, content start or field name.</p>
  +     *
  +     * <p>This is an inner class rather than using
  +     * <code>StandardToStringStyle</code> to ensure its immutability.</p>
        */
       private static final class SimpleToStringStyle extends ToStringStyle {
           
           /**
  -         * Constructor - use the static constant rather than instantiating.
  +         * <p>Constructor</p>
  +         *
  +         * <p>Use the static constant rather than instantiating.</p>
            */
           private SimpleToStringStyle() {
               super();
  @@ -1691,7 +1880,7 @@
           }
           
           /**
  -         * Ensure singleton after serialization.
  +         * <p>Ensure <code>Singleton</ode> after serialization.</p>
            * @return the singleton
            */
           private Object readResolve() {
  @@ -1703,14 +1892,17 @@
       //----------------------------------------------------------------------------
       
       /**
  -     * ToStringStyle that outputs on multiple lines.
  -     * This is an inner class rather than using StandardToStringStyle to
  -     * ensure its immutability.
  +     * <p><code>ToStringStyle</code> that outputs on multiple lines.</p>
  +     *
  +     * <p>This is an inner class rather than using
  +     * <code>StandardToStringStyle</code> to ensure its immutability.</p>
        */
       private static final class MultiLineToStringStyle extends ToStringStyle {
   
           /**
  -         * Constructor - use the static constant rather than instantiating.
  +         * <p>Constructor</p>
  +         *
  +         * <p>Use the static constant rather than instantiating.</p>
            */
           private MultiLineToStringStyle() {
               super();
  @@ -1720,7 +1912,8 @@
           }
           
           /**
  -         * Ensure singleton after serialization.
  +         * <p>Ensure <code>Singleton</code> after serialization.</p>
  +         *
            * @return the singleton
            */
           private Object readResolve() {
  
  
  
  1.5       +144 -66   jakarta-commons/lang/src/java/org/apache/commons/lang/builder/StandardToStringStyle.java
  
  Index: StandardToStringStyle.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/lang/src/java/org/apache/commons/lang/builder/StandardToStringStyle.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- StandardToStringStyle.java	22 Sep 2002 09:18:32 -0000	1.4
  +++ StandardToStringStyle.java	17 Nov 2002 21:46:42 -0000	1.5
  @@ -54,13 +54,14 @@
   package org.apache.commons.lang.builder;
   
   /**
  - * <code>StandardToStringStyle</code> works with ToStringBuilder to create a
  - * toString.
  - * <p>
  - * This class is intended to be used as a singleton. There is no need 
  - * to instantiate a new style each time. Your code should instantiate the class
  - * once, customize the values as required, and then store the result in a 
  - * public static final variable for the rest of the program to access.
  + * <p><code>StandardToStringStyle</code> works with {@link ToStringBuilder}
  + * to create a <code>toString</code>.</p>
  + *
  + * <p>This class is intended to be used as a <code>Singleton</code>. There
  + * is no need * to instantiate a new style each time. Your code should
  + * instantiate the class once, customize the values as required, and then
  + * store the result in a public static final variable for the rest of the
  + * program to access.</p>
    *
    * @author <a href="mailto:scolebourne@joda.org">Stephen Colebourne</a>
    * @version $Id$
  @@ -68,7 +69,7 @@
   public class StandardToStringStyle extends ToStringStyle {
       
       /**
  -     * Constructor.
  +     * <p>Constructor.</p>
        */
       public StandardToStringStyle() {
           super();
  @@ -77,7 +78,8 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets whether to use the class name.
  +     * <p>Gets whether to use the class name.</p>
  +     *
        * @return the current useClassName flag
        */
       public boolean isUseClassName() {
  @@ -85,7 +87,8 @@
       }
   
       /**
  -     * Sets whether to use the class name.
  +     * <p>Sets whether to use the class name.</p>
  +     *
        * @param useClassName  the new useClassName flag
        */
       public void setUseClassName(boolean useClassName) {
  @@ -95,7 +98,8 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets whether to output short or long class names.
  +     * <p>Gets whether to output short or long class names.</p>
  +     *
        * @return the current shortClassName flag
        */
       public boolean isShortClassName() {
  @@ -103,7 +107,8 @@
       }
   
       /**
  -     * Sets whether to output short or long class names.
  +     * <p>Sets whether to output short or long class names.</p>
  +     *
        * @param shortClassName  the new shortClassName flag
        */
       public void setShortClassName(boolean shortClassName) {
  @@ -113,7 +118,7 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets whether to use the identity hash code.
  +     * <p>Gets whether to use the identity hash code.</p>
        * @return the current useIdentityHashCode flag
        */
       public boolean isUseIdentityHashCode() {
  @@ -121,7 +126,8 @@
       }
   
       /**
  -     * Sets whether to use the identity hash code.
  +     * <p>Sets whether to use the identity hash code.</p>
  +     *
        * @param useIdentityHashCode  the new useIdentityHashCode flag
        */
       public void setUseIdentityHashCode(boolean useIdentityHashCode) {
  @@ -131,7 +137,8 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets whether to use the field names passed in.
  +     * <p>Gets whether to use the field names passed in.</p>
  +     *
        * @return the current useFieldNames flag
        */
       public boolean isUseFieldNames() {
  @@ -139,7 +146,8 @@
       }
   
       /**
  -     * Sets whether to use the field names passed in.
  +     * <p>Sets whether to use the field names passed in.</p>
  +     *
        * @param useFieldNames  the new useFieldNames flag
        */
       public void setUseFieldNames(boolean useFieldNames) {
  @@ -149,7 +157,9 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets whether to use full detail when the caller doesn't specify.
  +     * <p>Gets whether to use full detail when the caller doesn't
  +     * specify.</p>
  +     *
        * @return the current defaultFullDetail flag
        */
       public boolean isDefaultFullDetail() {
  @@ -157,7 +167,9 @@
       }
   
       /**
  -     * Sets whether to use full detail when the caller doesn't specify.
  +     * <p>Sets whether to use full detail when the caller doesn't
  +     * specify.</p>
  +     *
        * @param defaultFullDetail  the new defaultFullDetail flag
        */
       public void setDefaultFullDetail(boolean defaultFullDetail) {
  @@ -167,7 +179,8 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets whether to output array content detail.
  +     * <p>Gets whether to output array content detail.</p>
  +     *
        * @return the current array content detail setting
        */
       public boolean isArrayContentDetail() {
  @@ -175,7 +188,8 @@
       }
       
       /**
  -     * Sets whether to output array content detail.
  +     * <p>Sets whether to output array content detail.</p>
  +     *
        * @param arrayContentDetail  the new arrayContentDetail flag
        */
       public void setArrayContentDetail(boolean arrayContentDetail) {
  @@ -185,7 +199,8 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets the array start text.
  +     * <p>Gets the array start text.</p>
  +     *
        * @return the current array start text
        */
       public String getArrayStart() {
  @@ -193,8 +208,11 @@
       }
   
       /**
  -     * Sets the array start text.
  -     * Null is accepted, but will be converted to a blank string.
  +     * <p>Sets the array start text.</p>
  +     *
  +     * <p><code>Null</code> is accepted, but will be converted
  +     * to a empry String.</p>
  +     *
        * @param arrayStart  the new array start text
        */
       public void setArrayStart(String arrayStart) {
  @@ -204,7 +222,8 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets the array end text.
  +     * <p>Gets the array end text.</p>
  +     *
        * @return the current array end text
        */
       public String getArrayEnd() {
  @@ -212,8 +231,11 @@
       }
   
       /**
  -     * Sets the array end text.
  -     * Null is accepted, but will be converted to a blank string.
  +     * <p>Sets the array end text.</p>
  +     *
  +     * <p><code>Null</code> is accepted, but will be converted
  +     * to a empty String.</p>
  +     *
        * @param arrayEnd  the new array end text
        */
       public void setArrayEnd(String arrayEnd) {
  @@ -223,7 +245,8 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets the array separator text.
  +     * <p>Gets the array separator text.</p>
  +     *
        * @return the current array separator text
        */
       public String getArraySeparator() {
  @@ -231,8 +254,11 @@
       }
   
       /**
  -     * Sets the array separator text.
  -     * Null is accepted, but will be converted to a blank string.
  +     * <p>Sets the array separator text.</p>
  +     *
  +     * <p><code>Null</code> is accepted, but will be converted
  +     * to a empty String.</p>
  +     *
        * @param arraySeparator  the new array separator text
        */
       public void setArraySeparator(String arraySeparator) {
  @@ -242,7 +268,8 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets the content start text.
  +     * <p>Gets the content start text.</p>
  +     *
        * @return the current content start text
        */
       public String getContentStart() {
  @@ -250,8 +277,11 @@
       }
   
       /**
  -     * Sets the content start text.
  -     * Null is accepted, but will be converted to a blank string.
  +     * <p>Sets the content start text.</p>
  +     *
  +     * <p><code>Null</code> is accepted, but will be converted
  +     * to a empty String.</p>
  +     *
        * @param contentStart  the new content start text
        */
       public void setContentStart(String contentStart) {
  @@ -261,7 +291,8 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets the content end text.
  +     * <p>Gets the content end text.</p>
  +     *
        * @return the current content end text
        */
       public String getContentEnd() {
  @@ -269,8 +300,11 @@
       }
   
       /**
  -     * Sets the content end text.
  -     * Null is accepted, but will be converted to a blank string.
  +     * <p>Sets the content end text.</p>
  +     *
  +     * <p><code>Null</code> is accepted, but will be converted
  +     * to a empty String.</p>
  +     *
        * @param contentEnd  the new content end text
        */
       public void setContentEnd(String contentEnd) {
  @@ -280,7 +314,8 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets the field name value separator text.
  +     * <p>Gets the field name value separator text.</p>
  +     *
        * @return the current field name value separator text
        */
       public String getFieldNameValueSeparator() {
  @@ -288,8 +323,11 @@
       }
   
       /**
  -     * Sets the field name value separator text.
  -     * Null is accepted, but will be converted to a blank string.
  +     * <p>Sets the field name value separator text.</p>
  +     *
  +     * <p><code>Null</code> is accepted, but will be converted
  +     * to a empty String.</p>
  +     *
        * @param fieldNameValueSeparator  the new field name value separator text
        */
       public void setFieldNameValueSeparator(String fieldNameValueSeparator) {
  @@ -299,7 +337,8 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets the field separator text.
  +     * <p>Gets the field separator text.</p>
  +     *
        * @return the current field separator text
        */
       public String getFieldSeparator() {
  @@ -307,8 +346,11 @@
       }
   
       /**
  -     * Sets the field separator text.
  -     * Null is accepted, but will be converted to a blank string.
  +     * <p>Sets the field separator text.</p>
  +     *
  +     * <p><code>Null</code> is accepted, but will be converted
  +     * to a empty String.</p>
  +     *
        * @param fieldSeparator  the new field separator text
        */
       public void setFieldSeparator(String fieldSeparator) {
  @@ -318,16 +360,20 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets the text to output when null found.
  -     * @return the current text to output when null found
  +     * <p>Gets the text to output when <code>null</code> found.</p>
  +     *
  +     * @return the current text to output when <code>null</code> found
        */
       public String getNullText() {
           return super.getNullText();
       }
   
       /**
  -     * Sets the text to output when null found.
  -     * Null is accepted, but will be converted to a blank string.
  +     * <p>Sets the text to output when <code>null</code> found.</p>
  +     *
  +     * <p><code>Null</code> is accepted, but will be converted
  +     * to a empty String.</p>
  +     *
        * @param nullText  the new text to output when null found
        */
       public void setNullText(String nullText) {
  @@ -337,8 +383,11 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets the text to output when a Collection, Map or Array size is output.
  -     * This is output before the size value.
  +     * <p>Gets the text to output when a <code>Collection</code>,
  +     * <code>Map</code> or <code>Array</code> size is output.</p>
  +     *
  +     * <p>This is output before the size value.</p>
  +     *
        * @return the current start of size text
        */
       public String getSizeStartText() {
  @@ -346,9 +395,14 @@
       }
   
       /**
  -     * Sets the text to output when a Collection, Map or Array size is output.
  -     * This is output before the size value.
  -     * Null is accepted, but will be converted to a blank string.
  +     * <p>Sets the text to output when a <code>Collection</code>,
  +     * <code>Map</code> or <code>Array</code> size is output.</p>
  +     *
  +     * <p>This is output before the size value.</p>
  +     *
  +     * <p><code>Null</code> is accepted, but will be converted to
  +     * a empty String.</p>
  +     *
        * @param sizeStartText  the new start of size text
        */
       public void setSizeStartText(String sizeStartText) {
  @@ -358,8 +412,11 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets the text to output when a Collection, Map or Array size is output.
  -     * This is output after the size value.
  +     * Gets the text to output when a <code>Collection</code>,
  +     * <code>Map</code> or <code>Array</code> size is output.</p>
  +     *
  +     * <p>This is output after the size value.</p>
  +     *
        * @return the current end of size text
        */
       public String getSizeEndText() {
  @@ -367,9 +424,14 @@
       }
   
       /**
  -     * Sets the text to output when a Collection, Map or Array size is output.
  -     * This is output after the size value.
  -     * Null is accepted, but will be converted to a blank string.
  +     * <p>Sets the text to output when a <code>Collection</code>,
  +     * <code>Map</code> or <code>Array</code> size is output.</p>
  +     *
  +     * <p>This is output after the size value.</p>
  +     *
  +     * <p><code>Null</code> is accepted, but will be converted
  +     * to a Empty String.</p>
  +     *
        * @param sizeEndText  the new end of size text
        */
       public void setSizeEndText(String sizeEndText) {
  @@ -379,8 +441,11 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets the text to output when an Object is output in summary mode.
  -     * This is output before the size value.
  +     * <p>Gets the text to output when an <code>Object</code> is
  +     * output in summary mode.</p>
  +     *
  +     * <P>This is output before the size value.</p>
  +     *
        * @return the current start of summary text
        */
       public String getSummaryObjectStartText() {
  @@ -388,9 +453,14 @@
       }
   
       /**
  -     * Sets the text to output when an Object is output in summary mode.
  -     * This is output before the size value.
  -     * Null is accepted, but will be converted to a blank string.
  +     * <p>Sets the text to output when an <code>Object</code> is
  +     * output in summary mode.</p>
  +     *
  +     * <p>This is output before the size value.</p>
  +     *
  +     * <p><code>Null</code> is accepted, but will be converted to
  +     * a empty String.</p>
  +     *
        * @param summaryObjectStartText  the new start of summary text
        */
       public void setSummaryObjectStartText(String summaryObjectStartText) {
  @@ -400,8 +470,11 @@
       //---------------------------------------------------------------------
       
       /**
  -     * Gets the text to output when an Object is output in summary mode.
  -     * This is output after the size value.
  +     * <p>Gets the text to output when an <code>Object</code> is
  +     * output in summary mode.</p>
  +     *
  +     * <p>This is output after the size value.</p>
  +     *
        * @return the current end of summary text
        */
       public String getSummaryObjectEndText() {
  @@ -409,9 +482,14 @@
       }
   
       /**
  -     * Sets the text to output when an Object is output in summary mode.
  -     * This is output after the size value.
  -     * Null is accepted, but will be converted to a blank string.
  +     * <p>Sets the text to output when an <code>Object</code> is
  +     * output in summary mode.</p>
  +     *
  +     * <p>This is output after the size value.</p>
  +     *
  +     * <p><code>Null</code> is accepted, but will be converted to
  +     * a empty String.</p>
  +     *
        * @param summaryObjectEndText  the new end of summary text
        */
       public void setSummaryObjectEndText(String summaryObjectEndText) {
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>