Author: simonetripodi
Date: Tue Jun 28 11:47:22 2011
New Revision: 1140542
URL: http://svn.apache.org/viewvc?rev=1140542&view=rev
Log:
added missing Vertex (in|out)degree support
Modified:
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/DirectedGraph.java
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/Graph.java
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/DirectedMutableGraph.java
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/UndirectedMutableGraph.java
Modified:
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/DirectedGraph.java
URL:
http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/DirectedGraph.java?rev=1140542&r1=1140541&r2=1140542&view=diff
==============================================================================
---
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/DirectedGraph.java
(original)
+++
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/DirectedGraph.java
Tue Jun 28 11:47:22 2011
@@ -34,6 +34,14 @@ public interface DirectedGraph<V extends
{
/**
+ * For a {@link Vertex}, the number of head endpoints adjacent to a node
is called the indegree.
+ *
+ * @param v the {@link Vertex} which indegree has to be returned.
+ * @return the number of head endpoints adjacent to a {@link Vertex}.
+ */
+ int getInDegree( V v );
+
+ /**
* Returns the set of {@link Edge}s which are inbound to the {@link
Vertex}.
*
* @param v the {@link Vertex} which inbound {@link Vertex}s have to be
returned
@@ -42,6 +50,14 @@ public interface DirectedGraph<V extends
Iterable<V> getInbound( V v );
/**
+ * For a {@link Vertex}, the number of tail endpoints adjacent to a node
is called the outdegree.
+ *
+ * @param v the {@link Vertex} which indegree has to be returned.
+ * @return the number of head endpoints adjacent to a {@link Vertex}.
+ */
+ int getOutDegree( V v );
+
+ /**
* Returns the set of {@link Vertex}s which lead away from the {@link
Vertex}.
*
* @param v the {@link Vertex} which outbound {@link Vertex}s have to be
returned
Modified:
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/Graph.java
URL:
http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/Graph.java?rev=1140542&r1=1140541&r2=1140542&view=diff
==============================================================================
---
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/Graph.java
(original)
+++
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/Graph.java
Tue Jun 28 11:47:22 2011
@@ -59,6 +59,15 @@ public interface Graph<V extends Vertex,
int getSize();
/**
+ * The degree (or valency) of a {@link Vertex} of a {@link Graph}
+ * is the number of {@link Edge}s incident to the {@link Vertex}.
+ *
+ * @param v the {@link Vertex} which degree has to be returned.
+ * @return the number of {@link Edge}s incident to the {@link Vertex}.
+ */
+ int getDegree( V v );
+
+ /**
* Returns all vertices which touch this vertex.
*
* @return all vertices which touch this vertex.
Modified:
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/DirectedMutableGraph.java
URL:
http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/DirectedMutableGraph.java?rev=1140542&r1=1140541&r2=1140542&view=diff
==============================================================================
---
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/DirectedMutableGraph.java
(original)
+++
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/DirectedMutableGraph.java
Tue Jun 28 11:47:22 2011
@@ -46,7 +46,23 @@ public class DirectedMutableGraph<V exte
/**
* {@inheritDoc}
*/
- public Iterable<V> getInbound( V v )
+ public final int getDegree( V v )
+ {
+ return getInDegree( v ) + getOutDegree( v );
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public final int getInDegree( V v )
+ {
+ return inbound.get( v ).size();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public final Iterable<V> getInbound( V v )
{
return inbound.get( v );
}
@@ -54,7 +70,15 @@ public class DirectedMutableGraph<V exte
/**
* {@inheritDoc}
*/
- public Iterable<V> getOutbound( V v )
+ public final int getOutDegree( V v )
+ {
+ return outbound.get( v ).size();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public final Iterable<V> getOutbound( V v )
{
return outbound.get( v );
}
Modified:
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/UndirectedMutableGraph.java
URL:
http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/UndirectedMutableGraph.java?rev=1140542&r1=1140541&r2=1140542&view=diff
==============================================================================
---
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/UndirectedMutableGraph.java
(original)
+++
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/model/UndirectedMutableGraph.java
Tue Jun 28 11:47:22 2011
@@ -37,6 +37,14 @@ public class UndirectedMutableGraph<V ex
/**
* {@inheritDoc}
*/
+ public final int getDegree( V v )
+ {
+ return getAdjacencyList().get( v ).size() * 2;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
@Override
protected void decorateAddVertex( V v )
{