class DataSetLoaderProvider implements LoaderProvider<Graph<Node, Edge>> {

    @Override
    public DataSetLoader<Graph<Node, Edge>> xmlLoader() {
        return (final File path) -> {
            try {
                final DefaultDirectedGraph<Node, Edge> graph = new DefaultDirectedGraph<>(new ClassBasedEdgeFactory<>(Edge.class));
                final GraphMLReader<Node, Edge> importer = new GraphMLReader<>(graphElementFactory, graphElementFactory);
                importer.importGraph(graph, path);
                return graph;
            } catch (final ImportException e) {
                throw new IOException(e);
            }
        };

    }

    public  DataSetLoaderProvider(final GraphElementFactory graphElementFactory);

}