![JAR search and dependency download from the Maven repository](/logo.png)
net.sf.javagimmicks.graph.MapGraphBuilder Maven / Gradle / Ivy
package net.sf.javagimmicks.graph;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
import net.sf.javagimmicks.graph.DefaultEdgeFactory.DefaultEdge;
import net.sf.javagimmicks.lang.Factory;
public class MapGraphBuilder>
{
protected boolean _directed = false;
protected Map> _edgeMap = new HashMap>();
protected Factory extends Set> _setFactory = new HashSetFactory();
protected EdgeFactory _edgeFactory = null;
public static MapGraphBuilder> createDefaultInstance(Map>> edges, Factory>> setFactory)
{
return new MapGraphBuilder>()
.setEdgeMap(edges)
.setSetFactory(setFactory)
.setEdgeFactory(new DefaultEdgeFactory());
}
public static MapGraphBuilder> createDefaultHashInstance()
{
return createDefaultInstance(new HashMap>>(), new HashSetFactory>());
}
public MapGraph build()
{
if(_edgeFactory == null)
{
throw new IllegalStateException("No EdgeFactory set yet!");
}
return new MapGraph(_edgeMap, _setFactory, _edgeFactory, _directed);
}
public boolean isDirected()
{
return _directed;
}
public Map> getEdgeMap()
{
return _edgeMap;
}
public Factory extends Set> getSetFactory()
{
return _setFactory;
}
public EdgeFactory getEdgeFactory()
{
return _edgeFactory;
}
public MapGraphBuilder setDirected(boolean directed)
{
_directed = directed;
return this;
}
public MapGraphBuilder setEdgeMap(Map> edgeMap)
{
_edgeMap = edgeMap;
return this;
}
public MapGraphBuilder setSetFactory(Factory extends Set> setFactory)
{
_setFactory = setFactory;
return this;
}
public MapGraphBuilder setEdgeFactory(EdgeFactory edgeFactory)
{
_edgeFactory = edgeFactory;
return this;
}
public static class HashSetFactory implements Factory>
{
public Set create()
{
return new HashSet();
}
}
public static class TreeSetFactory implements Factory>
{
public Set create()
{
return new TreeSet();
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy