java.lang.Object
io.opentelemetry.api.baggage.propagation.Parser

class Parser extends Object
Implements single-pass Baggage parsing in accordance with https://w3c.github.io/baggage/ Key / value are restricted in accordance with https://www.ietf.org/rfc/rfc2616.txt.

Note: following aspects are not specified in RFC: - some invalid elements (key or value) - parser will include valid ones, disregard invalid - empty "value" is regarded as invalid - meta - anything besides element terminator (comma).

  • Field Details

    • baggageHeader

      private final String baggageHeader
    • key

      private final Element key
    • value

      private final Element value
    • meta

      private String meta
    • state

      private Parser.State state
    • metaStart

      private int metaStart
    • skipToNext

      private boolean skipToNext
  • Constructor Details

    • Parser

      Parser(String baggageHeader)
  • Method Details

    • parseInto

      void parseInto(BaggageBuilder baggageBuilder)
    • putBaggage

      private static void putBaggage(BaggageBuilder baggage, @Nullable String key, @Nullable String value, @Nullable String metadataValue)
    • decodeValue

      @Nullable private static String decodeValue(@Nullable String value)
    • reset

      private void reset(int index)
      Resets parsing state, preparing to start a new list element (see spec).
      Parameters:
      index - index where parser should start new element scan
    • setState

      private void setState(Parser.State state, int start)
      Switches parser state (element of a list member).