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 Object implements Representation
Standard java object representation.- Author:
- Mariusz Smykula, Jack Gough
-
-
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 Map<Class<?>,Function<?,String>>
customFormatterByType
private static String
DEFAULT_END
private static String
DEFAULT_MAX_ELEMENTS_EXCEEDED
private static String
DEFAULT_START
static String
ELEMENT_SEPARATOR
static String
ELEMENT_SEPARATOR_WITH_NEWLINE
(package private) static String
INDENTATION_AFTER_NEWLINE
(package private) static String
INDENTATION_FOR_SINGLE_LINE
private static int
maxElementsForPrinting
private static int
maxLengthForSingleLineDescription
private static int
maxStackTraceElementsDisplayed
private static String
NULL
static StandardRepresentation
STANDARD_REPRESENTATION
private static String
TUPLE_END
private static String
TUPLE_START
private static Class<?>[]
TYPE_WITH_UNAMBIGUOUS_REPRESENTATION
-
Constructor Summary
Constructors Constructor Description StandardRepresentation()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected String
classNameDisambiguation(Object o)
private static Object
classNameOf(Object obj)
protected <T> String
customFormat(T object)
private String
defaultToStringWithClassNameDisambiguation(Object o)
private static boolean
doesDescriptionFitOnSingleLine(String singleLineDescription)
protected String
fallbackToStringOf(Object object)
Returns theString
representation of the given object.protected String
format(Iterable<?> iterable, String start, String end, String elementSeparator, String indentation, Object root)
protected String
format(Object[] array, String start, String end, String elementSeparator, String indentation, Object root)
private String
format(Map<?,?> map, Object o)
protected String
formatArray(Object o)
Returns theString
representation of the given array, ornull
if the given object is eithernull
or not an array.private String
formatLines(List<?> lines)
protected String
formatPrimitiveArray(Object o)
static int
getMaxElementsForPrinting()
static int
getMaxLengthForSingleLineDescription()
static int
getMaxStackTraceElementsDisplayed()
protected boolean
hasAlreadyAnUnambiguousToStringOf(Object obj)
Determine whether the given object's type has a representation that is not ambiguous.protected boolean
hasCustomFormatterFor(Object object)
private static boolean
hasOverriddenToString(Class<?> clazz)
private static boolean
hasOverriddenToStringInSubclassOf(Class<?> objectClass, Class<?> clazz)
private static String
identityHexCodeOf(Object obj)
private static boolean
isInstanceOfNotOverridingToString(Object object, Class<?> type)
protected String
multiLineFormat(Iterable<?> iterable)
protected String
multiLineFormat(Object[] array, Object root)
static <T> void
registerFormatterForType(Class<T> type, Function<T,String> formatter)
Registers new formatter for the given type.static void
removeAllRegisteredFormatters()
Clear all formatters registered per type withregisterFormatterForType(Class, Function)
.private List<String>
representElements(Stream<?> elements, String start, String end, String elementSeparator, String indentation, Object root)
private static String
representGroup(List<String> representedElements, String start, String end, String elementSeparator, String indentation)
static void
resetDefaults()
It resets the static defaults for the standard representation.protected String
safeStringOf(Object element, String start, String end, String elementSeparator, String indentation, Object root)
static void
setMaxElementsForPrinting(int value)
static void
setMaxLengthForSingleLineDescription(int value)
static void
setMaxStackTraceElementsDisplayed(int value)
protected String
singleLineFormat(Iterable<?> iterable, String start, String end)
protected String
singleLineFormat(Object[] array, Object root)
protected String
smartFormat(Iterable<?> iterable)
Returns theString
representation of the givenIterable
, ornull
if the givenIterable
isnull
.protected String
smartFormat(Object[] array)
private static Object[]
toObjectArray(Object o)
private static Map<?,?>
toSortedMapIfPossible(Map<?,?> map)
String
toString()
protected String
toStringOf(File file)
protected String
toStringOf(Character c)
protected String
toStringOf(Class<?> c)
protected String
toStringOf(Float f)
protected String
toStringOf(Long l)
protected String
toStringOf(Number number)
String
toStringOf(Object object)
Returns standard thetoString
representation of the given object.protected String
toStringOf(String s)
protected String
toStringOf(Throwable throwable)
protected String
toStringOf(SimpleDateFormat dateFormat)
private String
toStringOf(Duration duration)
protected String
toStringOf(LocalDate localDate)
protected String
toStringOf(LocalDateTime localDateTime)
protected String
toStringOf(OffsetDateTime offsetDateTime)
protected String
toStringOf(ZonedDateTime zonedDateTime)
protected String
toStringOf(Calendar calendar)
protected String
toStringOf(Comparator<?> comparator)
protected String
toStringOf(AtomicBoolean atomicBoolean)
protected String
toStringOf(AtomicInteger atomicInteger)
protected String
toStringOf(AtomicLong atomicLong)
protected String
toStringOf(AtomicMarkableReference<?> atomicMarkableReference)
protected String
toStringOf(AtomicReference<?> atomicReference)
protected String
toStringOf(AtomicStampedReference<?> atomicStampedReference)
protected String
toStringOf(LongAdder longAdder)
protected String
toStringOf(Future<?> future)
protected String
toStringOf(Date date)
protected String
toStringOf(Map.Entry<?,?> javaMapEntry)
protected String
toStringOf(Map<?,?> map)
protected String
toStringOf(MapEntry<?,?> mapEntry)
protected String
toStringOf(Tuple tuple)
protected String
toStringOf(org.assertj.core.internal.ComparatorBasedComparisonStrategy comparatorBasedComparisonStrategy)
protected String
toStringOf(PredicateDescription p)
private String
toStringOf(ChangeDelta<?> changeDelta)
private String
toStringOf(DeleteDelta<?> deleteDelta)
private String
toStringOf(InsertDelta<?> insertDelta)
String
unambiguousToStringOf(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 sameRepresentation.toStringOf(Object)
representation.
-
-
-
Field Detail
-
NULL
private static final String NULL
- See Also:
- Constant Field Values
-
STANDARD_REPRESENTATION
public static final StandardRepresentation STANDARD_REPRESENTATION
-
TUPLE_START
private static final String TUPLE_START
- See Also:
- Constant Field Values
-
TUPLE_END
private static final String TUPLE_END
- See Also:
- Constant Field Values
-
DEFAULT_START
private static final String DEFAULT_START
- See Also:
- Constant Field Values
-
DEFAULT_END
private static final String DEFAULT_END
- See Also:
- Constant Field Values
-
DEFAULT_MAX_ELEMENTS_EXCEEDED
private static final String DEFAULT_MAX_ELEMENTS_EXCEEDED
- See Also:
- Constant Field Values
-
INDENTATION_AFTER_NEWLINE
static final String INDENTATION_AFTER_NEWLINE
- See Also:
- Constant Field Values
-
INDENTATION_FOR_SINGLE_LINE
static final String INDENTATION_FOR_SINGLE_LINE
- See Also:
- Constant Field Values
-
ELEMENT_SEPARATOR
public static final String ELEMENT_SEPARATOR
- See Also:
- Constant Field Values
-
ELEMENT_SEPARATOR_WITH_NEWLINE
public static final String ELEMENT_SEPARATOR_WITH_NEWLINE
-
maxLengthForSingleLineDescription
private static int maxLengthForSingleLineDescription
-
maxElementsForPrinting
private static int maxElementsForPrinting
-
maxStackTraceElementsDisplayed
private static int maxStackTraceElementsDisplayed
-
TYPE_WITH_UNAMBIGUOUS_REPRESENTATION
private static final 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(Class<T> type, Function<T,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 String toStringOf(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(Object object, Class<?> type)
-
hasOverriddenToString
private static boolean hasOverriddenToString(Class<?> clazz)
-
hasOverriddenToStringInSubclassOf
private static boolean hasOverriddenToStringInSubclassOf(Class<?> objectClass, Class<?> clazz)
-
unambiguousToStringOf
public String unambiguousToStringOf(Object obj)
Description copied from interface:Representation
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 sameRepresentation.toStringOf(Object)
representation.- Specified by:
unambiguousToStringOf
in interfaceRepresentation
- Parameters:
obj
- the object to represent.- Returns:
- the unambiguous
toString
representation of the given object.
-
customFormat
protected <T> String customFormat(T object)
-
hasCustomFormatterFor
protected boolean hasCustomFormatterFor(Object object)
-
hasAlreadyAnUnambiguousToStringOf
protected boolean hasAlreadyAnUnambiguousToStringOf(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 String fallbackToStringOf(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 String toStringOf(AtomicBoolean atomicBoolean)
-
toStringOf
protected String toStringOf(AtomicInteger atomicInteger)
-
toStringOf
protected String toStringOf(AtomicLong atomicLong)
-
toStringOf
protected String toStringOf(Comparator<?> comparator)
-
toStringOf
protected String toStringOf(org.assertj.core.internal.ComparatorBasedComparisonStrategy comparatorBasedComparisonStrategy)
-
toStringOf
protected String toStringOf(PredicateDescription p)
-
toStringOf
protected String toStringOf(LocalDateTime localDateTime)
-
toStringOf
protected String toStringOf(OffsetDateTime offsetDateTime)
-
toStringOf
protected String toStringOf(ZonedDateTime zonedDateTime)
-
toStringOf
protected String toStringOf(SimpleDateFormat dateFormat)
-
toStringOf
protected String toStringOf(AtomicReference<?> atomicReference)
-
toStringOf
protected String toStringOf(AtomicMarkableReference<?> atomicMarkableReference)
-
toStringOf
protected String toStringOf(AtomicStampedReference<?> atomicStampedReference)
-
smartFormat
protected String smartFormat(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 String formatArray(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.
-
format
protected String format(Object[] array, String start, String end, String elementSeparator, String indentation, Object root)
-
format
protected String format(Iterable<?> iterable, String start, String end, String elementSeparator, String indentation, Object root)
-
safeStringOf
protected String safeStringOf(Object element, String start, String end, String elementSeparator, String indentation, Object root)
-
representElements
private List<String> representElements(Stream<?> elements, String start, String end, String elementSeparator, String indentation, Object root)
-
representGroup
private static String representGroup(List<String> representedElements, String start, String end, String elementSeparator, String indentation)
-
toStringOf
private String toStringOf(ChangeDelta<?> changeDelta)
-
toStringOf
private String toStringOf(DeleteDelta<?> deleteDelta)
-
toStringOf
private String toStringOf(InsertDelta<?> insertDelta)
-
doesDescriptionFitOnSingleLine
private static boolean doesDescriptionFitOnSingleLine(String singleLineDescription)
-
defaultToStringWithClassNameDisambiguation
private String defaultToStringWithClassNameDisambiguation(Object o)
-
-