package nl.tudelft.lifetiles.graph.model.jgrapht; import nl.tudelft.lifetiles.graph.model.Edge; import nl.tudelft.lifetiles.graph.model.EdgeFactory; import org.jgrapht.graph.ClassBasedEdgeFactory; import org.jgrapht.graph.DefaultEdge; /** * @author Rutger van den Berg * * @param <V> * The type of vertex to use. */ public class JGraphTEdgeFactory<V> implements EdgeFactory<V> { /** * Internal factory to use. */ private final ClassBasedEdgeFactory<V, DefaultEdge> internalFactory; /** * Creates a new edge factory. */ public JGraphTEdgeFactory() { internalFactory = new ClassBasedEdgeFactory<V, DefaultEdge>( DefaultEdge.class); } /** * @param edge * The internal edge to use. * @return a new edge. */ public Edge<V> getEdge(final DefaultEdge edge) { return new JGraphTEdgeAdapter<V>(edge); } /** * @return A new edge from <code>v1</code> to <code>v2</code> * @param source * The source vertex. * @param destination * The destination vertex. */ @Override public Edge<V> getEdge(final V source, final V destination) { return new JGraphTEdgeAdapter<V>(internalFactory.createEdge(source, destination)); } }