org.geotools.graph.structure.opt
Class OptNode

java.lang.Object
  extended byorg.geotools.graph.structure.opt.OptGraphable
      extended byorg.geotools.graph.structure.opt.OptNode
All Implemented Interfaces:
Graphable, Node, java.io.Serializable
Direct Known Subclasses:
OptXYNode

public class OptNode
extends OptGraphable
implements Node

Optimized implementation of Node. The following optimizations reduce space and improve performance.

Using an optimized node requires that the degree of the node be known before the node is built.

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

Nested Class Summary
 class OptNode.RelatedIterator
          An iterator used to iterate over related nodes.
 
Constructor Summary
OptNode()
          Constructs a new OptimizedNode.
OptNode(int degree)
          Constructs a new Optimized Node with a known degree.
 
Method Summary
 void add(Edge e)
          Adds an edge to the adjacency list of the node.
 int getDegree()
          Returns the degree of the node.
 Edge getEdge(Node other)
          Returns an edge in the adjacency list of the node that is adjacent to another specified node.
 Edge[] getEdgeArray()
          Returns the edge adjacency list of the node as an array.
 java.util.List getEdges()
          Returns the edge adjacency list of the node.
 java.util.List getEdges(Node other)
          Returns a collection of edges in the adjacency list of the node that are adjacent to another specified node.
 java.util.Iterator getRelated()
          This iterator iterates over the underlying edge array of the node.
 void remove(Edge e)
          Not supported.
 void setDegree(int degree)
          Sets the degree of the node.
 
Methods inherited from class org.geotools.graph.structure.opt.OptGraphable
getCount, getID, getObject, isVisited, setCount, setID, setObject, setVisited
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.geotools.graph.structure.Graphable
getCount, getID, getObject, isVisited, setCount, setID, setObject, setVisited
 

Constructor Detail

OptNode

public OptNode()
Constructs a new OptimizedNode. This constructor does not build the adjacency array for the node.


OptNode

public OptNode(int degree)
Constructs a new Optimized Node with a known degree.

Parameters:
degree - The degree of the node.
Method Detail

add

public void add(Edge e)
Description copied from interface: Node
Adds an edge to the adjacency list of the node.

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

remove

public void remove(Edge e)
Not supported.

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

getEdge

public Edge getEdge(Node other)
Description copied from interface: Node
Returns an edge in the adjacency list of the node that is adjacent to another specified node.

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

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.getEdge(Node)

getEdges

public java.util.List getEdges(Node other)
Description copied from interface: Node
Returns a collection of edges in the adjacency list of the node that are adjacent to another specified 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)

getEdgeArray

public Edge[] getEdgeArray()
Returns the edge adjacency list of the node as an array.

Returns:
An array containing edges adjacent to the node.

getEdges

public java.util.List getEdges()
Description copied from interface: Node
Returns the edge adjacency list of the node.

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

setDegree

public void setDegree(int degree)
Sets the degree of the node. This method build the edge adjacency array for the node.

Parameters:
degree - The degree of the node / size of edge adjacency array.

getDegree

public int getDegree()
Description copied from interface: Node
Returns the degree of the node. The degree of a node is defined as the number of edges that are adjacent to the node.

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

getRelated

public java.util.Iterator getRelated()
This iterator iterates over the underlying edge array of the node.

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()


Copyright © GeoTools. All Rights Reserved.