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 class
TypeCheckingList.TypeCheckingListIterator
-
Field Summary
Fields Modifier and Type Field Description private java.util.Collection
_lastCheckedCollection
private java.util.List
_list
private java.lang.Class
_type
-
Constructor Summary
Constructors Modifier Constructor Description 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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(int index, java.lang.Object o)
boolean
add(java.lang.Object o)
boolean
addAll(int index, java.util.Collection c)
boolean
addAll(java.util.Collection c)
void
clear()
java.lang.Object
clone()
Create a shallow clone of the objectboolean
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 methodjava.lang.Object
deepClone()
Create a deep clone of the objectboolean
equals(java.lang.Object obj)
java.lang.Object
get(int index)
private java.util.List
getList()
java.lang.Class
getType()
protected TypeCheckingList.TypeCheckingListIterator
getTypeCheckingListIterator()
protected TypeCheckingList.TypeCheckingListIterator
getTypeCheckingListIterator(int index)
int
indexOf(java.lang.Object o)
private void
init(java.util.List backingList, java.lang.Class type)
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)
private void
typecheck(java.lang.Object obj)
private void
typecheck(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.CloneNotSupportedException
Description copied from interface:DeepCloneable
Create a shallow clone of the object- Specified by:
clone
in interfaceDeepCloneable
- Overrides:
clone
in classjava.lang.Object
- 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 interfaceDeepCloneable
- Throws:
java.lang.UnsupportedOperationException
-
equals
public boolean equals(java.lang.Object obj)
- Specified by:
equals
in interfacejava.util.Collection
- Specified by:
equals
in interfacejava.util.List
- Overrides:
equals
in classjava.lang.Object
-
add
public boolean add(java.lang.Object o)
- Specified by:
add
in interfacejava.util.Collection
- Specified by:
add
in interfacejava.util.List
-
add
public void add(int index, java.lang.Object o)
- Specified by:
add
in interfacejava.util.List
-
addAll
public boolean addAll(java.util.Collection c)
- Specified by:
addAll
in interfacejava.util.Collection
- Specified by:
addAll
in interfacejava.util.List
-
addAll
public boolean addAll(int index, java.util.Collection c)
- Specified by:
addAll
in interfacejava.util.List
-
contains
public boolean contains(java.lang.Object o)
- Specified by:
contains
in interfacejava.util.Collection
- Specified by:
contains
in interfacejava.util.List
-
containsAll
public boolean containsAll(java.util.Collection c)
- Specified by:
containsAll
in interfacejava.util.Collection
- Specified by:
containsAll
in interfacejava.util.List
-
set
public java.lang.Object set(int index, java.lang.Object element)
- Specified by:
set
in interfacejava.util.List
-
indexOf
public int indexOf(java.lang.Object o)
- Specified by:
indexOf
in interfacejava.util.List
-
lastIndexOf
public int lastIndexOf(java.lang.Object o)
- Specified by:
lastIndexOf
in interfacejava.util.List
-
remove
public boolean remove(java.lang.Object o)
- Specified by:
remove
in interfacejava.util.Collection
- Specified by:
remove
in interfacejava.util.List
-
listIterator
public java.util.ListIterator listIterator()
- Specified by:
listIterator
in interfacejava.util.List
-
listIterator
public java.util.ListIterator listIterator(int index)
- Specified by:
listIterator
in interfacejava.util.List
-
getTypeCheckingListIterator
protected TypeCheckingList.TypeCheckingListIterator getTypeCheckingListIterator()
-
getTypeCheckingListIterator
protected TypeCheckingList.TypeCheckingListIterator getTypeCheckingListIterator(int index)
-
size
public int size()
- Specified by:
size
in interfacejava.util.Collection
- Specified by:
size
in interfacejava.util.List
-
isEmpty
public boolean isEmpty()
- Specified by:
isEmpty
in interfacejava.util.Collection
- Specified by:
isEmpty
in interfacejava.util.List
-
iterator
public java.util.Iterator iterator()
- Specified by:
iterator
in interfacejava.util.Collection
- Specified by:
iterator
in interfacejava.lang.Iterable
- Specified by:
iterator
in interfacejava.util.List
-
toArray
public java.lang.Object[] toArray()
- Specified by:
toArray
in interfacejava.util.Collection
- Specified by:
toArray
in interfacejava.util.List
-
toArray
public java.lang.Object[] toArray(java.lang.Object[] a)
- Specified by:
toArray
in interfacejava.util.Collection
- Specified by:
toArray
in interfacejava.util.List
-
removeAll
public boolean removeAll(java.util.Collection c)
- Specified by:
removeAll
in interfacejava.util.Collection
- Specified by:
removeAll
in interfacejava.util.List
-
retainAll
public boolean retainAll(java.util.Collection c)
- Specified by:
retainAll
in interfacejava.util.Collection
- Specified by:
retainAll
in interfacejava.util.List
-
clear
public void clear()
- Specified by:
clear
in interfacejava.util.Collection
- Specified by:
clear
in interfacejava.util.List
-
get
public java.lang.Object get(int index)
- Specified by:
get
in interfacejava.util.List
-
remove
public java.lang.Object remove(int index)
- Specified by:
remove
in interfacejava.util.List
-
subList
public java.util.List subList(int fromIndex, int toIndex)
- Specified by:
subList
in interfacejava.util.List
-
typecheck
private void typecheck(java.lang.Object obj)
-
typecheck
private void typecheck(java.util.Collection c)
-
-