Class ByteRange


  • public class ByteRange
    extends java.lang.Object
    Represents a range of integers. The name reflects the fact that it is used with FTP extended mode restart markers, where it represents a range of transfered bytes.
    • Constructor Summary

      Constructors 
      Constructor Description
      ByteRange​(long from, long to)  
      ByteRange​(ByteRange src)
      copying constructor
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private void copy​(ByteRange other)  
      boolean equals​(java.lang.Object other)  
      int hashCode()  
      int merge​(ByteRange other)
      If this range can be consolidated with the other one, modify this range so that it represents the result of merging this and the other range.
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • ByteRange

        public ByteRange​(long from,
                         long to)
        Parameters:
        from - lower range limit
        to - upper range limit
        Throws:
        java.lang.IllegalArgumentException - if to < from
      • ByteRange

        public ByteRange​(ByteRange src)
        copying constructor
    • Method Detail

      • equals

        public boolean equals​(java.lang.Object other)
        Overrides:
        equals in class java.lang.Object
        Returns:
        true if both object logically represent the same range (even if they are two separate ByteRange instances)
      • hashCode

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

        private void copy​(ByteRange other)
      • merge

        public int merge​(ByteRange other)
        If this range can be consolidated with the other one, modify this range so that it represents the result of merging this and the other range. The parameter object remains intact. Return value indicates what operation has been performed.
        • If the two ranges were separate, then this range will remain unchanged. The return value will be THIS_BELOW if this range is below the other range, or THIS_ABOVE in the other case.
        • If this range was a superset of the other, then this range remains unchanged and THIS_SUPERSET will be returned. A special case of this situation is when both ranges were equal.
        • If other range was a superset of this, OTHER_SUPERSET will be returned.
        • Otherwise ADJACENT is returned, meaning that merge was possible but no range is a superset of the other.
        Note that two ranges are considered separate if there is at least one integer between them. For instance, "1-3" and "5-7" are separate but "1-3" and "4-7" are adjacent because merge is possible.
      • toString

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