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 Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static HttpRange
    createByteRange(long firstBytePos)
    Create an HttpRange from the given position to the end.
    static HttpRange
    createByteRange(long firstBytePos, long lastBytePos)
    Create a HttpRange from the given fist to last position.
    static HttpRange
    createSuffixRange(long suffixLength)
    Create an HttpRange that ranges over the last given number of bytes.
    abstract long
    getRangeEnd(long length)
    Return the end of the range (inclusive) given the total length of a representation.
    abstract long
    getRangeStart(long length)
    Return the start of the range given the total length of a representation.
    static List<HttpRange>
    Parse the given, comma-separated string into a list of HttpRange objects.
    org.springframework.core.io.support.ResourceRegion
    toResourceRegion(org.springframework.core.io.Resource resource)
    Turn a Resource into a ResourceRegion using the range information contained in the current HttpRange.
    static List<org.springframework.core.io.support.ResourceRegion>
    toResourceRegions(List<HttpRange> ranges, org.springframework.core.io.Resource resource)
    Convert each HttpRange into a ResourceRegion, selecting the appropriate segment of the given Resource using HTTP Range information.
    static String
    Return a string representation of the given list of HttpRange objects.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • HttpRange

      public HttpRange()
  • Method Details

    • toResourceRegion

      public org.springframework.core.io.support.ResourceRegion toResourceRegion(org.springframework.core.io.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<org.springframework.core.io.support.ResourceRegion> toResourceRegions(List<HttpRange> ranges, org.springframework.core.io.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