private static <T> void alignTabs(
        final List<T> models,
        final Function<T, String> getRow,
        final BiConsumer<T, String> setRow
    ) {
        final AtomicInteger maxIndex = new AtomicInteger(-1);
        
        while (true) {
            maxIndex.set(-1);
            
            models.forEach(model -> {
                final String row = getRow.apply(model);
                updateMaxIndex(maxIndex, row);
            });
            
            if (maxIndex.get() > -1) {
                for (final T model : models) {
                    final String row = getRow.apply(model);
                    if (row != null) {
                        final int index = row.indexOf('\t');
                        replaceTabWithSpace(setRow, maxIndex, model, row, index);
                    }
                }
            } else {
                break;
            }
        }
    }
@param <T>  the type being operated upon

@author Emil Forslund
@since  2.4.3
common-parent/codegen/src/main/java/com/speedment/common/codegen/controller/AlignTabs.java