APIdia Launch Partner
Top Description Fields Constructors Methods
io.github.spannm.jackcess.util

public Class ToStringBuilder

extends Object
Class Inheritance
Imports
io.github.spannm.jackcess.impl.ByteUtil, .PageChannel, java.lang.reflect.Array, java.nio.ByteBuffer, java.util.Collection, .Collections, .IdentityHashMap, .Map, .Optional, .Set, java.util.stream.Collectors

Builder for Object#toString() methods.

Field Summary

Modifier and TypeField and Description
private final StringBuilder
private final String
private final String
private final String
private final String
private final boolean
private final String
private static final int
private final String
private static final ThreadLocal<Set<Object>>
OBJ_REGISTRY

Thread-local registry for cycle detection during appendInternal.

private final Object
private boolean

Constructor Summary

AccessConstructor and Description
pack-priv
ToStringBuilder(Object _object, String _fieldSeparator, boolean _fieldSeparatorAtStart, String _fieldNameValueSeparator, String _contentEnd, boolean _useIdentityHashCode)

Method Summary

Modifier and TypeMethod and Description
public ToStringBuilder
append(String fieldName, Object value)

public ToStringBuilder
appendIgnoreNull(String fieldName, Object value)

Appends the field only if value is non-null; null values are silently skipped.

pack-priv void
appendInternal(StringBuilder _buffer, String _fieldName, Object _value)

public static ToStringBuilder
pack-priv static String
getShortClassName(Class<?> clazz, String _implSuffix)

pack-priv static void
removeLastFieldSeparator(StringBuilder _buffer, String _fieldSeparator)

public String
toString()

Overrides java.lang.Object.toString.

Returns a string representation of the object.

public static ToStringBuilder
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAllwaitwaitwait

Field Detail

bufferback to summary
private final StringBuilder buffer
contentEndback to summary
private final String contentEnd
contentStartback to summary
private final String contentStart
fieldNameValueSeparatorback to summary
private final String fieldNameValueSeparator
fieldSeparatorback to summary
private final String fieldSeparator
fieldSeparatorAtStartback to summary
private final boolean fieldSeparatorAtStart
implSuffixback to summary
private final String implSuffix
MAX_BYTE_DETAIL_LENback to summary
private static final int MAX_BYTE_DETAIL_LEN
nullTextback to summary
private final String nullText
OBJ_REGISTRYback to summary
private static final ThreadLocal<Set<Object>> OBJ_REGISTRY

Thread-local registry for cycle detection during appendInternal. Using ThreadLocal ensures thread safety without synchronization: each thread gets its own independent Set, so concurrent calls to toString() on different threads cannot interfere with each other.

The set is backed by an IdentityHashMap so that membership checks use reference equality (==) instead of equals/hashCode. This is required because hashCode() on a self-referencing collection (e.g. list.add(list)) would itself cause a StackOverflowError.

objectback to summary
private final Object object
useIdentityHashCodeback to summary
private boolean useIdentityHashCode

Constructor Detail

ToStringBuilderback to summary
pack-priv ToStringBuilder(Object _object, String _fieldSeparator, boolean _fieldSeparatorAtStart, String _fieldNameValueSeparator, String _contentEnd, boolean _useIdentityHashCode)

Method Detail

appendback to summary
public ToStringBuilder append(String fieldName, Object value)
appendIgnoreNullback to summary
public ToStringBuilder appendIgnoreNull(String fieldName, Object value)

Appends the field only if value is non-null; null values are silently skipped. Use append(String, Object) if null should be rendered as <null>.

appendInternalback to summary
pack-priv void appendInternal(StringBuilder _buffer, String _fieldName, Object _value)
builderback to summary
public static ToStringBuilder builder(Object obj)
getShortClassNameback to summary
pack-priv static String getShortClassName(Class<?> clazz, String _implSuffix)
removeLastFieldSeparatorback to summary
pack-priv static void removeLastFieldSeparator(StringBuilder _buffer, String _fieldSeparator)
toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Doc from java.lang.Object.toString.

Returns a string representation of the object. Satisfying this method's contract implies a non-null result must be returned.

Annotations
@Override
valueBuilderback to summary
public static ToStringBuilder valueBuilder(Object obj)