code: @SuppressWarnings("unchecked")
  	public Iterable<Edge<K, EV>> getEdges() {
  		if (edgesUsed) {
  			throw new IllegalStateException("Can use either 'getEdges()' or 'sendMessageToAllNeighbors()' exactly once.");
  		}
  		edgesUsed = true;
  		this.edgeIterator.set((Iterator<Edge<K, EV>>) edges);
  		return this.edgeIterator;
  	}
docs: Gets an {@link java.lang.Iterable} with all edges. This method is mutually exclusive with
  {@link #sendMessageToAllNeighbors(Object)} and may be called only once.
  
  <p>If the {@link EdgeDirection} is OUT (default), then this iterator contains outgoing edges.
  
  <p>If the {@link EdgeDirection} is IN, then this iterator contains incoming edges.
  
  <p>If the {@link EdgeDirection} is ALL, then this iterator contains both outgoing and incoming edges.
  
  @return An iterator with all edges.