Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Berkeley DB version 4.3.29
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.sleepycat.collections
Class StoredList

    java.lang.Object
      com.sleepycat.collections.StoredContainer
          com.sleepycat.collections.StoredCollection
              com.sleepycat.collections.StoredList

All Implemented Interfaces:
  Cloneable, Collection, List

public class StoredList
extends StoredCollection
implements List

A List view of a `Database`.

For all stored lists the keys of the underlying Database must have record number format, and therefore the store or index must be a RECNO, RECNO-RENUMBER, QUEUE, or BTREE-RECNUM database. Only RECNO-RENUMBER allows true list behavior where record numbers are renumbered following the position of an element that is added or removed. For the other access methods (RECNO, QUEUE, and BTREE-RECNUM), stored Lists are most useful as read-only collections where record numbers are not required to be sequential.

Note that this class does not conform to the standard Java collections interface in the following ways:

- The `StoredContainer.size()` method always throws `UnsupportedOperationException` because, for performance reasons, databases do not maintain their total record count.
- All iterators must be explicitly closed using `StoredIterator.close()` or `StoredIterator.close(java.util.Iterator)` to release the underlying database cursor resources.

In addition to the standard List methods, this class provides the following methods for stored lists only. Note that the use of these methods is not compatible with the standard Java collections interface.

- `append(Object)`

Constructor Summary
`StoredList(Database database, EntityBinding valueEntityBinding, boolean writeAllowed)` Creates a list entity view of a `Database`.
`StoredList(Database database, EntityBinding valueEntityBinding, PrimaryKeyAssigner keyAssigner)` Creates a list entity view of a `Database` with a `PrimaryKeyAssigner`.
`StoredList(Database database, EntryBinding valueBinding, boolean writeAllowed)` Creates a list view of a `Database`.
`StoredList(Database database, EntryBinding valueBinding, PrimaryKeyAssigner keyAssigner)` Creates a list view of a `Database` with a `PrimaryKeyAssigner`.

Method Summary
`void` | `add(int index, Object value)` Inserts the specified element at the specified position in this list (optional operation).
`boolean` | `add(Object value)` Appends the specified element to the end of this list (optional operation).
`boolean` | `addAll(int index, Collection coll)` Inserts all of the elements in the specified collection into this list at the specified position (optional operation).
`int` | `append(Object value)` Appends a given value returning the newly assigned index.
`boolean` | `contains(Object value)` Returns true if this list contains the specified element.
`boolean` | `equals(Object other)` Compares the specified object with this list for equality.
`Object` | `get(int index)` Returns the element at the specified position in this list.
`int` | `hashCode()`
`int` | `indexOf(Object value)` Returns the index in this list of the first occurrence of the specified element, or -1 if this list does not contain this element.
`int` | `lastIndexOf(Object value)` Returns the index in this list of the last occurrence of the specified element, or -1 if this list does not contain this element.
`ListIterator` | `listIterator()` Returns a list iterator of the elements in this list (in proper sequence).
`ListIterator` | `listIterator(int index)` Returns a list iterator of the elements in this list (in proper sequence), starting at the specified position in this list.
`Object` | `remove(int index)` Removes the element at the specified position in this list (optional operation).
`boolean` | `remove(Object value)` Removes the first occurrence in this list of the specified element (optional operation).
`Object` | `set(int index, Object value)` Replaces the element at the specified position in this list with the specified element (optional operation).
`List` | `subList(int fromIndex, int toIndex)` Returns a view of the portion of this list between the specified fromIndex, inclusive, and toIndex, exclusive.

Methods inherited from class com.sleepycat.collections.StoredCollection
`addAll, containsAll, iterator, iterator, join, removeAll, retainAll, toArray, toArray, toList, toString`

Methods inherited from class com.sleepycat.collections.StoredContainer
`areDuplicatesAllowed, areDuplicatesOrdered, areKeysRenumbered, clear, isDirtyRead, isDirtyReadAllowed, isEmpty, isOrdered, isSecondary, isTransactional, isWriteAllowed, size`

Methods inherited from class java.lang.Object
`getClass, notify, notifyAll, wait, wait, wait`

Methods inherited from interface java.util.List
`addAll, clear, containsAll, isEmpty, iterator, removeAll, retainAll, size, toArray, toArray`

Constructor Detail

### StoredList

    public StoredList(Database database,
                      EntryBinding valueBinding,
                      boolean writeAllowed)

  Creates a list view of a `Database`.

Parameters:
  `database` - is the Database underlying the new collection.
  `valueBinding` - is the binding used to translate between value buffers and value objects.
  `writeAllowed` - is true to create a read-write collection or false to create a read-only collection.
Throws:
  `IllegalArgumentException` - if formats are not consistently defined or a parameter is invalid.
  `RuntimeExceptionWrapper` - if a `DatabaseException` is thrown.

### StoredList

    public StoredList(Database database,
                      EntityBinding valueEntityBinding,
                      boolean writeAllowed)

  Creates a list entity view of a `Database`.

Parameters:
  `database` - is the Database underlying the new collection.
  `valueEntityBinding` - is the binding used to translate between key/value buffers and entity value objects.
  `writeAllowed` - is true to create a read-write collection or false to create a read-only collection.
Throws:
  `IllegalArgumentException` - if formats are not consistently defined or a parameter is invalid.
  `RuntimeExceptionWrapper` - if a `DatabaseException` is thrown.

### StoredList

    public StoredList(Database database,
                      EntryBinding valueBinding,
                      PrimaryKeyAssigner keyAssigner)

  Creates a list view of a `Database` with a `PrimaryKeyAssigner`. Writing is allowed for the created list.

Parameters:
  `database` - is the Database underlying the new collection.
  `valueBinding` - is the binding used to translate between value buffers and value objects.
  `keyAssigner` - is used by the `add(int, java.lang.Object)` and `append(java.lang.Object)` methods to assign primary keys.
Throws:
  `IllegalArgumentException` - if formats are not consistently defined or a parameter is invalid.
  `RuntimeExceptionWrapper` - if a `DatabaseException` is thrown.

### StoredList

    public StoredList(Database database,
                      EntityBinding valueEntityBinding,
                      PrimaryKeyAssigner keyAssigner)

  Creates a list entity view of a `Database` with a `PrimaryKeyAssigner`. Writing is allowed for the created list.

Parameters:
  `database` - is the Database underlying the new collection.
  `valueEntityBinding` - is the binding used to translate between key/value buffers and entity value objects.
  `keyAssigner` - is used by the `add(int, java.lang.Object)` and `append(java.lang.Object)` methods to assign primary keys.
Throws:
  `IllegalArgumentException` - if formats are not consistently defined or a parameter is invalid.
  `RuntimeExceptionWrapper` - if a `DatabaseException` is thrown.

Method Detail

### add

    public void add(int index,
                    Object value)

  Inserts the specified element at the specified position in this list (optional operation). This method conforms to the `List.add(int, Object)` interface.

  Specified by:
    `add` in interface `List`
  Throws:
    `UnsupportedOperationException` - if the collection is a sublist, or if the collection is indexed, or if the collection is read-only, or if the RECNO-RENUMBER access method was not used.
    `RuntimeExceptionWrapper` - if a `DatabaseException` is thrown.

### add

    public boolean add(Object value)

  Appends the specified element to the end of this list (optional operation). This method conforms to the `List.add(Object)` interface.

  Specified by:
    `add` in interface `List`
  Throws:
    `UnsupportedOperationException` - if the collection is a sublist, or if the collection is indexed, or if the collection is read-only, or if the RECNO-RENUMBER access method was not used.
    `RuntimeExceptionWrapper` - if a `DatabaseException` is thrown.

### append

    public int append(Object value)

  Appends a given value returning the newly assigned index. If a `PrimaryKeyAssigner` is associated with Store for this list, it will be used to assigned the returned index. Otherwise the Store must be a QUEUE or RECNO database and the next available record number is assigned as the index. This method does not exist in the standard `List` interface.

  Parameters:
    `value` - the value to be appended.
  Returns:
    the assigned index.
  Throws:
    `UnsupportedOperationException` - if the collection is indexed, or if the collection is read-only, or if the Store has no `PrimaryKeyAssigner` and is not a QUEUE or RECNO database.
    `RuntimeExceptionWrapper` - if a `DatabaseException` is thrown.

### addAll

    public boolean addAll(int index,
                          Collection coll)

  Inserts all of the elements in the specified collection into this list at the specified position (optional operation). This method conforms to the `List.addAll(int, Collection)` interface.

  Specified by:
    `addAll` in interface `List`
  Throws:
    `UnsupportedOperationException` - if the collection is a sublist, or if the collection is indexed, or if the collection is read-only, or if the RECNO-RENUMBER access method was not used.
    `RuntimeExceptionWrapper` - if a `DatabaseException` is thrown.

### contains

    public boolean contains(Object value)

  Returns true if this list contains the specified element. This method conforms to the `List.contains(java.lang.Object)` interface.

  Specified by:
    `contains` in interface `List`
  Throws:
    `RuntimeExceptionWrapper` - if a `DatabaseException` is thrown.

### get

    public Object get(int index)

  Returns the element at the specified position in this list. This method conforms to the `List.get(int)` interface.

  Specified by:
    `get` in interface `List`
  Throws:
    `RuntimeExceptionWrapper` - if a `DatabaseException` is thrown.

### indexOf

    public int indexOf(Object value)

  Returns the index in this list of the first occurrence of the specified element, or -1 if this list does not contain this element. This method conforms to the `List.indexOf(java.lang.Object)` interface.

  Specified by:
    `indexOf` in interface `List`
  Throws:
    `RuntimeExceptionWrapper` - if a `DatabaseException` is thrown.

### lastIndexOf

    public int lastIndexOf(Object value)

  Returns the index in this list of the last occurrence of the specified element, or -1 if this list does not contain this element. This method conforms to the `List.lastIndexOf(java.lang.Object)` interface.

  Specified by:
    `lastIndexOf` in interface `List`
  Throws:
    `RuntimeExceptionWrapper` - if a `DatabaseException` is thrown.

### listIterator

    public ListIterator listIterator()

  Returns a list iterator of the elements in this list (in proper sequence). The iterator will be read-only if the collection is read-only. This method conforms to the `List.listIterator()` interface.

  Specified by:
    `listIterator` in interface `List`
  Returns:
    a `StoredIterator` for this collection.
  Throws:
    `RuntimeExceptionWrapper` - if a `DatabaseException` is thrown.
  See Also:
    `StoredContainer.isWriteAllowed()`

### listIterator

    public ListIterator listIterator(int index)

  Returns a list iterator of the elements in this list (in proper sequence), starting at the specified position in this list. The iterator will be read-only if the collection is read-only. This method conforms to the `List.listIterator(int)` interface.

  Specified by:
    `listIterator` in interface `List`
  Returns:
    a `StoredIterator` for this collection.
  Throws:
    `RuntimeExceptionWrapper` - if a `DatabaseException` is thrown.
  See Also:
    `StoredContainer.isWriteAllowed()`

### remove

    public Object remove(int index)

  Removes the element at the specified position in this list (optional operation). This method conforms to the `List.remove(int)` interface.

  Specified by:
    `remove` in interface `List`
  Throws:
    `UnsupportedOperationException` - if the collection is a sublist, or if the collection is read-only.
    `RuntimeExceptionWrapper` - if a `DatabaseException` is thrown.

### remove

    public boolean remove(Object value)

  Removes the first occurrence in this list of the specified element (optional operation). This method conforms to the `List.remove(Object)` interface.

  Specified by:
    `remove` in interface `List`
  Throws:
    `UnsupportedOperationException` - if the collection is a sublist, or if the collection is read-only.
    `RuntimeExceptionWrapper` - if a `DatabaseException` is thrown.

### set

    public Object set(int index,
                      Object value)

  Replaces the element at the specified position in this list with the specified element (optional operation). This method conforms to the `List.set(int, java.lang.Object)` interface.

  Specified by:
    `set` in interface `List`
  Throws:
    `UnsupportedOperationException` - if the collection is indexed, or if the collection is read-only.
    `IllegalArgumentException` - if an entity value binding is used and the primary key of the value given is different than the existing stored primary key.
    `RuntimeExceptionWrapper` - if a `DatabaseException` is thrown.

### subList

    public List subList(int fromIndex,
                        int toIndex)

  Returns a view of the portion of this list between the specified fromIndex, inclusive, and toIndex, exclusive. Note that add() and remove() may not be called for the returned sublist. This method conforms to the `List.subList(int, int)` interface.

  Specified by:
    `subList` in interface `List`
  Throws:
    `RuntimeExceptionWrapper` - if a `DatabaseException` is thrown.

### equals

    public boolean equals(Object other)

  Compares the specified object with this list for equality. A value comparison is performed by this method and the stored values are compared rather than calling the equals() method of each element. This method conforms to the `List.equals(java.lang.Object)` interface.

  Specified by:
    `equals` in interface `List`
  Overrides:
    `equals` in class `StoredCollection`
  Throws:
    `RuntimeExceptionWrapper` - if a `DatabaseException` is thrown.

### hashCode

    public int hashCode()

  Specified by:
    `hashCode` in interface `List`
  Overrides:
    `hashCode` in class `StoredCollection`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Berkeley DB version 4.3.29
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright (c) 1996-2004 Sleepycat Software, Inc. - All rights reserved.