Package org.globus.ftp

# Class ByteRange

java.lang.Object
org.globus.ftp.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.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`ADJACENT`
`long`
`from`
lower range limit
`static final int`
`THIS_ABOVE`
`static final int`
`THIS_BELOW`
`static final int`
`THIS_SUBSET`
`static final int`
`THIS_SUPERSET`
`long`
`to`
upper range limit

## Constructor Summary

Constructors
Constructor
Description
`ByteRange(long from, long to)`
`ByteRange(ByteRange src)`
copying constructor

## Method Summary

Modifier and Type
Method
Description
`boolean`
`equals(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.
`String`
`toString()`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

## Field Details

### from

public long from
lower range limit

### to

public long to
upper range limit

### THIS_BELOW

public static final int THIS_BELOW

See Also:
  - Constant Field Values

### ADJACENT

public static final int ADJACENT

See Also:
  - Constant Field Values

### THIS_SUPERSET

public static final int THIS_SUPERSET

See Also:
  - Constant Field Values

### THIS_SUBSET

public static final int THIS_SUBSET

See Also:
  - Constant Field Values

### THIS_ABOVE

public static final int THIS_ABOVE

See Also:
  - Constant Field Values

## Constructor Details

### 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 Details

### 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.

### toString

public String toString()

Overrides:
  `toString` in class `Object`