ret = new ArrayList<ConversionStep>();
Vertex predecessor = null;
Vertex activeVertex = targetVertex;
while ((predecessor = activeVertex.getPredecessor()) != null) {
Edge edge = findEdge(predecessor, activeVertex);
ret.add(0, new ConversionStep(activeVertex.getFormat(), edge.getConversionExtension()));
activeVertex = predecessor;
}
// add to cache
cache.add(sourceFormat, targetFormat, ret);