Class LoggableKeysAndValuesImpl

java.lang.Object
com.apple.foundationdb.util.LoggableKeysAndValuesImpl
All Implemented Interfaces:
LoggableKeysAndValues<LoggableKeysAndValuesImpl>

@API(UNSTABLE) public class LoggableKeysAndValuesImpl extends Object implements LoggableKeysAndValues<LoggableKeysAndValuesImpl>
Provides a default implementation of LoggableKeysAndValues.
  • Constructor Details

    • LoggableKeysAndValuesImpl

      public LoggableKeysAndValuesImpl(@Nullable Object... keyValues)
      Create an instance with the given message and a sequence of key-value pairs. This will throw an IllegalArgumentException if keyValues contains an odd number of elements.
      Parameters:
      keyValues - list
      See Also:
  • Method Details

    • getLogInfo

      @Nonnull public Map<String,Object> getLogInfo()
      Get the log information associated with this exception as a map.
      Specified by:
      getLogInfo in interface LoggableKeysAndValues<LoggableKeysAndValuesImpl>
      Returns:
      a single map with all log information
    • addLogInfo

      @Nonnull public LoggableKeysAndValuesImpl addLogInfo(@Nonnull String description, Object object)
      Add a key/value pair to the log information. This will use the description given as the key and the object provided as the value.
      Specified by:
      addLogInfo in interface LoggableKeysAndValues<LoggableKeysAndValuesImpl>
      Parameters:
      description - description of the log info pair
      object - value of the log info pair
      Returns:
      this LoggableException
    • addLogInfo

      @Nonnull public LoggableKeysAndValuesImpl addLogInfo(@Nonnull Object... keyValue)
      Add a list of key/value pairs to the log information. This will treat the list of items as pairs to be added with every even element being a key and every odd element being a value (associated with the even key preceding it). So, for example, ["k0", "v0", "k1", "v1"] will add two pairs to the log info, one with key "k0" and value "v0" and one with key "k1" and value "v1". Note that this is the same format that is exported by exportLogInfo().
      Specified by:
      addLogInfo in interface LoggableKeysAndValues<LoggableKeysAndValuesImpl>
      Parameters:
      keyValue - flattened map of key-value pairs
      Returns:
      this LoggableException
      Throws:
      IllegalArgumentException - if keyValue has odd length
    • exportLogInfo

      @Nonnull public Object[] exportLogInfo()
      Export the log information to a flattened array. This will flatten the map that would be returned by getLogInfo() into an array where every even element is a key within the map and every odd element is the value associated with the key before it. So, for example, {"k0:"v0", "k1":"v1"} would be flattened into ["k0", "v0", "k1", "v1"].
      Specified by:
      exportLogInfo in interface LoggableKeysAndValues<LoggableKeysAndValuesImpl>
      Returns:
      a flattened map of key-value pairs