edu.uci.ics.jung.utils
Interface UserDataContainer

All Known Subinterfaces:
ArchetypeEdge, ArchetypeGraph, ArchetypeVertex, DirectedEdge, DirectedGraph, Edge, Graph, GraphCollapser.CollapsedEdge, GraphCollapser.CollapsedVertex, Hyperedge, Hypergraph, Hypervertex, KPartiteGraph, UndirectedEdge, UndirectedGraph, Vertex
All Known Implementing Classes:
AbstractArchetypeGraph, AbstractHyperUnitBPG, AbstractSparseEdge, AbstractSparseGraph, AbstractSparseVertex, BipartiteGraphCollapser.CollapsedBipartiteEdge, BipartiteGraphCollapser.CollapsedBipartiteVertex, DirectedSparseEdge, DirectedSparseGraph, GraphCollapser.CollapsedSparseVertex, GraphCollapser.DirectedCollapsedEdge, GraphCollapser.UndirectedCollapsedEdge, HyperedgeBPG, HypergraphBPG, HypervertexBPG, KPartiteSparseGraph, SparseTree, UndirectedSparseEdge, UndirectedSparseGraph, UserData

public interface UserDataContainer

The generic interface for storing UserData. All graphs, vertices, and edges implement this interface and can therefore store custom local data.

Author:
Joshua O'Madadhain, Scott White, Danyel Fisher

Nested Class Summary
static interface UserDataContainer.CopyAction
          Decides what to do when a user datum is copied.
 
Method Summary
 void addUserDatum(java.lang.Object key, java.lang.Object datum, UserDataContainer.CopyAction copyAct)
          Adds the specified data with the specified key to this object's user data repository, with the specified CopyAction.
 boolean containsUserDatumKey(java.lang.Object key)
          Reports whether key is a key of this user data container.
 java.lang.Object getUserDatum(java.lang.Object key)
          Retrieves the object in this object's user data repository to which key refers.
 UserDataContainer.CopyAction getUserDatumCopyAction(java.lang.Object key)
          Retrieves the CopyAction for the object stored in this object's user data repository to which key refers.
 java.util.Iterator getUserDatumKeyIterator()
          Provides an iterator over this object's user data repository key set.
 void importUserData(UserDataContainer udc)
          Takes the user data stored in udc and copies it to this object's user data repository, respecting each datum's CopyAction.
 java.lang.Object removeUserDatum(java.lang.Object key)
          Retrieves the object in this object's user data repository to which key refers, and removes it from the repository.
 void setUserDatum(java.lang.Object key, java.lang.Object datum, UserDataContainer.CopyAction copyAct)
          If key refers to an existing user datum in this object's repository, that datum is replaced by the specified datum.
 

Method Detail

addUserDatum

public void addUserDatum(java.lang.Object key,
                         java.lang.Object datum,
                         UserDataContainer.CopyAction copyAct)
Adds the specified data with the specified key to this object's user data repository, with the specified CopyAction.

Parameters:
key - the key of the datum being added
datum - the datum being added
copyAct - the CopyAction of the datum being added

importUserData

public void importUserData(UserDataContainer udc)
Takes the user data stored in udc and copies it to this object's user data repository, respecting each datum's CopyAction.

Parameters:
udc - the source of the user data to be copied into this container

getUserDatumKeyIterator

public java.util.Iterator getUserDatumKeyIterator()
Provides an iterator over this object's user data repository key set.


getUserDatumCopyAction

public UserDataContainer.CopyAction getUserDatumCopyAction(java.lang.Object key)
Retrieves the CopyAction for the object stored in this object's user data repository to which key refers.

Parameters:
key - the key of the datum whose CopyAction is requested
Returns:
CopyAction the requested CopyAction

getUserDatum

public java.lang.Object getUserDatum(java.lang.Object key)
Retrieves the object in this object's user data repository to which key refers.

Parameters:
key - the key of the datum to retrieve
Returns:
Object the datum retrieved

setUserDatum

public void setUserDatum(java.lang.Object key,
                         java.lang.Object datum,
                         UserDataContainer.CopyAction copyAct)
If key refers to an existing user datum in this object's repository, that datum is replaced by the specified datum. Otherwise this is equivalent to addUserDatum(key, data, copyAct).

Parameters:
key - the key of the datum being added/modified
datum - the replacement/new datum
copyAct - the CopyAction for the new (key, datum) pair

removeUserDatum

public java.lang.Object removeUserDatum(java.lang.Object key)
Retrieves the object in this object's user data repository to which key refers, and removes it from the repository.

Parameters:
key - the key of the datum to be removed
Returns:
Object the datum removed

containsUserDatumKey

public boolean containsUserDatumKey(java.lang.Object key)
Reports whether key is a key of this user data container.

Parameters:
key - the key to be queried
Returns:
true if key is present in this user data container