Record Class ByteRange

java.lang.Object
java.lang.Record
org.eclipse.jetty.http.ByteRange

public record ByteRange(long first, long last) extends Record

A representation of a byte range as specified by RFC 7233.

This class parses the value of the Range request header value, for example:


 Range: bytes=100-499
 Range: bytes=1-10,5-25,50-,-20
 
  • Constructor Summary

    Constructors
    Constructor
    Description
    ByteRange(long first, long last)
    Creates an instance of a ByteRange record class.
  • Method Summary

    Modifier and Type
    Method
    Description
    final boolean
    Indicates whether some other object is "equal to" this one.
    long
    Returns the value of the first record component.
    long
    Get the length of this byte range.
    final int
    Returns a hash code value for this object.
    long
    Returns the value of the last record component.
    static List<ByteRange>
    parse(List<String> headers, long length)
    Parses the Range header values such as byte=10-20 to obtain a list of ByteRanges.
    toHeaderValue(long length)
    Returns the value for the Content-Range response header corresponding to this byte range.
    static String
    Returns the value for the Content-Range response header when the range is non satisfiable and therefore the response status code is HttpStatus.RANGE_NOT_SATISFIABLE_416.
    final String
    Returns a string representation of this record class.

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • ByteRange

      public ByteRange(long first, long last)
      Creates an instance of a ByteRange record class.
      Parameters:
      first - the value for the first record component
      last - the value for the last record component
  • Method Details

    • getLength

      public long getLength()
      Get the length of this byte range.
      Returns:
      the length of this byte range
    • toHeaderValue

      public String toHeaderValue(long length)

      Returns the value for the Content-Range response header corresponding to this byte range.

      Parameters:
      length - the content length
      Returns:
      the value for the Content-Range response header for this byte range
    • parse

      public static List<ByteRange> parse(List<String> headers, long length)

      Parses the Range header values such as byte=10-20 to obtain a list of ByteRanges.

      Returns an empty list if the parsing fails.

      Parameters:
      headers - a list of range values
      length - the length of the resource for which ranges are requested
      Returns:
      a list of ByteRanges
    • toNonSatisfiableHeaderValue

      public static String toNonSatisfiableHeaderValue(long length)

      Returns the value for the Content-Range response header when the range is non satisfiable and therefore the response status code is HttpStatus.RANGE_NOT_SATISFIABLE_416.

      Parameters:
      length - the content length in bytes
      Returns:
      the non satisfiable value for the Content-Range response header
    • 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. All components in this record class 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.
    • first

      public long first()
      Returns the value of the first record component.
      Returns:
      the value of the first record component
    • last

      public long last()
      Returns the value of the last record component.
      Returns:
      the value of the last record component