Package oracle.kv.table
Class FieldRange
- java.lang.Object
-
- oracle.kv.table.FieldRange
-
- All Implemented Interfaces:
Cloneable
,oracle.kv.impl.util.FastExternalizable
public class FieldRange extends Object implements oracle.kv.impl.util.FastExternalizable, Cloneable
FieldRange defines a range of values to be used in a table or index iteration or multiGet operation. A FieldRange is used as the least significant component in a partially specifiedPrimaryKey
orIndexKey
in order to create a value range for an operation that returns multiple rows or keys. The data types supported by FieldRange are limited to those which are valid for primary keys and/or index keys, as indicated byFieldDef.isValidKeyField()
andFieldDef.isValidIndexField()
.This object is used to scope a table or index operation and is constructed by
Table.createFieldRange(java.lang.String)
andIndex.createFieldRange(java.lang.String)
. If used on a table the field referenced must be part of the table's primary key and be in proper order relative to the parent value. If used on an index the field must be part of the index definition and in proper order relative to the index definition.The fieldPath used in FieldRange construction must be one of the strings returned from
PrimaryKey.getFields()
orIndexKey.getFields()
, respectively.- Since:
- 3.0
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
check()
FieldRange
clone()
Creates a new FieldRange instance that is a shallow copy of this instance.MultiRowOptions
createMultiRowOptions()
A convenience factory method to create a MultiRowOptions instance using this FieldRange.boolean
equals(Object obj)
FieldDef
getDefinition()
Returns the FieldDef for the field used in the range.FieldValue
getEnd()
Returns the FieldValue that defines upper bound of the 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 FieldValue in the range.FieldDef
getField()
Returns the FieldDef that was used to construct this object.String
getFieldName()
Returns the name for the field used in the range.FieldValue
getStart()
Returns the FieldValue that defines lower bound of the 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 FieldValue in the range.int
getStorageSize()
int
hashCode()
FieldRange
setEnd(double value, boolean isInclusive)
Sets the end value of the range to the specified double value.FieldRange
setEnd(float value, boolean isInclusive)
Sets the end value of the range to the specified float value.FieldRange
setEnd(int value, boolean isInclusive)
Sets the end value of the range to the specified integer value.FieldRange
setEnd(long value, boolean isInclusive)
Sets the end value of the range to the specified long value.FieldRange
setEnd(String value, boolean isInclusive)
Sets the end value of the range to the specified string value.FieldRange
setEnd(BigDecimal value, boolean isInclusive)
Sets the end value of the range to the specified BigDecimal value.FieldRange
setEnd(Timestamp value, boolean isInclusive)
Sets the end value of the range to the specified timestamp value.FieldRange
setEnd(FieldValue value, boolean isInclusive)
Sets the end value of the range to the specified value.FieldRange
setEnd(FieldValue value, boolean isInclusive, boolean validate)
FieldRange
setEndEnum(String value, boolean isInclusive)
Sets the end value of the range to the specified enumeration value.FieldRange
setStart(double value, boolean isInclusive)
Sets the start value of the range to the specified double value.FieldRange
setStart(float value, boolean isInclusive)
Sets the start value of the range to the specified float value.FieldRange
setStart(int value, boolean isInclusive)
Sets the start value of the range to the specified integer value.FieldRange
setStart(long value, boolean isInclusive)
Sets the start value of the range to the specified long value.FieldRange
setStart(String value, boolean isInclusive)
Sets the start value of the range to the specified string value.FieldRange
setStart(BigDecimal value, boolean isInclusive)
Sets the start value of the range to the specified BigDecimal value.FieldRange
setStart(Timestamp value, boolean isInclusive)
Sets the start value of the range to the specified timestamp value.FieldRange
setStart(FieldValue value, boolean isInclusive)
Sets the start value of the range to the specified value.FieldRange
setStart(FieldValue value, boolean isInclusive, boolean validate)
FieldRange
setStartEnum(String value, boolean isInclusive)
Sets the start value of the range to the specified enumeration value.FieldRange
setStartValue(FieldValue value, boolean isInclusive)
String
toString()
-
-
-
Method Detail
-
clone
public FieldRange clone()
Creates a new FieldRange instance that is a shallow copy of this instance.
-
createMultiRowOptions
public MultiRowOptions createMultiRowOptions()
A convenience factory method to create a MultiRowOptions instance using this FieldRange.- Returns:
- a new MultiRowOptions
-
getField
public FieldDef getField()
Returns the FieldDef that was used to construct this object. If this FieldRange is being used in an index and the indexed field is an array the definition of the indexed element is returned and not the array definition.- Returns:
- the FieldDef
-
getStart
public FieldValue getStart()
Returns the FieldValue that defines lower bound of the range, or null if no lower bound is enforced.- Returns:
- the start FieldValue
-
getStartInclusive
public boolean getStartInclusive()
Returns whether start is included in the range, i.e., start is less than or equal to the first FieldValue in the range. This value is valid only if the start value is not null.- Returns:
- true if the start value is inclusive
-
getEnd
public FieldValue getEnd()
Returns the FieldValue that defines upper bound of the range, or null if no upper bound is enforced.- Returns:
- the end FieldValue
-
getEndInclusive
public boolean getEndInclusive()
Returns whether end is included in the range, i.e., end is greater than or equal to the last FieldValue in the range. This value is valid only if the end value is not null.- Returns:
- true if the end value is inclusive
-
getDefinition
public FieldDef getDefinition()
Returns the FieldDef for the field used in the range.- Returns:
- the FieldDef
-
getFieldName
public String getFieldName()
Returns the name for the field used in the range.- Returns:
- the name of the field
-
setStart
public FieldRange setStart(int value, boolean isInclusive)
Sets the start value of the range to the specified integer value.- Parameters:
value
- the value to setisInclusive
- set to true if the range is inclusive of the value, false if it is exclusive.- Returns:
- this
- Throws:
IllegalArgumentException
- if the value is not valid for the field in the range.
-
setStart
public FieldRange setStart(double value, boolean isInclusive)
Sets the start value of the range to the specified double value.- Parameters:
value
- the value to setisInclusive
- set to true if the range is inclusive of the value, false if it is exclusive.- Returns:
- this
- Throws:
IllegalArgumentException
- if the value is not valid for the field in the range.
-
setStart
public FieldRange setStart(float value, boolean isInclusive)
Sets the start value of the range to the specified float value.- Parameters:
value
- the value to setisInclusive
- set to true if the range is inclusive of the value, false if it is exclusive.- Returns:
- this
- Throws:
IllegalArgumentException
- if the value is not valid for the field in the range.
-
setStart
public FieldRange setStart(long value, boolean isInclusive)
Sets the start value of the range to the specified long value.- Parameters:
value
- the value to setisInclusive
- set to true if the range is inclusive of the value, false if it is exclusive.- Returns:
- this
- Throws:
IllegalArgumentException
- if the value is not valid for the field in the range.
-
setStart
public FieldRange setStart(String value, boolean isInclusive)
Sets the start value of the range to the specified string value.- Parameters:
value
- the value to setisInclusive
- set to true if the range is inclusive of the value, false if it is exclusive.- Returns:
- this
- Throws:
IllegalArgumentException
- if the value is not valid for the field in the range.
-
setStartEnum
public FieldRange setStartEnum(String value, boolean isInclusive)
Sets the start value of the range to the specified enumeration value.- Parameters:
value
- the value to setisInclusive
- set to true if the range is inclusive of the value, false if it is exclusive.- Returns:
- this
- Throws:
IllegalArgumentException
- if the value is not valid for the field in the range.
-
setStart
public FieldRange setStart(Timestamp value, boolean isInclusive)
Sets the start value of the range to the specified timestamp value.- Parameters:
value
- the value to setisInclusive
- set to true if the range is inclusive of the value, false if it is exclusive.- Returns:
- this
- Throws:
IllegalArgumentException
- if the value is not valid for the field in the range.- Since:
- 4.3
-
setStart
public FieldRange setStart(BigDecimal value, boolean isInclusive)
Sets the start value of the range to the specified BigDecimal value.- Parameters:
value
- the value to setisInclusive
- set to true if the range is inclusive of the value, false if it is exclusive.- Returns:
- this
- Throws:
IllegalArgumentException
- if the value is not valid for the field in the range.- Since:
- 4.4
-
setEnd
public FieldRange setEnd(int value, boolean isInclusive)
Sets the end value of the range to the specified integer value.- Parameters:
value
- the value to setisInclusive
- set to true if the range is inclusive of the value, false if it is exclusive.- Returns:
- this
- Throws:
IllegalArgumentException
- if the value is not valid for the field in the range.
-
setEnd
public FieldRange setEnd(double value, boolean isInclusive)
Sets the end value of the range to the specified double value.- Parameters:
value
- the value to setisInclusive
- set to true if the range is inclusive of the value, false if it is exclusive.- Returns:
- this
- Throws:
IllegalArgumentException
- if the value is not valid for the field in the range.
-
setEnd
public FieldRange setEnd(float value, boolean isInclusive)
Sets the end value of the range to the specified float value.- Parameters:
value
- the value to setisInclusive
- set to true if the range is inclusive of the value, false if it is exclusive.- Returns:
- this
- Throws:
IllegalArgumentException
- if the value is not valid for the field in the range.
-
setEnd
public FieldRange setEnd(long value, boolean isInclusive)
Sets the end value of the range to the specified long value.- Parameters:
value
- the value to setisInclusive
- set to true if the range is inclusive of the value, false if it is exclusive.- Returns:
- this
- Throws:
IllegalArgumentException
- if the value is not valid for the field in the range.
-
setEnd
public FieldRange setEnd(String value, boolean isInclusive)
Sets the end value of the range to the specified string value.- Parameters:
value
- the value to setisInclusive
- set to true if the range is inclusive of the value, false if it is exclusive.- Returns:
- this
- Throws:
IllegalArgumentException
- if the value is not valid for the field in the range.
-
setEndEnum
public FieldRange setEndEnum(String value, boolean isInclusive)
Sets the end value of the range to the specified enumeration value.- Parameters:
value
- the value to setisInclusive
- set to true if the range is inclusive of the value, false if it is exclusive.- Returns:
- this
- Throws:
IllegalArgumentException
- if the value is not valid for the field in the range.
-
setEnd
public FieldRange setEnd(Timestamp value, boolean isInclusive)
Sets the end value of the range to the specified timestamp value.- Parameters:
value
- the value to setisInclusive
- set to true if the range is inclusive of the value, false if it is exclusive.- Returns:
- this
- Throws:
IllegalArgumentException
- if the value is not valid for the field in the range.- Since:
- 4.3
-
setEnd
public FieldRange setEnd(BigDecimal value, boolean isInclusive)
Sets the end value of the range to the specified BigDecimal value.- Parameters:
value
- the value to setisInclusive
- set to true if the range is inclusive of the value, false if it is exclusive.- Returns:
- this
- Throws:
IllegalArgumentException
- if the value is not valid for the field in the range.- Since:
- 4.4
-
setStart
public FieldRange setStart(FieldValue value, boolean isInclusive)
Sets the start value of the range to the specified value.- Parameters:
value
- the value to setisInclusive
- set to true if the range is inclusive of the value, false if it is exclusive.- Returns:
- this
- Throws:
IllegalArgumentException
- if the value is not valid for the field in the range.
-
setEnd
public FieldRange setEnd(FieldValue value, boolean isInclusive)
Sets the end value of the range to the specified value.- Parameters:
value
- the value to setisInclusive
- set to true if the range is inclusive of the value, false if it is exclusive.- Returns:
- this
- Throws:
IllegalArgumentException
- if the value is not valid for the field in the range.
-
setStart
public FieldRange setStart(FieldValue value, boolean isInclusive, boolean validate)
-
setEnd
public FieldRange setEnd(FieldValue value, boolean isInclusive, boolean validate)
-
setStartValue
public FieldRange setStartValue(FieldValue value, boolean isInclusive)
-
getStorageSize
public int getStorageSize()
-
check
public boolean check()
-
-