soot.util
Class HashChain

java.lang.Object
  extended byjava.util.AbstractCollection
      extended bysoot.util.HashChain
All Implemented Interfaces:
Chain, Collection, Serializable
Direct Known Subclasses:
IterableSet

public class HashChain
extends AbstractCollection
implements Chain

Reference implementation of the Chain interface, using a HashMap as the underlying structure.

See Also:
Serialized Form

Constructor Summary
HashChain()
          Constructs an empty HashChain.
 
Method Summary
 boolean add(Object item)
          Adds the given object to this HashChain.
 void addFirst(Object item)
          Adds the given object at the beginning of the Chain.
 void addLast(Object item)
          Adds the given object at the end of the Chain.
 void clear()
          Erases the contents of the current HashChain.
 boolean contains(Object o)
           
 boolean containsAll(Collection c)
           
 boolean follows(Object someObject, Object someReferenceObject)
          Returns true if object someObject follows object someReferenceObject in the Chain.
 Object getFirst()
          Returns the first object in this Chain.
 Object getLast()
          Returns the last object in this Chain.
 Object getPredOf(Object point)
          Returns the object immediately preceding point.
 Object getSuccOf(Object point)
          Returns the object immediately following point.
 void insertAfter(Chain toInsert, Object point)
          Inserts toInsert in the Chain after point.
 void insertAfter(List toInsert, Object point)
          Inserts toInsert in the Chain after point.
 void insertAfter(Object toInsert, Object point)
          Inserts toInsert in the Chain after point.
 void insertBefore(Chain toInsert, Object point)
          Inserts toInsert in the Chain before point.
 void insertBefore(List toInsert, Object point)
          Inserts toInsert in the Chain before point.
 void insertBefore(Object toInsert, Object point)
          Inserts toInsert in the Chain before point.
 Iterator iterator()
          Returns an iterator over this Chain.
 Iterator iterator(Object item)
          Returns an iterator over this Chain, starting at the given object.
 Iterator iterator(Object head, Object tail)
          Returns an iterator ranging from head to tail, inclusive.
static HashChain listToHashChain(List list)
           
 boolean remove(Object item)
          Removes the given object from this Chain.
 void removeFirst()
          Removes the first object contained in this Chain.
 void removeLast()
          Removes the last object contained in this Chain.
 int size()
          Returns the size of this Chain.
 Iterator snapshotIterator()
          Returns an iterator over a copy of this chain.
 Iterator snapshotIterator(Object item)
           
 void swapWith(Object out, Object in)
          Replaces out in the Chain by in.
static List toList(Chain c)
          Returns an unbacked list containing the contents of the given Chain.
 String toString()
          Returns a textual representation of the contents of this Chain.
 
Methods inherited from class java.util.AbstractCollection
addAll, isEmpty, removeAll, retainAll, toArray, toArray
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Collection
addAll, equals, hashCode, isEmpty, removeAll, retainAll, toArray, toArray
 

Constructor Detail

HashChain

public HashChain()
Constructs an empty HashChain.

Method Detail

clear

public void clear()
Erases the contents of the current HashChain.

Specified by:
clear in interface Collection

swapWith

public void swapWith(Object out,
                     Object in)
Description copied from interface: Chain
Replaces out in the Chain by in.

Specified by:
swapWith in interface Chain

add

public boolean add(Object item)
Adds the given object to this HashChain.

Specified by:
add in interface Collection

toList

public static List toList(Chain c)
Returns an unbacked list containing the contents of the given Chain.


follows

public boolean follows(Object someObject,
                       Object someReferenceObject)
Description copied from interface: Chain
Returns true if object someObject follows object someReferenceObject in the Chain.

Specified by:
follows in interface Chain

contains

public boolean contains(Object o)
Specified by:
contains in interface Collection

containsAll

public boolean containsAll(Collection c)
Specified by:
containsAll in interface Collection

insertAfter

public void insertAfter(Object toInsert,
                        Object point)
Description copied from interface: Chain
Inserts toInsert in the Chain after point.

Specified by:
insertAfter in interface Chain

insertAfter

public void insertAfter(List toInsert,
                        Object point)
Description copied from interface: Chain
Inserts toInsert in the Chain after point.

Specified by:
insertAfter in interface Chain

insertAfter

public void insertAfter(Chain toInsert,
                        Object point)
Description copied from interface: Chain
Inserts toInsert in the Chain after point. (It would probably be better to make Chain implement List)

Specified by:
insertAfter in interface Chain

insertBefore

public void insertBefore(Object toInsert,
                         Object point)
Description copied from interface: Chain
Inserts toInsert in the Chain before point.

Specified by:
insertBefore in interface Chain

insertBefore

public void insertBefore(List toInsert,
                         Object point)
Description copied from interface: Chain
Inserts toInsert in the Chain before point.

Specified by:
insertBefore in interface Chain

insertBefore

public void insertBefore(Chain toInsert,
                         Object point)
Description copied from interface: Chain
Inserts toInsert in the Chain before point. (It would probably be better to make Chain implement List)

Specified by:
insertBefore in interface Chain

listToHashChain

public static HashChain listToHashChain(List list)

remove

public boolean remove(Object item)
Description copied from interface: Chain
Removes the given object from this Chain.

Specified by:
remove in interface Chain

addFirst

public void addFirst(Object item)
Description copied from interface: Chain
Adds the given object at the beginning of the Chain.

Specified by:
addFirst in interface Chain

addLast

public void addLast(Object item)
Description copied from interface: Chain
Adds the given object at the end of the Chain.

Specified by:
addLast in interface Chain

removeFirst

public void removeFirst()
Description copied from interface: Chain
Removes the first object contained in this Chain.

Specified by:
removeFirst in interface Chain

removeLast

public void removeLast()
Description copied from interface: Chain
Removes the last object contained in this Chain.

Specified by:
removeLast in interface Chain

getFirst

public Object getFirst()
Description copied from interface: Chain
Returns the first object in this Chain.

Specified by:
getFirst in interface Chain

getLast

public Object getLast()
Description copied from interface: Chain
Returns the last object in this Chain.

Specified by:
getLast in interface Chain

getSuccOf

public Object getSuccOf(Object point)
                 throws NoSuchElementException
Description copied from interface: Chain
Returns the object immediately following point.

Specified by:
getSuccOf in interface Chain
Throws:
NoSuchElementException

getPredOf

public Object getPredOf(Object point)
                 throws NoSuchElementException
Description copied from interface: Chain
Returns the object immediately preceding point.

Specified by:
getPredOf in interface Chain
Throws:
NoSuchElementException

snapshotIterator

public Iterator snapshotIterator()
Description copied from interface: Chain
Returns an iterator over a copy of this chain. This avoids ConcurrentModificationExceptions from being thrown if the underlying Chain is modified during iteration. Do not use this to remove elements which have not yet been iterated over!

Specified by:
snapshotIterator in interface Chain

snapshotIterator

public Iterator snapshotIterator(Object item)

iterator

public Iterator iterator()
Description copied from interface: Chain
Returns an iterator over this Chain.

Specified by:
iterator in interface Chain

iterator

public Iterator iterator(Object item)
Description copied from interface: Chain
Returns an iterator over this Chain, starting at the given object.

Specified by:
iterator in interface Chain

iterator

public Iterator iterator(Object head,
                         Object tail)

Returns an iterator ranging from head to tail, inclusive.

If tail is the element immediately preceding head in this HashChain, the returned iterator will iterate 0 times (a special case to allow the specification of an empty range of elements). Otherwise if tail is not one of the elements following head, the returned iterator will iterate past the end of the HashChain, provoking a NoSuchElementException.

Specified by:
iterator in interface Chain
Throws:
NoSuchElementException - if head is not an element of the chain.

size

public int size()
Description copied from interface: Chain
Returns the size of this Chain.

Specified by:
size in interface Chain

toString

public String toString()
Returns a textual representation of the contents of this Chain.