public void addEdge(T edge) throws IllegalArgumentException {
		// check the passed vertex indices
		if (edge.getSource() < 0 || edge.getSource() >= numberOfVertices ||
			edge.getTarget() < 0 || edge.getTarget() >= numberOfVertices) {
			
			String errorMessage =
				"Allows vertex indizes are 0.."
				+ (numberOfVertices - 1) + ".";
			
			throw new IllegalArgumentException(errorMessage);
		}
		
		/*
		 * update the number of edges if there has been no edge between the
		 * passed vertices yet, only
		 */
		if (hasEdge(edge.getSource(), edge.getTarget())) {
			/*
			String errorMessage =
				"There already is an edge between the vertices " +
				edge.getSource() + " and " + edge.getTarget() +
				" in this graph."; 
			
			throw new IllegalArgumentException(errorMessage);			*/

		}
		
		adjacencyList[edge.getSource()].add(edge);
		numberOfEdges++;
	}