org.datanucleus.store.query
Class AbstractLazyLoadList

java.lang.Object
  extended by org.datanucleus.store.query.AbstractLazyLoadList
All Implemented Interfaces:
java.lang.Iterable, java.util.Collection, java.util.List
Direct Known Subclasses:
AbstractCandidateLazyLoadList

public abstract class AbstractLazyLoadList
extends java.lang.Object
implements java.util.List

Abstract implementation of a lazy loaded list of (persistent) objects. Needs to be extended to implement the

retrieveObjectForIndex()
method to retrieve the object at the specified index from whatever datasource is being used, and to implement the
getSize()
method to return the size of the list. The "datasource" could be results for a query, or a connection to a datastore, or whatever ... just a source of objects. TODO Change Localised message numbers to be generic


Field Summary
protected static Localiser LOCALISER
          Localiser for messages.
protected  int size
          Cached size of the list.
 
Constructor Summary
AbstractLazyLoadList(java.lang.String cacheType)
          Constructor for a lazy load list.
 
Method Summary
 void add(int index, java.lang.Object element)
           
 boolean add(java.lang.Object e)
           
 boolean addAll(java.util.Collection c)
           
 boolean addAll(int index, java.util.Collection c)
           
 void clear()
           
 boolean contains(java.lang.Object o)
           
 boolean containsAll(java.util.Collection c)
           
 java.lang.Object get(int index)
           
protected abstract  int getSize()
          Method to return the size of the list.
 int indexOf(java.lang.Object o)
           
 boolean isEmpty()
           
protected  boolean isOpen()
          Accessor whether the list is open.
 java.util.Iterator iterator()
           
 int lastIndexOf(java.lang.Object o)
           
 java.util.ListIterator listIterator()
           
 java.util.ListIterator listIterator(int index)
           
 java.lang.Object remove(int index)
           
 boolean remove(java.lang.Object o)
           
 boolean removeAll(java.util.Collection c)
           
 boolean retainAll(java.util.Collection c)
           
protected abstract  java.lang.Object retrieveObjectForIndex(int index)
          Accessor to retrieve the object at an index.
 java.lang.Object set(int index, java.lang.Object element)
           
 int size()
           
 java.util.List subList(int fromIndex, int toIndex)
           
 java.lang.Object[] toArray()
           
 java.lang.Object[] toArray(java.lang.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

LOCALISER

protected static final Localiser LOCALISER
Localiser for messages.


size

protected int size
Cached size of the list. -1 when not known.

Constructor Detail

AbstractLazyLoadList

public AbstractLazyLoadList(java.lang.String cacheType)
Constructor for a lazy load list.

Parameters:
cacheType - Type of caching of objects in the list
Method Detail

retrieveObjectForIndex

protected abstract java.lang.Object retrieveObjectForIndex(int index)
Accessor to retrieve the object at an index. Is only called if the object is not currently cached.

Parameters:
index - The list index
Returns:
The object

getSize

protected abstract int getSize()
Method to return the size of the list.

Returns:
The size

isOpen

protected boolean isOpen()
Accessor whether the list is open. Always open in this implementation but can be overridden if you want to allow closure.

Returns:
Whether it is open.

add

public void add(int index,
                java.lang.Object element)
Specified by:
add in interface java.util.List

add

public boolean add(java.lang.Object e)
Specified by:
add in interface java.util.Collection
Specified by:
add in interface java.util.List

addAll

public boolean addAll(java.util.Collection c)
Specified by:
addAll in interface java.util.Collection
Specified by:
addAll in interface java.util.List

addAll

public boolean addAll(int index,
                      java.util.Collection c)
Specified by:
addAll in interface java.util.List

clear

public void clear()
Specified by:
clear in interface java.util.Collection
Specified by:
clear in interface java.util.List

contains

public boolean contains(java.lang.Object o)
Specified by:
contains in interface java.util.Collection
Specified by:
contains in interface java.util.List

containsAll

public boolean containsAll(java.util.Collection c)
Specified by:
containsAll in interface java.util.Collection
Specified by:
containsAll in interface java.util.List

get

public java.lang.Object get(int index)
Specified by:
get in interface java.util.List

indexOf

public int indexOf(java.lang.Object o)
Specified by:
indexOf in interface java.util.List

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface java.util.Collection
Specified by:
isEmpty in interface java.util.List

iterator

public java.util.Iterator iterator()
Specified by:
iterator in interface java.lang.Iterable
Specified by:
iterator in interface java.util.Collection
Specified by:
iterator in interface java.util.List

lastIndexOf

public int lastIndexOf(java.lang.Object o)
Specified by:
lastIndexOf in interface java.util.List

listIterator

public java.util.ListIterator listIterator()
Specified by:
listIterator in interface java.util.List

listIterator

public java.util.ListIterator listIterator(int index)
Specified by:
listIterator in interface java.util.List

remove

public java.lang.Object remove(int index)
Specified by:
remove in interface java.util.List

remove

public boolean remove(java.lang.Object o)
Specified by:
remove in interface java.util.Collection
Specified by:
remove in interface java.util.List

removeAll

public boolean removeAll(java.util.Collection c)
Specified by:
removeAll in interface java.util.Collection
Specified by:
removeAll in interface java.util.List

retainAll

public boolean retainAll(java.util.Collection c)
Specified by:
retainAll in interface java.util.Collection
Specified by:
retainAll in interface java.util.List

set

public java.lang.Object set(int index,
                            java.lang.Object element)
Specified by:
set in interface java.util.List

size

public int size()
Specified by:
size in interface java.util.Collection
Specified by:
size in interface java.util.List

subList

public java.util.List subList(int fromIndex,
                              int toIndex)
Specified by:
subList in interface java.util.List

toArray

public java.lang.Object[] toArray()
Specified by:
toArray in interface java.util.Collection
Specified by:
toArray in interface java.util.List

toArray

public java.lang.Object[] toArray(java.lang.Object[] a)
Specified by:
toArray in interface java.util.Collection
Specified by:
toArray in interface java.util.List


Copyright © 2010. All Rights Reserved.