-
Notifications
You must be signed in to change notification settings - Fork 1
refactor: use lombok extension mechanism #125
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
WalkthroughTwo Java demo classes are modified to integrate Lombok's ExtensionMethod annotation, enabling extension method support for JsonMigration. Static method calls are replaced with instance-style equivalents. No changes to public API signatures. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
♻️ Duplicate comments (1)
src/main/java/com/flowingcode/vaadin/addons/demo/SourceCodeViewer.java (1)
36-40: SamesuppressBaseMethodsconcern applies here.This file uses the same
@ExtensionMethodconfiguration as MultiSourceCodeViewer.java. The verification requested in that file applies here as well - ensure that Element doesn't have a nativesetPropertyJsonmethod that would be shadowed.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
src/main/java/com/flowingcode/vaadin/addons/demo/MultiSourceCodeViewer.java(2 hunks)src/main/java/com/flowingcode/vaadin/addons/demo/SourceCodeViewer.java(2 hunks)
🧰 Additional context used
🧬 Code graph analysis (1)
src/main/java/com/flowingcode/vaadin/addons/demo/SourceCodeViewer.java (2)
src/main/java/com/flowingcode/vaadin/addons/demo/MultiSourceCodeViewer.java (1)
ExtensionMethod(33-151)src/main/java/com/flowingcode/vaadin/addons/demo/SplitLayoutDemo.java (1)
SuppressWarnings(32-114)
🔇 Additional comments (2)
src/main/java/com/flowingcode/vaadin/addons/demo/SourceCodeViewer.java (1)
91-91: LGTM - Consistent with the refactoring pattern.The change from
JsonMigration.setPropertyJson(codeViewer, "env", env)tocodeViewer.setPropertyJson("env", env)maintains consistency with the extension method approach. The refactoring successfully eliminates static method calls in favor of more fluent instance-style syntax.src/main/java/com/flowingcode/vaadin/addons/demo/MultiSourceCodeViewer.java (1)
31-33: Verify that extension methods fromjson-migration-helperare intentionally shadowing Vaadin's existing methods.The
getEventData()method exists in Vaadin Flow's DomEvent class and returns a JsonObject containing client-side event data. Similarly, Element.setPropertyJson() is a standard method in Vaadin Flow that sets a DOM property to a JSON value.With
suppressBaseMethods = true, the extension methods fromjson-migration-helperwill override these existing Vaadin methods at lines 52 (ev.getEventData()) and 91 (codeViewer.setPropertyJson()). Confirm that:
- The extension methods provide compatible implementations (same behavior or intentional enhancements)
- The shadowing is intentional and necessary for the json-migration-helper functionality
- The code has been tested to ensure the extension methods work correctly in place of the Vaadin originals



Summary by CodeRabbit