Class Hints

java.lang.Object
org.springframework.core.codec.Hints

public abstract class Hints extends Object
Constants and convenience methods for working with hints.
Since:
5.1
Author:
Rossen Stoyanchev
See Also:
  • Field Details

    • LOG_PREFIX_HINT

      public static final String LOG_PREFIX_HINT
      Name of hint exposing a prefix to use for correlating log messages.
    • SUPPRESS_LOGGING_HINT

      public static final String 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

      public static Map<String,Object> from(String hintName, Object value)
      Create a map wit a single hint via Collections.singletonMap(K, V).
      Parameters:
      hintName - the hint name
      value - the hint value
      Returns:
      the created map
    • none

      public static Map<String,Object> none()
      Return an empty map of hints via Collections.emptyMap().
      Returns:
      the empty map
    • getRequiredHint

      public static <T> T getRequiredHint(@Nullable Map<String,Object> hints, String hintName)
      Obtain the value for a required hint.
      Type Parameters:
      T - the hint type to cast to
      Parameters:
      hints - the hints map
      hintName - the required hint name
      Returns:
      the hint value
      Throws:
      IllegalArgumentException - if the hint is not found
    • getLogPrefix

      public static String getLogPrefix(@Nullable Map<String,Object> hints)
      Obtain the hint LOG_PREFIX_HINT, if present, or an empty String.
      Parameters:
      hints - the hints passed to the encode method
      Returns:
      the log prefix
    • isLoggingSuppressed

      public static boolean isLoggingSuppressed(@Nullable Map<String,Object> hints)
      Whether to suppress logging based on the hint SUPPRESS_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 hints
      hints2 - 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 merged
      hintName - the hint name to merge
      hintValue - 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 a LOG_PREFIX_HINT and the given logger has DEBUG level enabled, apply the log prefix as a hint to the given buffer via DataBufferUtils.touch(DataBuffer, Object).
      Parameters:
      buffer - the buffer to touch
      hints - the hints map to check for a log prefix
      logger - the logger whose level to check
      Since:
      5.3.2