Package org.springframework.http
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:
- HTTP/1.1: Range Requests,
HttpHeaders.setRange(List)
,HttpHeaders.getRange()
Constructor Summary
Constructors Constructor Description HttpRange()
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description static HttpRange
createByteRange(long firstBytePos)
Create anHttpRange
from the given position to the end.static HttpRange
createByteRange(long firstBytePos, long lastBytePos)
Create aHttpRange
from the given fist to last position.static HttpRange
createSuffixRange(long suffixLength)
Create anHttpRange
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>
parseRanges(String ranges)
Parse the given, comma-separated string into a list ofHttpRange
objects.ResourceRegion
toResourceRegion(Resource resource)
Turn aResource
into aResourceRegion
using the range information contained in the currentHttpRange
.static List<ResourceRegion>
toResourceRegions(List<HttpRange> ranges, Resource resource)
Convert eachHttpRange
into aResourceRegion
, selecting the appropriate segment of the givenResource
using HTTP Range information.static String
toString(Collection<HttpRange> ranges)
Return a string representation of the given list ofHttpRange
objects.
Constructor Detail
HttpRange
public HttpRange()
Method Detail
toResourceRegion
public ResourceRegion toResourceRegion(Resource resource)
Turn aResource
into aResourceRegion
using the range information contained in the currentHttpRange
.- Parameters:
resource
- theResource
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 anHttpRange
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:
- Byte Ranges
createByteRange
public static HttpRange createByteRange(long firstBytePos, long lastBytePos)
Create aHttpRange
from the given fist to last position.- Parameters:
firstBytePos
- the first byte positionlastBytePos
- the last byte position- Returns:
- a byte range that ranges from
firstPos
tilllastPos
- See Also:
- Byte Ranges
createSuffixRange
public static HttpRange createSuffixRange(long suffixLength)
Create anHttpRange
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:
- Byte Ranges
parseRanges
public static List<HttpRange> parseRanges(@Nullable String ranges)
Parse the given, comma-separated string into a list ofHttpRange
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 eachHttpRange
into aResourceRegion
, selecting the appropriate segment of the givenResource
using HTTP Range information.- Parameters:
ranges
- the list of rangesresource
- 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 ofHttpRange
objects.This method can be used to for an
Range
header.- Parameters:
ranges
- the ranges to create a string of- Returns:
- the string representation