private LinkedList<LinkedList<Migration>> findMigrationQueues(LinkedList<LinkedList<Migration>> migrationQueues, int destinationFormat) {
boolean changed = false;
LinkedList<LinkedList<Migration>> migrationQueuesCopy = new LinkedList<LinkedList<Migration>>(migrationQueues);
for (ListIterator<LinkedList<Migration>> it = migrationQueuesCopy.listIterator(); it.hasNext(); ) {
LinkedList<Migration> migrationQueue = it.next();
Migration migration = migrationQueue.getLast();
if (migration.getDestinationFormat() == destinationFormat)
continue;
it.remove();
for (Migration innerMigration : fMigrations) {
if (migration.equals(innerMigration))
continue;
if (migration.getDestinationFormat() == innerMigration.getOriginFormat()) {
changed = true;
LinkedList<Migration> newMigrationQueue = new LinkedList<Migration>(migrationQueue);
newMigrationQueue.add(innerMigration);
it.add(newMigrationQueue);
}