public class KeyRange extends Object implements oracle.kv.impl.util.FastExternalizable
The KeyRange defines a range of String values for the key components immediately following the last component of a parent key that is used in a multiple-key operation. In terms of a tree structure, the range defines the parent key's immediate children that are selected by the multiple-key operation.
| Constructor and Description |
|---|
KeyRange(String prefix)
Creates a prefix KeyRange.
|
KeyRange(String start,
boolean startInclusive,
String end,
boolean endInclusive)
Creates a start/end KeyRange.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
equals(Object other) |
static KeyRange |
fromByteArray(byte[] keyBytes)
Deserializes the given bytes that were returned earlier by
toByteArray() and returns the resulting KeyRange. |
static KeyRange |
fromString(String keyRangeStringArg)
Converts an encoded KeyRange back to a KeyRange.
|
String |
getEnd()
Returns the String component that defines upper bound of the key range,
or null if no upper bound is enforced.
|
boolean |
getEndInclusive()
Returns whether end is included in the range, i.e., end is greater than
or equal to the last String component in the key range.
|
String |
getStart()
Returns the String component that defines lower bound of the key range,
or null if no lower bound is enforced.
|
boolean |
getStartInclusive()
Returns whether start is included in the range, i.e., start is less than
or equal to the first String component in the key range.
|
int |
hashCode() |
boolean |
inRange(Key parentKey,
Key checkKey)
Returns true if a Key is within the bounds of this range with respect to
a parent Key.
|
boolean |
isPrefix()
Returns whether this is a prefix range, i.e., whether start and end are
equal and both inclusive.
|
byte[] |
toByteArray()
Returns this KeyRange as a serialized byte array, such that
fromByteArray(byte[]) may be used to reconstitute the KeyRange. |
String |
toString()
Encodes the KeyRange object and returns the resulting String which can
later be decoded using
fromString(java.lang.String). |
public KeyRange(String start, boolean startInclusive, String end, boolean endInclusive)
start - is the String component that defines lower bound of the key
range. If null, no lower bound is enforced.startInclusive - is true if start is included in the range, i.e.,
start is less than or equal to the first String component in the key
range.end - is the String component that defines upper bound of the key
range. If null, no upper bound is enforced.endInclusive - is true if end is included in the range, i.e., end
is greater than or equal to the last String component in the key range.IllegalArgumentException - if either start and end are null or
start is not less than end.public KeyRange(String prefix)
Using this constructor to define a prefix range is equivalent to
using the KeyRange(String, boolean, String, boolean)
constructor as follows: KeyRange(prefix, true, prefix, true)
prefix - is the String component that defines both the lower and
upper inclusive bounds of the key range.public byte[] toByteArray()
fromByteArray(byte[]) may be used to reconstitute the KeyRange.public static KeyRange fromByteArray(byte[] keyBytes)
toByteArray() and returns the resulting KeyRange.public String getStart()
public boolean getStartInclusive()
public String getEnd()
public boolean getEndInclusive()
public boolean isPrefix()
public boolean inRange(Key parentKey, Key checkKey)
parentKey - the parent of the key range, or null to check the first
key component.checkKey - the full key being checked.public String toString()
fromString(java.lang.String). The format is:
<startType>/<start>/<end>/<endType>
where the startType/endType is either "I"
or "E" for Inclusive or Exclusive and start
and end are the start/end key strings. The leading
startType/start specification is omitted from the String
representation if the range does not have a lower bound. Similarly, the
trailing end/endType specification is omitted if the range
does not have an upper bound. Since a KeyRange requires at
least one bound, at least one of the specifications is always present in
the String representation. Here are some examples:
alpha inclusive
to beta exclusive0123
inclusivechi inclusive to infinitychi
exclusivepublic static KeyRange fromString(String keyRangeStringArg)
toString(). See toString()
for more information about the KeyRange String format.keyRangeStringArg - a non null KeyRange encoding string, which
should normally be created using toString().IllegalArgumentException - if keyRangeStringArg does not contain
a valid KeyRange encoding.Copyright (c) 2011, 2013 Oracle and/or its affiliates. All rights reserved.