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

com.sleepycat.persist.ForwardCursor 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;

import java.io.Closeable;
import java.util.Iterator;

import com.sleepycat.je.DatabaseException;
/*  */
import com.sleepycat.je.EnvironmentFailureException ; // for javadoc
/*  */
import com.sleepycat.je.LockMode;
/*  */
import com.sleepycat.je.OperationFailureException ; // for javadoc
/*  */

/**
 * Cursor operations limited to traversing forward.  See {@link EntityCursor}
 * for general information on cursors.
 *
 * 

{@code ForwardCursor} objects are not thread-safe. Cursors * should be opened, used and closed by a single thread.

* *

WARNING: Cursors must always be closed to prevent resource leaks * which could lead to the index becoming unusable or cause an * OutOfMemoryError. To ensure that a cursor is closed in the * face of exceptions, close it in a finally block.

* * @author Mark Hayes */ public interface ForwardCursor extends Iterable /* */ , Closeable /* */ { /** * Moves the cursor to the next value and returns it, or returns null * if there are no more values in the cursor range. If the cursor is * uninitialized, this method returns the first value. * *

{@link LockMode#DEFAULT} is used implicitly.

* * @return the next value, or null if there are no more values in the * cursor range. * * * @throws OperationFailureException if one of the Read Operation * Failures occurs. * * @throws EnvironmentFailureException if an unexpected, internal or * environment-wide failure occurs. * * * @throws DatabaseException the base class for all BDB exceptions. */ V next() throws DatabaseException; /** * Moves the cursor to the next value and returns it, or returns null * if there are no more values in the cursor range. If the cursor is * uninitialized, this method returns the first value. * * @param lockMode the lock mode to use for this operation, or null to * use {@link LockMode#DEFAULT}. * * @return the next value, or null if there are no more values in the * cursor range. * * * @throws OperationFailureException if one of the Read Operation * Failures occurs. * * @throws EnvironmentFailureException if an unexpected, internal or * environment-wide failure occurs. * * * @throws DatabaseException the base class for all BDB exceptions. */ V next(LockMode lockMode) throws DatabaseException; /** * Returns an iterator over the key range, starting with the value * following the current position or at the first value if the cursor is * uninitialized. * *

{@link LockMode#DEFAULT} is used implicitly.

* * @return the iterator. */ Iterator iterator(); /** * Returns an iterator over the key range, starting with the value * following the current position or at the first value if the cursor is * uninitialized. * * @param lockMode the lock mode to use for all operations performed * using the iterator, or null to use {@link LockMode#DEFAULT}. * * @return the iterator. */ Iterator iterator(LockMode lockMode); /** * Closes the cursor. * * @throws DatabaseException the base class for all BDB exceptions. */ void close() throws DatabaseException; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy