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:
parent
aea52bdea5
commit
12c3259745
|
@ -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;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
|
||||
}
|
|
@ -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
Loading…
Reference in New Issue