org.apache.cayenne.remote

## Class RemoteIncrementalFaultList

- java.lang.Object
- - org.apache.cayenne.remote.RemoteIncrementalFaultList

- All Implemented Interfaces:
    Iterable, Collection, List

      public class RemoteIncrementalFaultList
      extends Object
      implements List

  A list that serves as a container of Persistent objects. It is usually returned by an ObjectContext when a paginated query is performed. Initially only the first "page" of objects is fully resolved. Pages following the first page are resolved on demand. When a list element is accessed, the list would ensure that this element as well as all its siblings on the same page are fully resolved.

  The list can hold DataRows or Persistent objects. Attempts to add any other object types will result in an exception.

  Certain operations like `toArray` would trigger full list fetch.

  Synchronization Note: this list is not synchronized. All access to it should follow synchronization rules applicable for ArrayList.

  Since:
    1.2

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected String` | `cacheKey`
    `protected ObjectContext` | `context`
    `protected List` | `elements`
    `protected int` | `pageSize`
    `protected Query` | `paginatedQuery`
    `protected int` | `rowWidth` Stores a hint allowing to distinguish data rows from unfetched ids when the query fetches data rows.
    `protected int` | `unfetchedObjects`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `RemoteIncrementalFaultList(ObjectContext context, Query paginatedQuery)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(int index, Object element)`
    `boolean` | `add(Object o)`
    `boolean` | `addAll(Collection c)`
    `boolean` | `addAll(int index, Collection c)`
    `void` | `clear()`
    `boolean` | `contains(Object o)`
    `boolean` | `containsAll(Collection c)`
    `Object` | `get(int index)`
    `ObjectContext` | `getContext()` Returns ObjectContext associated with this list.
    `int` | `getPageSize()` Returns the pageSize.
    `int` | `getUnfetchedObjects()` Returns a total number of objects that are not resolved yet.
    `int` | `indexOf(Object o)`
    `boolean` | `isEmpty()`
    `Iterator` | `iterator()` Return an iterator for this list.
    `int` | `lastIndexOf(Object o)`
    `ListIterator` | `listIterator()` Returns a list iterator for this list.
    `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)`
    `boolean` | `remove(Object o)`
    `boolean` | `removeAll(Collection c)`
    `void` | `resolveAll()` Will resolve all unread objects.
    `protected void` | `resolveInterval(int fromIndex, int toIndex)` Resolves a sublist of objects starting at `fromIndex` up to but not including `toIndex`.
    `boolean` | `retainAll(Collection c)`
    `Object` | `set(int index, Object element)`
    `int` | `size()`
    `List` | `subList(int fromIndex, int toIndex)`
    `Object[]` | `toArray()`
    `Object[]` | `toArray(Object[] a)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface java.util.List

      `equals, hashCode, replaceAll, sort, spliterator`

    - ### Methods inherited from interface java.util.Collection

      `parallelStream, removeIf, stream`

    - ### Methods inherited from interface java.lang.Iterable

      `forEach`

- - ### Field Detail

    - #### elements

          protected List elements

    - #### cacheKey

          protected String cacheKey

    - #### pageSize

          protected int pageSize

    - #### unfetchedObjects

          protected int unfetchedObjects

    - #### paginatedQuery

          protected Query paginatedQuery

    - #### context

          protected transient ObjectContext context

    - #### rowWidth

          protected int rowWidth

      Stores a hint allowing to distinguish data rows from unfetched ids when the query fetches data rows.

  - ### Constructor Detail

    - #### RemoteIncrementalFaultList

          public RemoteIncrementalFaultList(ObjectContext context,
                                            Query paginatedQuery)

  - ### Method Detail

    - #### resolveAll

          public void resolveAll()

      Will resolve all unread objects.

    - #### resolveInterval

          protected void resolveInterval(int fromIndex,
                                         int toIndex)

      Resolves a sublist of objects starting at `fromIndex` up to but not including `toIndex`. Internally performs bound checking and trims indexes accordingly.

    - #### getContext

          public ObjectContext getContext()

      Returns ObjectContext associated with this list.

    - #### getPageSize

          public int getPageSize()

      Returns the pageSize.
      Returns:
        int

    - #### listIterator

          public ListIterator listIterator()

      Returns a list iterator for this list. DataObjects are resolved a page (according to getPageSize()) at a time as necessary - when retrieved with next() or previous().
      Specified by:
        `listIterator` in interface `List`

    - #### 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 specified index indicates the first element that would be returned by an initial call to the next method. An initial call to the previous method would return the element with the specified index minus one. DataObjects are resolved a page at a time (according to getPageSize()) as necessary - when retrieved with next() or previous().
      Specified by:
        `listIterator` in interface `List`

    - #### iterator

          public Iterator iterator()

      Return an iterator for this list. DataObjects are resolved a page (according to getPageSize()) at a time as necessary - when retrieved with next().
      Specified by:
        `iterator` in interface `Iterable`
      Specified by:
        `iterator` in interface `Collection`
      Specified by:
        `iterator` in interface `List`

    - #### add

          public void add(int index,
                          Object element)

      Specified by:
        `add` in interface `List`
      See Also:
        `List.add(int, Object)`

    - #### add

          public boolean add(Object o)

      Specified by:
        `add` in interface `Collection`
      Specified by:
        `add` in interface `List`
      See Also:
        `Collection.add(Object)`

    - #### addAll

          public boolean addAll(Collection c)

      Specified by:
        `addAll` in interface `Collection`
      Specified by:
        `addAll` in interface `List`
      See Also:
        `Collection.addAll(Collection)`

    - #### addAll

          public boolean addAll(int index,
                                Collection c)

      Specified by:
        `addAll` in interface `List`
      See Also:
        `List.addAll(int, Collection)`

    - #### clear

          public void clear()

      Specified by:
        `clear` in interface `Collection`
      Specified by:
        `clear` in interface `List`
      See Also:
        `Collection.clear()`

    - #### contains

          public boolean contains(Object o)

      Specified by:
        `contains` in interface `Collection`
      Specified by:
        `contains` in interface `List`
      See Also:
        `Collection.contains(Object)`

    - #### containsAll

          public boolean containsAll(Collection c)

      Specified by:
        `containsAll` in interface `Collection`
      Specified by:
        `containsAll` in interface `List`
      See Also:
        `Collection.containsAll(Collection)`

    - #### get

          public Object get(int index)

      Specified by:
        `get` in interface `List`
      See Also:
        `List.get(int)`

    - #### indexOf

          public int indexOf(Object o)

      Specified by:
        `indexOf` in interface `List`
      See Also:
        `List.indexOf(Object)`

    - #### isEmpty

          public boolean isEmpty()

      Specified by:
        `isEmpty` in interface `Collection`
      Specified by:
        `isEmpty` in interface `List`
      See Also:
        `Collection.isEmpty()`

    - #### lastIndexOf

          public int lastIndexOf(Object o)

      Specified by:
        `lastIndexOf` in interface `List`
      See Also:
        `List.lastIndexOf(Object)`

    - #### remove

          public Object remove(int index)

      Specified by:
        `remove` in interface `List`
      See Also:
        `List.remove(int)`

    - #### remove

          public boolean remove(Object o)

      Specified by:
        `remove` in interface `Collection`
      Specified by:
        `remove` in interface `List`
      See Also:
        `Collection.remove(Object)`

    - #### removeAll

          public boolean removeAll(Collection c)

      Specified by:
        `removeAll` in interface `Collection`
      Specified by:
        `removeAll` in interface `List`
      See Also:
        `Collection.removeAll(Collection)`

    - #### retainAll

          public boolean retainAll(Collection c)

      Specified by:
        `retainAll` in interface `Collection`
      Specified by:
        `retainAll` in interface `List`
      See Also:
        `Collection.retainAll(Collection)`

    - #### set

          public Object set(int index,
                            Object element)

      Specified by:
        `set` in interface `List`
      See Also:
        `List.set(int, Object)`

    - #### size

          public int size()

      Specified by:
        `size` in interface `Collection`
      Specified by:
        `size` in interface `List`
      See Also:
        `Collection.size()`

    - #### subList

          public List subList(int fromIndex,
                              int toIndex)

      Specified by:
        `subList` in interface `List`

    - #### toArray

          public Object[] toArray()

      Specified by:
        `toArray` in interface `Collection`
      Specified by:
        `toArray` in interface `List`

    - #### toArray

          public Object[] toArray(Object[] a)

      Specified by:
        `toArray` in interface `Collection`
      Specified by:
        `toArray` in interface `List`
      See Also:
        `Collection.toArray(Object[])`

    - #### getUnfetchedObjects

          public int getUnfetchedObjects()

      Returns a total number of objects that are not resolved yet.

Copyright © 2001–2023 Apache Cayenne. All rights reserved.