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;