Skip to content
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

Add all argument constructor to generated classes and make setters like a builder #368

Closed
vladigeras opened this issue Jan 9, 2024 · 4 comments
Labels
enhancement New feature or request stale

Comments

@vladigeras
Copy link

vladigeras commented Jan 9, 2024

Reason/Context

Now generated classes have only one default no argument constructor and classic setters (set field value and return void).
I suggest at least one changes:

  • add more constructor to generated classes: all argument constructor
  • make setters like a builder (set field value and return this object)

This changes can increase readability of generated classes and decrease unnecessary verbose when using models in client services.

Description

Add all argument constructor to generated classes OR (AND) make setters like a builder

@vladigeras vladigeras added the enhancement New feature or request label Jan 9, 2024
Copy link

github-actions bot commented Jan 9, 2024

Welcome to AsyncAPI. Thanks a lot for reporting your first issue. Please check out our contributors guide and the instructions about a basic recommended setup useful for opening a pull request.
Keep in mind there are also other channels you can use to interact with AsyncAPI community. For more details check out this issue.

@Tenischev
Copy link
Member

Hello @vladigeras
Thank you for the feedback.
I think it's also third option to use records.
About all argument constructor I see a drawback in readability when object has 10+ fields. Maybe argument constructor should be made for required fields.
Builder is also a good option.

I'll think about it

@vladigeras
Copy link
Author

vladigeras commented Jan 9, 2024

"About all argument constructor I see a drawback in readability when object has 10+ fields".
Kotlin named arguments)).

I suggest, that all argument constructor can be added as optional way to create an object. If it unsuitable way, then programmer can skip it and use another way.

Can we use record for class generation now? For example, with some generator parameters
Use records = limit minimal Java version as 16

Copy link

github-actions bot commented May 9, 2024

This issue has been automatically marked as stale because it has not had recent activity 😴

It will be closed in 120 days if no further activity occurs. To unstale this issue, add a comment with a detailed explanation.

There can be many reasons why some specific issue has no activity. The most probable cause is lack of time, not lack of interest. AsyncAPI Initiative is a Linux Foundation project not owned by a single for-profit company. It is a community-driven initiative ruled under open governance model.

Let us figure out together how to push this issue forward. Connect with us through one of many communication channels we established here.

Thank you for your patience ❤️

@github-actions github-actions bot added the stale label May 9, 2024
@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Sep 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request stale
Projects
None yet
Development

No branches or pull requests

2 participants