Package org.springframework.core.codec
Class Hints
java.lang.Object
org.springframework.core.codec.Hints
Constants and convenience methods for working with hints.
- Since:
- 5.1
- Author:
- Rossen Stoyanchev
- See Also:
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionCreate a map wit a single hint viaCollections.singletonMap(K, V)
.static String
getLogPrefix
(Map<String, Object> hints) Obtain the hintLOG_PREFIX_HINT
, if present, or an empty String.static <T> T
getRequiredHint
(Map<String, Object> hints, String hintName) Obtain the value for a required hint.static boolean
isLoggingSuppressed
(Map<String, Object> hints) Whether to suppress logging based on the hintSUPPRESS_LOGGING_HINT
.Merge a single hint into a map of hints, possibly creating and copying all hints into a new map, or otherwise if the map of hints is empty, creating a new single entry map.Merge two maps of hints, creating and copying into a new map if both have values, or returning the non-empty map, or an empty map if both are empty.none()
Return an empty map of hints viaCollections.emptyMap()
.static void
touchDataBuffer
(DataBuffer buffer, Map<String, Object> hints, Log logger) If the hints contain aLOG_PREFIX_HINT
and the given logger has DEBUG level enabled, apply the log prefix as a hint to the given buffer viaDataBufferUtils.touch(DataBuffer, Object)
.
-
Field Details
-
LOG_PREFIX_HINT
Name of hint exposing a prefix to use for correlating log messages. -
SUPPRESS_LOGGING_HINT
Name of boolean hint whether to avoid logging data either because it's potentially sensitive, or because it has been logged by a composite encoder, e.g. for multipart requests.
-
-
Constructor Details
-
Hints
public Hints()
-
-
Method Details
-
from
Create a map wit a single hint viaCollections.singletonMap(K, V)
.- Parameters:
hintName
- the hint namevalue
- the hint value- Returns:
- the created map
-
none
Return an empty map of hints viaCollections.emptyMap()
.- Returns:
- the empty map
-
getRequiredHint
Obtain the value for a required hint.- Type Parameters:
T
- the hint type to cast to- Parameters:
hints
- the hints maphintName
- the required hint name- Returns:
- the hint value
- Throws:
IllegalArgumentException
- if the hint is not found
-
getLogPrefix
Obtain the hintLOG_PREFIX_HINT
, if present, or an empty String.- Parameters:
hints
- the hints passed to the encode method- Returns:
- the log prefix
-
isLoggingSuppressed
Whether to suppress logging based on the hintSUPPRESS_LOGGING_HINT
.- Parameters:
hints
- the hints map- Returns:
- whether logging of data is allowed
-
merge
public static Map<String,Object> merge(@Nullable Map<String, Object> hints1, @Nullable Map<String, Object> hints2) Merge two maps of hints, creating and copying into a new map if both have values, or returning the non-empty map, or an empty map if both are empty.- Parameters:
hints1
- 1st map of hintshints2
- 2nd map of hints- Returns:
- a single map with hints from both
-
merge
public static Map<String,Object> merge(@Nullable Map<String, Object> hints, String hintName, Object hintValue) Merge a single hint into a map of hints, possibly creating and copying all hints into a new map, or otherwise if the map of hints is empty, creating a new single entry map.- Parameters:
hints
- a map of hints to be mergedhintName
- the hint name to mergehintValue
- the hint value to merge- Returns:
- a single map with all hints
-
touchDataBuffer
public static void touchDataBuffer(DataBuffer buffer, @Nullable Map<String, Object> hints, Log logger) If the hints contain aLOG_PREFIX_HINT
and the given logger has DEBUG level enabled, apply the log prefix as a hint to the given buffer viaDataBufferUtils.touch(DataBuffer, Object)
.- Parameters:
buffer
- the buffer to touchhints
- the hints map to check for a log prefixlogger
- the logger whose level to check- Since:
- 5.3.2
-