Initial checkin of ToStringBuilder and assistants

git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/lang/trunk@137032 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Stephen Colebourne 2002-09-17 22:07:20 +00:00
parent aea52bdea5
commit 12c3259745
3 changed files with 2782 additions and 0 deletions

View File

@ -0,0 +1,460 @@
package org.apache.commons.lang.builder;
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
// 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.
*
* @author <a href="mailto:scolebourne@joda.org">Stephen Colebourne</a>
* @version $Id: StandardToStringStyle.java,v 1.1 2002/09/17 22:07:20 scolebourne Exp $
*/
public class StandardToStringStyle extends ToStringStyle {
/**
* Constructor.
*/
public StandardToStringStyle() {
super();
}
//---------------------------------------------------------------------
/**
* Gets whether to use the class name.
* @return the current useClassName flag
*/
public boolean isUseClassName() {
return useClassName;
}
/**
* Sets whether to use the class name.
* @param useClassName the new useClassName flag
*/
public void setUseClassName(boolean useClassName) {
this.useClassName = useClassName;
}
//---------------------------------------------------------------------
/**
* Gets whether to output short or long class names.
* @return the current shortClassName flag
*/
public boolean isShortClassName() {
return useShortClassName;
}
/**
* Sets whether to output short or long class names.
* @param shortClassName the new shortClassName flag
*/
public void setShortClassName(boolean shortClassName) {
this.useShortClassName = shortClassName;
}
//---------------------------------------------------------------------
/**
* Gets whether to use the identity hash code.
* @return the current useIdentityHashCode flag
*/
public boolean isUseIdentityHashCode() {
return useIdentityHashCode;
}
/**
* Sets whether to use the identity hash code.
* @param useFieldNames the new useIdentityHashCode flag
*/
public void setUseIdentityHashCode(boolean useIdentityHashCode) {
this.useIdentityHashCode = useIdentityHashCode;
}
//---------------------------------------------------------------------
/**
* Gets whether to use the field names passed in.
* @return the current useFieldNames flag
*/
public boolean isUseFieldNames() {
return useFieldNames;
}
/**
* Sets whether to use the field names passed in.
* @param useFieldNames the new useFieldNames flag
*/
public void setUseFieldNames(boolean useFieldNames) {
this.useFieldNames = useFieldNames;
}
//---------------------------------------------------------------------
/**
* Gets whether to use full detail when the caller doesn't specify.
* @return the current defaultFullDetail flag
*/
public boolean isDefaultFullDetail() {
return defaultFullDetail;
}
/**
* Sets whether to use full detail when the caller doesn't specify.
* @param defaultFullDetail the new defaultFullDetail flag
*/
public void setDefaultFullDetail(boolean defaultFullDetail) {
this.defaultFullDetail = defaultFullDetail;
}
//---------------------------------------------------------------------
/**
* Gets whether to output array content detail.
* @return the current array content detail setting
*/
public boolean isArrayContentDetail() {
return arrayContentDetail;
}
/**
* Sets whether to output array content detail.
* @param arrayContentDetail the new arrayContentDetail flag
*/
public void setArrayContentDetail(boolean arrayContentDetail) {
this.arrayContentDetail = arrayContentDetail;
}
//---------------------------------------------------------------------
/**
* Gets the array start text.
* @return the current array start text
*/
public String getArrayStart() {
return arrayStart;
}
/**
* Sets the array start text.
* Null is accepted, but will be converted to a blank string.
* @param arrayStart the new array start text
*/
public void setArrayStart(String arrayStart) {
if (arrayStart == null) {
arrayStart = "";
}
this.arrayStart = arrayStart;
}
//---------------------------------------------------------------------
/**
* Gets the array end text.
* @return the current array end text
*/
public String getArrayEnd() {
return arrayEnd;
}
/**
* Sets the array end text.
* Null is accepted, but will be converted to a blank string.
* @param arrayEnd the new array end text
*/
public void setArrayEnd(String arrayEnd) {
if (arrayStart == null) {
arrayStart = "";
}
this.arrayEnd = arrayEnd;
}
//---------------------------------------------------------------------
/**
* Gets the array separator text.
* @return the current array separator text
*/
public String getArraySeparator() {
return arraySeparator;
}
/**
* Sets the array separator text.
* Null is accepted, but will be converted to a blank string.
* @param arraySeparator the new array separator text
*/
public void setArraySeparator(String arraySeparator) {
if (arraySeparator == null) {
arraySeparator = "";
}
this.arraySeparator = arraySeparator;
}
//---------------------------------------------------------------------
/**
* Gets the content start text.
* @return the current content start text
*/
public String getContentStart() {
return contentStart;
}
/**
* Sets the content start text.
* Null is accepted, but will be converted to a blank string.
* @param contentStart the new content start text
*/
public void setContentStart(String contentStart) {
if (contentStart == null) {
contentStart = "";
}
this.contentStart = contentStart;
}
//---------------------------------------------------------------------
/**
* Gets the content end text.
* @return the current content end text
*/
public String getContentEnd() {
return contentEnd;
}
/**
* Sets the content end text.
* Null is accepted, but will be converted to a blank string.
* @param contentEnd the new content end text
*/
public void setContentEnd(String contentEnd) {
if (contentEnd == null) {
contentEnd = "";
}
this.contentEnd = contentEnd;
}
//---------------------------------------------------------------------
/**
* Gets the field name value separator text.
* @return the current field name value separator text
*/
public String getFieldNameValueSeparator() {
return fieldNameValueSeparator;
}
/**
* Sets the field name value separator text.
* Null is accepted, but will be converted to a blank string.
* @param fieldNameValueSeparator the new field name value separator text
*/
public void setFieldNameValueSeparator(String fieldNameValueSeparator) {
if (fieldNameValueSeparator == null) {
fieldNameValueSeparator = "";
}
this.fieldNameValueSeparator = fieldNameValueSeparator;
}
//---------------------------------------------------------------------
/**
* Gets the field separator text.
* @return the current field separator text
*/
public String getFieldSeparator() {
return fieldSeparator;
}
/**
* Sets the field separator text.
* Null is accepted, but will be converted to a blank string.
* @param fieldSeparator the new field separator text
*/
public void setFieldSeparator(String fieldSeparator) {
if (fieldSeparator == null) {
fieldSeparator = "";
}
this.fieldSeparator = fieldSeparator;
}
//---------------------------------------------------------------------
/**
* Gets the text to output when null found.
* @return the current text to output when null found
*/
public String getNullText() {
return nullText;
}
/**
* Sets the text to output when null found.
* Null is accepted, but will be converted to a blank string.
* @param nullText the new text to output when null found
*/
public void setNullText(String nullText) {
if (nullText == null) {
nullText = "";
}
this.nullText = nullText;
}
//---------------------------------------------------------------------
/**
* Gets the text to output when a Collection, Map or Array size is output.
* This is output before the size value.
* @return the current start of size text
*/
public String getSizeStartText() {
return sizeStartText;
}
/**
* 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.
* @param sizeStartText the new start of size text
*/
public void setSizeStartText(String sizeStartText) {
if (sizeStartText == null) {
sizeStartText = "";
}
this.sizeStartText = sizeStartText;
}
//---------------------------------------------------------------------
/**
* Gets the text to output when a Collection, Map or Array size is output.
* This is output after the size value.
* @return the current end of size text
*/
public String getSizeEndText() {
return sizeEndText;
}
/**
* 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.
* @param sizeEndText the new end of size text
*/
public void setSizeEndText(String sizeEndText) {
if (sizeEndText == null) {
sizeEndText = "";
}
this.sizeEndText = sizeEndText;
}
//---------------------------------------------------------------------
/**
* Gets the text to output when an Object is output in summary mode.
* This is output before the size value.
* @return the current start of summary text
*/
public String getSummaryObjectStartText() {
return summaryObjectStartText;
}
/**
* 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.
* @param summaryObjectStartText the new start of summary text
*/
public void setSummaryObjectStartText(String summaryObjectStartText) {
if (summaryObjectStartText == null) {
summaryObjectStartText = "";
}
this.summaryObjectStartText = summaryObjectStartText;
}
//---------------------------------------------------------------------
/**
* Gets the text to output when an Object is output in summary mode.
* This is output after the size value.
* @return the current end of summary text
*/
public String getSummaryObjectEndText() {
return summaryObjectEndText;
}
/**
* 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.
* @param summaryObjectEndText the new end of summary text
*/
public void setSummaryObjectEndText(String summaryObjectEndText) {
if (summaryObjectEndText == null) {
summaryObjectEndText = "";
}
this.summaryObjectEndText = summaryObjectEndText;
}
//---------------------------------------------------------------------
}

View File

@ -0,0 +1,929 @@
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
package org.apache.commons.lang.builder;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.Arrays;
import java.util.Collection;
import java.util.Map;
/**
* <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:
* <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
* </ul>
* <p>
* To use this class write code as follows:
* <code>
* public class Person {
* String name;
* int age;
* boolean isSmoker;
*
* ...
*
* public String toString() {
* return new ToStringBuilder(this).
* append(name, "name").
* append(age, "age").
* append(smoker, "smoker").
* toString();
* }
* }
* </code>
* This will produce a toString of the format:
* <code>Person@7f54[name=Stephen,age=29,smoker=false]</code>
*
* @author <a href="mailto:scolebourne@joda.org">Stephen Colebourne</a>
* @version $Id: ToStringBuilder.java,v 1.1 2002/09/17 22:07:20 scolebourne Exp $
*/
public class ToStringBuilder {
/**
* The default style of output to use
*/
private static ToStringStyle defaultStyle;
/**
* Current toString buffer
*/
private final StringBuffer buffer;
/**
* The style of output to use
*/
private final ToStringStyle style;
/**
* The object being output
*/
private final Object object;
/**
* Constructor for ToStringBuilder.
* This constructor outputs using the default style set with
* <code>setDefaultStyle</code>.
*
* @param object the object to build a toString for, must not be null
* @throws IllegalArgumentException if the object passed in is null
*/
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.
*
* @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
*/
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.
*
* @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
*/
public ToStringBuilder(Object object, ToStringStyle style, StringBuffer buffer) {
super();
if (object == null) {
throw new IllegalArgumentException("The object to create a toString for must not be null");
}
if (style == null) {
style = ToStringStyle.DEFAULT_STYLE;
}
if (buffer == null) {
buffer = new StringBuffer(512);
}
this.buffer = buffer;
this.style = style;
this.object = object;
style.appendStart(buffer, object);
}
//----------------------------------------------------------------------------
/**
* 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.
*
* @return the default toString style
*/
public static ToStringStyle getDefaultStyle() {
return defaultStyle;
}
/**
* Sets the default style to use.
*
* @param style the default toString style
* @throws IllegalArgumentException if the style is null
*/
public static void setDefaultStyle(ToStringStyle style) {
if (style == null) {
throw new IllegalArgumentException("The style must not be null");
}
defaultStyle = style;
}
//-------------------------------------------------------------------------
/**
* 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
* @return the String result
* @throws IllegalArgumentException if the object is null
*/
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.
*
* @param object the object to be output
* @param style the style of the toString to create, may be null
* @return the String result
* @throws IllegalArgumentException if the object or style is null
*/
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>
* If the style is null, the default style is used.
*
* @param object the object to be output
* @param style the style of the toString to create, may be null
* @param outputTransients whether to include transient fields
* @return the String result
* @throws IllegalArgumentException if the object or style is null
*/
public static String reflectionToString(Object object, ToStringStyle style,
boolean outputTransients) {
if (object == null) {
throw new IllegalArgumentException("The object must not be null");
}
if (style == null) {
style = getDefaultStyle();
}
Field[] fields = object.getClass().getDeclaredFields();
Field.setAccessible(fields, true);
ToStringBuilder builder = new ToStringBuilder(object, style);
for (int i = 0; i < fields.length; ++i) {
Field f = fields[i];
if (outputTransients || !Modifier.isTransient(f.getModifiers())) {
if (!Modifier.isStatic(f.getModifiers())) {
try {
builder.append(f.getName(), f.get(object));
} catch (IllegalAccessException ex) {
//this can't happen. Would get a Security exception instead
//throw a runtime exception in case the impossible happens.
throw new InternalError("Unexpected IllegalAccessException");
}
}
}
}
return builder.toString();
}
//----------------------------------------------------------------------------
/**
* Append to the toString an Object value.
*
* @param value the value to add to the toString
* @return this
*/
public ToStringBuilder append(Object object) {
style.append(buffer, null, object, null);
return this;
}
/**
* Append to the toString an Object value.
*
* @param value the value to add to the toString
* @param fieldName the field name
* @return this
*/
public ToStringBuilder append(String fieldName, Object object) {
style.append(buffer, fieldName, object, null);
return this;
}
/**
* Append to the toString an Object value.
*
* @param value the value to add to the toString
* @param fieldName the field name
* @param fullDetail true for detail, false for summary info
* @return this
*/
public ToStringBuilder append(String fieldName, Object object, boolean fullDetail) {
style.append(buffer, fieldName, object, new Boolean(fullDetail));
return this;
}
//----------------------------------------------------------------------------
/**
* Append to the toString a long value.
*
* @param value the value to add to the toString
* @return this
*/
public ToStringBuilder append(long value) {
style.append(buffer, null, value);
return this;
}
/**
* Append to the toString a long value.
*
* @param value the value to add to the toString
* @param fieldName the field name
* @return this
*/
public ToStringBuilder append(String fieldName, long value) {
style.append(buffer, fieldName, value);
return this;
}
//----------------------------------------------------------------------------
/**
* Append to the toString an int value.
*
* @param value the value to add to the toString
* @return this
*/
public ToStringBuilder append(int value) {
style.append(buffer, null, value);
return this;
}
/**
* Append to the toString an int value.
*
* @param value the value to add to the toString
* @param fieldName the field name
* @return this
*/
public ToStringBuilder append(String fieldName, int value) {
style.append(buffer, fieldName, value);
return this;
}
//----------------------------------------------------------------------------
/**
* Append to the toString a short value.
*
* @param value the value to add to the toString
* @return this
*/
public ToStringBuilder append(short value) {
style.append(buffer, null, value);
return this;
}
/**
* Append to the toString a short value.
*
* @param value the value to add to the toString
* @param fieldName the field name
* @return this
*/
public ToStringBuilder append(String fieldName, short value) {
style.append(buffer, fieldName, value);
return this;
}
//----------------------------------------------------------------------------
/**
* Append to the toString a char value.
*
* @param value the value to add to the toString
* @return this
*/
public ToStringBuilder append(char value) {
style.append(buffer, null, value);
return this;
}
/**
* Append to the toString a char value.
*
* @param value the value to add to the toString
* @param fieldName the field name
* @return this
*/
public ToStringBuilder append(String fieldName, char value) {
style.append(buffer, fieldName, value);
return this;
}
//----------------------------------------------------------------------------
/**
* Append to the toString a byte value.
*
* @param value the value to add to the toString
* @return this
*/
public ToStringBuilder append(byte value) {
style.append(buffer, null, value);
return this;
}
/**
* Append to the toString a byte value.
*
* @param value the value to add to the toString
* @param fieldName the field name
* @return this
*/
public ToStringBuilder append(String fieldName, byte value) {
style.append(buffer, fieldName, value);
return this;
}
//----------------------------------------------------------------------------
/**
* Append to the toString a double value.
*
* @param value the value to add to the toString
* @return this
*/
public ToStringBuilder append(double value) {
style.append(buffer, null, value);
return this;
}
/**
* Append to the toString a double value.
*
* @param value the value to add to the toString
* @param fieldName the field name
* @return this
*/
public ToStringBuilder append(String fieldName, double value) {
style.append(buffer, fieldName, value);
return this;
}
//----------------------------------------------------------------------------
/**
* Append to the toString a float value.
*
* @param value the value to add to the toString
* @return this
*/
public ToStringBuilder append(float value) {
style.append(buffer, null, value);
return this;
}
/**
* Append to the toString a float value.
*
* @param value the value to add to the toString
* @param fieldName the field name
* @return this
*/
public ToStringBuilder append(String fieldName, float value) {
style.append(buffer, fieldName, value);
return this;
}
//----------------------------------------------------------------------------
/**
* Append to the toString a boolean value.
*
* @param value the value to add to the toString
* @return this
*/
public ToStringBuilder append(boolean value) {
style.append(buffer, null, value);
return this;
}
/**
* Append to the toString a boolean value.
*
* @param value the value to add to the toString
* @param fieldName the field name
* @return this
*/
public ToStringBuilder append(String fieldName, boolean value) {
style.append(buffer, fieldName, value);
return this;
}
//----------------------------------------------------------------------------
/**
* Append to the toString an Object array.
*
* @param array the array to add to the toString
* @param fieldName the field name
* @return this
*/
public ToStringBuilder append(Object[] array) {
style.append(buffer, null, array, null);
return this;
}
/**
* Append to the toString an Object array.
*
* @param array the array to add to the toString
* @param fieldName the field name
* @return this
*/
public ToStringBuilder append(String fieldName, Object[] array) {
style.append(buffer, fieldName, array, null);
return this;
}
/**
* 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.
*
* @param array the array to add to the toString
* @param fieldName the field name
* @param fullDetail true for detail, false for summary info
* @return this
*/
public ToStringBuilder append(String fieldName, Object[] array, boolean fullDetail) {
style.append(buffer, fieldName, array, new Boolean(fullDetail));
return this;
}
//----------------------------------------------------------------------------
/**
* Append to the toString a long array.
*
* @param array the array to add to the toString
* @param fieldName the field name
* @return this
*/
public ToStringBuilder append(long[] array) {
style.append(buffer, null, array, null);
return this;
}
/**
* Append a hashCode for a long array.
*
* @param array the array to add to the hashCode
* @return this
*/
public ToStringBuilder append(String fieldName, long[] array) {
style.append(buffer, fieldName, array, null);
return this;
}
/**
* 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.
*
* @param array the array to add to the toString
* @param fieldName the field name
* @param fullDetail true for detail, false for summary info
* @return this
*/
public ToStringBuilder append(String fieldName, long[] array, boolean fullDetail) {
style.append(buffer, fieldName, array, new Boolean(fullDetail));
return this;
}
//----------------------------------------------------------------------------
/**
* Append to the toString a int array.
*
* @param array the array to add to the toString
* @param fieldName the field name
* @return this
*/
public ToStringBuilder append(int[] array) {
style.append(buffer, null, array, null);
return this;
}
/**
* Append a hashCode for an int array.
*
* @param array the array to add to the hashCode
* @return this
*/
public ToStringBuilder append(String fieldName, int[] array) {
style.append(buffer, fieldName, array, null);
return this;
}
/**
* 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.
*
* @param array the array to add to the toString
* @param fieldName the field name
* @param fullDetail true for detail, false for summary info
* @return this
*/
public ToStringBuilder append(String fieldName, int[] array, boolean fullDetail) {
style.append(buffer, fieldName, array, new Boolean(fullDetail));
return this;
}
//----------------------------------------------------------------------------
/**
* Append to the toString a short array.
*
* @param array the array to add to the toString
* @param fieldName the field name
* @return this
*/
public ToStringBuilder append(short[] array) {
style.append(buffer, null, array, null);
return this;
}
/**
* Append a hashCode for a short array.
*
* @param array the array to add to the hashCode
* @return this
*/
public ToStringBuilder append(String fieldName, short[] array) {
style.append(buffer, fieldName, array, null);
return this;
}
/**
* 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.
*
* @param array the array to add to the toString
* @param fieldName the field name
* @param fullDetail true for detail, false for summary info
* @return this
*/
public ToStringBuilder append(String fieldName, short[] array, boolean fullDetail) {
style.append(buffer, fieldName, array, new Boolean(fullDetail));
return this;
}
//----------------------------------------------------------------------------
/**
* Append to the toString a char array.
*
* @param array the array to add to the toString
* @param fieldName the field name
* @return this
*/
public ToStringBuilder append(char[] array) {
style.append(buffer, null, array, null);
return this;
}
/**
* Append a hashCode for a char array.
*
* @param array the array to add to the hashCode
* @return this
*/
public ToStringBuilder append(String fieldName, char[] array) {
style.append(buffer, fieldName, array, null);
return this;
}
/**
* 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.
*
* @param array the array to add to the toString
* @param fieldName the field name
* @param fullDetail true for detail, false for summary info
* @return this
*/
public ToStringBuilder append(String fieldName, char[] array, boolean fullDetail) {
style.append(buffer, fieldName, array, new Boolean(fullDetail));
return this;
}
//----------------------------------------------------------------------------
/**
* Append to the toString a byte array.
*
* @param array the array to add to the toString
* @param fieldName the field name
* @return this
*/
public ToStringBuilder append(byte[] array) {
style.append(buffer, null, array, null);
return this;
}
/**
* Append a hashCode for a byte array.
*
* @param array the array to add to the hashCode
* @return this
*/
public ToStringBuilder append(String fieldName, byte[] array) {
style.append(buffer, fieldName, array, null);
return this;
}
/**
* 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.
*
* @param array the array to add to the toString
* @param fieldName the field name
* @param fullDetail true for detail, false for summary info
* @return this
*/
public ToStringBuilder append(String fieldName, byte[] array, boolean fullDetail) {
style.append(buffer, fieldName, array, new Boolean(fullDetail));
return this;
}
//----------------------------------------------------------------------------
/**
* Append to the toString a double array.
*
* @param array the array to add to the toString
* @param fieldName the field name
* @return this
*/
public ToStringBuilder append(double[] array) {
style.append(buffer, null, array, null);
return this;
}
/**
* Append a hashCode for a double array.
*
* @param array the array to add to the hashCode
* @return this
*/
public ToStringBuilder append(String fieldName, double[] array) {
style.append(buffer, fieldName, array, null);
return this;
}
/**
* 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.
*
* @param array the array to add to the toString
* @param fieldName the field name
* @param fullDetail true for detail, false for summary info
* @return this
*/
public ToStringBuilder append(String fieldName, double[] array, boolean fullDetail) {
style.append(buffer, fieldName, array, new Boolean(fullDetail));
return this;
}
//----------------------------------------------------------------------------
/**
* Append to the toString a float array.
*
* @param array the array to add to the toString
* @param fieldName the field name
* @return this
*/
public ToStringBuilder append(float[] array) {
style.append(buffer, null, array, null);
return this;
}
/**
* Append a hashCode for a float array.
*
* @param array the array to add to the hashCode
* @return this
*/
public ToStringBuilder append(String fieldName, float[] array) {
style.append(buffer, fieldName, array, null);
return this;
}
/**
* 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.
*
* @param array the array to add to the toString
* @param fieldName the field name
* @param fullDetail true for detail, false for summary info
* @return this
*/
public ToStringBuilder append(String fieldName, float[] array, boolean fullDetail) {
style.append(buffer, fieldName, array, new Boolean(fullDetail));
return this;
}
//----------------------------------------------------------------------------
/**
* Append to the toString a boolean array.
*
* @param array the array to add to the toString
* @param fieldName the field name
* @return this
*/
public ToStringBuilder append(boolean[] array) {
style.append(buffer, null, array, null);
return this;
}
/**
* Append a hashCode for a boolean array.
*
* @param array the array to add to the hashCode
* @return this
*/
public ToStringBuilder append(String fieldName, boolean[] array) {
style.append(buffer, fieldName, array, null);
return this;
}
/**
* 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.
*
* @param array the array to add to the toString
* @param fieldName the field name
* @param fullDetail true for detail, false for summary info
* @return this
*/
public ToStringBuilder append(String fieldName, boolean[] array, boolean fullDetail) {
style.append(buffer, fieldName, array, new Boolean(fullDetail));
return this;
}
//----------------------------------------------------------------------------
/**
* Gets the buffer being populated
*
* @return the StringBuffer being populated
*/
public StringBuffer getStringBuffer() {
return buffer;
}
/**
* Returns the built toString
*
* @return the String toString
*/
public String toString() {
style.appendEnd(buffer, object);
return buffer.toString();
}
}

File diff suppressed because it is too large Load Diff