Class UriParser

java.lang.Object
org.parboiled2.RuleDSL
org.parboiled2.Parser
org.apache.pekko.http.impl.model.parser.UriParser
All Implemented Interfaces:
IpAddressParsing, org.parboiled2.ParserMacroMethods, org.parboiled2.RuleDSLActions, org.parboiled2.RuleDSLBasics, org.parboiled2.RuleDSLCombinators, org.parboiled2.StringBuilding

public final class UriParser extends org.parboiled2.Parser implements IpAddressParsing, org.parboiled2.StringBuilding
INTERNAL API

http://tools.ietf.org/html/rfc3986

  • Nested Class Summary

    Nested classes/interfaces inherited from class org.parboiled2.Parser

    org.parboiled2.Parser.__SubParserInput, org.parboiled2.Parser.AlternativeDeliverySchemes, org.parboiled2.Parser.CutError$, org.parboiled2.Parser.DeliveryScheme<L extends org.parboiled2.support.hlist.HList>, org.parboiled2.Parser.DeliveryScheme$, org.parboiled2.Parser.Fail, org.parboiled2.Parser.Mark, org.parboiled2.Parser.Mark$, org.parboiled2.Parser.StartTracingException$, org.parboiled2.Parser.TracingBubbleException, org.parboiled2.Parser.UnquietMismatch$

    Nested classes/interfaces inherited from interface org.parboiled2.RuleDSLActions

    org.parboiled2.RuleDSLActions.ActionOperator<I extends org.parboiled2.support.hlist.HList,O extends org.parboiled2.support.hlist.HList,Ops extends Object>

    Nested classes/interfaces inherited from interface org.parboiled2.RuleDSLBasics

    org.parboiled2.RuleDSLBasics.CharRangeSupport

    Nested classes/interfaces inherited from interface org.parboiled2.RuleDSLCombinators

    org.parboiled2.RuleDSLCombinators.NTimes, org.parboiled2.RuleDSLCombinators.WithSeparatedBy<I extends org.parboiled2.support.hlist.HList,O extends org.parboiled2.support.hlist.HList>
  • Constructor Summary

    Constructors
    Constructor
    Description
    UriParser(org.parboiled2.ParserInput input, Charset uriParsingCharset, Uri.ParsingMode uriParsingMode)
     
    UriParser(org.parboiled2.ParserInput _input, Charset uriParsingCharset, Uri.ParsingMode uriParsingMode, int maxValueStackSize)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil>
     
    scala.runtime.Nothing$
    fail(org.parboiled2.ParseError error, String target)
     
    org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil>
     
    org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil>
     
    org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil>
     
    org.parboiled2.ParserInput
     
    org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil>
     
    org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil>
     
    int
     
    org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil>
     
     
     
     
     
     
    scala.Tuple2<Uri.Path,scala.Option<String>>
     
     
     
     
     
     
     
    org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil>
     
    org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil>
     
    org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.$colon$colon<Uri.Query,org.parboiled2.support.hlist.HNil>>
     
    org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil>
     
    org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil>
    A relaxed host rule to use in `parseHost` that also recognizes IPv6 address without the brackets.
    void
    reset(org.parboiled2.ParserInput newInput)
    Allows to reuse this parser.
    protected StringBuilder
    sb()
     
    org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil>
     
    org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil>
     
    org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil>
     
    org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil>
    URI()
     
     
     
    org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil>
     

    Methods inherited from class org.parboiled2.Parser

    __advance, __bubbleUp, __bubbleUp, __enterAtomic, __enterNotPredicate, __enterQuiet, __exitAtomic, __exitNotPredicate, __exitQuiet, __hardFail, __inErrorAnalysis, __matchAnyOf, __matchAnyOf$default$2, __matchIgnoreCaseString, __matchIgnoreCaseString$default$2, __matchIgnoreCaseStringWrapped, __matchIgnoreCaseStringWrapped$default$2, __matchMap, __matchMapWrapped, __matchNoneOf, __matchNoneOf$default$2, __matchString, __matchString$default$2, __matchStringWrapped, __matchStringWrapped$default$2, __push, __registerMismatch, __restoreState, __run, __saveState, __subParserInput, __updateMaxCursor, $lessinit$greater$default$1, $lessinit$greater$default$2, charAt, charAtRC, copyStateFrom, cursor, cursorChar, errorTraceCollectionLimit, formatError, formatError$default$2, lastChar, org$parboiled2$Parser$$_cursor, org$parboiled2$Parser$$phase, valueStack

    Methods inherited from class org.parboiled2.RuleDSL

    $amp, ANY, anyOf, atomic, capture, ch, drop, EOI, fail, failX, ignoreCase, ignoreCase, int2NTimes, MATCH, MISMATCH, MISMATCH0, noneOf, oneOrMore, optional, predicate, push, quiet, range2NTimes, rule2ActionOperator, rule2WithSeparatedBy, run, runSubParser, str, str2CharRangeSupport, test, valueMap, valueMap, valueMap$default$2, zeroOrMore

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.parboiled2.StringBuilding

    appendSB, appendSB, appendSB, appendSB, clearSB, org$parboiled2$StringBuilding$_setter_$sb_$eq, prependSB, prependSB, prependSB, prependSB, setSB
  • Constructor Details

    • UriParser

      public UriParser(org.parboiled2.ParserInput _input, Charset uriParsingCharset, Uri.ParsingMode uriParsingMode, int maxValueStackSize)
    • UriParser

      public UriParser(org.parboiled2.ParserInput input, Charset uriParsingCharset, Uri.ParsingMode uriParsingMode)
  • Method Details

    • sb

      protected StringBuilder sb()
      Specified by:
      sb in interface org.parboiled2.StringBuilding
    • uriParsingCharset

      public Charset uriParsingCharset()
    • uriParsingMode

      public Uri.ParsingMode uriParsingMode()
    • maxValueStackSize

      public int maxValueStackSize()
    • input

      public org.parboiled2.ParserInput input()
      Specified by:
      input in class org.parboiled2.Parser
    • parseAbsoluteUri

      public Uri parseAbsoluteUri()
    • parseUriReference

      public Uri parseUriReference()
    • parseAndResolveUriReference

      public Uri parseAndResolveUriReference(Uri base)
    • parseOrigin

      public HttpOrigin parseOrigin()
    • parseHost

      public Uri.Host parseHost()
    • parseRawQueryString

      public String parseRawQueryString()
      Returns:
      a 'raw' (percent-encoded) query string that does not contain invalid characters.
    • parseSafeRawQueryString

      public String parseSafeRawQueryString(String rawQueryString)
      Parameters:
      rawQueryString - 'raw' (percent-encoded) query string that in Relaxed mode may contain characters not allowed by https://tools.ietf.org/html/rfc3986#section-3.4 but is guaranteed not to have invalid percent-encoded characters
      Returns:
      a 'raw' (percent-encoded) query string that does not contain invalid characters.
    • parseQuery

      public Uri.Query parseQuery()
    • parseAuthority

      public Uri.Authority parseAuthority()
    • fail

      public scala.runtime.Nothing$ fail(org.parboiled2.ParseError error, String target)
    • reset

      public void reset(org.parboiled2.ParserInput newInput)
      Allows to reuse this parser.
    • URI

      public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil> URI()
    • origin

      public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil> origin()
    • scheme

      public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil> scheme()
    • authority

      public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil> authority()
    • userinfo

      public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil> userinfo()
    • hostAndPort

      public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil> hostAndPort()
    • host

      public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil> host()
    • relaxedHost

      public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil> relaxedHost()
      A relaxed host rule to use in `parseHost` that also recognizes IPv6 address without the brackets.
    • port

      public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil> port()
    • ipv4Host

      public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil> ipv4Host()
    • ipv6Host

      public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil> ipv6Host()
    • slashSegments

      public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil> slashSegments()
    • segment

      public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil> segment()
    • pchar

      public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil> pchar()
    • rawQueryString

      public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil> rawQueryString()
    • query

      public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.$colon$colon<Uri.Query,org.parboiled2.support.hlist.HNil>> query()
    • fragment

      public org.parboiled2.Rule<org.parboiled2.support.hlist.HNil,org.parboiled2.support.hlist.HNil> fragment()
    • parseHttpRequestTarget

      public Uri parseHttpRequestTarget()
    • parseHttp2AuthorityPseudoHeader

      public Uri.Authority parseHttp2AuthorityPseudoHeader()
    • parseHttp2PathPseudoHeader

      public scala.Tuple2<Uri.Path,scala.Option<String>> parseHttp2PathPseudoHeader()
      Returns:
      path and percent-encoded query string. When in in 'relaxed' mode, characters not permitted by https://tools.ietf.org/html/rfc3986#section-3.4 are already automatically percent-encoded here