class FlywayVersionContentTreeCallback extends AbstractContentTreeCallback {

    static List<Pair<String, List<Integer>>> sortAndFilter(final List<Pair<String, List<Integer>>> unsorted) {
        final List<Pair<String, List<Integer>>> sorted = new ArrayList<>(unsorted);
        final Iterator<Pair<String, List<Integer>>> iterator = sorted.iterator();
        while (iterator.hasNext()) {
            final Pair<String, List<Integer>> toRemove = iterator.next();
            if (toRemove.getValue().isEmpty()) {
                iterator.remove();
            }
        }
        sorted.sort(FLYWAY_VERSION_COMPARATOR);
        return sorted;
    }

    public  FlywayVersionContentTreeCallback(final Consumer<List<Pair<String, List<Integer>>>> callBack);

}