Class HttpRange

java.lang.Object
org.springframework.http.HttpRange

public abstract class HttpRange extends Object
Represents an HTTP (byte) range for use with the HTTP "Range" header.
Since:
4.2
Author:
Arjen Poutsma, Juergen Hoeller
See Also:
  • Constructor Details

    • HttpRange

      public HttpRange()
  • Method Details

    • toResourceRegion

      public ResourceRegion toResourceRegion(Resource resource)
      Turn a Resource into a ResourceRegion using the range information contained in the current HttpRange.
      Parameters:
      resource - the Resource to select the region from
      Returns:
      the selected region of the given Resource
      Since:
      4.3
    • getRangeStart

      public abstract long getRangeStart(long length)
      Return the start of the range given the total length of a representation.
      Parameters:
      length - the length of the representation
      Returns:
      the start of this range for the representation
    • getRangeEnd

      public abstract long getRangeEnd(long length)
      Return the end of the range (inclusive) given the total length of a representation.
      Parameters:
      length - the length of the representation
      Returns:
      the end of the range for the representation
    • createByteRange

      public static HttpRange createByteRange(long firstBytePos)
      Create an HttpRange from the given position to the end.
      Parameters:
      firstBytePos - the first byte position
      Returns:
      a byte range that ranges from firstPos till the end
      See Also:
    • createByteRange

      public static HttpRange createByteRange(long firstBytePos, long lastBytePos)
      Create a HttpRange from the given fist to last position.
      Parameters:
      firstBytePos - the first byte position
      lastBytePos - the last byte position
      Returns:
      a byte range that ranges from firstPos till lastPos
      See Also:
    • createSuffixRange

      public static HttpRange createSuffixRange(long suffixLength)
      Create an HttpRange that ranges over the last given number of bytes.
      Parameters:
      suffixLength - the number of bytes for the range
      Returns:
      a byte range that ranges over the last suffixLength number of bytes
      See Also:
    • parseRanges

      public static List<HttpRange> parseRanges(@Nullable String ranges)
      Parse the given, comma-separated string into a list of HttpRange objects.

      This method can be used to parse an Range header.

      Parameters:
      ranges - the string to parse
      Returns:
      the list of ranges
      Throws:
      IllegalArgumentException - if the string cannot be parsed or if the number of ranges is greater than 100
    • toResourceRegions

      public static List<ResourceRegion> toResourceRegions(List<HttpRange> ranges, Resource resource)
      Convert each HttpRange into a ResourceRegion, selecting the appropriate segment of the given Resource using HTTP Range information.
      Parameters:
      ranges - the list of ranges
      resource - the resource to select the regions from
      Returns:
      the list of regions for the given resource
      Throws:
      IllegalArgumentException - if the sum of all ranges exceeds the resource length
      Since:
      4.3
    • toString

      public static String toString(Collection<HttpRange> ranges)
      Return a string representation of the given list of HttpRange objects.

      This method can be used to for an Range header.

      Parameters:
      ranges - the ranges to create a string of
      Returns:
      the string representation