private static ArrayList<Object> getWFIPathRec(mxAnalysisGraph aGraph, Object[][] paths, Object startVertex, Object targetVertex,
			ArrayList<Object> currPath, mxCostFunction cf, mxGraphView view) throws StructuralException
	{
		Double sourceIndexD = cf.getCost(view.getState(startVertex));
		Object[] parents = paths[sourceIndexD.intValue()];
		Double targetIndexD = cf.getCost(view.getState(targetVertex));
		int tIndex = targetIndexD.intValue();

		if (parents[tIndex] != null)
		{
			currPath = getWFIPathRec(aGraph, paths, startVertex, parents[tIndex], currPath, cf, view);
		}
		else
		{
			if (mxGraphStructure.areConnected(aGraph, startVertex, targetVertex) || startVertex == targetVertex)
			{
				currPath.add(targetVertex);
			}
			else
			{
				throw new StructuralException("The two vertices aren't connected");
			}
		}

		return currPath;
	}