net.didion.jwnl.util
Class TypeCheckingList

java.lang.Object
  extended bynet.didion.jwnl.util.TypeCheckingList
All Implemented Interfaces:
java.lang.Cloneable, java.util.Collection, DeepCloneable, java.util.List
Direct Known Subclasses:
PointerTargetNodeList, RelationshipList

public class TypeCheckingList
extends java.lang.Object
implements java.util.List, DeepCloneable

Wrapper for a list that checks the type of arguments before putting them in the list. It also does type-checking on methods which iterate over the list so that they fail fast if the argument is not of the correct type.


Nested Class Summary
 class TypeCheckingList.TypeCheckingListIterator
           
 
Constructor Summary
  TypeCheckingList(java.lang.Class type)
           
  TypeCheckingList(java.util.List backingList, java.lang.Class type)
           
protected TypeCheckingList(java.util.List backingList, java.lang.Class type, java.lang.Class parentType)
          Create a new Type checking list that checks for type type, but only if parentType is equal to, a super class/interface of, or an interface implemented by type.
 
Method Summary
 void add(int index, java.lang.Object o)
           
 boolean add(java.lang.Object o)
           
 boolean addAll(java.util.Collection c)
           
 boolean addAll(int index, java.util.Collection c)
           
 void clear()
           
 java.lang.Object clone()
          Create a shallow clone of the object
 boolean contains(java.lang.Object o)
           
 boolean containsAll(java.util.Collection c)
           
protected  java.util.List copyBackingList()
          Make a copy of the wrapped list - used by subclasses when the overriding the clone method
 java.lang.Object deepClone()
          Create a deep clone of the object
 boolean equals(java.lang.Object obj)
           
 java.lang.Object get(int index)
           
 java.lang.Class getType()
           
protected  TypeCheckingList.TypeCheckingListIterator getTypeCheckingListIterator()
           
protected  TypeCheckingList.TypeCheckingListIterator getTypeCheckingListIterator(int index)
           
 int indexOf(java.lang.Object o)
           
 boolean isEmpty()
           
 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)
           
 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
finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.util.List
hashCode
 

Constructor Detail

TypeCheckingList

public TypeCheckingList(java.lang.Class type)

TypeCheckingList

public TypeCheckingList(java.util.List backingList,
                        java.lang.Class type)

TypeCheckingList

protected TypeCheckingList(java.util.List backingList,
                           java.lang.Class type,
                           java.lang.Class parentType)
Create a new Type checking list that checks for type type, but only if parentType is equal to, a super class/interface of, or an interface implemented by type.

Method Detail

getType

public java.lang.Class getType()

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
Description copied from interface: DeepCloneable
Create a shallow clone of the object

Specified by:
clone in interface DeepCloneable
Throws:
java.lang.CloneNotSupportedException

copyBackingList

protected java.util.List copyBackingList()
                                  throws java.lang.CloneNotSupportedException
Make a copy of the wrapped list - used by subclasses when the overriding the clone method

Throws:
java.lang.CloneNotSupportedException

deepClone

public java.lang.Object deepClone()
                           throws java.lang.UnsupportedOperationException
Description copied from interface: DeepCloneable
Create a deep clone of the object

Specified by:
deepClone in interface DeepCloneable
Throws:
java.lang.UnsupportedOperationException

equals

public boolean equals(java.lang.Object obj)
Specified by:
equals in interface java.util.List

add

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

add

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

addAll

public boolean addAll(java.util.Collection c)
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

contains

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

containsAll

public boolean containsAll(java.util.Collection c)
Specified by:
containsAll 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

indexOf

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

lastIndexOf

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

remove

public boolean remove(java.lang.Object o)
Specified by:
remove 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

getTypeCheckingListIterator

protected TypeCheckingList.TypeCheckingListIterator getTypeCheckingListIterator()

getTypeCheckingListIterator

protected TypeCheckingList.TypeCheckingListIterator getTypeCheckingListIterator(int index)

size

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

isEmpty

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

iterator

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

toArray

public java.lang.Object[] toArray()
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.List

removeAll

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

retainAll

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

clear

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

get

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

remove

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

subList

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



JWNL homepage.