org.jboss.dna.common.collection
Class ImmutableAppendedList<T>

java.lang.Object
  extended by org.jboss.dna.common.collection.ImmutableAppendedList<T>
Type Parameters:
T - the type of element
All Implemented Interfaces:
Iterable<T>, Collection<T>, List<T>

@Immutable
public class ImmutableAppendedList<T>
extends Object
implements List<T>

An immutable List that consists of a single element appended to another existing List. The result is a list that contains all of the elements in the parent list as well as the last appended element, but while reusing the existing parent list and without having to create a copy of the parent list.


Constructor Summary
ImmutableAppendedList(List<T> parent, T element)
          Create an instance using the supplied parent list and an element to be virtually appended to the parent.
 
Method Summary
 void add(int index, T element)
          
 boolean add(T o)
          
 boolean addAll(Collection<? extends T> c)
          
 boolean addAll(int index, Collection<? extends T> c)
          
 void clear()
          
 boolean contains(Object o)
          
 boolean containsAll(Collection<?> c)
          
 boolean equals(Object obj)
          
 T get(int index)
          
 int hashCode()
          
 int indexOf(Object o)
          
 boolean isEmpty()
          
 Iterator<T> iterator()
          
 int lastIndexOf(Object o)
          
 ListIterator<T> listIterator()
          
 ListIterator<T> listIterator(int index)
          
 T remove(int index)
          
 boolean remove(Object o)
          
 boolean removeAll(Collection<?> c)
          
 boolean retainAll(Collection<?> c)
          
 T set(int index, T element)
          
 int size()
          
 List<T> subList(int fromIndex, int toIndex)
          
 Object[] toArray()
          
<X> X[]
toArray(X[] a)
          
 String toString()
          
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ImmutableAppendedList

public ImmutableAppendedList(List<T> parent,
                             T element)
Create an instance using the supplied parent list and an element to be virtually appended to the parent. Note that the parent must be immutable (though this is not checked).

Parameters:
parent - the parent list
element - the child element (may be null)
Throws:
IllegalArgumentException - if the reference to the parent list is null
Method Detail

contains

public boolean contains(Object o)

Specified by:
contains in interface Collection<T>
Specified by:
contains in interface List<T>
See Also:
List.contains(java.lang.Object)

containsAll

public boolean containsAll(Collection<?> c)

Specified by:
containsAll in interface Collection<T>
Specified by:
containsAll in interface List<T>
See Also:
List.containsAll(java.util.Collection)

get

public T get(int index)

Specified by:
get in interface List<T>
See Also:
List.get(int)

indexOf

public int indexOf(Object o)

Specified by:
indexOf in interface List<T>
See Also:
List.indexOf(java.lang.Object)

isEmpty

public boolean isEmpty()

Specified by:
isEmpty in interface Collection<T>
Specified by:
isEmpty in interface List<T>
See Also:
List.isEmpty()

iterator

public Iterator<T> iterator()

Specified by:
iterator in interface Iterable<T>
Specified by:
iterator in interface Collection<T>
Specified by:
iterator in interface List<T>
See Also:
List.iterator()

lastIndexOf

public int lastIndexOf(Object o)

Specified by:
lastIndexOf in interface List<T>
See Also:
List.lastIndexOf(java.lang.Object)

listIterator

public ListIterator<T> listIterator()

Specified by:
listIterator in interface List<T>
See Also:
List.listIterator()

listIterator

public ListIterator<T> listIterator(int index)

Specified by:
listIterator in interface List<T>
See Also:
List.listIterator(int)

size

public int size()

Specified by:
size in interface Collection<T>
Specified by:
size in interface List<T>
See Also:
List.size()

subList

public List<T> subList(int fromIndex,
                       int toIndex)

Specified by:
subList in interface List<T>
See Also:
List.subList(int, int)

toArray

public Object[] toArray()

Specified by:
toArray in interface Collection<T>
Specified by:
toArray in interface List<T>
See Also:
List.toArray()

toArray

public <X> X[] toArray(X[] a)

Specified by:
toArray in interface Collection<T>
Specified by:
toArray in interface List<T>
See Also:
java.util.List#toArray(T[])

hashCode

public int hashCode()

Specified by:
hashCode in interface Collection<T>
Specified by:
hashCode in interface List<T>
Overrides:
hashCode in class Object
See Also:
Object.hashCode()

equals

public boolean equals(Object obj)

Specified by:
equals in interface Collection<T>
Specified by:
equals in interface List<T>
Overrides:
equals in class Object
See Also:
Object.equals(java.lang.Object)

toString

public String toString()

Overrides:
toString in class Object
See Also:
Object.toString()

add

public void add(int index,
                T element)

Specified by:
add in interface List<T>
See Also:
List.add(int, Object)

add

public boolean add(T o)

Specified by:
add in interface Collection<T>
Specified by:
add in interface List<T>
See Also:
List.add(Object)

addAll

public boolean addAll(Collection<? extends T> c)

Specified by:
addAll in interface Collection<T>
Specified by:
addAll in interface List<T>
See Also:
List.addAll(java.util.Collection)

addAll

public boolean addAll(int index,
                      Collection<? extends T> c)

Specified by:
addAll in interface List<T>
See Also:
List.addAll(int, java.util.Collection)

clear

public void clear()

Specified by:
clear in interface Collection<T>
Specified by:
clear in interface List<T>
See Also:
List.clear()

remove

public boolean remove(Object o)

Specified by:
remove in interface Collection<T>
Specified by:
remove in interface List<T>
See Also:
List.remove(java.lang.Object)

remove

public T remove(int index)

Specified by:
remove in interface List<T>
See Also:
List.remove(int)

removeAll

public boolean removeAll(Collection<?> c)

Specified by:
removeAll in interface Collection<T>
Specified by:
removeAll in interface List<T>
See Also:
List.removeAll(java.util.Collection)

retainAll

public boolean retainAll(Collection<?> c)

Specified by:
retainAll in interface Collection<T>
Specified by:
retainAll in interface List<T>
See Also:
List.retainAll(java.util.Collection)

set

public T set(int index,
             T element)

Specified by:
set in interface List<T>
See Also:
List.set(int, java.lang.Object)


Copyright © 2008-2009 JBoss, a division of Red Hat. All Rights Reserved.