package nl.helixsoft.graph; import java.util.HashMap; import java.util.Map; import java.util.Set; public class EdgeImpl implements Edge { private Map<String, Object> attributes = new HashMap<String, Object>(); private String predicate; // non-unique; public EdgeImpl (String predicate) { this (null, null, predicate); } public Set<String> getAttributeSet() { return attributes.keySet(); } public void setAttribute (String key, Object val) { attributes.put (key, val); }; public Object getAttribute (String key) { return attributes.get (key); } // TODO: get rid of src and dest, this is not compatible with Jung. private Node src; private Node dest; @Override public Node getDest() { return dest; } @Override public Node getSrc() { return src; } public EdgeImpl (Node src, Node dest, String predicate) { this.src = src; this.dest = dest; this.predicate = predicate; } @Override public String toString() { if (src == null || dest == null) return predicate; return "Edge: " + src.getId() + " " + predicate + " " + dest.getId(); } @Override public String getPredicate() { return predicate; } }