Package org.eclipse.xtext.xbase.lib.util
Class ToStringBuilder
- java.lang.Object
-
- org.eclipse.xtext.xbase.lib.util.ToStringBuilder
-
@Beta @GwtCompatible public final class ToStringBuilder extends java.lang.Object
Helps with the construction of goodObject.toString()
representations.You can customize the output using the builder-style methods
singleLine()
skipNulls()
andhideFieldNames()
.You can either directly list fields to include via
add(String, Object)
andadd(Object)
or you can let the builder do it automatically using reflection, either including the fields declared in this class or including all superclasses.The builder will automatically handle cycles in the object tree. It also pretty prints arrays and Iterables.
This class is not thread safe.- Since:
- 2.7
-
-
Constructor Summary
Constructors Constructor Description ToStringBuilder(java.lang.Object instance)
Creates a new ToStringBuilder for the given object.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ToStringBuilder
add(java.lang.Object value)
ToStringBuilder
add(java.lang.String fieldName, java.lang.Object value)
ToStringBuilder
addAllFields()
Adds all fields declared in the object's class and its superclasses to the output.ToStringBuilder
addDeclaredFields()
Adds all fields declared directly in the object's class to the outputToStringBuilder
addField(java.lang.String fieldName)
ToStringBuilder
hideFieldNames()
Field names will not be included in the output.ToStringBuilder
singleLine()
Fields are printed on a single line, separated by commas instead of newlinesToStringBuilder
skipNulls()
Fields with null values will be excluded from the outputjava.lang.String
toString()
ToStringBuilder
verbatimValues()
By default, Iterables, Arrays and multiline Strings are pretty-printed.
-
-
-
Method Detail
-
singleLine
public ToStringBuilder singleLine()
Fields are printed on a single line, separated by commas instead of newlines- Returns:
- this
-
skipNulls
public ToStringBuilder skipNulls()
Fields with null values will be excluded from the output- Returns:
- this
-
hideFieldNames
public ToStringBuilder hideFieldNames()
Field names will not be included in the output. Useful for small classes.- Returns:
- this
-
verbatimValues
public ToStringBuilder verbatimValues()
By default, Iterables, Arrays and multiline Strings are pretty-printed. Switching to their normal representation makes the toString method significantly faster.- Returns:
- this
- Since:
- 2.9
-
addDeclaredFields
@GwtIncompatible("Class.getDeclaredFields") public ToStringBuilder addDeclaredFields()
Adds all fields declared directly in the object's class to the output- Returns:
- this
-
addAllFields
@GwtIncompatible("Class.getDeclaredFields") public ToStringBuilder addAllFields()
Adds all fields declared in the object's class and its superclasses to the output.- Returns:
- this
-
addField
@GwtIncompatible("Class.getDeclaredField(String)") public ToStringBuilder addField(java.lang.String fieldName)
- Parameters:
fieldName
- the name of the field to add to the output using reflection- Returns:
- this
-
add
public ToStringBuilder add(java.lang.String fieldName, java.lang.Object value)
- Parameters:
value
- the value to add to the outputfieldName
- the field name to list the value under- Returns:
- this
-
add
public ToStringBuilder add(java.lang.Object value)
- Parameters:
value
- the value to add to the output without a field name- Returns:
- this
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
- Returns:
- the String representation of the processed object
-
-