Class InclusiveByteRange


  • public class InclusiveByteRange
    extends java.lang.Object
    Byte range inclusive of end points.
    
     parses the following types of byte ranges:
    
     bytes=100-499
     bytes=-300
     bytes=100-
     bytes=1-2,2-3,6-,-2
    
     given an entity length, converts range to string
    
     bytes 100-499/500
    
     
    Based on RFC2616 3.12, 14.16, 14.35.1, 14.35.2

    And yes the spec does strangely say that while 10-20, is bytes 10 to 20 and 10- is bytes 10 until the end that -20 IS NOT bytes 0-20, but the last 20 bytes of the content.

    Version:
    $version$
    • Constructor Detail

      • InclusiveByteRange

        public InclusiveByteRange​(long first,
                                  long last)
    • Method Detail

      • getFirst

        public long getFirst()
      • getLast

        public long getLast()
      • getSize

        public long getSize()
      • toHeaderRangeString

        public java.lang.String toHeaderRangeString​(long size)
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • satisfiableRanges

        public static java.util.List<InclusiveByteRange> satisfiableRanges​(java.util.Enumeration<java.lang.String> headers,
                                                                           long size)
        Parameters:
        headers - Enumeration of Range header fields.
        size - Size of the resource.
        Returns:
        List of satisfiable ranges
      • to416HeaderRangeString

        public static java.lang.String to416HeaderRangeString​(long size)