org.apache.cayenne.remote
Class RemoteIncrementalFaultList

java.lang.Object
  extended by 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
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
RemoteIncrementalFaultList(ObjectContext context, Query paginatedQuery)
           
 
Method Summary
 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
 

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-2011 Apache Cayenne. All Rights Reserved.