org.jibx.util
Class LazyList

java.lang.Object
  extended by java.util.AbstractCollection<E>
      extended by java.util.AbstractList
          extended by org.jibx.util.LazyList
All Implemented Interfaces:
Iterable, Collection, List

public class LazyList
extends AbstractList

List implementation with lazy array construction and modification tracking. The lazy array construction is a minor optimization, to save the added overhead of a backing array for lists which are frequently empty. The modification tracking feature supports filtered list construction with result caching.

Author:
Dennis M. Sosnoski

Field Summary
static Iterator EMPTY_ITERATOR
          Singleton iterator for empty collection.
static LazyList EMPTY_LIST
          Unmodifiable empty list instance.
 
Fields inherited from class java.util.AbstractList
modCount
 
Constructor Summary
LazyList()
           
 
Method Summary
 void add(int index, Object element)
           
 void compact()
          Compact the list, removing any null values.
 Object get(int index)
           
 int getModCount()
          Get modify counter.
 Iterator iterator()
           
 Object remove(int index)
           
 void remove(int from, int to)
          Remove range of values.
protected  void removeRange(int from, int to)
           
 Object set(int index, Object element)
           
 int size()
           
 
Methods inherited from class java.util.AbstractList
add, addAll, clear, equals, hashCode, indexOf, lastIndexOf, listIterator, listIterator, subList
 
Methods inherited from class java.util.AbstractCollection
addAll, contains, containsAll, isEmpty, remove, removeAll, retainAll, toArray, toArray, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.List
addAll, contains, containsAll, isEmpty, remove, removeAll, retainAll, toArray, toArray
 

Field Detail

EMPTY_ITERATOR

public static final Iterator EMPTY_ITERATOR
Singleton iterator for empty collection.


EMPTY_LIST

public static final LazyList EMPTY_LIST
Unmodifiable empty list instance.

Constructor Detail

LazyList

public LazyList()
Method Detail

get

public Object get(int index)
Specified by:
get in interface List
Specified by:
get in class AbstractList

size

public int size()
Specified by:
size in interface Collection
Specified by:
size in interface List
Specified by:
size in class AbstractCollection

add

public void add(int index,
                Object element)
Specified by:
add in interface List
Overrides:
add in class AbstractList

iterator

public Iterator iterator()
Specified by:
iterator in interface Iterable
Specified by:
iterator in interface Collection
Specified by:
iterator in interface List
Overrides:
iterator in class AbstractList

remove

public Object remove(int index)
Specified by:
remove in interface List
Overrides:
remove in class AbstractList

set

public Object set(int index,
                  Object element)
Specified by:
set in interface List
Overrides:
set in class AbstractList

removeRange

protected void removeRange(int from,
                           int to)
Overrides:
removeRange in class AbstractList

getModCount

public int getModCount()
Get modify counter. This supports tracking changes to determine when cached filters need to be updated.

Returns:
count

remove

public void remove(int from,
                   int to)
Remove range of values. This is just a public version of the protected base class method removeRange(int, int)

Parameters:
from -
to -

compact

public void compact()
Compact the list, removing any null values.



Copyright © 2005-2011 jibx.org. All Rights Reserved.