Class HeaderUtils

java.lang.Object
io.servicetalk.encoding.api.internal.HeaderUtils

public final class HeaderUtils extends Object
Header utilities to support encoding.
  • Method Details

    • negotiateAcceptedEncoding

      @Deprecated @Nullable public static ContentCodec negotiateAcceptedEncoding(@Nullable CharSequence acceptEncodingHeaderValue, List<ContentCodec> serverSupportedEncodings)
      Establish a commonly accepted encoding between server and client, according to the supported-encodings on the server side and the 'Accepted-Encoding' incoming header on the request.

      If no supported encodings are configured then the result is always null If no accepted encodings are present in the request then the result is always null In all other cases, the first matching encoding (that is NOT Identity.identity()) is preferred, otherwise null is returned.

      Parameters:
      acceptEncodingHeaderValue - The accept encoding header value.
      serverSupportedEncodings - The server supported codings as configured.
      Returns:
      The ContentCodec that satisfies both client and server needs, null if none found or matched to Identity.identity()
    • negotiateAcceptedEncodingRaw

      @Nullable public static <T> T negotiateAcceptedEncodingRaw(@Nullable CharSequence acceptEncodingHeaderValue, List<T> supportedEncoders, Function<T,CharSequence> messageEncodingFunc)
      Get an encoder from supportedEncoders that is acceptable as referenced by acceptEncodingHeaderValue.
      Type Parameters:
      T - The type containing the encoder.
      Parameters:
      acceptEncodingHeaderValue - The accept encoding header value.
      supportedEncoders - The supported encoders.
      messageEncodingFunc - Accessor to get the encoder form an element of supportedEncoders.
      Returns:
      an encoder from supportedEncoders that is acceptable as referenced by acceptEncodingHeaderValue.
    • negotiateAcceptedEncoding

      @Deprecated @Nullable public static ContentCodec negotiateAcceptedEncoding(List<ContentCodec> clientSupportedEncodings, List<ContentCodec> serverSupportedEncodings)
      Establish a commonly accepted encoding between server and client, according to the supported-encodings on the server side and the incoming header on the request.

      If no supported encodings are passed then the result is always null Otherwise, the first matching encoding (that is NOT Identity.identity()) is preferred, or null is returned.

      Parameters:
      clientSupportedEncodings - The client supported codings as found in the HTTP header.
      serverSupportedEncodings - The server supported codings as configured.
      Returns:
      The ContentCodec that satisfies both client and server needs, null if none found or matched to Identity.identity()
    • encodingFor

      @Deprecated @Nullable public static ContentCodec encodingFor(Collection<ContentCodec> allowedList, @Nullable CharSequence name)
      Returns the ContentCodec that matches the name within the allowedList. if name is null or empty it results in null . If name is 'identity' this will always result in Identity.identity() regardless of its presence in the allowedList.
      Parameters:
      allowedList - the source list to find a matching codec from.
      name - the codec name used for the equality predicate.
      Returns:
      a codec from the allowed-list that name matches the name.
    • encodingForRaw

      @Nullable public static <T> T encodingForRaw(List<T> supportedEncoders, Function<T,CharSequence> messageEncodingFunc, CharSequence name)
      Get the first encoding that matches name from supportedEncoders.
      Type Parameters:
      T - The type containing the encoder.
      Parameters:
      supportedEncoders - The List of supported encoders.
      messageEncodingFunc - A means to access the supported encoding name from an element in supportedEncoders.
      name - The encoding name.
      Returns:
      the first encoding that matches name from supportedEncoders.