wt.fc.collections
Class ReferenceMap

java.lang.Object
  extended bywt.fc.collections.ReferenceMap

final class ReferenceMap
extends Object

Package-private utility class used to map classes to WTReferences.

Supported API: false

Extendable: false


Nested Class Summary
private  class ReferenceMap.ClassIterator
           
private  class ReferenceMap.FilteredClassIterator
           
(package private) static interface ReferenceMap.IteratorListener
          Listens for objects returned by Iterator.next()
private  class ReferenceMap.PersistableIterator
           
private  class ReferenceMap.PersistableListIterator
           
private  class ReferenceMap.QueryKeyIterator
           
private  class ReferenceMap.QueryKeyListIterator
           
private  class ReferenceMap.ReferenceIterator
           
(package private)  class ReferenceMap.ReferenceList
          Collects all the references from the source collection that match the given filter
private  class ReferenceMap.ReferenceListIterator
           
 
Field Summary
(package private)  Set classes
          All the classes that have instances in the source collection
(package private)  Map data
          Mapping of classes to ReferenceLists of their instances
private  int modCount
          The modification count for the source collection
private  int size
          The size of the source collection
private  AbstractWTCollection sourceCollection
          The collection that this ReferenceMap is storing references for
 
Constructor Summary
(package private) ReferenceMap(AbstractWTCollection a_Source)
          Construct a ReferenceMap with the given source collection
(package private) ReferenceMap(AbstractWTCollection a_Source, int a_Size)
          Construct a ReferenceMap with the given source collection
 
Method Summary
(package private)  void add(WTReference r)
          Add the reference to any existing ReferenceLists
(package private)  void add(WTReference r, List source)
          Add the reference to any existing ReferenceLists, excluding the list that == source
(package private)  Iterator classIterator()
           
(package private)  Iterator classIterator(Class filter, boolean include_subclasses)
           
(package private)  Iterator classIterator(FilterUtility.Filter filter, boolean include_subclasses)
           
(package private)  void clear()
           
(package private)  void connect(WTReference old_reference, WTReference new_reference)
          Replace instances of old_reference with new_reference
(package private)  boolean containsInstance(Class filter)
          Determine if the map contains any instances of the given filter
(package private)  int getModCount()
          Tracks the modifications to this map.
(package private)  ReferenceMap.ReferenceList getReferenceList(Class filter)
          Get a ReferenceList for the given filter.
(package private)  ReferenceMap.ReferenceList getReferenceList(FilterUtility.Filter filter)
          Get a ReferenceList for the given filter.
(package private)  int getSize()
          Get the size of the source collection
(package private)  int getSize(Class filter, boolean include_subclasses)
          Get the number of elements of the given filter
(package private)  int getSize(FilterUtility.Filter filter, boolean include_subclasses)
          Get the number of elements of the given filter
(package private)  AbstractWTCollection getSource()
          Get the source WTCollection for this map
private  void initClasses()
          Iniitialize the classes collection
(package private)  void remove(WTReference r)
          Remove the reference from all reference lists
(package private)  void remove(WTReference r, List source)
          Remove the reference from all reference lists
private  void remove(WTReference r, List source, boolean remove_from_classes)
          Remove the reference from all reference lists
(package private)  boolean removeAll(Class filter, boolean include_subclasses)
          Remove all instances of the given filter
(package private)  boolean removeAll(FilterUtility.Filter filter, boolean include_subclasses)
          Remove all instances of the given filter
(package private)  boolean retainAll(Class filter, boolean include_subclasses)
          Retain all instances of the given filter
(package private)  boolean retainAll(FilterUtility.Filter filter, boolean include_subclasses)
          Retain all instances of the given filter
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

sourceCollection

private final AbstractWTCollection sourceCollection
The collection that this ReferenceMap is storing references for


size

private int size
The size of the source collection


modCount

private int modCount
The modification count for the source collection


classes

volatile Set classes
All the classes that have instances in the source collection


data

volatile Map data
Mapping of classes to ReferenceLists of their instances

Constructor Detail

ReferenceMap

ReferenceMap(AbstractWTCollection a_Source)
Construct a ReferenceMap with the given source collection

Parameters:
a_Source -

ReferenceMap

ReferenceMap(AbstractWTCollection a_Source,
             int a_Size)
Construct a ReferenceMap with the given source collection

Parameters:
a_Source -
a_Size - The size of the source collection (Can't ask source, since it may in turn be asking us!)
Method Detail

getReferenceList

ReferenceMap.ReferenceList getReferenceList(Class filter)
Get a ReferenceList for the given filter. If a list doesn't exist, it is created

Parameters:
filter -
Returns:
ReferenceList

getReferenceList

ReferenceMap.ReferenceList getReferenceList(FilterUtility.Filter filter)
Get a ReferenceList for the given filter. If a list doesn't exist, it is created

Parameters:
filter -
Returns:
ReferenceList

add

void add(WTReference r)
Add the reference to any existing ReferenceLists

Parameters:
r -

add

void add(WTReference r,
         List source)
Add the reference to any existing ReferenceLists, excluding the list that == source

Parameters:
r -
source -

connect

void connect(WTReference old_reference,
             WTReference new_reference)
Replace instances of old_reference with new_reference

Parameters:
old_reference -
new_reference -

classIterator

Iterator classIterator()

classIterator

Iterator classIterator(Class filter,
                       boolean include_subclasses)

classIterator

Iterator classIterator(FilterUtility.Filter filter,
                       boolean include_subclasses)

initClasses

private void initClasses()
Iniitialize the classes collection


containsInstance

boolean containsInstance(Class filter)
Determine if the map contains any instances of the given filter

Parameters:
filter -
Returns:
boolean

getSource

AbstractWTCollection getSource()
Get the source WTCollection for this map

Returns:
AbstractWTCollection

getModCount

int getModCount()
Tracks the modifications to this map.

Returns:
int

getSize

int getSize()
Get the size of the source collection

Returns:
int

getSize

int getSize(Class filter,
            boolean include_subclasses)
Get the number of elements of the given filter

Parameters:
filter -
include_subclasses -
Returns:
int

getSize

int getSize(FilterUtility.Filter filter,
            boolean include_subclasses)
Get the number of elements of the given filter

Parameters:
filter -
include_subclasses -
Returns:
int

clear

void clear()

remove

void remove(WTReference r)
Remove the reference from all reference lists

Parameters:
r -

remove

void remove(WTReference r,
            List source)
Remove the reference from all reference lists

Parameters:
r -
source - Don't remove from source (if non-null)

remove

private void remove(WTReference r,
                    List source,
                    boolean remove_from_classes)
Remove the reference from all reference lists

Parameters:
r -
source - Don't remove from source (if non-null)
remove_from_classes - If true, and this reference is the last of a given class, then remove the class from classes

removeAll

boolean removeAll(Class filter,
                  boolean include_subclasses)
Remove all instances of the given filter

Parameters:
filter -
include_subclasses -

removeAll

boolean removeAll(FilterUtility.Filter filter,
                  boolean include_subclasses)
Remove all instances of the given filter

Parameters:
filter -
include_subclasses -

retainAll

boolean retainAll(Class filter,
                  boolean include_subclasses)
Retain all instances of the given filter

Parameters:
filter -
include_subclasses -

retainAll

boolean retainAll(FilterUtility.Filter filter,
                  boolean include_subclasses)
Retain all instances of the given filter

Parameters:
filter -
include_subclasses -