package com.example.portfolio3; // origin: import java.util.Collection; import java.util.HashMap; import java.util.HashSet; /// foo public abstract class AbstractGraph implements Graph { /// foo AbstractGraph() { } /// foo private HashMap vertexMap = new HashMap<>(); /// foo private HashSet vertexSet = new HashSet<>(); /// foo /// @param s foo /// @return Vertex public final Vertex vertex(final String s) { if (vertexMap.containsKey(s)) { return vertexMap.get(s); } Vertex v = new Vertex(s); vertexMap.put(s, v); vertexSet.add(v); return v; } /// foo public final void insertEdge( final String v, final String u, final int w ) { insertEdge(vertex(v), vertex(u), w); } /// foo public final Collection vertices() { return vertexSet; } /// foo /// @param v1 foo /// @param v2 foo /// @param w foo public abstract void insertEdge(Vertex v1, Vertex v2, int w); /// foo public abstract Collection edges(); /// foo public abstract Collection outEdge(Vertex v); /// foo public abstract Integer getWeight(Vertex v1, Vertex v2); }