All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sleepycat.persist.KeySelector Maven / Gradle / Ivy

The newest version!
/*-
 * Copyright (C) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
 *
 * This file was distributed by Oracle as part of a version of Oracle Berkeley
 * DB Java Edition made available at:
 *
 * http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html
 *
 * Please see the LICENSE file included in the top-level directory of the
 * appropriate version of Oracle Berkeley DB Java Edition for a copy of the
 * license and additional information.
 */

package com.sleepycat.persist;

/**
 * This is package-private to hide it until we implemented unsorted access.
 *
 * Implemented to select keys to be returned by an unsorted {@code
 * ForwardCursor}.
 *
 * 

The reason for implementing a selector, rather than filtering the objects * returned by the {@link ForwardCursor}, is to improve performance when not * all keys are to be processed. Keys are passed to this interface without * retrieving record data or locking, so it is less expensive to return false * from this method than to retrieve the object from the cursor.

* * see EntityIndex#unsortedKeys * see EntityIndex#unsortedEntities * * @author Mark Hayes */ interface KeySelector { /** * Returns whether a given key should be returned via the cursor. * *

This method should not assume that the given key is for a committed * record or not, nor should it assume that the key will be returned via * the cursor if this method returns true. The record for this key will * not be locked until this method returns. If, when the record is locked, * the record is found to be uncommitted or deleted, the key will not be * returned via the cursor.

*/ boolean selectKey(K key); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy