mirror of
https://github.com/apache/commons-lang.git
synced 2025-02-09 11:34:55 +00:00
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------
|
||||||
|
|
||||||
|
}
|
929
src/java/org/apache/commons/lang/builder/ToStringBuilder.java
Normal file
929
src/java/org/apache/commons/lang/builder/ToStringBuilder.java
Normal 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();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
1393
src/java/org/apache/commons/lang/builder/ToStringStyle.java
Normal file
1393
src/java/org/apache/commons/lang/builder/ToStringStyle.java
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user