public abstract class HttpRange
extends java.lang.Object
"Range" header.HttpHeaders.setRange(List),
HttpHeaders.getRange()| Modifier and Type | Class and Description |
|---|---|
private static class |
HttpRange.ByteRange
Represents an HTTP/1.1 byte range, with a first and optional last position.
|
private static class |
HttpRange.SuffixByteRange
Represents an HTTP/1.1 suffix byte range, with a number of suffix bytes.
|
| Modifier and Type | Field and Description |
|---|---|
private static java.lang.String |
BYTE_RANGE_PREFIX |
| Constructor and Description |
|---|
HttpRange() |
| Modifier and Type | Method and 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.
|
private static HttpRange |
parseRange(java.lang.String range) |
static java.util.List<HttpRange> |
parseRanges(java.lang.String ranges)
Parse the given, comma-separated string into a list of
HttpRange objects. |
ResourceRegion |
toResourceRegion(Resource resource)
Turn a
Resource into a ResourceRegion using the range
information contained in the current HttpRange. |
static java.util.List<ResourceRegion> |
toResourceRegions(java.util.List<HttpRange> ranges,
Resource resource)
Convert each
HttpRange into a ResourceRegion, selecting the
appropriate segment of the given Resource using HTTP Range information. |
static java.lang.String |
toString(java.util.Collection<HttpRange> ranges)
Return a string representation of the given list of
HttpRange objects. |
private static final java.lang.String BYTE_RANGE_PREFIX
public ResourceRegion toResourceRegion(Resource resource)
Resource into a ResourceRegion using the range
information contained in the current HttpRange.resource - the Resource to select the region fromResourcepublic abstract long getRangeStart(long length)
length - the length of the representationpublic abstract long getRangeEnd(long length)
length - the length of the representationpublic static HttpRange createByteRange(long firstBytePos)
HttpRange from the given position to the end.firstBytePos - the first byte positionfirstPos till the endpublic static HttpRange createByteRange(long firstBytePos, long lastBytePos)
HttpRange from the given fist to last position.firstBytePos - the first byte positionlastBytePos - the last byte positionfirstPos till lastPospublic static HttpRange createSuffixRange(long suffixLength)
HttpRange that ranges over the last given number of bytes.suffixLength - the number of bytes for the rangesuffixLength number of bytespublic static java.util.List<HttpRange> parseRanges(@Nullable java.lang.String ranges)
HttpRange objects.
This method can be used to parse an Range header.
ranges - the string to parsejava.lang.IllegalArgumentException - if the string cannot be parsedprivate static HttpRange parseRange(java.lang.String range)
public static java.util.List<ResourceRegion> toResourceRegions(java.util.List<HttpRange> ranges, Resource resource)
HttpRange into a ResourceRegion, selecting the
appropriate segment of the given Resource using HTTP Range information.ranges - the list of rangesresource - the resource to select the regions frompublic static java.lang.String toString(java.util.Collection<HttpRange> ranges)
HttpRange objects.
This method can be used to for an Range header.
ranges - the ranges to create a string of