Package org.springframework.util
Class AutoPopulatingList<E>
- java.lang.Object
- org.springframework.util.AutoPopulatingList<E>
- All Implemented Interfaces:
Serializable
,Iterable<E>
,Collection<E>
,List<E>
public class AutoPopulatingList<E> extends Object implements List<E>, Serializable
SimpleList
wrapper class that allows for elements to be automatically populated as they are requested. This is particularly useful for data binding toLists
, allowing for elements to be created and added to theList
in a "just in time" fashion.Note: This class is not thread-safe. To create a thread-safe version, use the
Collections.synchronizedList(java.util.List<T>)
utility methods.Inspired by
LazyList
from Commons Collections.- Since:
- 2.0
- Author:
- Rob Harrop, Juergen Hoeller
- See Also:
- Serialized Form
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
AutoPopulatingList.ElementFactory<E>
Factory interface for creating elements for an index-based access data structure such as aList
.static class
AutoPopulatingList.ElementInstantiationException
Exception to be thrown from ElementFactory.
Constructor Summary
Constructors Constructor Description AutoPopulatingList(Class<? extends E> elementClass)
Creates a newAutoPopulatingList
that is backed by a standardArrayList
and adds new instances of the suppliedelement Class
to the backingList
on demand.AutoPopulatingList(List<E> backingList, Class<? extends E> elementClass)
Creates a newAutoPopulatingList
that is backed by the suppliedList
and adds new instances of the suppliedelement Class
to the backingList
on demand.AutoPopulatingList(List<E> backingList, AutoPopulatingList.ElementFactory<E> elementFactory)
Creates a newAutoPopulatingList
that is backed by the suppliedList
and creates new elements on demand using the suppliedAutoPopulatingList.ElementFactory
.AutoPopulatingList(AutoPopulatingList.ElementFactory<E> elementFactory)
Creates a newAutoPopulatingList
that is backed by a standardArrayList
and creates new elements on demand using the suppliedAutoPopulatingList.ElementFactory
.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(int index, E element)
boolean
add(E o)
boolean
addAll(int index, Collection<? extends E> c)
boolean
addAll(Collection<? extends E> c)
void
clear()
boolean
contains(Object o)
boolean
containsAll(Collection<?> c)
boolean
equals(Object other)
E
get(int index)
Get the element at the supplied index, creating it if there is no element at that index.int
hashCode()
int
indexOf(Object o)
boolean
isEmpty()
Iterator<E>
iterator()
int
lastIndexOf(Object o)
ListIterator<E>
listIterator()
ListIterator<E>
listIterator(int index)
E
remove(int index)
boolean
remove(Object o)
boolean
removeAll(Collection<?> c)
boolean
retainAll(Collection<?> c)
E
set(int index, E element)
int
size()
List<E>
subList(int fromIndex, int toIndex)
Object[]
toArray()
<T> T[]
toArray(T[] a)
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream, toArray
Methods inherited from interface java.util.List
replaceAll, sort, spliterator
Constructor Detail
AutoPopulatingList
public AutoPopulatingList(Class<? extends E> elementClass)
Creates a newAutoPopulatingList
that is backed by a standardArrayList
and adds new instances of the suppliedelement Class
to the backingList
on demand.
AutoPopulatingList
public AutoPopulatingList(List<E> backingList, Class<? extends E> elementClass)
Creates a newAutoPopulatingList
that is backed by the suppliedList
and adds new instances of the suppliedelement Class
to the backingList
on demand.
AutoPopulatingList
public AutoPopulatingList(AutoPopulatingList.ElementFactory<E> elementFactory)
Creates a newAutoPopulatingList
that is backed by a standardArrayList
and creates new elements on demand using the suppliedAutoPopulatingList.ElementFactory
.
AutoPopulatingList
public AutoPopulatingList(List<E> backingList, AutoPopulatingList.ElementFactory<E> elementFactory)
Creates a newAutoPopulatingList
that is backed by the suppliedList
and creates new elements on demand using the suppliedAutoPopulatingList.ElementFactory
.
Method Detail
addAll
public boolean addAll(Collection<? extends E> c)
addAll
public boolean addAll(int index, Collection<? extends E> c)
clear
public void clear()
containsAll
public boolean containsAll(Collection<?> c)
- Specified by:
containsAll
in interfaceCollection<E>
- Specified by:
containsAll
in interfaceList<E>
get
public E get(int index)
Get the element at the supplied index, creating it if there is no element at that index.
isEmpty
public boolean isEmpty()
lastIndexOf
public int lastIndexOf(Object o)
- Specified by:
lastIndexOf
in interfaceList<E>
listIterator
public ListIterator<E> listIterator()
- Specified by:
listIterator
in interfaceList<E>
listIterator
public ListIterator<E> listIterator(int index)
- Specified by:
listIterator
in interfaceList<E>
removeAll
public boolean removeAll(Collection<?> c)
retainAll
public boolean retainAll(Collection<?> c)
size
public int size()
toArray
public <T> T[] toArray(T[] a)