org.apache.commons.lang.builder
Class ToStringStyle

java.lang.Object
  extended byorg.apache.commons.lang.builder.ToStringStyle
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
StandardToStringStyle

public abstract class ToStringStyle
extends Object
implements Serializable

Controls String formatting for ToStringBuilder. The main public interface is always via ToStringBuilder.

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 StandardToStringStyle class can be used to set the individual settings. Thus most styles can be achieved without subclassing.

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.

If you want to format the output of certain objects, such as dates, you must create a subclass and override a method.

 public class MyStyle extends ToStringStyle {
   protected void appendDetail(StringBuffer buffer, String fieldName, Object value) {
     if (value instanceof Date) {
       value = new SimpleDateFormat("yyyy-MM-dd").format(value);
     }
     buffer.append(value);
   }
 }
 

Since:
1.0
Version:
$Id: ToStringStyle.java 161243 2005-04-14 04:30:28Z ggregory $
Author:
Stephen Colebourne, Gary Gregory, Pete Gieser, Masato Tezuka
See Also:
Serialized Form

Field Summary
static ToStringStyle DEFAULT_STYLE
          The default toString style.
static ToStringStyle MULTI_LINE_STYLE
          The multi line toString style.
static ToStringStyle NO_FIELD_NAMES_STYLE
          The no field names toString style.
static ToStringStyle SHORT_PREFIX_STYLE
          The short prefix toString style.
static ToStringStyle SIMPLE_STYLE
          The simple toString style.
 
Constructor Summary
protected ToStringStyle()
          Constructor.
 
Method Summary
 void append(StringBuffer buffer, String fieldName, boolean value)
          Append to the toString a boolean value.
 void append(StringBuffer buffer, String fieldName, boolean[] array, Boolean fullDetail)
          Append to the toString a boolean array.
 void append(StringBuffer buffer, String fieldName, byte value)
          Append to the toString a byte value.
 void append(StringBuffer buffer, String fieldName, byte[] array, Boolean fullDetail)
          Append to the toString a byte array.
 void append(StringBuffer buffer, String fieldName, char value)
          Append to the toString a char value.
 void append(StringBuffer buffer, String fieldName, char[] array, Boolean fullDetail)
          Append to the toString a char array.
 void append(StringBuffer buffer, String fieldName, double value)
          Append to the toString a double value.
 void append(StringBuffer buffer, String fieldName, double[] array, Boolean fullDetail)
          Append to the toString a double array.
 void append(StringBuffer buffer, String fieldName, float value)
          Append to the toString a float value.
 void append(StringBuffer buffer, String fieldName, float[] array, Boolean fullDetail)
          Append to the toString a float array.
 void append(StringBuffer buffer, String fieldName, int value)
          Append to the toString an int value.
 void append(StringBuffer buffer, String fieldName, int[] array, Boolean fullDetail)
          Append to the toString an int array.
 void append(StringBuffer buffer, String fieldName, long value)
          Append to the toString a long value.
 void append(StringBuffer buffer, String fieldName, long[] array, Boolean fullDetail)
          Append to the toString a long array.
 void append(StringBuffer buffer, String fieldName, Object[] array, Boolean fullDetail)
          Append to the toString an Object array.
 void append(StringBuffer buffer, String fieldName, Object value, Boolean fullDetail)
          Append to the toString an Object value, printing the full toString of the Object passed in.
 void append(StringBuffer buffer, String fieldName, short value)
          Append to the toString a short value.
 void append(StringBuffer buffer, String fieldName, short[] array, Boolean fullDetail)
          Append to the toString a short array.
protected  void appendClassName(StringBuffer buffer, Object object)
          Append to the toString the class name.
protected  void appendContentEnd(StringBuffer buffer)
          Append to the toString the content end.
protected  void appendContentStart(StringBuffer buffer)
          Append to the toString the content start.
protected  void appendDetail(StringBuffer buffer, String fieldName, boolean value)
          Append to the toString a boolean value.
protected  void appendDetail(StringBuffer buffer, String fieldName, boolean[] array)
          Append to the toString the detail of a boolean array.
protected  void appendDetail(StringBuffer buffer, String fieldName, byte value)
          Append to the toString a byte value.
protected  void appendDetail(StringBuffer buffer, String fieldName, byte[] array)
          Append to the toString the detail of a byte array.
protected  void appendDetail(StringBuffer buffer, String fieldName, char value)
          Append to the toString a char value.
protected  void appendDetail(StringBuffer buffer, String fieldName, char[] array)
          Append to the toString the detail of a char array.
protected  void appendDetail(StringBuffer buffer, String fieldName, Collection coll)
          Append to the toString a Collection.
protected  void appendDetail(StringBuffer buffer, String fieldName, double value)
          Append to the toString a double value.
protected  void appendDetail(StringBuffer buffer, String fieldName, double[] array)
          Append to the toString the detail of a double array.
protected  void appendDetail(StringBuffer buffer, String fieldName, float value)
          Append to the toString a float value.
protected  void appendDetail(StringBuffer buffer, String fieldName, float[] array)
          Append to the toString the detail of a float array.
protected  void appendDetail(StringBuffer buffer, String fieldName, int value)
          Append to the toString an int value.
protected  void appendDetail(StringBuffer buffer, String fieldName, int[] array)
          Append to the toString the detail of an int array.
protected  void appendDetail(StringBuffer buffer, String fieldName, long value)
          Append to the toString a long value.
protected  void appendDetail(StringBuffer buffer, String fieldName, long[] array)
          Append to the toString the detail of a long array.
protected  void appendDetail(StringBuffer buffer, String fieldName, Map map)
          Append to the toString a Map.
protected  void appendDetail(StringBuffer buffer, String fieldName, Object value)
          Append to the toString an Object value, printing the full detail of the Object.
protected  void appendDetail(StringBuffer buffer, String fieldName, Object[] array)
          Append to the toString the detail of an Object array.
protected  void appendDetail(StringBuffer buffer, String fieldName, short value)
          Append to the toString a short value.
protected  void appendDetail(StringBuffer buffer, String fieldName, short[] array)
          Append to the toString the detail of a short array.
 void appendEnd(StringBuffer buffer, Object object)
          Append to the toString the end of data indicator.
protected  void appendFieldEnd(StringBuffer buffer, String fieldName)
          Append to the toString the field end.
protected  void appendFieldSeparator(StringBuffer buffer)
          Append to the toString the field separator.
protected  void appendFieldStart(StringBuffer buffer, String fieldName)
          Append to the toString the field start.
protected  void appendIdentityHashCode(StringBuffer buffer, Object object)
          Append the System.identityHashCode(java.lang.Object).
protected  void appendInternal(StringBuffer buffer, String fieldName, Object value, boolean detail)
          Append to the toString an Object, correctly interpreting its type.
protected  void appendNullText(StringBuffer buffer, String fieldName)
          Append to the toString an indicator for null.
 void appendStart(StringBuffer buffer, Object object)
          Append to the toString the start of data indicator.
protected  void appendSummary(StringBuffer buffer, String fieldName, boolean[] array)
          Append to the toString a summary of a boolean array.
protected  void appendSummary(StringBuffer buffer, String fieldName, byte[] array)
          Append to the toString a summary of a byte array.
protected  void appendSummary(StringBuffer buffer, String fieldName, char[] array)
          Append to the toString a summary of a char array.
protected  void appendSummary(StringBuffer buffer, String fieldName, double[] array)
          Append to the toString a summary of a double array.
protected  void appendSummary(StringBuffer buffer, String fieldName, float[] array)
          Append to the toString a summary of a float array.
protected  void appendSummary(StringBuffer buffer, String fieldName, int[] array)
          Append to the toString a summary of an int array.
protected  void appendSummary(StringBuffer buffer, String fieldName, long[] array)
          Append to the toString a summary of a long array.
protected  void appendSummary(StringBuffer buffer, String fieldName, Object value)
          Append to the toString an Object value, printing a summary of the Object.
protected  void appendSummary(StringBuffer buffer, String fieldName, Object[] array)
          Append to the toString a summary of an Object array.
protected  void appendSummary(StringBuffer buffer, String fieldName, short[] array)
          Append to the toString a summary of a short array.
protected  void appendSummarySize(StringBuffer buffer, String fieldName, int size)
          Append to the toString a size summary.
 void appendSuper(StringBuffer buffer, String superToString)
          Append to the toString the superclass toString.
 void appendToString(StringBuffer buffer, String toString)
          Append to the toString another toString.
protected  String getArrayEnd()
          Gets the array end text.
protected  String getArraySeparator()
          Gets the array separator text.
protected  String getArrayStart()
          Gets the array start text.
protected  String getContentEnd()
          Gets the content end text.
protected  String getContentStart()
          Gets the content start text.
protected  String getFieldNameValueSeparator()
          Gets the field name value separator text.
protected  String getFieldSeparator()
          Gets the field separator text.
protected  String getNullText()
          Gets the text to output when null found.
protected  String getShortClassName(Class cls)
          Gets the short class name for a class.
protected  String getSizeEndText()
          Gets the end text to output when a Collection, Map or array size is output.
protected  String getSizeStartText()
          Gets the start text to output when a Collection, Map or array size is output.
protected  String getSummaryObjectEndText()
          Gets the end text to output when an Object is output in summary mode.
protected  String getSummaryObjectStartText()
          Gets the start text to output when an Object is output in summary mode.
protected  boolean isArrayContentDetail()
          Gets whether to output array content detail.
protected  boolean isDefaultFullDetail()
          Gets whether to use full detail when the caller doesn't specify.
protected  boolean isFieldSeparatorAtEnd()
          Gets whether the field separator should be added at the end of each buffer.
protected  boolean isFieldSeparatorAtStart()
          Gets whether the field separator should be added at the start of each buffer.
protected  boolean isFullDetail(Boolean fullDetailRequest)
          Is this field to be output in full detail.
protected  boolean isShortClassName()
          Deprecated. Use isUseShortClassName() Method will be removed in Commons Lang 3.0.
protected  boolean isUseClassName()
          Gets whether to use the class name.
protected  boolean isUseFieldNames()
          Gets whether to use the field names passed in.
protected  boolean isUseIdentityHashCode()
          Gets whether to use the identity hash code.
protected  boolean isUseShortClassName()
          Gets whether to output short or long class names.
protected  void reflectionAppendArrayDetail(StringBuffer buffer, String fieldName, Object array)
          Append to the toString the detail of an array type.
protected  void removeLastFieldSeparator(StringBuffer buffer)
          Remove the last field separator from the buffer.
protected  void setArrayContentDetail(boolean arrayContentDetail)
          Sets whether to output array content detail.
protected  void setArrayEnd(String arrayEnd)
          Sets the array end text.
protected  void setArraySeparator(String arraySeparator)
          Sets the array separator text.
protected  void setArrayStart(String arrayStart)
          Sets the array start text.
protected  void setContentEnd(String contentEnd)
          Sets the content end text.
protected  void setContentStart(String contentStart)
          Sets the content start text.
protected  void setDefaultFullDetail(boolean defaultFullDetail)
          Sets whether to use full detail when the caller doesn't specify.
protected  void setFieldNameValueSeparator(String fieldNameValueSeparator)
          Sets the field name value separator text.
protected  void setFieldSeparator(String fieldSeparator)
          Sets the field separator text.
protected  void setFieldSeparatorAtEnd(boolean fieldSeparatorAtEnd)
          Sets whether the field separator should be added at the end of each buffer.
protected  void setFieldSeparatorAtStart(boolean fieldSeparatorAtStart)
          Sets whether the field separator should be added at the start of each buffer.
protected  void setNullText(String nullText)
          Sets the text to output when null found.
protected  void setShortClassName(boolean shortClassName)
          Deprecated. Use setUseShortClassName(boolean) Method will be removed in Commons Lang 3.0.
protected  void setSizeEndText(String sizeEndText)
          Sets the end text to output when a Collection, Map or array size is output.
protected  void setSizeStartText(String sizeStartText)
          Sets the start text to output when a Collection, Map or array size is output.
protected  void setSummaryObjectEndText(String summaryObjectEndText)
          Sets the end text to output when an Object is output in summary mode.
protected  void setSummaryObjectStartText(String summaryObjectStartText)
          Sets the start text to output when an Object is output in summary mode.
protected  void setUseClassName(boolean useClassName)
          Sets whether to use the class name.
protected  void setUseFieldNames(boolean useFieldNames)
          Sets whether to use the field names passed in.
protected  void setUseIdentityHashCode(boolean useIdentityHashCode)
          Sets whether to use the identity hash code.
protected  void setUseShortClassName(boolean useShortClassName)
          Sets whether to output short or long class names.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_STYLE

public static final ToStringStyle DEFAULT_STYLE
The default toString style.


MULTI_LINE_STYLE

public static final ToStringStyle MULTI_LINE_STYLE
The multi line toString style.


NO_FIELD_NAMES_STYLE

public static final ToStringStyle NO_FIELD_NAMES_STYLE
The no field names toString style.


SHORT_PREFIX_STYLE

public static final ToStringStyle SHORT_PREFIX_STYLE
The short prefix toString style.

Since:
2.1

SIMPLE_STYLE

public static final ToStringStyle SIMPLE_STYLE
The simple toString style.

Constructor Detail

ToStringStyle

protected ToStringStyle()

Constructor.

Method Detail

appendSuper

public void appendSuper(StringBuffer buffer,
                        String superToString)

Append to the toString the superclass toString.

A null superToString is ignored.

Parameters:
buffer - the StringBuffer to populate
superToString - the super.toString()
Since:
2.0

appendToString

public void appendToString(StringBuffer buffer,
                           String toString)

Append to the toString another toString.

A null toString is ignored.

Parameters:
buffer - the StringBuffer to populate
toString - the additional toString
Since:
2.0

appendStart

public void appendStart(StringBuffer buffer,
                        Object object)

Append to the toString the start of data indicator.

Parameters:
buffer - the StringBuffer to populate
object - the Object to build a toString for

appendEnd

public void appendEnd(StringBuffer buffer,
                      Object object)

Append to the toString the end of data indicator.

Parameters:
buffer - the StringBuffer to populate
object - the Object to build a toString for.

removeLastFieldSeparator

protected void removeLastFieldSeparator(StringBuffer buffer)

Remove the last field separator from the buffer.

Parameters:
buffer - the StringBuffer to populate
Since:
2.0

append

public void append(StringBuffer buffer,
                   String fieldName,
                   Object value,
                   Boolean fullDetail)

Append to the toString an Object value, printing the full toString of the Object passed in.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name
value - the value to add to the toString
fullDetail - true for detail, false for summary info, null for style decides

appendInternal

protected void appendInternal(StringBuffer buffer,
                              String fieldName,
                              Object value,
                              boolean detail)

Append to the toString an Object, correctly interpreting its type.

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.

If a cycle is detected, an object will be appended with the Object.toString() format.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name, typically not used as already appended
value - the value to add to the toString, not null
detail - output detail or not

appendDetail

protected void appendDetail(StringBuffer buffer,
                            String fieldName,
                            Object value)

Append to the toString an Object value, printing the full detail of the Object.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name, typically not used as already appended
value - the value to add to the toString, not null

appendDetail

protected void appendDetail(StringBuffer buffer,
                            String fieldName,
                            Collection coll)

Append to the toString a Collection.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name, typically not used as already appended
coll - the Collection to add to the toString, not null

appendDetail

protected void appendDetail(StringBuffer buffer,
                            String fieldName,
                            Map map)

Append to the toString a Map.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name, typically not used as already appended
map - the Map to add to the toString, not null

appendSummary

protected void appendSummary(StringBuffer buffer,
                             String fieldName,
                             Object value)

Append to the toString an Object value, printing a summary of the Object.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name, typically not used as already appended
value - the value to add to the toString, not null

append

public void append(StringBuffer buffer,
                   String fieldName,
                   long value)

Append to the toString a long value.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name
value - the value to add to the toString

appendDetail

protected void appendDetail(StringBuffer buffer,
                            String fieldName,
                            long value)

Append to the toString a long value.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name, typically not used as already appended
value - the value to add to the toString

append

public void append(StringBuffer buffer,
                   String fieldName,
                   int value)

Append to the toString an int value.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name
value - the value to add to the toString

appendDetail

protected void appendDetail(StringBuffer buffer,
                            String fieldName,
                            int value)

Append to the toString an int value.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name, typically not used as already appended
value - the value to add to the toString

append

public void append(StringBuffer buffer,
                   String fieldName,
                   short value)

Append to the toString a short value.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name
value - the value to add to the toString

appendDetail

protected void appendDetail(StringBuffer buffer,
                            String fieldName,
                            short value)

Append to the toString a short value.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name, typically not used as already appended
value - the value to add to the toString

append

public void append(StringBuffer buffer,
                   String fieldName,
                   byte value)

Append to the toString a byte value.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name
value - the value to add to the toString

appendDetail

protected void appendDetail(StringBuffer buffer,
                            String fieldName,
                            byte value)

Append to the toString a byte value.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name, typically not used as already appended
value - the value to add to the toString

append

public void append(StringBuffer buffer,
                   String fieldName,
                   char value)

Append to the toString a char value.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name
value - the value to add to the toString

appendDetail

protected void appendDetail(StringBuffer buffer,
                            String fieldName,
                            char value)

Append to the toString a char value.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name, typically not used as already appended
value - the value to add to the toString

append

public void append(StringBuffer buffer,
                   String fieldName,
                   double value)

Append to the toString a double value.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name
value - the value to add to the toString

appendDetail

protected void appendDetail(StringBuffer buffer,
                            String fieldName,
                            double value)

Append to the toString a double value.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name, typically not used as already appended
value - the value to add to the toString

append

public void append(StringBuffer buffer,
                   String fieldName,
                   float value)

Append to the toString a float value.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name
value - the value to add to the toString

appendDetail

protected void appendDetail(StringBuffer buffer,
                            String fieldName,
                            float value)

Append to the toString a float value.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name, typically not used as already appended
value - the value to add to the toString

append

public void append(StringBuffer buffer,
                   String fieldName,
                   boolean value)

Append to the toString a boolean value.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name
value - the value to add to the toString

appendDetail

protected void appendDetail(StringBuffer buffer,
                            String fieldName,
                            boolean value)

Append to the toString a boolean value.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name, typically not used as already appended
value - the value to add to the toString

append

public void append(StringBuffer buffer,
                   String fieldName,
                   Object[] array,
                   Boolean fullDetail)

Append to the toString an Object array.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name
array - the array to add to the toString
fullDetail - true for detail, false for summary info, null for style decides

appendDetail

protected void appendDetail(StringBuffer buffer,
                            String fieldName,
                            Object[] array)

Append to the toString the detail of an Object array.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name, typically not used as already appended
array - the array to add to the toString, not null

reflectionAppendArrayDetail

protected void reflectionAppendArrayDetail(StringBuffer buffer,
                                           String fieldName,
                                           Object array)

Append to the toString the detail of an array type.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name, typically not used as already appended
array - the array to add to the toString, not null
Since:
2.0

appendSummary

protected void appendSummary(StringBuffer buffer,
                             String fieldName,
                             Object[] array)

Append to the toString a summary of an Object array.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name, typically not used as already appended
array - the array to add to the toString, not null

append

public void append(StringBuffer buffer,
                   String fieldName,
                   long[] array,
                   Boolean fullDetail)

Append to the toString a long array.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name
array - the array to add to the toString
fullDetail - true for detail, false for summary info, null for style decides

appendDetail

protected void appendDetail(StringBuffer buffer,
                            String fieldName,
                            long[] array)

Append to the toString the detail of a long array.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name, typically not used as already appended
array - the array to add to the toString, not null

appendSummary

protected void appendSummary(StringBuffer buffer,
                             String fieldName,
                             long[] array)

Append to the toString a summary of a long array.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name, typically not used as already appended
array - the array to add to the toString, not null

append

public void append(StringBuffer buffer,
                   String fieldName,
                   int[] array,
                   Boolean fullDetail)

Append to the toString an int array.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name
array - the array to add to the toString
fullDetail - true for detail, false for summary info, null for style decides

appendDetail

protected void appendDetail(StringBuffer buffer,
                            String fieldName,
                            int[] array)

Append to the toString the detail of an int array.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name, typically not used as already appended
array - the array to add to the toString, not null

appendSummary

protected void appendSummary(StringBuffer buffer,
                             String fieldName,
                             int[] array)

Append to the toString a summary of an int array.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name, typically not used as already appended
array - the array to add to the toString, not null

append

public void append(StringBuffer buffer,
                   String fieldName,
                   short[] array,
                   Boolean fullDetail)

Append to the toString a short array.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name
array - the array to add to the toString
fullDetail - true for detail, false for summary info, null for style decides

appendDetail

protected void appendDetail(StringBuffer buffer,
                            String fieldName,
                            short[] array)

Append to the toString the detail of a short array.

Parameters:
buffer - the StringBuffer to populate
fieldName - the field name, typically not used as already appended
array - the array to add to the toString, not null

appendSummary

protected void appendSummary(StringBuffer buffer,
                             String fieldName,
                             short[] array)

Append to the toString a summary of a short array.

Parameters:
buffer - the