[jaxrs-cxf-cdi] Generate better fluent api in case of inheritance #5766
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When there is a use of "allOf" in a model definition, since openapi-generator 4.3.2 the generated model class uses inheritance, and only defines fluent interface methods for local fields.
This is rather inconvenient when creating objects, because some fluent setters return an object of the super type, and not the actual type. This also breaks client code that used that feature from 4.3.x.
I added overridden definitions for the fluent setters when needed. I also included a fix proposed in another pull request #5756, to fix the definition of "equals" and "hashCode". I'm proposing this into a new PR instead of appending to that one because while the "equals" and "hashCode" change is really just a bugfix change, this one may raise more debate.
PR checklist
./bin/
(or Windows batch scripts under.\bin\windows
) to update Petstore samples related to your fix. This is important, as CI jobs will verify all generator outputs of your HEAD commit, and these must match the expectations made by your contribution. You only need to run./bin/{LANG}-petstore.sh
,./bin/openapi3/{LANG}-petstore.sh
if updating the code or mustache templates for a language ({LANG}
) (e.g. php, ruby, python, etc).master
,4.3.x
,5.0.x
. Default:master
.@bbdouglas (2017/07) @sreeshas (2017/08) @jfiala (2017/08) @lukoyanov (2017/09) @cbornet (2017/09) @jeff9finger (2018/01) @karismann (2019/03) @Zomzog (2019/04) @lwlee2608 (2019/10) @bkabrda (2020/01)
JAX-RS CXF (CDI): @nickcmaynard