package network3; import java.awt.geom.Point2D; import java.util.HashSet; import java.util.Set; public class NetworkGraph implements WeightedGraph { private Network network; public NetworkGraph(Network n) { this.network = n; } @Override public Set vertices() { return network.points(); } @Override public Set neighbors(Point2D p) { Set n = new HashSet(); for (Point2D p2 : network.points()) if (network.link(p, p2) != null) n.add(p2); return n; } @Override public boolean areNeighbors(Point2D p1, Point2D p2) { return network.link(p1, p2) != null; } @Override public double weight(Point2D p1, Point2D p2) throws IllegalArgumentException { Link l = network.link(p1, p2); if (l == null) throw new IllegalArgumentException("Link between " + p1 + " and " + p2 + " does not exist"); return l.length(); } }