Skip to content

refactor(engine): drop the vestigial Component marker interface#354

Merged
DemchaAV merged 1 commit into
2.0-devfrom
refactor/drop-component-marker
Jul 10, 2026
Merged

refactor(engine): drop the vestigial Component marker interface#354
DemchaAV merged 1 commit into
2.0-devfrom
refactor/drop-component-marker

Conversation

@DemchaAV

Copy link
Copy Markdown
Owner

Why

Component is an empty marker interface inherited from the retired ECS engine
(#353 removed the runtime; this
removes its last vestige). It is implements-ed by 16 live value types but never
consumed as a type anywhere — no type bound, parameter, instanceof, collection
element, or Class token references it — so it defines no contract and is pure dead
weight on the engine value model.

What

  • Removed implements Component and its import from all 16 value types: Margin,
    Padding, Anchor, ContentSize, TextStyle, Text, BlockTextData, Stroke,
    ImageData, ImageIntrinsicSize, ComponentColor, BarcodeData,
    DocumentMetadata, HeaderFooterConfig, PdfProtectionConfig, WatermarkConfig.
  • Deleted the Component interface and its package-info, which empties and removes
    the engine.components.core package; a leftover fully-commented-out EntityTest in
    that package's test tree is removed with it.

The value types are otherwise untouched — same fields, factories, accessors, and
equals/hashCode.

Tests

  • ./mvnw -f aggregator/pom.xml verify -pl :graph-compose-qa -am — full multi-module
    compile + javadoc gate + the qa visual/parity byte-identity suite: green. Removing
    an unconsumed marker changes no behavior; rendered output is identical.
  • A repo-wide grep across all modules confirms zero surviving references to Component
    or engine.components.core.

Component was an empty marker left over from the retired ECS engine —
implemented by 16 live value types (Margin, Padding, Anchor, TextStyle,
ImageData, …) but consumed as a type nowhere: no bound, parameter,
instanceof, collection or Class token references it, so it carries no
contract.

Remove `implements Component` (and its import) from all 16, then delete the
interface and its package-info, emptying and removing the
engine.components.core package. A leftover fully-commented-out EntityTest in
that package's test tree goes with it. The value types are unchanged
otherwise; no behavior change.
@DemchaAV DemchaAV merged commit 7fb1444 into 2.0-dev Jul 10, 2026
12 checks passed
@DemchaAV DemchaAV deleted the refactor/drop-component-marker branch July 10, 2026 13:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant