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

Fix ParentVars and IsInherited for Java #5232

Open
wants to merge 1 commit into
base: master
from

Conversation

@pixelshaded
Copy link
Contributor

pixelshaded commented Feb 7, 2020

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.

#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)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

1 participant
You can’t perform that action at this time.