Describe your motivation
Column is a nested class that lives inside Grid and is approaching 800 lines, with the two classes totaling 5500 lines together. They also share some method names, so jumping between them is really hard. Extracting Grid.Column into a top-level GridColumn class would take a big chunk out of Grid and make both classes considerably easier to work with.
Describe alternatives you've considered
A slightly softer option that would also address the maintenance concern mentioned above is to move everything into a new package-private top-level Column class and make Grid.Column extend it. This would likely break binary compatibility for some methods like Column<T> setFlexGrow(int flexGrow), as their return type would erase to the new package-private class, but Grid.Column would stay in place, so the change would at least remain source-compatible.
Describe your motivation
Column is a nested class that lives inside Grid and is approaching 800 lines, with the two classes totaling 5500 lines together. They also share some method names, so jumping between them is really hard. Extracting Grid.Column into a top-level GridColumn class would take a big chunk out of Grid and make both classes considerably easier to work with.
Describe alternatives you've considered
A slightly softer option that would also address the maintenance concern mentioned above is to move everything into a new package-private top-level Column class and make Grid.Column extend it. This would likely break binary compatibility for some methods like
Column<T> setFlexGrow(int flexGrow), as their return type would erase to the new package-private class, but Grid.Column would stay in place, so the change would at least remain source-compatible.