org.apache.cayenne.graph
Class GraphMap

java.lang.Object
  extended by org.apache.cayenne.graph.GraphMap
All Implemented Interfaces:
GraphChangeHandler, GraphManager

public class GraphMap
extends Object
implements GraphManager

A base implementation of GraphManager that stores graph nodes keyed by their ids.

Tracking Object Changes

Registered objects may choose to notify GraphMap of their changes by using callback methods defined in GraphChangeHandler interface. GraphMap itself implements as noops, leaving it up to subclasses to handle object updates.

Since:
1.2

Field Summary
protected  Map<Object,Object> nodes
           
 
Constructor Summary
GraphMap()
          Creates a new GraphMap.
 
Method Summary
 void arcCreated(Object nodeId, Object targetNodeId, Object arcId)
          Notifies implementing object that a new arc was created between two nodes.
 void arcDeleted(Object nodeId, Object targetNodeId, Object arcId)
          Notifies implementing object that an arc between two nodes was deleted.
 Object getNode(Object nodeId)
          Returns a graph node given an id.
 void nodeCreated(Object nodeId)
          Notifies implementing object that a new node was created in the graph.
 void nodeIdChanged(Object nodeId, Object newId)
          Notifies implementing object that a node was assigned a new id.
 void nodePropertyChanged(Object nodeId, String property, Object oldValue, Object newValue)
          Notifies implementing object that a node's property was modified.
 void nodeRemoved(Object nodeId)
          Notifies implementing object that a node was removed from the graph.
 Collection<Object> registeredNodes()
          Returns an immutable collection of registered nodes.
 void registerNode(Object nodeId, Object nodeObject)
          "Registers" a graph node, usually storing the node in some internal map using its id as a key.
 Object unregisterNode(Object nodeId)
          "Unregisters" a graph node, forgetting any information associated with nodeId.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

nodes

protected Map<Object,Object> nodes
Constructor Detail

GraphMap

public GraphMap()
Creates a new GraphMap.

Method Detail

registeredNodes

public Collection<Object> registeredNodes()
Returns an immutable collection of registered nodes.

Specified by:
registeredNodes in interface GraphManager

getNode

public Object getNode(Object nodeId)
Description copied from interface: GraphManager
Returns a graph node given an id.

Specified by:
getNode in interface GraphManager

registerNode

public void registerNode(Object nodeId,
                         Object nodeObject)
Description copied from interface: GraphManager
"Registers" a graph node, usually storing the node in some internal map using its id as a key.

Specified by:
registerNode in interface GraphManager

unregisterNode

public Object unregisterNode(Object nodeId)
Description copied from interface: GraphManager
"Unregisters" a graph node, forgetting any information associated with nodeId.

Specified by:
unregisterNode in interface GraphManager

arcCreated

public void arcCreated(Object nodeId,
                       Object targetNodeId,
                       Object arcId)
Description copied from interface: GraphChangeHandler
Notifies implementing object that a new arc was created between two nodes.

Specified by:
arcCreated in interface GraphChangeHandler

arcDeleted

public void arcDeleted(Object nodeId,
                       Object targetNodeId,
                       Object arcId)
Description copied from interface: GraphChangeHandler
Notifies implementing object that an arc between two nodes was deleted.

Specified by:
arcDeleted in interface GraphChangeHandler

nodeCreated

public void nodeCreated(Object nodeId)
Description copied from interface: GraphChangeHandler
Notifies implementing object that a new node was created in the graph.

Specified by:
nodeCreated in interface GraphChangeHandler

nodeRemoved

public void nodeRemoved(Object nodeId)
Description copied from interface: GraphChangeHandler
Notifies implementing object that a node was removed from the graph.

Specified by:
nodeRemoved in interface GraphChangeHandler

nodeIdChanged

public void nodeIdChanged(Object nodeId,
                          Object newId)
Description copied from interface: GraphChangeHandler
Notifies implementing object that a node was assigned a new id.

Specified by:
nodeIdChanged in interface GraphChangeHandler

nodePropertyChanged

public void nodePropertyChanged(Object nodeId,
                                String property,
                                Object oldValue,
                                Object newValue)
Description copied from interface: GraphChangeHandler
Notifies implementing object that a node's property was modified.

Specified by:
nodePropertyChanged in interface GraphChangeHandler


Copyright © 2001-2011 Apache Cayenne. All Rights Reserved.