public List<Long> getPathListAsEdges(List<Long> pathV) {
		List<Long> pathE = new ArrayList<>(pathV.size());
		for (int i = 0; i < pathV.size() - 1; i++) {
			for (Long eid : graph.getEdges()) {

				long currVertice = pathV.get(i);
				long nextVertice = pathV.get(i + 1);

				// case forward
				// in this if/elseif we ask the next vertice in the augmenting
				// path
				// how we can reach it. depending on the direction (+ or -)

				if (getMarkedTuple(nextVertice).getDirection() == "+") {

					// if the next vertice goes on a normal way, then
					// pick the edge which goes from the current vertice
					// to the next vertice
					increaseAccess(2); // Zugriff auf zwei Edges
					if (graph.getSource(eid) == currVertice
							&& graph.getTarget(eid) == nextVertice) {

						debug("forward: " + currVertice + " "
								+ getMarkedTuple(nextVertice).getDirection()
								+ " " + nextVertice + " Edge: " + eid);

						pathE.add(eid);
						break;
					}
				} // case backward
				else if (getMarkedTuple(nextVertice).getDirection() == "-") {

					// if the vertice points over a backward edge to the next
					// vertice
					// pick the edge which goes form the nextVertice to the
					// currentVertice
					increaseAccess(2); // Zugriff auf zwei Edges
					if (graph.getSource(eid) == nextVertice
							&& graph.getTarget(eid) == currVertice) {

						debug("backward: " + currVertice + " "
								+ getMarkedTuple(nextVertice).getDirection()
								+ " " + nextVertice + " Edge: " + eid);

						pathE.add(eid);
						break;
					}

				} else {
					System.err
							.println("Shouldn't have any undirectional veritces!"
									+ nextVertice);
				}

			}
		}
		return pathE;
	}