package nl.helixsoft.graph; import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Set; public interface Network { public abstract void createEdge(Node src, Node dest, String predicate); public abstract NodeImpl createOrGetNode(String name); // public abstract NodeImpl getNode(String name); public abstract Collection<? extends Node> getNodes(); public abstract Collection<? extends Edge> getEdges(); public abstract Set<String> getNodeAttributeSet(); /** * Returns map with node id as keys and attribute for that node for given key as values. */ public abstract Map<String, Object> getNodeAttribute(String key); /** * return all edges that run between src and dest */ public List<Edge> getEdges(Node src, Node dest); /** * Returns true if node with given id already exists */ public abstract boolean exists(String id); }