Author: simonetripodi
Date: Mon Mar 19 21:42:23 2012
New Revision: 1302669

URL: http://svn.apache.org/viewvc?rev=1302669&view=rev
Log:
avoid to return the abstract exporter implementation, it would lose the state - 
return the concrete impl instead

Modified:
    
commons/sandbox/graph/branches/exporters-with-mappers/src/main/java/org/apache/commons/graph/export/AbstractExporter.java
    
commons/sandbox/graph/branches/exporters-with-mappers/src/main/java/org/apache/commons/graph/export/DotExporter.java
    
commons/sandbox/graph/branches/exporters-with-mappers/src/main/java/org/apache/commons/graph/export/GraphMLExporter.java

Modified: 
commons/sandbox/graph/branches/exporters-with-mappers/src/main/java/org/apache/commons/graph/export/AbstractExporter.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/graph/branches/exporters-with-mappers/src/main/java/org/apache/commons/graph/export/AbstractExporter.java?rev=1302669&r1=1302668&r2=1302669&view=diff
==============================================================================
--- 
commons/sandbox/graph/branches/exporters-with-mappers/src/main/java/org/apache/commons/graph/export/AbstractExporter.java
 (original)
+++ 
commons/sandbox/graph/branches/exporters-with-mappers/src/main/java/org/apache/commons/graph/export/AbstractExporter.java
 Mon Mar 19 21:42:23 2012
@@ -34,7 +34,7 @@ import org.apache.commons.graph.Graph;
 import org.apache.commons.graph.Mapper;
 import org.apache.commons.graph.VertexPair;
 
-abstract class AbstractExporter<V, E>
+abstract class AbstractExporter<V, E, T extends AbstractExporter<V, E, T>>
 {
 
     private static final String G = "G";
@@ -61,41 +61,44 @@ abstract class AbstractExporter<V, E>
         this.name = name != null ? name : G;
     }
 
-    public AbstractExporter(Graph<V, E> graph) {
-       this( graph, null );
-       }
-
-       public AbstractExporter(Graph<V, E> graph, String name) {
-               // TODO Auto-generated constructor stub
-               this.graph = graph;
-               this.writer = null;
-               this.vertexProperties = new HashMap<String, Mapper<V, ?>>();
-               this.edgeProperties = new HashMap<String, Mapper<E, ?>>();
-               this.name = name != null ? name : G;
-       }
-       
-       public abstract <N extends Number> AbstractExporter<V, E> 
withEdgeWeights(Mapper<E, N> edgeWeights);
-
-       public abstract <N extends Number> AbstractExporter<V, E> 
withVertexWeights( Mapper<V, N> vertexWeights );
-       
-       public abstract AbstractExporter<V, E> withEdgeLabels( Mapper<E, 
String> edgeLabels );
-       
-       public abstract AbstractExporter<V, E> withVertexLabels( Mapper<V, 
String> vertexLabels );
-       
-       public void to( File outputFile ) {
-               // TODO
-       }
-       
-       public void to( OutputStream outputStream ) {
-               // TODO
-       }
-
-    public void to( Writer writer ) {
-       // TODO
-    }
-       
-       
-       protected final Graph<V, E> getGraph()
+    public AbstractExporter( Graph<V, E> graph )
+    {
+        this( graph, null );
+    }
+
+    public AbstractExporter( Graph<V, E> graph, String name )
+    {
+        this.graph = graph;
+        this.writer = null;
+        this.vertexProperties = new HashMap<String, Mapper<V, ?>>();
+        this.edgeProperties = new HashMap<String, Mapper<E, ?>>();
+        this.name = name != null ? name : G;
+    }
+
+    public abstract <N extends Number> T withEdgeWeights( Mapper<E, N> 
edgeWeights );
+
+    public abstract <N extends Number> T withVertexWeights( Mapper<V, N> 
vertexWeights );
+
+    public abstract T withEdgeLabels( Mapper<E, String> edgeLabels );
+
+    public abstract T withVertexLabels( Mapper<V, String> vertexLabels );
+
+    public void to( File outputFile )
+    {
+        // TODO
+    }
+
+    public void to( OutputStream outputStream )
+    {
+        // TODO
+    }
+
+    public void to( Writer writer )
+    {
+        // TODO
+    }
+
+    protected final Graph<V, E> getGraph()
     {
         return graph;
     }
@@ -117,7 +120,7 @@ abstract class AbstractExporter<V, E>
 
             // this is basically for the GraphML
 
-            
+
 
             // END
 

Modified: 
commons/sandbox/graph/branches/exporters-with-mappers/src/main/java/org/apache/commons/graph/export/DotExporter.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/graph/branches/exporters-with-mappers/src/main/java/org/apache/commons/graph/export/DotExporter.java?rev=1302669&r1=1302668&r2=1302669&view=diff
==============================================================================
--- 
commons/sandbox/graph/branches/exporters-with-mappers/src/main/java/org/apache/commons/graph/export/DotExporter.java
 (original)
+++ 
commons/sandbox/graph/branches/exporters-with-mappers/src/main/java/org/apache/commons/graph/export/DotExporter.java
 Mon Mar 19 21:42:23 2012
@@ -35,7 +35,7 @@ import org.apache.commons.graph.Mapper;
  * @param <E>
  */
 final class DotExporter<V, E>
-    extends AbstractExporter<V, E>
+    extends AbstractExporter<V, E, DotExporter<V, E>>
 {
 
     private static final String GRAPH = "graph";
@@ -171,7 +171,7 @@ final class DotExporter<V, E>
     }
 
        @Override
-       public <N extends Number> DotExporter<V, E> 
+       public <N extends Number> DotExporter<V, E>
            withEdgeWeights(Mapper<E, N> edgeWeights) {
                // TODO Auto-generated method stub
                return null;

Modified: 
commons/sandbox/graph/branches/exporters-with-mappers/src/main/java/org/apache/commons/graph/export/GraphMLExporter.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/graph/branches/exporters-with-mappers/src/main/java/org/apache/commons/graph/export/GraphMLExporter.java?rev=1302669&r1=1302668&r2=1302669&view=diff
==============================================================================
--- 
commons/sandbox/graph/branches/exporters-with-mappers/src/main/java/org/apache/commons/graph/export/GraphMLExporter.java
 (original)
+++ 
commons/sandbox/graph/branches/exporters-with-mappers/src/main/java/org/apache/commons/graph/export/GraphMLExporter.java
 Mon Mar 19 21:42:23 2012
@@ -27,7 +27,7 @@ import org.apache.commons.graph.Graph;
 import org.apache.commons.graph.Mapper;
 
 final class GraphMLExporter<V, E>
-    extends AbstractExporter<V, E>
+    extends AbstractExporter<V, E, GraphMLExporter<V, E>>
 {
 
     private static final String GRAPHML = "graphml";
@@ -192,7 +192,7 @@ final class GraphMLExporter<V, E>
     }
 
        @Override
-       public <N extends Number> GraphMLExporter<V, E> 
+       public <N extends Number> GraphMLExporter<V, E>
            withEdgeWeights(Mapper<E, N> edgeWeights) {
                // TODO Auto-generated method stub
                return null;


Reply via email to