Skip to content

refactor!: merge ColumnBase into AbstractColumn#9698

Draft
vursen wants to merge 1 commit into
mainfrom
refactor/merge-columnbase-into-abstractcolumn
Draft

refactor!: merge ColumnBase into AbstractColumn#9698
vursen wants to merge 1 commit into
mainfrom
refactor/merge-columnbase-into-abstractcolumn

Conversation

@vursen

@vursen vursen commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

ColumnBase is a package-private interface whose only implementor is AbstractColumn, and every column type (Grid.Column, ColumnGroup) gets its methods by extending AbstractColumn anyway. The interface adds a level of abstraction for no real benefit, so this PR proposes to merge it into AbstractColumn.

Warning

This change breaks binary compatibility. ColumnBase's fluent setters returned the self type T whose bound was ColumnBase, so T erased to ColumnBase in the compiled bytecode. Now the bound is AbstractColumn, so it erases to AbstractColumn. For example, setResizable's descriptor changes from (Z)Lcom/vaadin/flow/component/grid/ColumnBase; to (Z)Lcom/vaadin/flow/component/grid/AbstractColumn;, and since ColumnBase no longer exists, code compiled against the previous version can now fail with NoSuchMethodError until it's recompiled.

ColumnBase was a package-private interface whose only implementor was
AbstractColumn, and all column types reach its methods by extending
AbstractColumn. Move its default methods onto AbstractColumn as concrete
methods and drop the interface. The public fluent API on Grid.Column and
ColumnGroup is unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@sonarqubecloud

sonarqubecloud Bot commented Jul 8, 2026

Copy link
Copy Markdown

@vursen vursen changed the title refactor: merge ColumnBase into AbstractColumn refactor!: merge ColumnBase into AbstractColumn Jul 8, 2026
@vursen vursen added requires new major This would be a breaking change needs discussion No decision yet, discussion needed v26 To be done in V26 and removed requires new major This would be a breaking change needs discussion No decision yet, discussion needed labels Jul 8, 2026
@vursen
vursen marked this pull request as draft July 9, 2026 10:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

v26 To be done in V26

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant