org.geotools.graph.structure.basic
Class BasicDirectedNode

java.lang.Object
  extended byorg.geotools.graph.structure.basic.BasicGraphable
      extended byorg.geotools.graph.structure.basic.BasicDirectedNode
All Implemented Interfaces:
DirectedGraphable, DirectedNode, Graphable, Node, java.io.Serializable
Direct Known Subclasses:
BasicDirectedXYNode

public class BasicDirectedNode
extends BasicGraphable
implements DirectedNode

Basic implementation of DirectedNode.

Author:
Justin Deoliveira, Refractions Research Inc, jdeolive@refractions.net
See Also:
Serialized Form

Constructor Summary
BasicDirectedNode()
          Constructs a new BasicDirectedNode.
 
Method Summary
 void add(Edge e)
          Unsupported operation.
 void addIn(DirectedEdge e)
          Adds an edge to the in adjacency list of the node which is an underlying List implementation.
 void addOut(DirectedEdge e)
          Adds an edge to the ou adjacency list of the node which is an underlying List implementation.
 int getDegree()
          Returns sum of sizes of in and out adjacency lists.
 Edge getEdge(Node other)
          First searches for an in edge with an out node == this, and in node == other.
 java.util.List getEdges()
          Returns the combination of both the in and out adjacecy lists.
 java.util.List getEdges(Node other)
          A combination of the results of getInEdges(Node) and getOutEdges(Node).
 int getInDegree()
          Returns the in degree of the node.
 Edge getInEdge(DirectedNode other)
          Returns an edge that terminates at the node and originates from a specified node.
 java.util.List getInEdges()
          Returns the in adjacency list of the node.
 java.util.List getInEdges(DirectedNode other)
          Returns all edges that terminate at the node and originate from a specified node.
 java.util.Iterator getInRelated()
          Returns all in nodes of in edges.
 int getOutDegree()
          Returns the out degree of the node.
 Edge getOutEdge(DirectedNode other)
          Returns an edge that originates at the node and terminates at a specified node.
 java.util.List getOutEdges()
          Returns the out adjacency list of the node.
 java.util.List getOutEdges(DirectedNode other)
          Returns all edges that originate at the node and terminate from at specified node.
 java.util.Iterator getOutRelated()
          Returns all out nodes of out edges.
 java.util.Iterator getRelated()
          Returns an iterator over all out nodes of out edges and in nodes of in edges.
 void remove(Edge e)
          Removes the edge from both the in and out adjacency lists.
 void removeIn(DirectedEdge e)
          Removes an edge from the in adjacency list of the node.
 void removeOut(DirectedEdge e)
          Removes an edge from the out adjacency list of node.
 
Methods inherited from class org.geotools.graph.structure.basic.BasicGraphable
getCount, getID, getObject, isVisited, setCount, setID, setObject, setVisited, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.geotools.graph.structure.Graphable
getCount, getID, getObject, isVisited, setCount, setID, setObject, setVisited
 

Constructor Detail

BasicDirectedNode

public BasicDirectedNode()
Constructs a new BasicDirectedNode.

Method Detail

add

public void add(Edge e)
Unsupported operation. Directed nodes classify edges as in and out. addIn(Edge) and addOut(Edge) should be used instead of this method.

Specified by:
add in interface Node
Parameters:
e - Adjacent edge to add.
Throws:
java.lang.UnsupportedOperationException
See Also:
DirectedNode.addIn(DirectedEdge), DirectedNode.addOut(DirectedEdge)

addIn

public void addIn(DirectedEdge e)
Adds an edge to the in adjacency list of the node which is an underlying List implementation. No checking is done on the edge (duplication, looping...), it is simply added to the list. It is also assumed that the edge being added has the node as its out node.

Specified by:
addIn in interface DirectedNode
Parameters:
e - A directed edge that terminates at the node.
See Also:
DirectedNode.addIn(DirectedEdge), DirectedEdge.getOutNode()

addOut

public void addOut(DirectedEdge e)
Adds an edge to the ou adjacency list of the node which is an underlying List implementation. No checking is done on the edge (duplication, looping...), it is simply added to the list. It is also assumed that the edge being added has the node as its in node.

Specified by:
addOut in interface DirectedNode
Parameters:
e - A directed edge that originates from the node.
See Also:
DirectedNode.addOut(DirectedEdge), DirectedEdge.getInNode()

remove

public void remove(Edge e)
Removes the edge from both the in and out adjacency lists.

Specified by:
remove in interface Node
Parameters:
e - Adjacent edge to remove.
See Also:
Node.remove(Edge)

removeIn

public void removeIn(DirectedEdge e)
Description copied from interface: DirectedNode
Removes an edge from the in adjacency list of the node.

Specified by:
removeIn in interface DirectedNode
Parameters:
e - A directed edge that terminates at the node.
See Also:
DirectedNode.removeIn(DirectedEdge)

removeOut

public void removeOut(DirectedEdge e)
Description copied from interface: DirectedNode
Removes an edge from the out adjacency list of node.

Specified by:
removeOut in interface DirectedNode
Parameters:
e - A directed edge that originates from the node.
See Also:
DirectedNode.removeOut(DirectedEdge)

getEdge

public Edge getEdge(Node other)
First searches for an in edge with an out node == this, and in node == other. If none is found an edge with out node == other, and in node == this is searched for.

Specified by:
getEdge in interface Node
Parameters:
other - The other node that the desired edge to return is adjacent to.
Returns:
The first edge that is found to be adjacent to the specified node.
See Also:
Node.remove(Edge)

getInEdge

public Edge getInEdge(DirectedNode other)
Description copied from interface: DirectedNode
Returns an edge that terminates at the node and originates from a specified node.

Note: It is possible for two nodes to share multiple edges between them. In this case, getInEdges(Node other) can be used to obtain a complete list.

Specified by:
getInEdge in interface DirectedNode
Parameters:
other - The originating node.
Returns:
The first edge found to terminate at the node and originate from the specefied node.
See Also:
DirectedNode.getInEdge(DirectedNode)

getOutEdge

public Edge getOutEdge(DirectedNode other)
Description copied from interface: DirectedNode
Returns an edge that originates at the node and terminates at a specified node.

Note: It is possible for two nodes to share multiple edges between them. In this case, getOutEdges(Node other) can be used to obtain a complete list.

Specified by:
getOutEdge in interface DirectedNode
Parameters:
other - The terminating node.
Returns:
The first edge found to originate at the node and terminate at the specefied node.
See Also:
DirectedNode.getOutEdge(DirectedNode)

getEdges

public java.util.List getEdges()
Returns the combination of both the in and out adjacecy lists.

Specified by:
getEdges in interface Node
Returns:
A list containing all edges that are adjacent to the node.

getInEdges

public java.util.List getInEdges()
Description copied from interface: DirectedNode
Returns the in adjacency list of the node.

Specified by:
getInEdges in interface DirectedNode
Returns:
A list of edges that terminate at the node.
See Also:
DirectedNode.getInEdges()

getOutEdges

public java.util.List getOutEdges()
Description copied from interface: DirectedNode
Returns the out adjacency list of the node.

Specified by:
getOutEdges in interface DirectedNode
Returns:
A list of edges originating at the node.
See Also:
DirectedNode.getOutEdges()

getEdges

public java.util.List getEdges(Node other)
A combination of the results of getInEdges(Node) and getOutEdges(Node).

Specified by:
getEdges in interface Node
Parameters:
other - The other node that the desired edges to return are adjacent to.
Returns:
List of all edges that are found to be adjacent to the specified node.
See Also:
Node.getEdges(Node), DirectedNode.getInEdges(DirectedNode), DirectedNode.getOutEdges(DirectedNode)

getInEdges

public java.util.List getInEdges(DirectedNode other)
Description copied from interface: DirectedNode
Returns all edges that terminate at the node and originate from a specified node.

Specified by:
getInEdges in interface DirectedNode
Parameters:
other - The originating node.
Returns:
All edges found to terminate at the node and originate from the specified node.
See Also:
DirectedNode.getInEdges(DirectedNode)

getOutEdges

public java.util.List getOutEdges(DirectedNode other)
Description copied from interface: DirectedNode
Returns all edges that originate at the node and terminate from at specified node.

Specified by:
getOutEdges in interface DirectedNode
Parameters:
other - The temimnating node.
Returns:
All edges found to originate at the node and terminate at the specified node.
See Also:
DirectedNode.getOutEdges(DirectedNode)

getDegree

public int getDegree()
Returns sum of sizes of in and out adjacency lists.

Specified by:
getDegree in interface Node
Returns:
int Degree of node.
See Also:
Node.getDegree()

getInDegree

public int getInDegree()
Description copied from interface: DirectedNode
Returns the in degree of the node.

Specified by:
getInDegree in interface DirectedNode
Returns:
The number of edges that terminate at the node.
See Also:
DirectedNode.getInDegree()

getOutDegree

public int getOutDegree()
Description copied from interface: DirectedNode
Returns the out degree of the node.

Specified by:
getOutDegree in interface DirectedNode
Returns:
The number of edges that originate at the node.
See Also:
DirectedNode.getOutDegree()

getRelated

public java.util.Iterator getRelated()
Returns an iterator over all out nodes of out edges and in nodes of in edges.

Specified by:
getRelated in interface Graphable
Returns:
Iterator An iterator over other components of the graph that are related to the component.
See Also:
Graphable.getRelated()

getInRelated

public java.util.Iterator getInRelated()
Returns all in nodes of in edges.

Specified by:
getInRelated in interface DirectedGraphable
Returns:
An iterator over the other directed components related through an in relationship.
See Also:
DirectedGraphable.getInRelated()

getOutRelated

public java.util.Iterator getOutRelated()
Returns all out nodes of out edges.

Specified by:
getOutRelated in interface DirectedGraphable
Returns:
An iterator over the other directed components related through an out relationship.
See Also:
DirectedGraphable.getOutRelated()


Copyright © GeoTools. All Rights Reserved.