Class ParameterizedHeaderCodec<A extends ParameterizedHeader,B extends ParameterizedHeader.AbstractBuilder<A,B>>

java.lang.Object
io.inverno.mod.http.base.header.AbstractHeaderCodec<A,B>
io.inverno.mod.http.base.internal.header.ParameterizedHeaderCodec<A,B>
Type Parameters:
A - parameterized header type
B - parameterized header builder type
All Implemented Interfaces:
HeaderCodec<A>
Direct Known Subclasses:
AcceptCodec, AcceptLanguageCodec, ContentDispositionCodec, ContentTypeCodec, CookieCodec, SetCookieCodec

public class ParameterizedHeaderCodec<A extends ParameterizedHeader,B extends ParameterizedHeader.AbstractBuilder<A,B>> extends AbstractHeaderCodec<A,B>

A generic parameterized HeaderCodec implementation used to encode/decode various parameterized headers.

Since:
1.0
Author:
Jeremy Kuhn
See Also:
  • Field Details

    • DEFAULT_PARAMETER_DELIMITER

      public static final char DEFAULT_PARAMETER_DELIMITER
      Default parameter delimiter.
      See Also:
    • DEFAULT_VALUE_DELIMITER

      public static final char DEFAULT_VALUE_DELIMITER
      Default value delimiter.
      See Also:
    • valueDelimiter

      protected final char valueDelimiter
      The value delimiter.
    • parameterDelimiter

      protected final char parameterDelimiter
      The parameter delimiter.
    • parameterValueDelimiter

      protected final char parameterValueDelimiter
      The value delimiter.
  • Constructor Details

    • ParameterizedHeaderCodec

      public ParameterizedHeaderCodec(Supplier<B> builderSupplier, Set<String> supportedHeaderNames, char valueDelimiter, char parameterDelimiter, char parameterValueDelimiter, boolean allowEmptyValue, boolean expectNoValue, boolean allowFlagParameter, boolean allowSpaceInValue, boolean allowQuotedValue, boolean allowMultiple)

      Creates a parameterized header codec with the specified header builder supplier, list of supported header names, value delimiter, parameter delimiter, parameter value delimiter and options.

      Parameters:
      builderSupplier - a supplier to create header builder instances when decoding a header
      supportedHeaderNames - the list of header names supported by the codec
      valueDelimiter - a value delimiter
      parameterDelimiter - a parameter delimiter
      parameterValueDelimiter - a parameter value delimiter
      allowEmptyValue - allow empty parameterized value
      expectNoValue - expect no parameterized value
      allowFlagParameter - allow flag parameters (ie. parameter with no value)
      allowSpaceInValue - allow space in values
      allowQuotedValue - allow quoted values
      allowMultiple - allow multiple header values
  • Method Details

    • decode

      public A decode(String name, String rawValue)
      Description copied from interface: HeaderCodec

      Decodes the specified raw header value for the specified header name.

      Parameters:
      name - a header name
      rawValue - a header raw value
      Returns:
      a decoded header instance
    • decode

      public A decode(String name, io.netty.buffer.ByteBuf buffer, Charset charset)
      Description copied from interface: HeaderCodec

      Decodes the specified raw value ByteBuf for the specified header name using the specified charset.

      Parameters:
      name - a header name
      buffer - a header raw value
      charset - the charset to use for decoding
      Returns:
      a decoded header instance
    • encode

      public String encode(A header)
      Description copied from interface: HeaderCodec

      Encodes the specified header as a string.

      The resulting value is a header field as defined by RFC 7230 Section 3.2.

      Parameters:
      header - the header to encode
      Returns:
      the encoded header
    • encodeValue

      public String encodeValue(A header)
      Description copied from interface: HeaderCodec

      Encodes the value of the specified header as a string.

      The resulting value corresponds to the header field value as defined by RFC 7230 Section 3.2.

      Parameters:
      header - the header to encode
      Returns:
      the encoded header value