Class ByteRange


  • public class ByteRange
    extends 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 Detail

      • ByteRange

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

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

      • equals

        public boolean equals​(Object other)
        Overrides:
        equals in class 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 Object
      • 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.