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>
public final class EmptyCursor<K,V> extends Object implements Cursor<K,V>
Implementation of an emptyCursor, 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,
UnsupportedOperationExceptionwill be thrown.
-
-
Constructor Summary
Constructors Constructor Description EmptyCursor()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()voiddelete()Deletes the record on which this cursor is currently positioned.KgetKey()Returns the key of the record on which this cursor is currently positioned.VgetValue()Returns the value of the record on which this cursor is currently positioned.booleanisDefined()Check whether this cursor is currently pointing to valid record.booleannext()Moves this cursor to the next record in the tree.booleanpositionToIndex(int index)Positions the cursor to the specified index within the tree.booleanpositionToKey(ByteSequence key)Positions the cursor to the provided key if it exists in the tree.booleanpositionToKeyOrNext(ByteSequence 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.booleanpositionToLastKey()Positions the cursor to the last key in the tree.
-
-
-
Method Detail
-
positionToKey
public boolean positionToKey(ByteSequence key)
Description copied from interface:CursorPositions the cursor to the provided key if it exists in the tree.- Specified by:
positionToKeyin interfaceCursor<K,V>- Parameters:
key- the key where to position the cursor- Returns:
trueif the cursor could be positioned to the key,falseotherwise
-
positionToKeyOrNext
public boolean positionToKeyOrNext(ByteSequence key)
Description copied from interface:CursorPositions 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.- Specified by:
positionToKeyOrNextin interfaceCursor<K,V>- Parameters:
key- the key where to position the cursor- Returns:
trueif the cursor could be positioned to the key or the next one,falseotherwise
-
positionToLastKey
public boolean positionToLastKey()
Description copied from interface:CursorPositions the cursor to the last key in the tree.- Specified by:
positionToLastKeyin interfaceCursor<K,V>- Returns:
trueif the cursor could be positioned to the last key,falseotherwise
-
positionToIndex
public boolean positionToIndex(int index)
Description copied from interface:CursorPositions 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.- Specified by:
positionToIndexin interfaceCursor<K,V>- Parameters:
index- the index where the cursor should be positioned, (0 is the first record).- Returns:
trueif the cursor could be positioned to the index,falseotherwise
-
next
public boolean next()
Description copied from interface:SequentialCursorMoves this cursor to the next record in the tree.- Specified by:
nextin interfaceSequentialCursor<K,V>- Returns:
trueif the cursor has moved to the next record,falseif no next record exists leaving cursor in undefined state.
-
isDefined
public boolean isDefined()
Description copied from interface:SequentialCursorCheck whether this cursor is currently pointing to valid record.- Specified by:
isDefinedin interfaceSequentialCursor<K,V>- Returns:
trueif the cursor is pointing to a valid entry,falseif cursor is not pointing to a valid entry
-
getKey
public K getKey() throws NoSuchElementException
Description copied from interface:SequentialCursorReturns the key of the record on which this cursor is currently positioned.- Specified by:
getKeyin interfaceSequentialCursor<K,V>- Returns:
- the current record's key.
- Throws:
NoSuchElementException- if the cursor is not defined.
-
getValue
public V getValue() throws NoSuchElementException
Description copied from interface:SequentialCursorReturns the value of the record on which this cursor is currently positioned.- Specified by:
getValuein interfaceSequentialCursor<K,V>- Returns:
- the current record's value.
- Throws:
NoSuchElementException- if the cursor is not defined.
-
delete
public void delete() throws NoSuchElementException, UnsupportedOperationExceptionDescription copied from interface:SequentialCursorDeletes the record on which this cursor is currently positioned. This method does not alter the position of the cursor. In particular,SequentialCursor.next()must be called in order to point to the next record. The behavior of methodsSequentialCursor.getKey()andSequentialCursor.getValue()after this method returns is undefined.- Specified by:
deletein interfaceSequentialCursor<K,V>- Throws:
NoSuchElementException- if the cursor is not defined.UnsupportedOperationException- if the cursor implementation does not support updates.
-
close
public void close()
Description copied from interface:SequentialCursor- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein interfaceSequentialCursor<K,V>
-
-