You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by si...@apache.org on 2011/06/11 23:10:49 UTC

svn commit: r1134758 - /commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/domain/basic/UndirectedGraphImpl.java

Author: simonetripodi
Date: Sat Jun 11 21:10:49 2011
New Revision: 1134758

URL: http://svn.apache.org/viewvc?rev=1134758&view=rev
Log:
fixed UndirectedGraphImpl generics types

Modified:
    commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/domain/basic/UndirectedGraphImpl.java

Modified: commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/domain/basic/UndirectedGraphImpl.java
URL: http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/domain/basic/UndirectedGraphImpl.java?rev=1134758&r1=1134757&r2=1134758&view=diff
==============================================================================
--- commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/domain/basic/UndirectedGraphImpl.java (original)
+++ commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/domain/basic/UndirectedGraphImpl.java Sat Jun 11 21:10:49 2011
@@ -33,18 +33,18 @@ import org.apache.commons.graph.exceptio
 /**
  * Description of the Class
  */
-public class UndirectedGraphImpl
-  implements UndirectedGraph, 
-	     WeightedGraph, 
-	     MutableGraph,
+public class UndirectedGraphImpl<V extends Vertex, WE extends WeightedEdge>
+  implements UndirectedGraph<V, WE>,
+	     WeightedGraph<V, WE>,
+	     MutableGraph<V, WE>,
 	     InvocationHandler
 {
-    private Set vertices = new HashSet();
-    private Set edges = new HashSet();
+    private Set<V> vertices = new HashSet<V>();
+    private Set<WE> edges = new HashSet<WE>();
 
-    private Map edgeVerts = new HashMap();// EDGE X SET( VERTS )
-    private Map vertEdges = new HashMap();// VERTEX X SET( EDGE )
-    private Map edgeWeights = new HashMap(); // EDGE X WEIGHT
+    private Map<WE, Set<V>> edgeVerts = new HashMap<WE, Set<V>>();// EDGE X SET( VERTS )
+    private Map<V, Set<WE>> vertEdges = new HashMap<V, Set<WE>>();// VERTEX X SET( EDGE )
+    private Map<WE, Number> edgeWeights = new HashMap<WE, Number>(); // EDGE X WEIGHT
 
     /**
      * Constructor for the UndirectedGraphImpl object
@@ -52,59 +52,71 @@ public class UndirectedGraphImpl
     public UndirectedGraphImpl() { }
 
     /**
-     * Adds a feature to the Vertex attribute of the UndirectedGraphImpl object
+     * {@inheritDoc}
      */
-    public void addVertex(Vertex v)
+    public void addVertex(V v)
         throws GraphException
     {
         vertices.add(v);
     }
 
-  public void removeVertex( Vertex v )
+    /**
+     * {@inheritDoc}
+     */
+  public void removeVertex( V v )
     throws GraphException
   {
     vertices.remove( v );
   }
 
-  public void removeEdge( Edge e ) 
+  /**
+   * {@inheritDoc}
+   */
+  public void removeEdge( WE e ) 
     throws GraphException
   {
     edges.remove( e );
   }
 
-  public void addEdge(Edge e) 
+  /**
+   * {@inheritDoc}
+   */
+  public void addEdge(WE e) 
     throws GraphException
   {
     edges.add( e );
   }
 
-  public void disconnect(Edge e, Vertex v) {
+  /**
+   * {@inheritDoc}
+   */
+  public void disconnect( WE e, V v ) {
     if (edgeVerts.containsKey( e )) {
-      ((Set) edgeVerts.get( e )).remove( v );
+      edgeVerts.get( e ).remove( v );
     }
 
     if (vertEdges.containsKey( v )) {
-      ((Set) vertEdges.get( v )).remove( e );
+      vertEdges.get( v ).remove( e );
     }
   }
 
-  public void connect( Edge e, Vertex v ) {
-    Set verts = null;
+  public void connect( WE e, V v ) {
+    Set<V> verts = null;
     if (!edgeVerts.containsKey( e )) {
-      verts = new HashSet();
+      verts = new HashSet<V>();
       edgeVerts.put( e, verts );
     } else {
-      verts = (Set) edgeVerts.get( e );
+      verts = edgeVerts.get( e );
     }
 
     verts.add( v );
 
-    Set edges = null;
+    Set<WE> edges = null;
     if (!vertEdges.containsKey( v )) {
-      edges = new HashSet();
+      edges = new HashSet<WE>();
       vertEdges.put( v, edges );
     } else {
-      edges = (Set) vertEdges.get( v );
+      edges = vertEdges.get( v );
     }
     
     edges.add( e );
@@ -114,78 +126,78 @@ public class UndirectedGraphImpl
     /**
      * Adds a feature to the Edge attribute of the UndirectedGraphImpl object
      */
-    public void addEdge(Edge e,
-                        Set vertices)
+    public void addEdge(WE e,
+                        Set<V> vertices)
         throws GraphException
     {
       addEdge( e );
       
-      Iterator verts = vertices.iterator();
+      Iterator<V> verts = vertices.iterator();
       while (verts.hasNext()) {
-	connect( e, (Vertex) verts.next() );
+	connect( e, verts.next() );
       }
     }
 
     // Interface Methods
     /**
-     * Gets the vertices attribute of the UndirectedGraphImpl object
+     * {@inheritDoc}
      */
-    public Set getVertices()
+    public Set<V> getVertices()
     {
         return new HashSet(vertices);
     }
 
     /**
-     * Gets the vertices attribute of the UndirectedGraphImpl object
+     * {@inheritDoc}
      */
-    public Set getVertices(Edge e)
+    public Set<V> getVertices(WE e)
     {
         if (edgeVerts.containsKey(e))
         {
-            return new HashSet((Set) edgeVerts.get(e));
+            return new HashSet(edgeVerts.get(e));
         }
         else
         {
-            return new HashSet();
+            return new HashSet<V>();
         }
     }
 
     /**
-     * Gets the edges attribute of the UndirectedGraphImpl object
+     * {@inheritDoc}
      */
-    public Set getEdges()
+    public Set<WE> getEdges()
     {
         return new HashSet(edges);
     }
 
     /**
-     * Gets the edges attribute of the UndirectedGraphImpl object
+     * {@inheritDoc}
      */
-    public Set getEdges(Vertex v)
+    public Set<WE> getEdges(V v)
     {
         if (vertEdges.containsKey(v))
         {
-            return new HashSet((Set) vertEdges.get(v));
+            return new HashSet(vertEdges.get(v));
         }
         else
         {
-            return new HashSet();
+            return new HashSet<WE>();
         }
     }
 
-  public void setWeight( Edge e, double w ) {
+  public void setWeight( WE e, Number w ) {
     if (edgeWeights.containsKey( e )) {
       edgeWeights.remove( e );
     }
 
-    edgeWeights.put( e, new Double( w ) );
+    edgeWeights.put( e, w );
   }
 
-  public double getWeight( Edge e ) {
+  public Number getWeight( WE e ) {
     if (edgeWeights.containsKey( e )) {
-      return ((Double) edgeWeights.get( e ) ).doubleValue();
+      return edgeWeights.get( e );
     } else {
-      return 1.0;
+      return 1;
     }
   }