Package org.assertj.core.presentation
Class StandardRepresentation
- java.lang.Object
-
- org.assertj.core.presentation.StandardRepresentation
-
- All Implemented Interfaces:
Representation
- Direct Known Subclasses:
BinaryRepresentation
,HexadecimalRepresentation
,UnicodeRepresentation
public class StandardRepresentation extends java.lang.Object implements Representation
Standard java object representation.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
StandardRepresentation.GroupType
-
Field Summary
Fields Modifier and Type Field Description private static java.util.Map<java.lang.Class<?>,java.util.function.Function<?,? extends java.lang.CharSequence>>
customFormatterByType
private static java.lang.String
DEFAULT_END
private static java.lang.String
DEFAULT_MAX_ELEMENTS_EXCEEDED
private static java.lang.String
DEFAULT_START
static java.lang.String
ELEMENT_SEPARATOR
static java.lang.String
ELEMENT_SEPARATOR_WITH_NEWLINE
(package private) static java.lang.String
INDENTATION_AFTER_NEWLINE
(package private) static java.lang.String
INDENTATION_FOR_SINGLE_LINE
private static int
maxElementsForPrinting
private static int
maxLengthForSingleLineDescription
private static int
maxStackTraceElementsDisplayed
private static java.lang.String
NULL
static StandardRepresentation
STANDARD_REPRESENTATION
private static java.lang.String
TUPLE_END
private static java.lang.String
TUPLE_START
private static java.lang.Class<?>[]
TYPE_WITH_UNAMBIGUOUS_REPRESENTATION
-
Fields inherited from interface org.assertj.core.presentation.Representation
DEFAULT_PRIORITY
-
-
Constructor Summary
Constructors Constructor Description StandardRepresentation()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.lang.String
classNameDisambiguation(java.lang.Object o)
private static java.lang.Object
classNameOf(java.lang.Object obj)
protected <T> java.lang.String
customFormat(T object)
private java.lang.String
defaultToStringWithClassNameDisambiguation(java.lang.Object o)
private static boolean
doesDescriptionFitOnSingleLine(java.lang.String singleLineDescription)
protected java.lang.String
fallbackToStringOf(java.lang.Object object)
Returns theString
representation of the given object.protected java.lang.String
format(java.lang.Iterable<?> iterable, java.lang.String start, java.lang.String end, java.lang.String elementSeparator, java.lang.String indentation, java.lang.Object root)
protected java.lang.String
format(java.lang.Object[] array, java.lang.String start, java.lang.String end, java.lang.String elementSeparator, java.lang.String indentation, java.lang.Object root)
private java.lang.String
format(java.util.Map<?,?> map, java.lang.Object o)
protected java.lang.String
formatArray(java.lang.Object o)
Returns theString
representation of the given array, ornull
if the given object is eithernull
or not an array.private java.lang.String
formatLines(java.util.List<?> lines)
protected java.lang.String
formatPrimitiveArray(java.lang.Object o)
static int
getMaxElementsForPrinting()
static int
getMaxLengthForSingleLineDescription()
static int
getMaxStackTraceElementsDisplayed()
protected boolean
hasAlreadyAnUnambiguousToStringOf(java.lang.Object obj)
Determine whether the given object's type has a representation that is not ambiguous.protected boolean
hasCustomFormatterFor(java.lang.Object object)
private static boolean
hasOverriddenToString(java.lang.Class<?> clazz)
private static boolean
hasOverriddenToStringInSubclassOf(java.lang.Class<?> objectClass, java.lang.Class<?> clazz)
private static java.lang.String
identityHexCodeOf(java.lang.Object obj)
private static boolean
isInstanceOfNotOverridingToString(java.lang.Object object, java.lang.Class<?> type)
protected java.lang.String
multiLineFormat(java.lang.Iterable<?> iterable)
protected java.lang.String
multiLineFormat(java.lang.Object[] array, java.lang.Object root)
static <T> void
registerFormatterForType(java.lang.Class<T> type, java.util.function.Function<T,java.lang.String> formatter)
Registers new formatter for the given type.static void
removeAllRegisteredFormatters()
Clear all formatters registered per type withregisterFormatterForType(Class, Function)
.private java.util.List<java.lang.String>
representElements(java.util.stream.Stream<?> elements, java.lang.String start, java.lang.String end, java.lang.String elementSeparator, java.lang.String indentation, java.lang.Object root)
private static java.lang.String
representGroup(java.util.List<java.lang.String> representedElements, java.lang.String start, java.lang.String end, java.lang.String elementSeparator, java.lang.String indentation)
static void
resetDefaults()
It resets the static defaults for the standard representation.protected java.lang.String
safeStringOf(java.lang.Object element, java.lang.String start, java.lang.String end, java.lang.String elementSeparator, java.lang.String indentation, java.lang.Object root)
static void
setMaxElementsForPrinting(int value)
static void
setMaxLengthForSingleLineDescription(int value)
static void
setMaxStackTraceElementsDisplayed(int value)
protected java.lang.String
singleLineFormat(java.lang.Iterable<?> iterable, java.lang.String start, java.lang.String end)
protected java.lang.String
singleLineFormat(java.lang.Object[] array, java.lang.Object root)
protected java.lang.String
smartFormat(java.lang.Iterable<?> iterable)
Returns theString
representation of the givenIterable
, ornull
if the givenIterable
isnull
.protected java.lang.String
smartFormat(java.lang.Object[] array)
private static java.lang.Object[]
toObjectArray(java.lang.Object o)
private static java.util.Map<?,?>
toSortedMapIfPossible(java.util.Map<?,?> map)
java.lang.String
toString()
protected java.lang.String
toStringOf(java.io.File file)
protected java.lang.String
toStringOf(java.lang.Character c)
protected java.lang.String
toStringOf(java.lang.Class<?> c)
protected java.lang.String
toStringOf(java.lang.Float f)
protected java.lang.String
toStringOf(java.lang.Long l)
protected java.lang.String
toStringOf(java.lang.Number number)
java.lang.String
toStringOf(java.lang.Object object)
Returns standard thetoString
representation of the given object.protected java.lang.String
toStringOf(java.lang.String s)
protected java.lang.String
toStringOf(java.lang.Throwable throwable)
protected java.lang.String
toStringOf(java.text.SimpleDateFormat dateFormat)
private java.lang.String
toStringOf(java.time.Duration duration)
protected java.lang.String
toStringOf(java.time.LocalDate localDate)
protected java.lang.String
toStringOf(java.time.LocalDateTime localDateTime)
protected java.lang.String
toStringOf(java.time.OffsetDateTime offsetDateTime)
protected java.lang.String
toStringOf(java.time.ZonedDateTime zonedDateTime)
protected java.lang.String
toStringOf(java.util.Calendar calendar)
protected java.lang.String
toStringOf(java.util.Comparator<?> comparator)
protected java.lang.String
toStringOf(java.util.concurrent.atomic.AtomicBoolean atomicBoolean)
protected java.lang.String
toStringOf(java.util.concurrent.atomic.AtomicInteger atomicInteger)
protected java.lang.String
toStringOf(java.util.concurrent.atomic.AtomicLong atomicLong)
protected java.lang.String
toStringOf(java.util.concurrent.atomic.AtomicMarkableReference<?> atomicMarkableReference)
protected java.lang.String
toStringOf(java.util.concurrent.atomic.AtomicReference<?> atomicReference)
protected java.lang.String
toStringOf(java.util.concurrent.atomic.AtomicStampedReference<?> atomicStampedReference)
protected java.lang.String
toStringOf(java.util.concurrent.atomic.LongAdder longAdder)
protected java.lang.String
toStringOf(java.util.concurrent.Future<?> future)
protected java.lang.String
toStringOf(java.util.Date date)
protected java.lang.String
toStringOf(java.util.Map.Entry<?,?> javaMapEntry)
protected java.lang.String
toStringOf(java.util.Map<?,?> map)
protected java.lang.String
toStringOf(MapEntry<?,?> mapEntry)
protected java.lang.String
toStringOf(Tuple tuple)
protected java.lang.String
toStringOf(ComparatorBasedComparisonStrategy comparatorBasedComparisonStrategy)
protected java.lang.String
toStringOf(PredicateDescription p)
private java.lang.String
toStringOf(ChangeDelta<?> changeDelta)
private java.lang.String
toStringOf(DeleteDelta<?> deleteDelta)
private java.lang.String
toStringOf(InsertDelta<?> insertDelta)
java.lang.String
unambiguousToStringOf(java.lang.Object obj)
Returns theString
representation of the given object with its type and hexadecimal identity hash code so that it can be differentiated from other objects with the sametoStringOf(Object)
representation.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.assertj.core.presentation.Representation
getPriority
-
-
-
-
Field Detail
-
NULL
private static final java.lang.String NULL
- See Also:
- Constant Field Values
-
STANDARD_REPRESENTATION
public static final StandardRepresentation STANDARD_REPRESENTATION
-
TUPLE_START
private static final java.lang.String TUPLE_START
- See Also:
- Constant Field Values
-
TUPLE_END
private static final java.lang.String TUPLE_END
- See Also:
- Constant Field Values
-
DEFAULT_START
private static final java.lang.String DEFAULT_START
- See Also:
- Constant Field Values
-
DEFAULT_END
private static final java.lang.String DEFAULT_END
- See Also:
- Constant Field Values
-
DEFAULT_MAX_ELEMENTS_EXCEEDED
private static final java.lang.String DEFAULT_MAX_ELEMENTS_EXCEEDED
- See Also:
- Constant Field Values
-
INDENTATION_AFTER_NEWLINE
static final java.lang.String INDENTATION_AFTER_NEWLINE
- See Also:
- Constant Field Values
-
INDENTATION_FOR_SINGLE_LINE
static final java.lang.String INDENTATION_FOR_SINGLE_LINE
- See Also:
- Constant Field Values
-
ELEMENT_SEPARATOR
public static final java.lang.String ELEMENT_SEPARATOR
- See Also:
- Constant Field Values
-
ELEMENT_SEPARATOR_WITH_NEWLINE
public static final java.lang.String ELEMENT_SEPARATOR_WITH_NEWLINE
-
maxLengthForSingleLineDescription
private static int maxLengthForSingleLineDescription
-
maxElementsForPrinting
private static int maxElementsForPrinting
-
maxStackTraceElementsDisplayed
private static int maxStackTraceElementsDisplayed
-
customFormatterByType
private static final java.util.Map<java.lang.Class<?>,java.util.function.Function<?,? extends java.lang.CharSequence>> customFormatterByType
-
TYPE_WITH_UNAMBIGUOUS_REPRESENTATION
private static final java.lang.Class<?>[] TYPE_WITH_UNAMBIGUOUS_REPRESENTATION
-
-
Method Detail
-
resetDefaults
public static void resetDefaults()
-
setMaxLengthForSingleLineDescription
public static void setMaxLengthForSingleLineDescription(int value)
-
getMaxLengthForSingleLineDescription
public static int getMaxLengthForSingleLineDescription()
-
setMaxElementsForPrinting
public static void setMaxElementsForPrinting(int value)
-
getMaxStackTraceElementsDisplayed
public static int getMaxStackTraceElementsDisplayed()
-
setMaxStackTraceElementsDisplayed
public static void setMaxStackTraceElementsDisplayed(int value)
-
getMaxElementsForPrinting
public static int getMaxElementsForPrinting()
-
registerFormatterForType
public static <T> void registerFormatterForType(java.lang.Class<T> type, java.util.function.Function<T,java.lang.String> formatter)
Registers new formatter for the given type. All instances of the given type will be formatted with the provided formatter.- Type Parameters:
T
- the type to register a formatter for- Parameters:
type
- the class of the type to register a formatter forformatter
- the formatter
-
removeAllRegisteredFormatters
public static void removeAllRegisteredFormatters()
Clear all formatters registered per type withregisterFormatterForType(Class, Function)
.
-
toStringOf
public java.lang.String toStringOf(java.lang.Object object)
Returns standard thetoString
representation of the given object. It may or not the object's own implementation oftoString
.- Specified by:
toStringOf
in interfaceRepresentation
- Parameters:
object
- the given object.- Returns:
- the
toString
representation of the given object.
-
isInstanceOfNotOverridingToString
private static boolean isInstanceOfNotOverridingToString(java.lang.Object object, java.lang.Class<?> type)
-
hasOverriddenToString
private static boolean hasOverriddenToString(java.lang.Class<?> clazz)
-
hasOverriddenToStringInSubclassOf
private static boolean hasOverriddenToStringInSubclassOf(java.lang.Class<?> objectClass, java.lang.Class<?> clazz)
-
unambiguousToStringOf
public java.lang.String unambiguousToStringOf(java.lang.Object obj)
Returns theString
representation of the given object with its type and hexadecimal identity hash code so that it can be differentiated from other objects with the sametoStringOf(Object)
representation.- Specified by:
unambiguousToStringOf
in interfaceRepresentation
- Parameters:
obj
- the object to represent.- Returns:
- the unambiguous
toString
representation of the given object.
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
customFormat
protected <T> java.lang.String customFormat(T object)
-
hasCustomFormatterFor
protected boolean hasCustomFormatterFor(java.lang.Object object)
-
hasAlreadyAnUnambiguousToStringOf
protected boolean hasAlreadyAnUnambiguousToStringOf(java.lang.Object obj)
Determine whether the given object's type has a representation that is not ambiguous.- Parameters:
obj
- the object to check- Returns:
- true if the given object's type has a representation that is not ambiguous, false otherwise.
-
fallbackToStringOf
protected java.lang.String fallbackToStringOf(java.lang.Object object)
Returns theString
representation of the given object. This method is used as a last resort if none of theStandardRepresentation
predefined string representations were not called.- Parameters:
object
- the object to represent (nevernull
- Returns:
- to
toString
representation for the given object
-
toStringOf
protected java.lang.String toStringOf(java.lang.Number number)
-
toStringOf
protected java.lang.String toStringOf(java.util.concurrent.atomic.AtomicBoolean atomicBoolean)
-
toStringOf
protected java.lang.String toStringOf(java.util.concurrent.atomic.AtomicInteger atomicInteger)
-
toStringOf
protected java.lang.String toStringOf(java.util.concurrent.atomic.AtomicLong atomicLong)
-
toStringOf
protected java.lang.String toStringOf(java.util.concurrent.atomic.LongAdder longAdder)
-
toStringOf
protected java.lang.String toStringOf(java.util.Comparator<?> comparator)
-
toStringOf
protected java.lang.String toStringOf(ComparatorBasedComparisonStrategy comparatorBasedComparisonStrategy)
-
toStringOf
protected java.lang.String toStringOf(java.util.Calendar calendar)
-
toStringOf
protected java.lang.String toStringOf(java.lang.Class<?> c)
-
toStringOf
protected java.lang.String toStringOf(java.lang.String s)
-
toStringOf
protected java.lang.String toStringOf(java.lang.Character c)
-
toStringOf
protected java.lang.String toStringOf(PredicateDescription p)
-
toStringOf
protected java.lang.String toStringOf(java.util.Date date)
-
toStringOf
protected java.lang.String toStringOf(java.time.LocalDateTime localDateTime)
-
toStringOf
protected java.lang.String toStringOf(java.time.OffsetDateTime offsetDateTime)
-
toStringOf
protected java.lang.String toStringOf(java.time.ZonedDateTime zonedDateTime)
-
toStringOf
protected java.lang.String toStringOf(java.time.LocalDate localDate)
-
classNameDisambiguation
protected java.lang.String classNameDisambiguation(java.lang.Object o)
-
toStringOf
protected java.lang.String toStringOf(java.lang.Float f)
-
toStringOf
protected java.lang.String toStringOf(java.lang.Long l)
-
toStringOf
protected java.lang.String toStringOf(java.io.File file)
-
toStringOf
protected java.lang.String toStringOf(java.text.SimpleDateFormat dateFormat)
-
toStringOf
protected java.lang.String toStringOf(java.util.concurrent.Future<?> future)
-
toStringOf
protected java.lang.String toStringOf(Tuple tuple)
-
toStringOf
protected java.lang.String toStringOf(MapEntry<?,?> mapEntry)
-
toStringOf
protected java.lang.String toStringOf(java.util.Map.Entry<?,?> javaMapEntry)
-
toStringOf
protected java.lang.String toStringOf(java.util.Map<?,?> map)
-
toStringOf
protected java.lang.String toStringOf(java.lang.Throwable throwable)
-
toStringOf
protected java.lang.String toStringOf(java.util.concurrent.atomic.AtomicReference<?> atomicReference)
-
toStringOf
protected java.lang.String toStringOf(java.util.concurrent.atomic.AtomicMarkableReference<?> atomicMarkableReference)
-
toStringOf
protected java.lang.String toStringOf(java.util.concurrent.atomic.AtomicStampedReference<?> atomicStampedReference)
-
multiLineFormat
protected java.lang.String multiLineFormat(java.lang.Iterable<?> iterable)
-
singleLineFormat
protected java.lang.String singleLineFormat(java.lang.Iterable<?> iterable, java.lang.String start, java.lang.String end)
-
smartFormat
protected java.lang.String smartFormat(java.lang.Iterable<?> iterable)
Returns theString
representation of the givenIterable
, ornull
if the givenIterable
isnull
.The
Iterable
will be formatted to a single line if it does not exceed 100 char, otherwise each elements will be formatted on a new line with 4 space indentation.- Parameters:
iterable
- theIterable
to format.- Returns:
- the
String
representation of the givenIterable
.
-
formatArray
protected java.lang.String formatArray(java.lang.Object o)
Returns theString
representation of the given array, ornull
if the given object is eithernull
or not an array. This method supports arrays having other arrays as elements.- Parameters:
o
- the object that is expected to be an array.- Returns:
- the
String
representation of the given array.
-
smartFormat
protected java.lang.String smartFormat(java.lang.Object[] array)
-
formatPrimitiveArray
protected java.lang.String formatPrimitiveArray(java.lang.Object o)
-
multiLineFormat
protected java.lang.String multiLineFormat(java.lang.Object[] array, java.lang.Object root)
-
singleLineFormat
protected java.lang.String singleLineFormat(java.lang.Object[] array, java.lang.Object root)
-
format
protected java.lang.String format(java.lang.Object[] array, java.lang.String start, java.lang.String end, java.lang.String elementSeparator, java.lang.String indentation, java.lang.Object root)
-
format
protected java.lang.String format(java.lang.Iterable<?> iterable, java.lang.String start, java.lang.String end, java.lang.String elementSeparator, java.lang.String indentation, java.lang.Object root)
-
safeStringOf
protected java.lang.String safeStringOf(java.lang.Object element, java.lang.String start, java.lang.String end, java.lang.String elementSeparator, java.lang.String indentation, java.lang.Object root)
-
representElements
private java.util.List<java.lang.String> representElements(java.util.stream.Stream<?> elements, java.lang.String start, java.lang.String end, java.lang.String elementSeparator, java.lang.String indentation, java.lang.Object root)
-
representGroup
private static java.lang.String representGroup(java.util.List<java.lang.String> representedElements, java.lang.String start, java.lang.String end, java.lang.String elementSeparator, java.lang.String indentation)
-
toStringOf
private java.lang.String toStringOf(ChangeDelta<?> changeDelta)
-
toStringOf
private java.lang.String toStringOf(DeleteDelta<?> deleteDelta)
-
toStringOf
private java.lang.String toStringOf(InsertDelta<?> insertDelta)
-
toStringOf
private java.lang.String toStringOf(java.time.Duration duration)
-
formatLines
private java.lang.String formatLines(java.util.List<?> lines)
-
doesDescriptionFitOnSingleLine
private static boolean doesDescriptionFitOnSingleLine(java.lang.String singleLineDescription)
-
identityHexCodeOf
private static java.lang.String identityHexCodeOf(java.lang.Object obj)
-
classNameOf
private static java.lang.Object classNameOf(java.lang.Object obj)
-
defaultToStringWithClassNameDisambiguation
private java.lang.String defaultToStringWithClassNameDisambiguation(java.lang.Object o)
-
toSortedMapIfPossible
private static java.util.Map<?,?> toSortedMapIfPossible(java.util.Map<?,?> map)
-
format
private java.lang.String format(java.util.Map<?,?> map, java.lang.Object o)
-
toObjectArray
private static java.lang.Object[] toObjectArray(java.lang.Object o)
-
-