public static void alignTabs(List<String> rows) {
        while (true) {
            int maxIndex = -1;
            for (final String row : rows) {
                final int index = row.indexOf('\t');

                if (index > maxIndex) {
                    maxIndex = index;
                }
            }

            if (maxIndex > -1) {
                for (int i = 0; i < rows.size(); i++) {
                    replaceTabsWithSpace(rows, maxIndex, i);
                }
            } else {
                break;
            }
        }
    }
Replaces every tab character ({@code \t}) in the specified rows with a
number spaces so that the character indexes align. This is called 
recursively until all tab characters have been replaced. If there are no
tabs in the text, the method has no effect.
<p>
<em>Example:</em>
If you call the method on the following code:
{@code
    this.firstname\t = firstname;\t // Nullable
    this.lastname\t = lastname;\t // Nullable
    this.email\t = email;\t // Nullable
    this.age\t = age;
}

You will get the following result:
{@code
    this.firstname = firstname; // Nullable
    this.lastname  = lastname;  // Nullable
    this.email     = email;     // Nullable
    this.age       = age;
}

@param rows list of rows to operate on
common-parent/codegen/src/main/java/com/speedment/common/codegen/util/Formatting.java