public String getDotRepresentation(){
    ArrayList<Edge> edges = this.getAllEdges();
    StringBuilder res = getDotRepresentationFromEdges(edges);
    return res.toString();
}

public static StringBuilder getDotRepresentationFromEdges(ArrayList<Edge> edges) {
    StringBuilder res = new StringBuilder("graph{\n");
    for (int i = 0; i < edges.size(); i++){
        Edge edge = edges.get(i);
        res.append(edge.getFrom().name.replace(" ", "_"))
                .append(" -- ")
                .append(edge.getTo().name.replace(" ", "_"))
                .append(" [label=")
                .append(Math.floor(edge.getWeight()))
                .append("];\n");
    }
    res.append("}");
    return res;
}