Class BasicDirectedNode
- Object
-
- BasicGraphable
-
- BasicDirectedNode
-
- All Implemented Interfaces:
Serializable
,DirectedGraphable
,DirectedNode
,Graphable
,Node
- 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
Constructors Constructor Description BasicDirectedNode()
Constructs a new BasicDirectedNode.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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.List<DirectedEdge>
getEdges()
Returns the combination of both the in and out adjacency lists.List<DirectedEdge>
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.List<DirectedEdge>
getInEdges()
Returns the in adjacency list of the node.List<DirectedEdge>
getInEdges(DirectedNode other)
Returns all edges that terminate at the node and originate from a specified node.Iterator<DirectedNode>
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.List<DirectedEdge>
getOutEdges()
Returns the out adjacency list of the node.List<DirectedEdge>
getOutEdges(DirectedNode other)
Returns all edges that originate at the node and terminate from at specified node.Iterator<DirectedNode>
getOutRelated()
Returns all out nodes of out edges.Iterator<DirectedNode>
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 BasicGraphable
getCount, getID, getObject, isVisited, setCount, setID, setObject, setVisited, toString
-
-
-
-
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 interfaceNode
- Parameters:
e
- Adjacent edge to add.- 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 interfaceDirectedNode
- 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 interfaceDirectedNode
- 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 interfaceNode
- 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 interfaceDirectedNode
- 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 interfaceDirectedNode
- 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 interfaceNode
- 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 interfaceDirectedNode
- 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 interfaceDirectedNode
- 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 List<DirectedEdge> getEdges()
Returns the combination of both the in and out adjacency lists.
-
getInEdges
public List<DirectedEdge> getInEdges()
Description copied from interface:DirectedNode
Returns the in adjacency list of the node.- Specified by:
getInEdges
in interfaceDirectedNode
- Returns:
- A list of edges that terminate at the node.
- See Also:
DirectedNode.getInEdges()
-
getOutEdges
public List<DirectedEdge> getOutEdges()
Description copied from interface:DirectedNode
Returns the out adjacency list of the node.- Specified by:
getOutEdges
in interfaceDirectedNode
- Returns:
- A list of edges originating at the node.
- See Also:
DirectedNode.getOutEdges()
-
getEdges
public List<DirectedEdge> getEdges(Node other)
A combination of the results of getInEdges(Node) and getOutEdges(Node).- Specified by:
getEdges
in interfaceNode
- 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 List<DirectedEdge> 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 interfaceDirectedNode
- 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 List<DirectedEdge> 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 interfaceDirectedNode
- 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 interfaceNode
- 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 interfaceDirectedNode
- 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 interfaceDirectedNode
- Returns:
- The number of edges that originate at the node.
- See Also:
DirectedNode.getOutDegree()
-
getRelated
public Iterator<DirectedNode> getRelated()
Returns an iterator over all out nodes of out edges and in nodes of in edges.- Specified by:
getRelated
in interfaceGraphable
- Returns:
- Iterator An iterator over other components of the graph that are related to the component.
- See Also:
Graphable.getRelated()
-
getInRelated
public Iterator<DirectedNode> getInRelated()
Returns all in nodes of in edges.- Specified by:
getInRelated
in interfaceDirectedGraphable
- Returns:
- An iterator over the other directed components related through an in relationship.
- See Also:
DirectedGraphable.getInRelated()
-
getOutRelated
public Iterator<DirectedNode> getOutRelated()
Returns all out nodes of out edges.- Specified by:
getOutRelated
in interfaceDirectedGraphable
- Returns:
- An iterator over the other directed components related through an out relationship.
- See Also:
DirectedGraphable.getOutRelated()
-
-