Created by: pixelshaded
The first step in being able to add overrides to parent fluent setters is to get the isInherited and parentVars props working so the templates can know that a particular var is inherited.
https://github.com/OpenAPITools/openapi-generator/issues/1904
Looking at the other languages, inheritance seems to be handled above the DefaultCodegen class. I take this to mean that inheritance rules likely vary between languages so it needs to go in to a language specific generator class. I figured all Java inheritance is the same, so put these changes in the AbstractJavaCodegen that everything should extend from.
I also copied a test from the JavaCodegenClientTest and made it more robust by actually checking parentVars and isInherited props. These tests validated that the parent child relationship exists between CodegenModels, but not on the child properties etc. TDD style, these tests failed until I made the code changes.
The current implementation is very naive. It assumes that all variables shared between the parent and child are inherited. I chose this route because there may be multiple layers of inheritance, so any inherited props from the grandparent should be considered inherited on the child as well.
PR checklist
-
Read the contribution guidelines. -
If contributing template-only or documentation-only changes which will change sample output, build the project before. -
Run the shell script(s) under ./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). -
File the PR against the correct branch: master
,4.3.x
,5.0.x
. Default:master
. -
Copy the technical committee to review the pull request if your PR is targeting a particular programming language. @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)