Record Class RequestHeaders

java.lang.Object
java.lang.Record
io.github.mahmoudimus.http2.RequestHeaders
Record Components:
method - :method
scheme - :scheme, or null for ordinary CONNECT
authority - :authority, or the host field when that is absent; null if neither is present
path - :path, or null for ordinary CONNECT
fields - the regular fields in order (lower-case names; cookie crumbs joined into one field)
contentLength - the content-length, or -1 if absent
protocol - RFC 8441 :protocol, or null without extended CONNECT

public record RequestHeaders(String method, String scheme, String authority, String path, List<HeaderField> fields, long contentLength, String protocol) extends Record
A validated HTTP/2 request header section: the control data from the pseudo-header fields and the remaining fields, as Http2Headers.toRequest(int, java.util.List<io.github.mahmoudimus.http2.HeaderField>) produces it.
  • Constructor Details

    • RequestHeaders

      public RequestHeaders(String method, String scheme, String authority, String path, List<HeaderField> fields, long contentLength)
      Creates request headers without extended CONNECT metadata.
      Parameters:
      method - the non-null request method
      scheme - the URI scheme, or null for ordinary CONNECT
      authority - the target authority, or null if unavailable
      path - the request path, or null for ordinary CONNECT
      fields - the regular fields in order, copied into an immutable list
      contentLength - the declared content length, or -1 if absent
    • RequestHeaders

      public RequestHeaders(String method, String scheme, String authority, String path, List<HeaderField> fields, long contentLength, String protocol)
      Creates request headers and takes an immutable copy of the regular fields.
      Parameters:
      method - the non-null request method
      scheme - the URI scheme, or null for ordinary CONNECT
      authority - the target authority, or null if unavailable
      path - the request path, or null for ordinary CONNECT
      fields - the regular fields in order, copied into an immutable list
      contentLength - the declared content length, or -1 if absent
      protocol - the extended CONNECT protocol, or null if absent
  • Method Details

    • isConnect

      public boolean isConnect()
      Checks the request method.
      Returns:
      whether the method is CONNECT
    • get

      public String get(String name)
      The value of the first field with this (lower-case) name, or null.
      Parameters:
      name - the lower-case field name
      Returns:
      the first matching value, or null if absent
    • getAll

      public List<String> getAll(String name)
      The values of every field with this (lower-case) name.
      Parameters:
      name - the lower-case field name
      Returns:
      the matching values in field order, or an empty list
    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared with Objects::equals(Object,Object); primitive components are compared with '=='.
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • method

      public String method()
      Returns the value of the method record component.
      Returns:
      the value of the method record component
    • scheme

      public String scheme()
      Returns the value of the scheme record component.
      Returns:
      the value of the scheme record component
    • authority

      public String authority()
      Returns the value of the authority record component.
      Returns:
      the value of the authority record component
    • path

      public String path()
      Returns the value of the path record component.
      Returns:
      the value of the path record component
    • fields

      public List<HeaderField> fields()
      Returns the value of the fields record component.
      Returns:
      the value of the fields record component
    • contentLength

      public long contentLength()
      Returns the value of the contentLength record component.
      Returns:
      the value of the contentLength record component
    • protocol

      public String protocol()
      Returns the value of the protocol record component.
      Returns:
      the value of the protocol record component