Altibase.jdbc.driver.sharding.util

## Class Range<T>

- java.lang.Object
- - Altibase.jdbc.driver.sharding.util.Range<T>

All Implemented Interfaces:
  java.io.Serializable

    public final class Range<T>
    extends java.lang.Object
    implements java.io.Serializable

범위를 나타내는 클래스
이 클래스를 사용하려면 반드시 Comparator를 구현해야 한다.

See Also:
  Serialized Form

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`static <T extends java.lang.Comparable<T>> Range<T>` `between(Range<T> aFrom, T aTo)` 첫번째 Range의 max값과 mMaximum값 사이에 해당하는 Range객체를 생성한다.
`static <T extends java.lang.Comparable<T>> Range<T>` `between(T aFrom, T aTo)` mMinimum값과 mMaximum값 사이에 해당하는 Range객체를 생성한다.
`static <T> Range<T>` `between(T aFrom, T aTo, java.util.Comparator<T> aComparator)` 매개변수로 지정된 Comparator를 사용해 Range객체를 생성한다.
`boolean` `contains(T aElement)` 해당 엘리먼트가 범위에 속하는지 여부를 리턴한다.
`boolean` `containsEndedBy(T aElement)` 해당 엘리먼트가 범위에 속하는지 여부를 리턴한다.
`boolean` `containsEqualAndLessThan(T aElement)` 해당 엘리먼트가 범위에 속하는지 여부를 리턴한다.
`boolean` `containsRange(Range<T> aRange)` 선택된 범위가 Range에 포함되는지 여부를 리턴한다(inclusive).
`boolean` `equals(java.lang.Object aObject)` 두개의 객체가 동일하려면 최소값과 최대값이 동일해야하며 이 때 Comparator의 차이점은 무시된다.
`T` `getMaximum()` 범위의 최대값을 리턴한다.
`T` `getMinimum()` 범위의 최소값을 리턴한다.
`static Range` `getNullRange()`
`int` `hashCode()` 범위객체에 적절한 해쉬코드를 가져온다.
`boolean` `isAfter(T element)` 해당 값이 범위의 최소값 보다 작은지 여부를 판단한다(exclusive).
`boolean` `isAfterRange(Range<T> aRange)` 범위가 aRange의 범위보다 후인지 확인한다.
`boolean` `isBefore(T element)` 해당 값이 범위의 최대값 보다 큰 여부를 판단한다(exclusive).
`boolean` `isBeforeRange(Range<T> aOtherRange)` 범위가 지정된 범위보다 완전하게 앞에 있는지 여부를 판단한다.
`boolean` `isEndedBy(T aElement)` 해당 객체로 범위가 끝나는지 여부를 판단한다(inclusive).
`boolean` `isOverlappedBy(Range<T> aOtherRange)` 해당 범위가 매개변수로 들어온 범위에 오버랩 되는지 여부를 판단한다.
`boolean` `isStartedBy(T element)` 해당 객체로 범위가 시작되는지 여부를 판단한다(inclusive).
`java.lang.String` `toString()`

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

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

### Method Detail

#### between

    public static <T extends java.lang.Comparable<T>> Range<T> between(T aFrom,
                                                                       T aTo)

mMinimum값과 mMaximum값 사이에 해당하는 Range객체를 생성한다.

Type Parameters:
  `T` - 범위에 들어가는 엘리멘트 타입
Parameters:
  `aFrom` - 범위의 시작을 나타내는 값
  `aTo` - 범위의 끝을 나타내는 값
Returns:
  범위 객체
Throws:
  `java.lang.IllegalArgumentException` - 엘리먼트가 null인 경우
  `java.lang.ClassCastException` - 엘리먼트가 Comparable을 구현하고 있지 않은 경우

#### between

    public static <T extends java.lang.Comparable<T>> Range<T> between(Range<T> aFrom,
                                                                       T aTo)

첫번째 Range의 max값과 mMaximum값 사이에 해당하는 Range객체를 생성한다.

Type Parameters:
  `T` - 범위에 들어가는 엘리멘트 타입
Parameters:
  `aFrom` - 범위의 시작을 나타내는 Range객체
  `aTo` - 범위의 끝을 나타내는 값
Returns:
  범위 객체
Throws:
  `java.lang.IllegalArgumentException` - 엘리먼트가 null인 경우
  `java.lang.ClassCastException` - 엘리먼트가 Comparable을 구현하고 있지 않은 경우

#### getNullRange

    public static Range getNullRange()

#### between

    public static <T> Range<T> between(T aFrom,
                                       T aTo,
                                       java.util.Comparator<T> aComparator)

매개변수로 지정된 Comparator를 사용해 Range객체를 생성한다.

Type Parameters:
  `T` - 범위에 들어가는 엘리멘트 타입
Parameters:
  `aFrom` - 범위의 시작을 나타내는 값
  `aTo` - 범위의 끝을 나타내는 값
  `aComparator` - 정렬을 위해 사용할 Comparator객체, null인 경우에는 natural ordering을 사용한다.
Returns:
  범위 객체
Throws:
  `java.lang.IllegalArgumentException` - 엘리먼트가 null인 경우
  `java.lang.ClassCastException` - 엘리먼트가 natural ordering을 사용하고 Comparable을 구현하고 있지 않은 경우.

#### getMinimum

    public T getMinimum()

범위의 최소값을 리턴한다.

Returns:
  범위 최소값

#### getMaximum

    public T getMaximum()

범위의 최대값을 리턴한다.

Returns:
  범위 최대값

#### contains

    public boolean contains(T aElement)

해당 엘리먼트가 범위에 속하는지 여부를 리턴한다.
범위의 최소값과 최대값을 포함해서 판단한다.(inclusive)

Parameters:
  `aElement` - 비교할 엘리멘트값
Returns:
  해당 엘리먼트가 범위에 포함되어 있는지 여부

#### containsEndedBy

    public boolean containsEndedBy(T aElement)

해당 엘리먼트가 범위에 속하는지 여부를 리턴한다.
범위의 최소값은 비교하지 않고 최대값 보다 작은지만 판단한다.(exclusive)

Parameters:
  `aElement` - 비교할 엘리멘트값
Returns:
  해당 엘리먼트가 범위에 포함되어 있는지 여부

#### containsEqualAndLessThan

    public boolean containsEqualAndLessThan(T aElement)

해당 엘리먼트가 범위에 속하는지 여부를 리턴한다.
범위의 최소값보다는 크거나 같고(inclusive) 최대값 보다는 작은지 판단한다.(exclusive)

Parameters:
  `aElement` - 비교할 엘리멘트값
Returns:
  해당 엘리먼트가 범위에 포함되어 있는지 여부

#### isAfter

    public boolean isAfter(T element)

해당 값이 범위의 최소값 보다 작은지 여부를 판단한다(exclusive).

Parameters:
  `element` - 검사할 객체
Returns:
  true 해당 엘리먼트가 범위보다 작은 경우

#### isStartedBy

    public boolean isStartedBy(T element)

해당 객체로 범위가 시작되는지 여부를 판단한다(inclusive).

Parameters:
  `element` - 검사할 객체
Returns:
  true 범위가 해당 값으로 시작하는 경우

#### isEndedBy

    public boolean isEndedBy(T aElement)

해당 객체로 범위가 끝나는지 여부를 판단한다(inclusive).

Parameters:
  `aElement` - 검사할 객체
Returns:
  true 범위가 해당 값으로 끝나는 경우

#### isBefore

    public boolean isBefore(T element)

해당 값이 범위의 최대값 보다 큰 여부를 판단한다(exclusive).

Parameters:
  `element` - 검사할 객체
Returns:
  true 해당 엘리먼트가 범위보다 큰 경우

#### containsRange

    public boolean containsRange(Range<T> aRange)

선택된 범위가 Range에 포함되는지 여부를 리턴한다(inclusive).

Parameters:
  `aRange` - 체크할 Range객체
Returns:
  true 체크할 Range객체가 포함되는 경우
Throws:
  `java.lang.RuntimeException` - 범위를 비교할 수 없는 경우

#### isAfterRange

    public boolean isAfterRange(Range<T> aRange)

범위가 aRange의 범위보다 후인지 확인한다.

Parameters:
  `aRange` - 확인할 범위 변수
Returns:
  true 범위의 최소값이 aRange의 범위 max값보다 클때
Throws:
  `java.lang.RuntimeException` - 범위를 비교할 수 없는 경우

#### isOverlappedBy

    public boolean isOverlappedBy(Range<T> aOtherRange)

해당 범위가 매개변수로 들어온 범위에 오버랩 되는지 여부를 판단한다.
(두 범위에 적어도 하나의 요소가 포함되는 경우)

Parameters:
  `aOtherRange` - 확인할 범위 객체
Returns:
  true 지정된 범위가 해당 범위와 오버랩 되는 경우
Throws:
  `java.lang.RuntimeException` - 범위를 비교할 수 없는 경우

#### isBeforeRange

    public boolean isBeforeRange(Range<T> aOtherRange)

범위가 지정된 범위보다 완전하게 앞에 있는지 여부를 판단한다.

Parameters:
  `aOtherRange` - 확인할 범위 객체
Returns:
  true 해당 범위가 지정된 범위보다 앞에 있을 경우
Throws:
  `java.lang.RuntimeException` - 범위를 비교할 수 없는 경우

#### equals

    public boolean equals(java.lang.Object aObject)

두개의 객체가 동일하려면 최소값과 최대값이 동일해야하며 이 때 Comparator의 차이점은 무시된다.

Overrides:
  `equals` in class `java.lang.Object`
Parameters:
  `aObject` - 비교할 객체
Returns:
  true 두개 객체가 동일할때

#### hashCode

    public int hashCode()

범위객체에 적절한 해쉬코드를 가져온다.

Overrides:
  `hashCode` in class `java.lang.Object`
Returns:
  해쉬코드 값

#### toString

    public java.lang.String toString()

Overrides:
  `toString` in class `java.lang.Object`