public class Product extends AbstractGraph implements Serializable
Graph
which is the product of two other
Graphs
. The nodes are OrderedPair
objects
with exactly two elements, the first element being a node from the
first graph and the second being a node from the second graph.
If either wrapped Graph
contains
Graph.Edges
which point to other
Graph.Edges
, the product will not
reflect this. The node and edge aspects of any such
Graph.Edge
will be distinct in the product.
Graph.Edge
Constructor and Description |
---|
Product(Graph left,
Graph right)
Creates a new
Product graph. |
Modifier and Type | Method and Description |
---|---|
boolean |
containsEdge(Graph.Edge edge)
This implementation traverses over the edges in this graph
incident on the tail of the specified
edge ,
looking for it and returning true if found. |
boolean |
containsNode(Object node)
Returns
true if this Graph contains
node . |
int |
degree(Object node)
Returns the degree of
node , defined as the number
of edges incident on node , with self-loops
counted twice. |
protected Collection |
edges()
Returns a
Collection view of all the
Graph.Edges in this Graph . |
Graph |
getLeftOperand() |
Graph |
getRightOperand() |
protected Collection |
nodes()
Returns a
Collection view of all the nodes
in this Graph . |
boolean |
removeEdge(Graph.Edge edge)
Throws an
UnsupportedOperationException . |
boolean |
removeNode(Object node)
Throws an
UnsupportedOperationException . |
String |
toString() |
protected Traverser |
traverser(Object node)
Returns an unfiltered
Traverser over those
Graph.Edges incident to the specified node. |
addEdge, addNode, adjacentNodes, degree, edges, getAdjacentNode, getEdge, getIncidentEdge, getNode, incidentEdges, nodes, traverser
public Graph getLeftOperand()
public Graph getRightOperand()
protected Collection nodes()
AbstractGraph
Collection
view of all the nodes
in this Graph
. This method is only called
by nodes( Predicate )
.nodes
in class AbstractGraph
protected Collection edges()
AbstractGraph
Collection
view of all the
Graph.Edges
in this Graph
.
This method is only called by edges( Predicate )
.edges
in class AbstractGraph
protected Traverser traverser(Object node)
AbstractGraph
Traverser
over those
Graph.Edges
incident to the specified node.
This method is only called by traverser( node, Predicate )
.traverser
in class AbstractGraph
public boolean removeNode(Object node)
UnsupportedOperationException
.removeNode
in interface Graph
removeNode
in class AbstractGraph
node
- the node to be removed from this
Graph
.true
if this Graph
contained
node
.public boolean containsNode(Object node)
true
if this Graph
contains
node
.containsNode
in interface Graph
containsNode
in class AbstractGraph
node
- the node whose presence in this Graph
is to be tested.true
if this Graph
contains
the specified node.public boolean removeEdge(Graph.Edge edge)
UnsupportedOperationException
.removeEdge
in interface Graph
removeEdge
in class AbstractGraph
edge
- the Graph.Edge
to be removed from
this Graph
.true
if this Graph
contained
the specified Graph.Edge
.public boolean containsEdge(Graph.Edge edge)
AbstractGraph
edge
,
looking for it and returning true
if found.containsEdge
in interface Graph
containsEdge
in class AbstractGraph
edge
- the Graph.Edge
whose presence in this
Graph
is to be tested.true
if this Graph
contains
the specified Graph.Edge
.public int degree(Object node)
node
, defined as the number
of edges incident on node
, with self-loops
counted twice.degree
in interface Graph
degree
in class AbstractGraph
node
- return the degree of this node.node
.See the Plexus project home, hosted by SourceForge.
Copyright ? 1994-2006, by Phoenix Software Technologists, Inc. and others. All Rights Reserved. Use is subject to license terms.