Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • O openapi-generator
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 3,476
    • Issues 3,476
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 402
    • Merge requests 402
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • OpenAPI Tools
  • openapi-generator
  • Merge requests
  • !852

Extracting language specific code from generators

  • Review changes

  • Download
  • Email patches
  • Plain diff
Open Administrator requested to merge github/fork/rienafairefr/languages-options into master Aug 20, 2018
  • Overview 0
  • Commits 17
  • Pipelines 1
  • Changes 9

Created by: rienafairefr

PR checklist

  • Read the contribution guidelines.
  • Ran the shell script under ./bin/ to update Petstore sample so that CIs can verify the change. (For instance, only need to run ./bin/{LANG}-petstore.sh and ./bin/security/{LANG}-petstore.sh if updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in .\bin\windows\.
  • Filed the PR against the correct branch: master, 3.3.x, 4.0.x. Default: master.
  • Copied the technical committee to review the pull request if your PR is targeting a particular programming language.

@jimschubert @wing328

Description of the PR

As discussed in #842, in the scope of the Separation of Concerns project, it would be nice to divorce generators (usually language+framework) from its language , in order to limit code repetition, better share code between generators that use the same language without forcing inheritance, and being able to generate new generators for a new language, reusing code without being blocked by language-specific implementation details.

This is a partial implementation of that philsophy, for now I only extracted the type/classes informations (typeMapping, reservedWords, languageSpecificPrimitives, instantiationTypes, defaultIncludes, importMapping). There is Options interface for language to implement (I've implemented the JavaOptions as an example).

Implementation is backward compatible (If the generator class has a non null Options field, it is used, otherwise the fields in the *Codegen class are still used)

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: github/fork/rienafairefr/languages-options