Package net.didion.jwnl.util
Class TypeCheckingList
- java.lang.Object
-
- net.didion.jwnl.util.TypeCheckingList
-
- All Implemented Interfaces:
java.lang.Cloneable,java.lang.Iterable,java.util.Collection,java.util.List,DeepCloneable
- 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
Nested Classes Modifier and Type Class Description classTypeCheckingList.TypeCheckingListIterator
-
Field Summary
Fields Modifier and Type Field Description private java.util.Collection_lastCheckedCollectionprivate java.util.List_listprivate java.lang.Class_type
-
Constructor Summary
Constructors Modifier Constructor Description TypeCheckingList(java.lang.Class type)TypeCheckingList(java.util.List backingList, java.lang.Class type)protectedTypeCheckingList(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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(int index, java.lang.Object o)booleanadd(java.lang.Object o)booleanaddAll(int index, java.util.Collection c)booleanaddAll(java.util.Collection c)voidclear()java.lang.Objectclone()Create a shallow clone of the objectbooleancontains(java.lang.Object o)booleancontainsAll(java.util.Collection c)protected java.util.ListcopyBackingList()Make a copy of the wrapped list - used by subclasses when the overriding the clone methodjava.lang.ObjectdeepClone()Create a deep clone of the objectbooleanequals(java.lang.Object obj)java.lang.Objectget(int index)private java.util.ListgetList()java.lang.ClassgetType()protected TypeCheckingList.TypeCheckingListIteratorgetTypeCheckingListIterator()protected TypeCheckingList.TypeCheckingListIteratorgetTypeCheckingListIterator(int index)intindexOf(java.lang.Object o)private voidinit(java.util.List backingList, java.lang.Class type)booleanisEmpty()java.util.Iteratoriterator()intlastIndexOf(java.lang.Object o)java.util.ListIteratorlistIterator()java.util.ListIteratorlistIterator(int index)java.lang.Objectremove(int index)booleanremove(java.lang.Object o)booleanremoveAll(java.util.Collection c)booleanretainAll(java.util.Collection c)java.lang.Objectset(int index, java.lang.Object element)intsize()java.util.ListsubList(int fromIndex, int toIndex)java.lang.Object[]toArray()java.lang.Object[]toArray(java.lang.Object[] a)private voidtypecheck(java.lang.Object obj)private voidtypecheck(java.util.Collection c)
-
-
-
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
-
init
private void init(java.util.List backingList, java.lang.Class type)
-
getType
public java.lang.Class getType()
-
getList
private java.util.List getList()
-
clone
public java.lang.Object clone() throws java.lang.CloneNotSupportedExceptionDescription copied from interface:DeepCloneableCreate a shallow clone of the object- Specified by:
clonein interfaceDeepCloneable- Overrides:
clonein classjava.lang.Object- Throws:
java.lang.CloneNotSupportedException
-
copyBackingList
protected java.util.List copyBackingList() throws java.lang.CloneNotSupportedExceptionMake 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.UnsupportedOperationExceptionDescription copied from interface:DeepCloneableCreate a deep clone of the object- Specified by:
deepClonein interfaceDeepCloneable- Throws:
java.lang.UnsupportedOperationException
-
equals
public boolean equals(java.lang.Object obj)
- Specified by:
equalsin interfacejava.util.Collection- Specified by:
equalsin interfacejava.util.List- Overrides:
equalsin classjava.lang.Object
-
add
public boolean add(java.lang.Object o)
- Specified by:
addin interfacejava.util.Collection- Specified by:
addin interfacejava.util.List
-
add
public void add(int index, java.lang.Object o)- Specified by:
addin interfacejava.util.List
-
addAll
public boolean addAll(java.util.Collection c)
- Specified by:
addAllin interfacejava.util.Collection- Specified by:
addAllin interfacejava.util.List
-
addAll
public boolean addAll(int index, java.util.Collection c)- Specified by:
addAllin interfacejava.util.List
-
contains
public boolean contains(java.lang.Object o)
- Specified by:
containsin interfacejava.util.Collection- Specified by:
containsin interfacejava.util.List
-
containsAll
public boolean containsAll(java.util.Collection c)
- Specified by:
containsAllin interfacejava.util.Collection- Specified by:
containsAllin interfacejava.util.List
-
set
public java.lang.Object set(int index, java.lang.Object element)- Specified by:
setin interfacejava.util.List
-
indexOf
public int indexOf(java.lang.Object o)
- Specified by:
indexOfin interfacejava.util.List
-
lastIndexOf
public int lastIndexOf(java.lang.Object o)
- Specified by:
lastIndexOfin interfacejava.util.List
-
remove
public boolean remove(java.lang.Object o)
- Specified by:
removein interfacejava.util.Collection- Specified by:
removein interfacejava.util.List
-
listIterator
public java.util.ListIterator listIterator()
- Specified by:
listIteratorin interfacejava.util.List
-
listIterator
public java.util.ListIterator listIterator(int index)
- Specified by:
listIteratorin interfacejava.util.List
-
getTypeCheckingListIterator
protected TypeCheckingList.TypeCheckingListIterator getTypeCheckingListIterator()
-
getTypeCheckingListIterator
protected TypeCheckingList.TypeCheckingListIterator getTypeCheckingListIterator(int index)
-
size
public int size()
- Specified by:
sizein interfacejava.util.Collection- Specified by:
sizein interfacejava.util.List
-
isEmpty
public boolean isEmpty()
- Specified by:
isEmptyin interfacejava.util.Collection- Specified by:
isEmptyin interfacejava.util.List
-
iterator
public java.util.Iterator iterator()
- Specified by:
iteratorin interfacejava.util.Collection- Specified by:
iteratorin interfacejava.lang.Iterable- Specified by:
iteratorin interfacejava.util.List
-
toArray
public java.lang.Object[] toArray()
- Specified by:
toArrayin interfacejava.util.Collection- Specified by:
toArrayin interfacejava.util.List
-
toArray
public java.lang.Object[] toArray(java.lang.Object[] a)
- Specified by:
toArrayin interfacejava.util.Collection- Specified by:
toArrayin interfacejava.util.List
-
removeAll
public boolean removeAll(java.util.Collection c)
- Specified by:
removeAllin interfacejava.util.Collection- Specified by:
removeAllin interfacejava.util.List
-
retainAll
public boolean retainAll(java.util.Collection c)
- Specified by:
retainAllin interfacejava.util.Collection- Specified by:
retainAllin interfacejava.util.List
-
clear
public void clear()
- Specified by:
clearin interfacejava.util.Collection- Specified by:
clearin interfacejava.util.List
-
get
public java.lang.Object get(int index)
- Specified by:
getin interfacejava.util.List
-
remove
public java.lang.Object remove(int index)
- Specified by:
removein interfacejava.util.List
-
subList
public java.util.List subList(int fromIndex, int toIndex)- Specified by:
subListin interfacejava.util.List
-
typecheck
private void typecheck(java.lang.Object obj)
-
typecheck
private void typecheck(java.util.Collection c)
-
-