@Override
  public <N1 extends N, E1 extends E> MutableNetwork<N1, E1> build() {
    com.google.common.graph.NetworkBuilder<Object, Object> guavaBuilder =
      myIsDirected ? com.google.common.graph.NetworkBuilder.directed()
                   : com.google.common.graph.NetworkBuilder.undirected();
    guavaBuilder
      .allowsParallelEdges(myDoAllowParallelEdges)
      .allowsSelfLoops(myDoAllowSelfLoops)
      .edgeOrder(GraphAdapter.unwrapOrder(myEdgeOrder))
      .nodeOrder(GraphAdapter.unwrapOrder(myNodeOrder));
    if (myExpectedEdgeCount.isPresent()) guavaBuilder.expectedEdgeCount(myExpectedEdgeCount.getAsInt());
    if (myExpectedNodeCount.isPresent()) guavaBuilder.expectedNodeCount(myExpectedNodeCount.getAsInt());

    return GraphAdapter.wrapNetwork(guavaBuilder.build());
  }
@Override
  public <N1 extends N, E1 extends E> MutableNetwork<N1, E1> build()