Class EmptyCursor<K,V>
java.lang.Object
org.opends.server.backends.pluggable.spi.EmptyCursor<K,V>
- Type Parameters:
K
- Type of the simulated record's keyV
- Type of the simulated record's value
- All Implemented Interfaces:
Closeable
,AutoCloseable
,Cursor<K,
,V> SequentialCursor<K,
V>
Implementation of an empty
Cursor
, for simulating no records to cursor on.
Cursor behaves as follows:
- Positioning to a key or index will fail, returning
false
. - Reading the key or value will return
null
. - Deleting the current element is not supported,
UnsupportedOperationException
will be thrown.
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptiongetKey()
Returns the key of the record on which this cursor is currently positioned.boolean
isValid()
Check whether this cursor is currently pointing to a valid record.boolean
next()
Moves this cursor to the next record in the tree.boolean
positionToIndex
(int index) Positions the cursor to the specified index within the tree.boolean
positionToKey
(K key) Positions the cursor to the provided key if it exists in the tree.boolean
positionToKeyOrNext
(K key) Positions the cursor to the provided key if it exists in the tree, or else the lesser key greater than the provided key in the tree.boolean
Positions the cursor to the last key in the tree.boolean
previous()
Moves this cursor to the previous record in the tree.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.opends.server.backends.pluggable.spi.SequentialCursor
close, delete, getValue
-
Constructor Details
-
EmptyCursor
public EmptyCursor()
-
-
Method Details
-
positionToKey
Description copied from interface:Cursor
Positions the cursor to the provided key if it exists in the tree.Positioning the cursor is required before calling
SequentialCursor.isValid()
.- Specified by:
positionToKey
in interfaceCursor<K,
V> - Parameters:
key
- the key where to position the cursor- Returns:
true
if the cursor could be positioned to the key,false
otherwise
-
positionToKeyOrNext
Description copied from interface:Cursor
Positions the cursor to the provided key if it exists in the tree, or else the lesser key greater than the provided key in the tree.Positioning the cursor is required before calling
SequentialCursor.isValid()
.- Specified by:
positionToKeyOrNext
in interfaceCursor<K,
V> - Parameters:
key
- the key where to position the cursor- Returns:
true
if the cursor could be positioned to the key or the next one,false
otherwise
-
positionToLastKey
public boolean positionToLastKey()Description copied from interface:Cursor
Positions the cursor to the last key in the tree.Positioning the cursor is required before calling
SequentialCursor.isValid()
.- Specified by:
positionToLastKey
in interfaceCursor<K,
V> - Returns:
true
if the cursor could be positioned to the last key,false
otherwise
-
positionToIndex
public boolean positionToIndex(int index) Description copied from interface:Cursor
Positions the cursor to the specified index within the tree. Implementations may take advantage of optimizations provided by the underlying storage, such as counted B-Trees.Positioning the cursor is required before calling
SequentialCursor.isValid()
.- Specified by:
positionToIndex
in interfaceCursor<K,
V> - Parameters:
index
- the index where the cursor should be positioned, (0 is the first record).- Returns:
true
if the cursor could be positioned to the index,false
otherwise
-
previous
public boolean previous()Description copied from interface:Cursor
Moves this cursor to the previous record in the tree. -
next
public boolean next()Description copied from interface:SequentialCursor
Moves this cursor to the next record in the tree.No data is available before calling
next()
on a new cursor.- Specified by:
next
in interfaceSequentialCursor<K,
V> - Returns:
true
if the cursor has moved to the next record,false
if no next record exists leaving cursor in undefined state.
-
isValid
public boolean isValid()Description copied from interface:SequentialCursor
Check whether this cursor is currently pointing to a valid record.Before calling
isValid()
the cursor must be positioned by callingSequentialCursor.next()
.- Specified by:
isValid
in interfaceSequentialCursor<K,
V> - Returns:
true
if the cursor is pointing to a valid entry,false
if cursor is not pointing to a valid entry
-
getKey
Description copied from interface:SequentialCursor
Returns the key of the record on which this cursor is currently positioned.- Specified by:
getKey
in interfaceSequentialCursor<K,
V> - Returns:
- the current record's key.
- Throws:
NoSuchElementException
- if the cursor is not valid.
-