Class DefaultCodegen

java.lang.Object
org.openapitools.codegen.DefaultCodegen
All Implemented Interfaces:
org.openapitools.codegen.CodegenConfig
Direct Known Subclasses:
org.openapitools.codegen.languages.AbstractJavaCodegen, org.openapitools.codegen.languages.AbstractKotlinCodegen

public class DefaultCodegen extends Object implements org.openapitools.codegen.CodegenConfig
  • Field Details

    • DefaultFeatureSet

      public static org.openapitools.codegen.meta.FeatureSet DefaultFeatureSet
    • falseSchema

      protected static io.swagger.v3.oas.models.media.Schema falseSchema
    • trueSchema

      protected static io.swagger.v3.oas.models.media.Schema trueSchema
    • generatorMetadata

      protected org.openapitools.codegen.meta.GeneratorMetadata generatorMetadata
    • inputSpec

      protected String inputSpec
    • outputFolder

      protected String outputFolder
    • defaultIncludes

      protected Set<String> defaultIncludes
    • typeMapping

      protected Map<String,String> typeMapping
    • instantiationTypes

      protected Map<String,String> instantiationTypes
    • reservedWords

      protected Set<String> reservedWords
    • languageSpecificPrimitives

      protected Set<String> languageSpecificPrimitives
    • openapiGeneratorIgnoreList

      protected Set<String> openapiGeneratorIgnoreList
    • importMapping

      protected Map<String,String> importMapping
    • schemaMapping

      protected Map<String,String> schemaMapping
    • inlineSchemaNameMapping

      protected Map<String,String> inlineSchemaNameMapping
    • inlineSchemaOption

      protected Map<String,String> inlineSchemaOption
    • nameMapping

      protected Map<String,String> nameMapping
    • parameterNameMapping

      protected Map<String,String> parameterNameMapping
    • modelNameMapping

      protected Map<String,String> modelNameMapping
    • enumNameMapping

      protected Map<String,String> enumNameMapping
    • operationIdNameMapping

      protected Map<String,String> operationIdNameMapping
    • openapiNormalizer

      protected Map<String,String> openapiNormalizer
    • fileSuffix

      protected String fileSuffix
    • modelNamePrefix

      protected String modelNamePrefix
    • modelNameSuffix

      protected String modelNameSuffix
    • apiNamePrefix

      protected String apiNamePrefix
    • apiNameSuffix

      protected String apiNameSuffix
    • testPackage

      protected String testPackage
    • modelPackage

      protected String modelPackage
    • apiPackage

      protected String apiPackage
    • filesMetadataFilename

      protected String filesMetadataFilename
    • versionMetadataFilename

      protected String versionMetadataFilename
    • apiTemplateFiles

      protected Map<String,String> apiTemplateFiles
    • modelTemplateFiles

      protected Map<String,String> modelTemplateFiles
    • apiTestTemplateFiles

      protected Map<String,String> apiTestTemplateFiles
    • modelTestTemplateFiles

      protected Map<String,String> modelTestTemplateFiles
    • apiDocTemplateFiles

      protected Map<String,String> apiDocTemplateFiles
    • modelDocTemplateFiles

      protected Map<String,String> modelDocTemplateFiles
    • reservedWordsMappings

      protected Map<String,String> reservedWordsMappings
    • templateDir

      protected String templateDir
    • embeddedTemplateDir

      protected String embeddedTemplateDir
    • additionalProperties

      protected Map<String,Object> additionalProperties
    • serverVariables

      protected Map<String,String> serverVariables
    • vendorExtensions

      protected Map<String,Object> vendorExtensions
    • templateOutputDirs

      protected Map<String,String> templateOutputDirs
    • supportingFiles

      protected List<org.openapitools.codegen.SupportingFile> supportingFiles
    • cliOptions

      protected List<org.openapitools.codegen.CliOption> cliOptions
    • skipOverwrite

      protected boolean skipOverwrite
    • removeOperationIdPrefix

      protected boolean removeOperationIdPrefix
    • removeOperationIdPrefixDelimiter

      protected String removeOperationIdPrefixDelimiter
    • removeOperationIdPrefixCount

      protected int removeOperationIdPrefixCount
    • skipOperationExample

      protected boolean skipOperationExample
    • skipSortingOperations

      protected boolean skipSortingOperations
    • XML_MIME_PATTERN

      protected static final Pattern XML_MIME_PATTERN
    • JSON_MIME_PATTERN

      protected static final Pattern JSON_MIME_PATTERN
    • JSON_VENDOR_MIME_PATTERN

      protected static final Pattern JSON_VENDOR_MIME_PATTERN
    • supportsMultipleInheritance

      protected boolean supportsMultipleInheritance
      True if the code generator supports multiple class inheritance. This is used to model the parent hierarchy based on the 'allOf' composed schemas.
    • supportsInheritance

      protected boolean supportsInheritance
      True if the code generator supports single class inheritance. This is used to model the parent hierarchy based on the 'allOf' composed schemas. Note: the single-class inheritance technique has inherent limitations because a 'allOf' composed schema may have multiple $ref child schemas, each one potentially representing a "parent" in the class inheritance hierarchy. Some language generators also use class inheritance to implement the `additionalProperties` keyword. For example, the Java code generator may generate 'extends HashMap'.
    • supportsAdditionalPropertiesWithComposedSchema

      protected boolean supportsAdditionalPropertiesWithComposedSchema
      True if the language generator supports the 'additionalProperties' keyword as sibling of a composed (allOf/anyOf/oneOf) schema. Note: all language generators should support this to comply with the OAS specification.
    • supportsMixins

      protected boolean supportsMixins
    • supportedLibraries

      protected Map<String,String> supportedLibraries
    • library

      protected String library
    • sortParamsByRequiredFlag

      protected Boolean sortParamsByRequiredFlag
    • sortModelPropertiesByRequiredFlag

      protected Boolean sortModelPropertiesByRequiredFlag
    • ensureUniqueParams

      protected Boolean ensureUniqueParams
    • allowUnicodeIdentifiers

      protected Boolean allowUnicodeIdentifiers
    • gitHost

      protected String gitHost
    • gitUserId

      protected String gitUserId
    • gitRepoId

      protected String gitRepoId
    • releaseNote

      protected String releaseNote
    • httpUserAgent

      protected String httpUserAgent
    • hideGenerationTimestamp

      protected Boolean hideGenerationTimestamp
    • specialCharReplacements

      protected Map<String,String> specialCharReplacements
    • typeAliases

      protected Map<String,String> typeAliases
    • prependFormOrBodyParameters

      protected Boolean prependFormOrBodyParameters
    • docExtension

      protected String docExtension
    • ignoreFilePathOverride

      protected String ignoreFilePathOverride
    • enablePostProcessFile

      protected boolean enablePostProcessFile
    • useOneOfInterfaces

      protected boolean useOneOfInterfaces
    • addOneOfInterfaceImports

      protected boolean addOneOfInterfaceImports
    • addOneOfInterfaces

      protected List<org.openapitools.codegen.CodegenModel> addOneOfInterfaces
    • enableMinimalUpdate

      protected boolean enableMinimalUpdate
    • strictSpecBehavior

      protected boolean strictSpecBehavior
    • removeEnumValuePrefix

      protected boolean removeEnumValuePrefix
    • legacyDiscriminatorBehavior

      protected boolean legacyDiscriminatorBehavior
    • disallowAdditionalPropertiesIfNotPresent

      protected boolean disallowAdditionalPropertiesIfNotPresent
    • enumUnknownDefaultCase

      protected boolean enumUnknownDefaultCase
    • enumUnknownDefaultCaseName

      protected String enumUnknownDefaultCaseName
    • openAPI

      protected io.swagger.v3.oas.models.OpenAPI openAPI
    • loadDeepObjectIntoItems

      protected boolean loadDeepObjectIntoItems
    • importBaseType

      protected boolean importBaseType
    • importContainerType

      protected boolean importContainerType
    • addSuffixToDuplicateOperationNicknames

      protected boolean addSuffixToDuplicateOperationNicknames
    • autosetConstants

      protected boolean autosetConstants
  • Constructor Details

    • DefaultCodegen

      public DefaultCodegen()
      Default constructor. This method will map between OAS type and language-specified type, as well as mapping between OAS type and the corresponding import statement for the language. This will also add some language specified CLI options, if any. returns string presentation of the example path (it's a constructor)
  • Method Details

    • getAddSuffixToDuplicateOperationNicknames

      public boolean getAddSuffixToDuplicateOperationNicknames()
      Specified by:
      getAddSuffixToDuplicateOperationNicknames in interface org.openapitools.codegen.CodegenConfig
    • cliOptions

      public List<org.openapitools.codegen.CliOption> cliOptions()
      Specified by:
      cliOptions in interface org.openapitools.codegen.CodegenConfig
    • useCodegenAsMustacheParentContext

      protected void useCodegenAsMustacheParentContext()
      add this instance to additionalProperties. This instance is used as parent context in Mustache. It means that Mustache uses the values found in this order: first from additionalProperties then from the getter in this instance then from the fields in this instance
    • processOpts

      public void processOpts()
      Specified by:
      processOpts in interface org.openapitools.codegen.CodegenConfig
    • addMustacheLambdas

      protected com.google.common.collect.ImmutableMap.Builder<String,com.samskivert.mustache.Mustache.Lambda> addMustacheLambdas()
      Preset map builder with commonly used Mustache lambdas. To extend the map, override addMustacheLambdas(), call parent method first and then add additional lambdas to the returned builder. If common lambdas are not desired, override addMustacheLambdas() method and return empty builder.
      Returns:
      preinitialized map with common lambdas
    • postProcessAllModels

      public Map<String,org.openapitools.codegen.model.ModelsMap> postProcessAllModels(Map<String,org.openapitools.codegen.model.ModelsMap> objs)
      Specified by:
      postProcessAllModels in interface org.openapitools.codegen.CodegenConfig
    • getModelNameToSchemaCache

      protected Map<String,io.swagger.v3.oas.models.media.Schema> getModelNameToSchemaCache()
      Return a map from model name to Schema for efficient lookup.
      Returns:
      map from model name to Schema.
    • getAllModels

      public Map<String,org.openapitools.codegen.CodegenModel> getAllModels(Map<String,org.openapitools.codegen.model.ModelsMap> objs)
      Index all CodegenModels by model name.
      Parameters:
      objs - Map of models
      Returns:
      map of all models indexed by names
    • updateAllModels

      public Map<String,org.openapitools.codegen.model.ModelsMap> updateAllModels(Map<String,org.openapitools.codegen.model.ModelsMap> objs)
      Loop through all models to update different flags (e.g. isSelfReference), children models, etc and update mapped models for import.
      Specified by:
      updateAllModels in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      objs - Map of models
      Returns:
      maps of models with various updates
    • removeImport

      protected void removeImport(org.openapitools.codegen.model.OperationsMap objs, String importToRemove)
      Removes importToRemove from the imports of objs, if present. This is useful to remove imports that are already present in operations-related template files, to avoid importing the same thing twice.
      Parameters:
      objs - imports will be removed from this objs' imports collection
      importToRemove - the import statement to be removed
    • removeSelfReferenceImports

      protected void removeSelfReferenceImports(org.openapitools.codegen.CodegenModel model)
      Removes imports from the model that points to itself Marks a self referencing property, if detected
      Parameters:
      model - Self imports will be removed from this model.imports collection
    • setCircularReferences

      public void setCircularReferences(Map<String,org.openapitools.codegen.CodegenModel> models)
    • postProcessModels

      public org.openapitools.codegen.model.ModelsMap postProcessModels(org.openapitools.codegen.model.ModelsMap objs)
      Specified by:
      postProcessModels in interface org.openapitools.codegen.CodegenConfig
    • postProcessModelsEnum

      public org.openapitools.codegen.model.ModelsMap postProcessModelsEnum(org.openapitools.codegen.model.ModelsMap objs)
      post process enum defined in model's properties
      Parameters:
      objs - Map of models
      Returns:
      maps of models with better enum support
    • findCommonPrefixOfVars

      public String findCommonPrefixOfVars(List<Object> vars)
      Returns the common prefix of variables for enum naming if two or more variables are present
      Parameters:
      vars - List of variable names
      Returns:
      the common prefix for naming
    • toEnumDefaultValue

      public String toEnumDefaultValue(String value, String datatype)
      Return the enum default value in the language specified format
      Parameters:
      value - enum variable name
      datatype - data type
      Returns:
      the default value for the enum
    • toEnumDefaultValue

      public String toEnumDefaultValue(org.openapitools.codegen.CodegenProperty property, String value)
      Return the enum default value in the language specified format
      Parameters:
      property - The codegen property to create the default for.
      value - Enum variable name
      Returns:
      the default value for the enum
    • toEnumValue

      public String toEnumValue(String value, String datatype)
      Return the enum value in the language specified format e.g. status becomes "status"
      Parameters:
      value - enum variable name
      datatype - data type
      Returns:
      the sanitized value for enum
    • toEnumVarName

      public String toEnumVarName(String value, String datatype)
      Return the sanitized variable name for enum
      Parameters:
      value - enum variable name
      datatype - data type
      Returns:
      the sanitized variable name for enum
    • specVersionGreaterThanOrEqualTo310

      public boolean specVersionGreaterThanOrEqualTo310(io.swagger.v3.oas.models.OpenAPI openAPI)
    • setOpenAPI

      public void setOpenAPI(io.swagger.v3.oas.models.OpenAPI openAPI)
      Set the OpenAPI document. This method is invoked when the input OpenAPI document has been parsed and validated.
      Specified by:
      setOpenAPI in interface org.openapitools.codegen.CodegenConfig
    • postProcess

      public void postProcess()
      Specified by:
      postProcess in interface org.openapitools.codegen.CodegenConfig
    • postProcessOperationsWithModels

      public org.openapitools.codegen.model.OperationsMap postProcessOperationsWithModels(org.openapitools.codegen.model.OperationsMap objs, List<org.openapitools.codegen.model.ModelMap> allModels)
      Specified by:
      postProcessOperationsWithModels in interface org.openapitools.codegen.CodegenConfig
    • postProcessWebhooksWithModels

      public org.openapitools.codegen.model.WebhooksMap postProcessWebhooksWithModels(org.openapitools.codegen.model.WebhooksMap objs, List<org.openapitools.codegen.model.ModelMap> allModels)
      Specified by:
      postProcessWebhooksWithModels in interface org.openapitools.codegen.CodegenConfig
    • postProcessSupportingFileData

      public Map<String,Object> postProcessSupportingFileData(Map<String,Object> objs)
      Specified by:
      postProcessSupportingFileData in interface org.openapitools.codegen.CodegenConfig
    • postProcessModelProperty

      public void postProcessModelProperty(org.openapitools.codegen.CodegenModel model, org.openapitools.codegen.CodegenProperty property)
      Specified by:
      postProcessModelProperty in interface org.openapitools.codegen.CodegenConfig
    • postProcessResponseWithProperty

      public void postProcessResponseWithProperty(org.openapitools.codegen.CodegenResponse response, org.openapitools.codegen.CodegenProperty property)
      Specified by:
      postProcessResponseWithProperty in interface org.openapitools.codegen.CodegenConfig
    • postProcessParameter

      public void postProcessParameter(org.openapitools.codegen.CodegenParameter parameter)
      Specified by:
      postProcessParameter in interface org.openapitools.codegen.CodegenConfig
    • preprocessOpenAPI

      public void preprocessOpenAPI(io.swagger.v3.oas.models.OpenAPI openAPI)
      Specified by:
      preprocessOpenAPI in interface org.openapitools.codegen.CodegenConfig
    • processOpenAPI

      public void processOpenAPI(io.swagger.v3.oas.models.OpenAPI openAPI)
      Specified by:
      processOpenAPI in interface org.openapitools.codegen.CodegenConfig
    • processCompiler

      public com.samskivert.mustache.Mustache.Compiler processCompiler(com.samskivert.mustache.Mustache.Compiler compiler)
      Specified by:
      processCompiler in interface org.openapitools.codegen.CodegenConfig
    • processTemplatingEngine

      public org.openapitools.codegen.api.TemplatingEngineAdapter processTemplatingEngine(org.openapitools.codegen.api.TemplatingEngineAdapter templatingEngine)
      Specified by:
      processTemplatingEngine in interface org.openapitools.codegen.CodegenConfig
    • escapeText

      public String escapeText(String input)
      Specified by:
      escapeText in interface org.openapitools.codegen.CodegenConfig
    • escapeTextInSingleQuotes

      public String escapeTextInSingleQuotes(String input)
      This method escapes text to be used in a single quoted string
      Parameters:
      input - the input string
      Returns:
      the escaped string
    • escapeTextWhileAllowingNewLines

      public String escapeTextWhileAllowingNewLines(String input)
      Escape characters while allowing new lines
      Specified by:
      escapeTextWhileAllowingNewLines in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      input - String to be escaped
      Returns:
      escaped string
    • encodePath

      public String encodePath(String input)
      Specified by:
      encodePath in interface org.openapitools.codegen.CodegenConfig
    • escapeUnsafeCharacters

      public String escapeUnsafeCharacters(String input)
      override with any special text escaping logic to handle unsafe characters so as to avoid code injection
      Specified by:
      escapeUnsafeCharacters in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      input - String to be cleaned up
      Returns:
      string with unsafe characters removed or escaped
    • escapeQuotationMark

      public String escapeQuotationMark(String input)
      Escape single and/or double quote to avoid code injection
      Specified by:
      escapeQuotationMark in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      input - String to be cleaned up
      Returns:
      string with quotation mark removed or escaped
    • defaultIncludes

      public Set<String> defaultIncludes()
      Specified by:
      defaultIncludes in interface org.openapitools.codegen.CodegenConfig
    • typeMapping

      public Map<String,String> typeMapping()
      Specified by:
      typeMapping in interface org.openapitools.codegen.CodegenConfig
    • instantiationTypes

      public Map<String,String> instantiationTypes()
      Specified by:
      instantiationTypes in interface org.openapitools.codegen.CodegenConfig
    • reservedWords

      public Set<String> reservedWords()
      Specified by:
      reservedWords in interface org.openapitools.codegen.CodegenConfig
    • languageSpecificPrimitives

      public Set<String> languageSpecificPrimitives()
      Specified by:
      languageSpecificPrimitives in interface org.openapitools.codegen.CodegenConfig
    • openapiGeneratorIgnoreList

      public Set<String> openapiGeneratorIgnoreList()
      Specified by:
      openapiGeneratorIgnoreList in interface org.openapitools.codegen.CodegenConfig
    • importMapping

      public Map<String,String> importMapping()
      Specified by:
      importMapping in interface org.openapitools.codegen.CodegenConfig
    • schemaMapping

      public Map<String,String> schemaMapping()
      Specified by:
      schemaMapping in interface org.openapitools.codegen.CodegenConfig
    • inlineSchemaNameMapping

      public Map<String,String> inlineSchemaNameMapping()
      Specified by:
      inlineSchemaNameMapping in interface org.openapitools.codegen.CodegenConfig
    • inlineSchemaOption

      public Map<String,String> inlineSchemaOption()
      Specified by:
      inlineSchemaOption in interface org.openapitools.codegen.CodegenConfig
    • nameMapping

      public Map<String,String> nameMapping()
      Specified by:
      nameMapping in interface org.openapitools.codegen.CodegenConfig
    • parameterNameMapping

      public Map<String,String> parameterNameMapping()
      Specified by:
      parameterNameMapping in interface org.openapitools.codegen.CodegenConfig
    • modelNameMapping

      public Map<String,String> modelNameMapping()
      Specified by:
      modelNameMapping in interface org.openapitools.codegen.CodegenConfig
    • enumNameMapping

      public Map<String,String> enumNameMapping()
      Specified by:
      enumNameMapping in interface org.openapitools.codegen.CodegenConfig
    • operationIdNameMapping

      public Map<String,String> operationIdNameMapping()
      Specified by:
      operationIdNameMapping in interface org.openapitools.codegen.CodegenConfig
    • openapiNormalizer

      public Map<String,String> openapiNormalizer()
      Specified by:
      openapiNormalizer in interface org.openapitools.codegen.CodegenConfig
    • testPackage

      public String testPackage()
      Specified by:
      testPackage in interface org.openapitools.codegen.CodegenConfig
    • modelPackage

      public String modelPackage()
      Specified by:
      modelPackage in interface org.openapitools.codegen.CodegenConfig
    • apiPackage

      public String apiPackage()
      Specified by:
      apiPackage in interface org.openapitools.codegen.CodegenConfig
    • fileSuffix

      public String fileSuffix()
      Specified by:
      fileSuffix in interface org.openapitools.codegen.CodegenConfig
    • templateDir

      public String templateDir()
      Specified by:
      templateDir in interface org.openapitools.codegen.CodegenConfig
    • setTemplateDir

      public void setTemplateDir(String templateDir)
    • embeddedTemplateDir

      public String embeddedTemplateDir()
      Specified by:
      embeddedTemplateDir in interface org.openapitools.codegen.CodegenConfig
    • apiDocTemplateFiles

      public Map<String,String> apiDocTemplateFiles()
      Specified by:
      apiDocTemplateFiles in interface org.openapitools.codegen.CodegenConfig
    • modelDocTemplateFiles

      public Map<String,String> modelDocTemplateFiles()
      Specified by:
      modelDocTemplateFiles in interface org.openapitools.codegen.CodegenConfig
    • reservedWordsMappings

      public Map<String,String> reservedWordsMappings()
      Specified by:
      reservedWordsMappings in interface org.openapitools.codegen.CodegenConfig
    • apiTestTemplateFiles

      public Map<String,String> apiTestTemplateFiles()
      Specified by:
      apiTestTemplateFiles in interface org.openapitools.codegen.CodegenConfig
    • modelTestTemplateFiles

      public Map<String,String> modelTestTemplateFiles()
      Specified by:
      modelTestTemplateFiles in interface org.openapitools.codegen.CodegenConfig
    • apiTemplateFiles

      public Map<String,String> apiTemplateFiles()
      Specified by:
      apiTemplateFiles in interface org.openapitools.codegen.CodegenConfig
    • modelTemplateFiles

      public Map<String,String> modelTemplateFiles()
      Specified by:
      modelTemplateFiles in interface org.openapitools.codegen.CodegenConfig
    • apiFileFolder

      public String apiFileFolder()
      Specified by:
      apiFileFolder in interface org.openapitools.codegen.CodegenConfig
    • modelFileFolder

      public String modelFileFolder()
      Specified by:
      modelFileFolder in interface org.openapitools.codegen.CodegenConfig
    • apiTestFileFolder

      public String apiTestFileFolder()
      Specified by:
      apiTestFileFolder in interface org.openapitools.codegen.CodegenConfig
    • modelTestFileFolder

      public String modelTestFileFolder()
      Specified by:
      modelTestFileFolder in interface org.openapitools.codegen.CodegenConfig
    • apiDocFileFolder

      public String apiDocFileFolder()
      Specified by:
      apiDocFileFolder in interface org.openapitools.codegen.CodegenConfig
    • modelDocFileFolder

      public String modelDocFileFolder()
      Specified by:
      modelDocFileFolder in interface org.openapitools.codegen.CodegenConfig
    • additionalProperties

      public Map<String,Object> additionalProperties()
      Specified by:
      additionalProperties in interface org.openapitools.codegen.CodegenConfig
    • serverVariableOverrides

      public Map<String,String> serverVariableOverrides()
      Specified by:
      serverVariableOverrides in interface org.openapitools.codegen.CodegenConfig
    • vendorExtensions

      public Map<String,Object> vendorExtensions()
      Specified by:
      vendorExtensions in interface org.openapitools.codegen.CodegenConfig
    • templateOutputDirs

      public Map<String,String> templateOutputDirs()
      Specified by:
      templateOutputDirs in interface org.openapitools.codegen.CodegenConfig
    • supportingFiles

      public List<org.openapitools.codegen.SupportingFile> supportingFiles()
      Specified by:
      supportingFiles in interface org.openapitools.codegen.CodegenConfig
    • outputFolder

      public String outputFolder()
      Specified by:
      outputFolder in interface org.openapitools.codegen.CodegenConfig
    • setOutputDir

      public void setOutputDir(String dir)
      Specified by:
      setOutputDir in interface org.openapitools.codegen.CodegenConfig
    • getOutputDir

      public String getOutputDir()
      Specified by:
      getOutputDir in interface org.openapitools.codegen.CodegenConfig
    • getInputSpec

      public String getInputSpec()
      Specified by:
      getInputSpec in interface org.openapitools.codegen.CodegenConfig
    • setInputSpec

      public void setInputSpec(String inputSpec)
      Specified by:
      setInputSpec in interface org.openapitools.codegen.CodegenConfig
    • getFilesMetadataFilename

      public String getFilesMetadataFilename()
      Specified by:
      getFilesMetadataFilename in interface org.openapitools.codegen.CodegenConfig
    • getVersionMetadataFilename

      public String getVersionMetadataFilename()
      Specified by:
      getVersionMetadataFilename in interface org.openapitools.codegen.CodegenConfig
    • getLegacyDiscriminatorBehavior

      public Boolean getLegacyDiscriminatorBehavior()
    • getDisallowAdditionalPropertiesIfNotPresent

      public Boolean getDisallowAdditionalPropertiesIfNotPresent()
    • getEnumUnknownDefaultCase

      public Boolean getEnumUnknownDefaultCase()
    • getUseOneOfInterfaces

      public Boolean getUseOneOfInterfaces()
    • setUseOneOfInterfaces

      public void setUseOneOfInterfaces(Boolean useOneOfInterfaces)
    • toRegularExpression

      public String toRegularExpression(String pattern)
      Return the regular expression/JSON schema pattern (http://json-schema.org/latest/json-schema-validation.html#anchor33)
      Parameters:
      pattern - the pattern (regular expression)
      Returns:
      properly-escaped pattern
    • toApiFilename

      public String toApiFilename(String name)
      Return the file name of the Api
      Specified by:
      toApiFilename in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      name - the file name of the Api
      Returns:
      the file name of the Api
    • toApiDocFilename

      public String toApiDocFilename(String name)
      Return the file name of the Api Documentation
      Specified by:
      toApiDocFilename in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      name - the file name of the Api
      Returns:
      the file name of the Api
    • toApiTestFilename

      public String toApiTestFilename(String name)
      Return the file name of the Api Test
      Specified by:
      toApiTestFilename in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      name - the file name of the Api
      Returns:
      the file name of the Api
    • toApiVarName

      public String toApiVarName(String name)
      Return the variable name in the Api
      Specified by:
      toApiVarName in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      name - the variable name of the Api
      Returns:
      the snake-cased variable name
    • toModelFilename

      public String toModelFilename(String name)
      Return the capitalized file name of the model
      Specified by:
      toModelFilename in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      name - the model name
      Returns:
      the file name of the model
    • toModelTestFilename

      public String toModelTestFilename(String name)
      Return the capitalized file name of the model test
      Specified by:
      toModelTestFilename in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      name - the model name
      Returns:
      the file name of the model
    • toModelDocFilename

      public String toModelDocFilename(String name)
      Return the capitalized file name of the model documentation
      Specified by:
      toModelDocFilename in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      name - the model name
      Returns:
      the file name of the model
    • getGeneratorMetadata

      public org.openapitools.codegen.meta.GeneratorMetadata getGeneratorMetadata()
      Returns metadata about the generator.
      Specified by:
      getGeneratorMetadata in interface org.openapitools.codegen.CodegenConfig
      Returns:
      A provided GeneratorMetadata instance
    • toOperationId

      public String toOperationId(String operationId)
      Return the operation ID (method name)
      Parameters:
      operationId - operation ID
      Returns:
      the sanitized method name
    • toVarName

      public String toVarName(String name)
      Return the variable name by removing invalid characters and proper escaping if it's a reserved word.
      Parameters:
      name - the variable name
      Returns:
      the sanitized variable name
    • toParamName

      public String toParamName(String name)
      Return the parameter name by removing invalid characters and proper escaping if it's a reserved word.
      Specified by:
      toParamName in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      name - Codegen property object
      Returns:
      the sanitized parameter name
    • toArrayModelParamName

      public String toArrayModelParamName(String name)
      Return the parameter name of array of model
      Parameters:
      name - name of the array model
      Returns:
      the sanitized parameter name
    • toEnumName

      public String toEnumName(org.openapitools.codegen.CodegenProperty property)
      Return the Enum name (e.g. StatusEnum given 'status')
      Parameters:
      property - Codegen property
      Returns:
      the Enum name
    • escapeReservedWord

      public String escapeReservedWord(String name)
      Return the escaped name of the reserved word
      Specified by:
      escapeReservedWord in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      name - the name to be escaped
      Returns:
      the escaped reserved word

      throws Runtime exception as reserved word is not allowed (default behavior)

    • toModelImport

      public String toModelImport(String name)
      Return the fully-qualified "Model" name for import
      Specified by:
      toModelImport in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      name - the name of the "Model"
      Returns:
      the fully-qualified "Model" name for import
    • toModelImportMap

      public Map<String,String> toModelImportMap(String name)
      Returns the same content as [[toModelImport]] with key the fully-qualified Model name and value the initial input. In case of union types this method has a key for each separate model and import.
      Specified by:
      toModelImportMap in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      name - the name of the "Model"
      Returns:
      Map of fully-qualified models.
    • toApiImport

      public String toApiImport(String name)
      Return the fully-qualified "Api" name for import
      Specified by:
      toApiImport in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      name - the name of the "Api"
      Returns:
      the fully-qualified "Api" name for import
    • initializeSpecialCharacterMapping

      protected void initializeSpecialCharacterMapping()
      Initialize special character mapping
    • getSymbolName

      protected String getSymbolName(String input)
      Return the symbol name of a symbol
      Parameters:
      input - Symbol (e.g. $)
      Returns:
      Symbol name (e.g. Dollar)
    • generateExamplePath

      public String generateExamplePath(String path, io.swagger.v3.oas.models.Operation operation)
      Return the example path
      Specified by:
      generateExamplePath in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      path - the path of the operation
      operation - OAS operation object
      Returns:
      string presentation of the example path
    • toInstantiationType

      public String toInstantiationType(io.swagger.v3.oas.models.media.Schema schema)
      Return the instantiation type of the property, especially for map and array
      Parameters:
      schema - property schema
      Returns:
      string presentation of the instantiation type of the property
    • setParameterExampleValue

      public void setParameterExampleValue(org.openapitools.codegen.CodegenParameter codegenParameter)
      Return the example value of the parameter.
      Parameters:
      codegenParameter - Codegen parameter
    • setParameterExampleValue

      public void setParameterExampleValue(org.openapitools.codegen.CodegenParameter codegenParameter, io.swagger.v3.oas.models.parameters.Parameter parameter)
      Return the example value of the parameter.
      Parameters:
      codegenParameter - Codegen parameter
      parameter - Parameter
    • setParameterExamples

      public void setParameterExamples(org.openapitools.codegen.CodegenParameter codegenParameter, io.swagger.v3.oas.models.parameters.Parameter parameter)
      Return the examples of the parameter.
      Parameters:
      codegenParameter - Codegen parameter
      parameter - Parameter
    • setParameterExampleValue

      public void setParameterExampleValue(org.openapitools.codegen.CodegenParameter codegenParameter, io.swagger.v3.oas.models.parameters.RequestBody requestBody)
      Return the example value of the parameter.
      Parameters:
      codegenParameter - Codegen parameter
      requestBody - Request body
    • setParameterEncodingValues

      public void setParameterEncodingValues(org.openapitools.codegen.CodegenParameter codegenParameter, io.swagger.v3.oas.models.media.MediaType mediaType)
      Sets the content type, style, and explode of the parameter based on the encoding specified in the request body.
      Parameters:
      codegenParameter - Codegen parameter
      mediaType - MediaType from the request body
    • toExampleValue

      public String toExampleValue(io.swagger.v3.oas.models.media.Schema schema)
      Return the example value of the property

      This method should be overridden in the generator to meet its requirement.

      Parameters:
      schema - Property schema
      Returns:
      string presentation of the example value of the property
    • toDefaultValue

      public String toDefaultValue(io.swagger.v3.oas.models.media.Schema schema)
      Return the default value of the property

      This method should be overridden in the generator to meet its requirement. Return null if you do NOT want a default value. Any non-null value will cause {{#defaultValue} check to pass.

      Parameters:
      schema - Property schema
      Returns:
      string presentation of the default value of the property
    • toDefaultParameterValue

      public String toDefaultParameterValue(io.swagger.v3.oas.models.media.Schema<?> schema)
      Return the default value of the parameter

      Return null if you do NOT want a default value. Any non-null value will cause {{#defaultValue} check to pass.

      Parameters:
      schema - Parameter schema
      Returns:
      string presentation of the default value of the parameter
    • toDefaultParameterValue

      public String toDefaultParameterValue(org.openapitools.codegen.CodegenProperty codegenProperty, io.swagger.v3.oas.models.media.Schema<?> schema)
      Return the default value of the parameter

      Return null if you do NOT want a default value. Any non-null value will cause {{#defaultValue} check to pass.

      Parameters:
      codegenProperty - Codegen Property
      schema - Parameter schema
      Returns:
      string presentation of the default value of the parameter
    • toDefaultValueWithParam

      public String toDefaultValueWithParam(String name, io.swagger.v3.oas.models.media.Schema schema)
      Return the property initialized from a data object Useful for initialization with a plain object in Javascript
      Parameters:
      name - Name of the property object
      schema - Property schema
      Returns:
      string presentation of the default value of the property
    • toDefaultValue

      public String toDefaultValue(org.openapitools.codegen.CodegenProperty codegenProperty, io.swagger.v3.oas.models.media.Schema schema)
      Return the default value of the property

      Return null if you do NOT want a default value. Any non-null value will cause {{#defaultValue} check to pass.

      Parameters:
      schema - Property schema
      codegenProperty - Codegen property
      Returns:
      string presentation of the default value of the property
    • getSchemaType

      public String getSchemaType(io.swagger.v3.oas.models.media.Schema schema)
      returns the OpenAPI type for the property. Use getAlias to handle $ref of primitive type
      Parameters:
      schema - property schema
      Returns:
      string presentation of the type
    • getSchemaAdditionalProperties

      protected io.swagger.v3.oas.models.media.Schema<?> getSchemaAdditionalProperties(io.swagger.v3.oas.models.media.Schema schema)
    • toAllOfName

      public String toAllOfName(List<String> names, io.swagger.v3.oas.models.media.Schema composedSchema)
      Return the name of the 'allOf' composed schema.
      Parameters:
      names - List of names
      composedSchema - composed schema
      Returns:
      name of the allOf schema
    • toAnyOfName

      public String toAnyOfName(List<String> names, io.swagger.v3.oas.models.media.Schema composedSchema)
      Return the name of the anyOf schema
      Parameters:
      names - List of names
      composedSchema - composed schema
      Returns:
      name of the anyOf schema
    • toOneOfName

      public String toOneOfName(List<String> names, io.swagger.v3.oas.models.media.Schema composedSchema)
      Return the name of the oneOf schema.

      This name is used to set the value of CodegenProperty.openApiType.

      If the 'x-one-of-name' extension is specified in the OAS document, return that value. Otherwise, a name is constructed by creating a comma-separated list of all the names of the oneOf schemas.

      Parameters:
      names - List of names
      composedSchema - composed schema
      Returns:
      name of the oneOf schema
    • unaliasSchema

      public io.swagger.v3.oas.models.media.Schema unaliasSchema(io.swagger.v3.oas.models.media.Schema schema)
      Specified by:
      unaliasSchema in interface org.openapitools.codegen.CodegenConfig
    • getSingleSchemaType

      protected String getSingleSchemaType(io.swagger.v3.oas.models.media.Schema schema)
      Return a string representation of the schema type, resolving aliasing and references if necessary.
      Parameters:
      schema - input
      Returns:
      the string representation of the schema type.
    • lowerCamelCase

      public String lowerCamelCase(String name)
      Return the lowerCamelCase of the string
      Parameters:
      name - string to be lowerCamelCased
      Returns:
      lowerCamelCase string
    • getTypeDeclaration

      public String getTypeDeclaration(String name)
      Output the language-specific type declaration of a given OAS name.
      Specified by:
      getTypeDeclaration in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      name - name
      Returns:
      a string presentation of the type
    • getTypeDeclaration

      public String getTypeDeclaration(io.swagger.v3.oas.models.media.Schema schema)
      Output the language-specific type declaration of the property.
      Specified by:
      getTypeDeclaration in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      schema - property schema
      Returns:
      a string presentation of the property type
    • getAlias

      public String getAlias(String name)
      Determine the type alias for the given type if it exists. This feature was originally developed for Java because the language does not have an aliasing mechanism of its own but later extends to handle other languages
      Parameters:
      name - The type name.
      Returns:
      The alias of the given type, if it exists. If there is no alias for this type, then returns the input type name.
    • toBooleanGetter

      public String toBooleanGetter(String name)
      Output the Getter name for boolean property, e.g. getActive
      Specified by:
      toBooleanGetter in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      name - the name of the property
      Returns:
      getter name based on naming convention
    • toGetter

      public String toGetter(String name)
      Output the Getter name, e.g. getSize
      Specified by:
      toGetter in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      name - the name of the property
      Returns:
      getter name based on naming convention
    • toSetter

      public String toSetter(String name)
      Output the Setter name, e.g. setSize
      Specified by:
      toSetter in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      name - the name of the property
      Returns:
      setter name based on naming convention
    • toApiName

      public String toApiName(String name)
      Output the API (class) name (capitalized) ending with the specified or default suffix Return DefaultApi if name is empty
      Specified by:
      toApiName in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      name - the name of the Api
      Returns:
      capitalized Api name
    • toModelName

      public String toModelName(String name)
      Converts the OpenAPI schema name to a model name suitable for the current code generator. May be overridden for each programming language. In case the name belongs to the TypeSystem it won't be renamed.
      Specified by:
      toModelName in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      name - the name of the model
      Returns:
      capitalized model name
    • updateModelForComposedSchema

      protected void updateModelForComposedSchema(org.openapitools.codegen.CodegenModel m, io.swagger.v3.oas.models.media.Schema schema, Map<String,io.swagger.v3.oas.models.media.Schema> allDefinitions)
    • updateModelForObject

      protected void updateModelForObject(org.openapitools.codegen.CodegenModel m, io.swagger.v3.oas.models.media.Schema schema)
    • updateModelForAnyType

      protected void updateModelForAnyType(org.openapitools.codegen.CodegenModel m, io.swagger.v3.oas.models.media.Schema schema)
    • toTestCaseName

      protected String toTestCaseName(String specTestCaseName)
    • processTestExampleData

      protected Object processTestExampleData(Object data)
      A method that allows generators to pre-process test example payloads This can be useful if one needs to change how values like null in string are represented
      Parameters:
      data - the test data payload
      Returns:
      the updated test data payload
    • updateModelForString

      protected void updateModelForString(org.openapitools.codegen.CodegenModel model, io.swagger.v3.oas.models.media.Schema schema)
      Sets the booleans that define the model's type
      Parameters:
      model - the model to update
      schema - the model's schema
    • updateModelForNumber

      protected void updateModelForNumber(org.openapitools.codegen.CodegenModel model, io.swagger.v3.oas.models.media.Schema schema)
    • updateModelForInteger

      protected void updateModelForInteger(org.openapitools.codegen.CodegenModel model, io.swagger.v3.oas.models.media.Schema schema)
    • fromModel

      public org.openapitools.codegen.CodegenModel fromModel(String name, io.swagger.v3.oas.models.media.Schema schema)
      Convert OAS Model object to Codegen Model object.
      Specified by:
      fromModel in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      name - the name of the model
      schema - OAS Model object
      Returns:
      Codegen Model object
    • SortModelPropertiesByRequiredFlag

      protected void SortModelPropertiesByRequiredFlag(org.openapitools.codegen.CodegenModel model)
    • setAddProps

      protected void setAddProps(io.swagger.v3.oas.models.media.Schema schema, org.openapitools.codegen.IJsonSchemaValidationProperties property)
    • getOneOfAnyOfDescendants

      protected List<org.openapitools.codegen.CodegenDiscriminator.MappedModel> getOneOfAnyOfDescendants(String composedSchemaName, String discPropName, io.swagger.v3.oas.models.media.Schema c)
      This function is only used for composed schemas which have a discriminator Process oneOf and anyOf models in a composed schema and adds them into a list if the oneOf and anyOf models contain the required discriminator. If they don't contain the required discriminator or the discriminator is the wrong type then an error is thrown
      Parameters:
      composedSchemaName - The String model name of the composed schema where we are setting the discriminator map
      discPropName - The String that is the discriminator propertyName in the schema
      c - The ComposedSchema that contains the discriminator and oneOf/anyOf schemas
      Returns:
      the list of oneOf and anyOf MappedModel that need to be added to the discriminator map
    • getAllOfDescendants

      protected List<org.openapitools.codegen.CodegenDiscriminator.MappedModel> getAllOfDescendants(String thisSchemaName)
    • createDiscriminator

      protected org.openapitools.codegen.CodegenDiscriminator createDiscriminator(String schemaName, io.swagger.v3.oas.models.media.Schema schema)
    • addAdditionPropertiesToCodeGenModel

      protected void addAdditionPropertiesToCodeGenModel(org.openapitools.codegen.CodegenModel codegenModel, io.swagger.v3.oas.models.media.Schema schema)
      Handle the model for the 'additionalProperties' keyword in the OAS schema.
      Parameters:
      codegenModel - The codegen representation of the schema.
      schema - The input OAS schema.
    • addProperties

      protected void addProperties(Map<String,io.swagger.v3.oas.models.media.Schema> properties, List<String> required, io.swagger.v3.oas.models.media.Schema schema, Set<io.swagger.v3.oas.models.media.Schema> visitedSchemas)
      Add schema's properties to "properties" and "required" list
      Parameters:
      properties - all properties
      required - required property only
      schema - schema in which the properties will be added to the lists
      visitedSchemas - circuit-breaker - the schemas with which the method was called before for recursive structures
    • getterAndSetterCapitalize

      public String getterAndSetterCapitalize(String name)
      Camelize the method name of the getter and setter
      Parameters:
      name - string to be camelized
      Returns:
      Camelized string
    • updatePropertyForMap

      protected void updatePropertyForMap(org.openapitools.codegen.CodegenProperty property, io.swagger.v3.oas.models.media.Schema p)
    • updatePropertyForObject

      protected void updatePropertyForObject(org.openapitools.codegen.CodegenProperty property, io.swagger.v3.oas.models.media.Schema p)
    • updatePropertyForAnyType

      protected void updatePropertyForAnyType(org.openapitools.codegen.CodegenProperty property, io.swagger.v3.oas.models.media.Schema p)
    • updatePropertyForString

      protected void updatePropertyForString(org.openapitools.codegen.CodegenProperty property, io.swagger.v3.oas.models.media.Schema p)
    • updatePropertyForNumber

      protected void updatePropertyForNumber(org.openapitools.codegen.CodegenProperty property, io.swagger.v3.oas.models.media.Schema p)
    • updatePropertyForInteger

      protected void updatePropertyForInteger(org.openapitools.codegen.CodegenProperty property, io.swagger.v3.oas.models.media.Schema p)
    • fromProperty

      public org.openapitools.codegen.CodegenProperty fromProperty(String name, io.swagger.v3.oas.models.media.Schema p, boolean required)
      TODO remove this in 7.0.0 as a breaking change This method was kept when required was added to the fromProperty signature to ensure that the change was non-breaking
      Parameters:
      name - name of the property
      p - OAS property schema
      required - true if the property is required in the next higher object schema, false otherwise
      Returns:
      Codegen Property object
    • fromProperty

      public org.openapitools.codegen.CodegenProperty fromProperty(String name, io.swagger.v3.oas.models.media.Schema p)
      TODO remove this in 7.0.0 as a breaking change This method was kept when required was added to the fromProperty signature to ensure that the change was non-breaking
      Parameters:
      name - name of the property
      p - OAS property schema
      Returns:
      Codegen Property object
    • fromProperty

      public org.openapitools.codegen.CodegenProperty fromProperty(String name, io.swagger.v3.oas.models.media.Schema p, boolean required, boolean schemaIsFromAdditionalProperties)
      Convert OAS Property object to Codegen Property object.

      The return value is cached. An internal cache is looked up to determine if the CodegenProperty return value has already been instantiated for the (String name, Schema p) arguments. Any subsequent processing of the CodegenModel return value must be idempotent for a given (String name, Schema schema).

      Parameters:
      name - name of the property
      p - OAS property schema
      required - true if the property is required in the next higher object schema, false otherwise
      schemaIsFromAdditionalProperties - true if the property is a required property defined by additional properties schema If this is the actual additionalProperties schema not defining a required property, then the value should be false
      Returns:
      Codegen Property object
    • updatePropertyForArray

      protected void updatePropertyForArray(org.openapitools.codegen.CodegenProperty property, org.openapitools.codegen.CodegenProperty innerProperty)
      Update property for array(list) container
      Parameters:
      property - Codegen property
      innerProperty - Codegen inner property of map or list
    • updatePropertyForMap

      protected void updatePropertyForMap(org.openapitools.codegen.CodegenProperty property, org.openapitools.codegen.CodegenProperty innerProperty)
      Update property for map container
      Parameters:
      property - Codegen property
      innerProperty - Codegen inner property of map or list
    • isPropertyInnerMostEnum

      protected Boolean isPropertyInnerMostEnum(org.openapitools.codegen.CodegenProperty property)
      Update property for map container
      Parameters:
      property - Codegen property
      Returns:
      True if the inner most type is enum
    • getMostInnerItems

      protected org.openapitools.codegen.CodegenProperty getMostInnerItems(org.openapitools.codegen.CodegenProperty property)
    • getInnerEnumAllowableValues

      protected Map<String,Object> getInnerEnumAllowableValues(org.openapitools.codegen.CodegenProperty property)
    • updateDataTypeWithEnumForArray

      protected void updateDataTypeWithEnumForArray(org.openapitools.codegen.CodegenProperty property)
      Update datatypeWithEnum for array container
      Parameters:
      property - Codegen property
    • updateDataTypeWithEnumForMap

      protected void updateDataTypeWithEnumForMap(org.openapitools.codegen.CodegenProperty property)
      Update datatypeWithEnum for map container
      Parameters:
      property - Codegen property
    • setNonArrayMapProperty

      protected void setNonArrayMapProperty(org.openapitools.codegen.CodegenProperty property, String type)
    • findMethodResponse

      protected io.swagger.v3.oas.models.responses.ApiResponse findMethodResponse(io.swagger.v3.oas.models.responses.ApiResponses responses)
      Override with any special handling of response codes
      Parameters:
      responses - OAS Operation's responses
      Returns:
      default method response or null if not found
    • handleMethodResponse

      protected void handleMethodResponse(io.swagger.v3.oas.models.Operation operation, Map<String,io.swagger.v3.oas.models.media.Schema> schemas, org.openapitools.codegen.CodegenOperation op, io.swagger.v3.oas.models.responses.ApiResponse methodResponse)
      Set op's returnBaseType, returnType, examples etc.
      Parameters:
      operation - endpoint Operation
      schemas - a map of the schemas in the openapi spec
      op - endpoint CodegenOperation
      methodResponse - the default ApiResponse for the endpoint
    • handleMethodResponse

      protected void handleMethodResponse(io.swagger.v3.oas.models.Operation operation, Map<String,io.swagger.v3.oas.models.media.Schema> schemas, org.openapitools.codegen.CodegenOperation op, io.swagger.v3.oas.models.responses.ApiResponse methodResponse, Map<String,String> schemaMappings)
      Set op's returnBaseType, returnType, examples etc.
      Parameters:
      operation - endpoint Operation
      schemas - a map of the schemas in the openapi spec
      op - endpoint CodegenOperation
      methodResponse - the default ApiResponse for the endpoint
      schemaMappings - mappings of external types to be omitted by unaliasing
    • fromOperation

      public org.openapitools.codegen.CodegenOperation fromOperation(String path, String httpMethod, io.swagger.v3.oas.models.Operation operation, List<io.swagger.v3.oas.models.servers.Server> servers)
      Convert OAS Operation object to Codegen Operation object
      Specified by:
      fromOperation in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      httpMethod - HTTP method
      operation - OAS operation object
      path - the path of the operation
      servers - list of servers
      Returns:
      Codegen Operation object
    • SortParametersByRequiredFlag

      public void SortParametersByRequiredFlag(List<org.openapitools.codegen.CodegenParameter> parameters)
    • isParameterNameUnique

      public boolean isParameterNameUnique(org.openapitools.codegen.CodegenParameter p, List<org.openapitools.codegen.CodegenParameter> parameters)
    • fromResponse

      public org.openapitools.codegen.CodegenResponse fromResponse(String responseCode, io.swagger.v3.oas.models.responses.ApiResponse response)
      Convert OAS Response object to Codegen Response object
      Parameters:
      responseCode - HTTP response code
      response - OAS Response object
      Returns:
      Codegen Response object
    • fromCallback

      public org.openapitools.codegen.CodegenCallback fromCallback(String name, io.swagger.v3.oas.models.callbacks.Callback callback, List<io.swagger.v3.oas.models.servers.Server> servers)
      Convert OAS Callback object to Codegen Callback object
      Parameters:
      name - callback name
      callback - OAS Callback object
      servers - list of servers
      Returns:
      Codegen Response object
    • updateParameterForString

      protected void updateParameterForString(org.openapitools.codegen.CodegenParameter codegenParameter, io.swagger.v3.oas.models.media.Schema parameterSchema)
    • fromParameter

      public org.openapitools.codegen.CodegenParameter fromParameter(io.swagger.v3.oas.models.parameters.Parameter parameter, Set<String> imports)
      Convert OAS Parameter object to Codegen Parameter object
      Parameters:
      parameter - OAS parameter object
      imports - set of imports for library/package/module
      Returns:
      Codegen Parameter object
    • getParameterDataType

      protected String getParameterDataType(io.swagger.v3.oas.models.parameters.Parameter parameter, io.swagger.v3.oas.models.media.Schema schema)
      Returns the data type of parameter. Returns null by default to use the CodegenProperty.datatype value
      Parameters:
      parameter - Parameter
      schema - Schema
      Returns:
      data type
    • isDataTypeBinary

      public boolean isDataTypeBinary(String dataType)
    • isDataTypeFile

      public boolean isDataTypeFile(String dataType)
    • fromSecurity

      public List<org.openapitools.codegen.CodegenSecurity> fromSecurity(Map<String,io.swagger.v3.oas.models.security.SecurityScheme> securitySchemeMap)
      Convert map of OAS SecurityScheme objects to a list of Codegen Security objects
      Specified by:
      fromSecurity in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      securitySchemeMap - a map of OAS SecuritySchemeDefinition object
      Returns:
      a list of Codegen Security objects
    • setReservedWordsLowerCase

      protected void setReservedWordsLowerCase(List<String> words)
    • isReservedWord

      protected boolean isReservedWord(String word)
    • getOrGenerateOperationId

      protected String getOrGenerateOperationId(io.swagger.v3.oas.models.Operation operation, String path, String httpMethod)
      Get operationId from the operation object, and if it's blank, generate a new one from the given parameters.
      Parameters:
      operation - the operation object
      path - the path of the operation
      httpMethod - the HTTP method of the operation
      Returns:
      the (generated) operationId
    • needToImport

      protected boolean needToImport(String type)
      Check the type to see if it needs import the library/module/package
      Parameters:
      type - name of the type
      Returns:
      true if the library/module/package of the corresponding type needs to be imported
    • toExamples

      protected List<Map<String,Object>> toExamples(Map<String,Object> examples)
    • addHeaders

      protected void addHeaders(io.swagger.v3.oas.models.responses.ApiResponse response, List<org.openapitools.codegen.CodegenProperty> properties)
      Add headers to codegen property
      Parameters:
      response - API response
      properties - list of codegen property
    • addOperationToGroup

      public void addOperationToGroup(String tag, String resourcePath, io.swagger.v3.oas.models.Operation operation, org.openapitools.codegen.CodegenOperation co, Map<String,List<org.openapitools.codegen.CodegenOperation>> operations)
      Add operation to group
      Specified by:
      addOperationToGroup in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      tag - name of the tag
      resourcePath - path of the resource
      operation - OAS Operation object
      co - Codegen Operation object
      operations - map of Codegen operations
    • addParentFromContainer

      protected void addParentFromContainer(org.openapitools.codegen.CodegenModel model, io.swagger.v3.oas.models.media.Schema schema)
    • addParentContainer

      protected void addParentContainer(org.openapitools.codegen.CodegenModel model, String name, io.swagger.v3.oas.models.media.Schema schema)
      Sets the value of the 'model.parent' property in CodegenModel, based on the value of the 'additionalProperties' keyword. Some language generator use class inheritance to implement additional properties. For example, in Java the generated model class has 'extends HashMap' to represent the additional properties.

      TODO: it's not a good idea to use single class inheritance to implement additionalProperties. That may work for non-composed schemas, but that does not work for composed 'allOf' schemas. For example, in Java, if additionalProperties is set to true (which it should be by default, per OAS spec), then the generated code has extends HashMap. That wouldn't work for composed 'allOf' schemas.

      Parameters:
      model - the codegen representation of the OAS schema.
      name - the name of the model.
      schema - the input OAS schema.
    • addImports

      protected void addImports(org.openapitools.codegen.CodegenModel m, org.openapitools.codegen.IJsonSchemaValidationProperties type)
    • addImports

      protected void addImports(Set<String> importsToBeAddedTo, org.openapitools.codegen.IJsonSchemaValidationProperties type)
    • addImports

      protected void addImports(Set<String> importsToBeAddedTo, Set<String> importsToAdd)
    • addImport

      protected void addImport(org.openapitools.codegen.CodegenModel m, String type)
    • addImport

      protected void addImport(Set<String> importsToBeAddedTo, String type)
    • addImport

      protected void addImport(io.swagger.v3.oas.models.media.Schema composed, io.swagger.v3.oas.models.media.Schema childSchema, org.openapitools.codegen.CodegenModel model, String modelName)
      Add the model name of the child schema in a composed schema to the set of imports
      Parameters:
      composed - composed schema
      childSchema - composed schema
      model - codegen model
      modelName - model name
    • shouldAddImport

      protected boolean shouldAddImport(String type)
    • unaliasPropertySchema

      protected Map<String,io.swagger.v3.oas.models.media.Schema> unaliasPropertySchema(Map<String,io.swagger.v3.oas.models.media.Schema> properties)
      Loop through properties and unalias the reference if $ref (reference) is defined
      Parameters:
      properties - model properties (schemas)
      Returns:
      model properties with direct reference to schemas
    • addVars

      protected void addVars(org.openapitools.codegen.CodegenModel m, Map<String,io.swagger.v3.oas.models.media.Schema> properties, List<String> required, Map<String,io.swagger.v3.oas.models.media.Schema> allProperties, List<String> allRequired)
    • addVars

      protected void addVars(org.openapitools.codegen.IJsonSchemaValidationProperties m, List<org.openapitools.codegen.CodegenProperty> vars, Map<String,io.swagger.v3.oas.models.media.Schema> properties, Set<String> mandatory)
      Add variables (properties) to codegen model (list of properties, various flags, etc)
      Parameters:
      m - Must be an instance of IJsonSchemaValidationProperties, may be model or property...
      vars - list of codegen properties (e.g. vars, allVars) to be updated with the new properties
      properties - a map of properties (schema)
      mandatory - a set of required properties' name
    • addImportsForPropertyType

      protected void addImportsForPropertyType(org.openapitools.codegen.CodegenModel model, org.openapitools.codegen.CodegenProperty property)
      For a given property, adds all needed imports to the model This includes a flat property type (e.g. property type: ReferencedModel) as well as container type (property type: array of ReferencedModel's)
      Parameters:
      model - The codegen representation of the OAS schema.
      property - The codegen representation of the OAS schema's property.
    • removeNonNameElementToCamelCase

      public String removeNonNameElementToCamelCase(String name)
      Remove characters not suitable for variable or method name from the input and camelize it
      Parameters:
      name - string to be camelize
      Returns:
      camelized string
    • removeNonNameElementToCamelCase

      protected String removeNonNameElementToCamelCase(String name, String nonNameElementPattern)
      Remove characters that is not good to be included in method name from the input and camelize it
      Parameters:
      name - string to be camelize
      nonNameElementPattern - a regex pattern of the characters that is not good to be included in name
      Returns:
      camelized string
    • apiFilename

      public String apiFilename(String templateName, String tag)
      Specified by:
      apiFilename in interface org.openapitools.codegen.CodegenConfig
    • apiFilename

      public String apiFilename(String templateName, String tag, String outputDir)
      Specified by:
      apiFilename in interface org.openapitools.codegen.CodegenConfig
    • modelFilename

      public String modelFilename(String templateName, String modelName)
      Specified by:
      modelFilename in interface org.openapitools.codegen.CodegenConfig
    • modelFilename

      public String modelFilename(String templateName, String modelName, String outputDir)
      Specified by:
      modelFilename in interface org.openapitools.codegen.CodegenConfig
    • apiDocFilename

      public String apiDocFilename(String templateName, String tag)
      Return the full path and API documentation file
      Specified by:
      apiDocFilename in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      templateName - template name
      tag - tag
      Returns:
      the API documentation file name with full path
    • apiTestFilename

      public String apiTestFilename(String templateName, String tag)
      Return the full path and API test file
      Specified by:
      apiTestFilename in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      templateName - template name
      tag - tag
      Returns:
      the API test file name with full path
    • shouldOverwrite

      public boolean shouldOverwrite(String filename)
      Specified by:
      shouldOverwrite in interface org.openapitools.codegen.CodegenConfig
    • isSkipOverwrite

      public boolean isSkipOverwrite()
      Specified by:
      isSkipOverwrite in interface org.openapitools.codegen.CodegenConfig
    • setSkipOverwrite

      public void setSkipOverwrite(boolean skipOverwrite)
      Specified by:
      setSkipOverwrite in interface org.openapitools.codegen.CodegenConfig
    • isRemoveOperationIdPrefix

      public boolean isRemoveOperationIdPrefix()
      Specified by:
      isRemoveOperationIdPrefix in interface org.openapitools.codegen.CodegenConfig
    • isSkipOperationExample

      public boolean isSkipOperationExample()
      Specified by:
      isSkipOperationExample in interface org.openapitools.codegen.CodegenConfig
    • setRemoveOperationIdPrefix

      public void setRemoveOperationIdPrefix(boolean removeOperationIdPrefix)
      Specified by:
      setRemoveOperationIdPrefix in interface org.openapitools.codegen.CodegenConfig
    • setSkipOperationExample

      public void setSkipOperationExample(boolean skipOperationExample)
      Specified by:
      setSkipOperationExample in interface org.openapitools.codegen.CodegenConfig
    • isSkipSortingOperations

      public boolean isSkipSortingOperations()
      Specified by:
      isSkipSortingOperations in interface org.openapitools.codegen.CodegenConfig
    • setSkipSortingOperations

      public void setSkipSortingOperations(boolean skipSortingOperations)
      Specified by:
      setSkipSortingOperations in interface org.openapitools.codegen.CodegenConfig
    • isHideGenerationTimestamp

      public boolean isHideGenerationTimestamp()
      Specified by:
      isHideGenerationTimestamp in interface org.openapitools.codegen.CodegenConfig
    • setHideGenerationTimestamp

      public void setHideGenerationTimestamp(boolean hideGenerationTimestamp)
      Specified by:
      setHideGenerationTimestamp in interface org.openapitools.codegen.CodegenConfig
    • supportedLibraries

      public Map<String,String> supportedLibraries()
      All library templates supported. (key: library name, value: library description)
      Specified by:
      supportedLibraries in interface org.openapitools.codegen.CodegenConfig
      Returns:
      the supported libraries
    • setLibrary

      public void setLibrary(String library)
      Set library template (sub-template).
      Specified by:
      setLibrary in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      library - Library template
    • getLibrary

      public String getLibrary()
      Library template (sub-template).
      Specified by:
      getLibrary in interface org.openapitools.codegen.CodegenConfig
      Returns:
      Library template
    • isLibrary

      public final boolean isLibrary(String library)
      check if current active library equals to passed
      Parameters:
      library - - library to be compared with
      Returns:
      true if passed library is active, false otherwise
    • setGitHost

      public void setGitHost(String gitHost)
      Set Git host.
      Specified by:
      setGitHost in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      gitHost - Git host
    • getGitHost

      public String getGitHost()
      Git host.
      Specified by:
      getGitHost in interface org.openapitools.codegen.CodegenConfig
      Returns:
      Git host
    • setGitUserId

      public void setGitUserId(String gitUserId)
      Set Git user ID.
      Specified by:
      setGitUserId in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      gitUserId - Git user ID
    • getGitUserId

      public String getGitUserId()
      Git user ID
      Specified by:
      getGitUserId in interface org.openapitools.codegen.CodegenConfig
      Returns:
      Git user ID
    • setGitRepoId

      public void setGitRepoId(String gitRepoId)
      Set Git repo ID.
      Specified by:
      setGitRepoId in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      gitRepoId - Git repo ID
    • getGitRepoId

      public String getGitRepoId()
      Git repo ID
      Specified by:
      getGitRepoId in interface org.openapitools.codegen.CodegenConfig
      Returns:
      Git repo ID
    • setReleaseNote

      public void setReleaseNote(String releaseNote)
      Set release note.
      Specified by:
      setReleaseNote in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      releaseNote - Release note
    • getReleaseNote

      public String getReleaseNote()
      Release note
      Specified by:
      getReleaseNote in interface org.openapitools.codegen.CodegenConfig
      Returns:
      Release note
    • getDocExtension

      public String getDocExtension()
      Documentation files extension
      Specified by:
      getDocExtension in interface org.openapitools.codegen.CodegenConfig
      Returns:
      Documentation files extension
    • setDocExtension

      public void setDocExtension(String userDocExtension)
      Set Documentation files extension
      Specified by:
      setDocExtension in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      userDocExtension - documentation files extension
    • setHttpUserAgent

      public void setHttpUserAgent(String httpUserAgent)
      Set HTTP user agent.
      Specified by:
      setHttpUserAgent in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      httpUserAgent - HTTP user agent
    • getHttpUserAgent

      public String getHttpUserAgent()
      HTTP user agent
      Specified by:
      getHttpUserAgent in interface org.openapitools.codegen.CodegenConfig
      Returns:
      HTTP user agent
    • buildLibraryCliOption

      protected org.openapitools.codegen.CliOption buildLibraryCliOption(Map<String,String> supportedLibraries)
    • sanitizeName

      public String sanitizeName(String name)
      Sanitize name (parameter, property, method, etc)
      Specified by:
      sanitizeName in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      name - string to be sanitize
      Returns:
      sanitized string
    • setTemplatingEngine

      public void setTemplatingEngine(org.openapitools.codegen.api.TemplatingEngineAdapter templatingEngine)
      Specified by:
      setTemplatingEngine in interface org.openapitools.codegen.CodegenConfig
    • getTemplatingEngine

      public org.openapitools.codegen.api.TemplatingEngineAdapter getTemplatingEngine()
      Specified by:
      getTemplatingEngine in interface org.openapitools.codegen.CodegenConfig
    • sanitizeName

      public String sanitizeName(String name, String removeCharRegEx)
      Sanitize name (parameter, property, method, etc)
      Parameters:
      name - string to be sanitize
      removeCharRegEx - a regex containing all char that will be removed
      Returns:
      sanitized string
    • sanitizeName

      public String sanitizeName(String name, String removeCharRegEx, ArrayList<String> exceptionList)
      Sanitize name (parameter, property, method, etc)
      Parameters:
      name - string to be sanitize
      removeCharRegEx - a regex containing all char that will be removed
      exceptionList - a list of matches which should not be sanitized (i.e exception)
      Returns:
      sanitized string
    • sanitizeTag

      public String sanitizeTag(String tag)
      Sanitize tag
      Specified by:
      sanitizeTag in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      tag - Tag
      Returns:
      Sanitized tag
    • setParameterBooleanFlagWithCodegenProperty

      public void setParameterBooleanFlagWithCodegenProperty(org.openapitools.codegen.CodegenParameter parameter, org.openapitools.codegen.CodegenProperty property)
      Set CodegenParameter boolean flag using CodegenProperty. NOTE: This is deprecated and can be removed in 6.0.0 This logic has been folded into the original call sites and long term will be moved into IJsonSchemaValidationProperties.setTypeProperties and overrides like updateModelForObject
      Parameters:
      parameter - Codegen Parameter
      property - Codegen property
    • updateCodegenPropertyEnum

      public void updateCodegenPropertyEnum(org.openapitools.codegen.CodegenProperty var)
      Update codegen property's enum by adding "enumVars" (with name and value)
      Parameters:
      var - list of CodegenProperty
    • getEnumDefaultValue

      protected String getEnumDefaultValue(String defaultValue, String dataType)
    • buildEnumVars

      protected List<Map<String,Object>> buildEnumVars(List<Object> values, String dataType)
    • postProcessEnumVars

      protected void postProcessEnumVars(List<Map<String,Object>> enumVars)
    • updateEnumVarsWithExtensions

      protected void updateEnumVarsWithExtensions(List<Map<String,Object>> enumVars, Map<String,Object> vendorExtensions, String dataType)
    • addRegularExpressionDelimiter

      public String addRegularExpressionDelimiter(String pattern)
      If the pattern misses the delimiter, add "/" to the beginning and end Otherwise, return the original pattern
      Parameters:
      pattern - the pattern (regular expression)
      Returns:
      the pattern with delimiter
    • convertPropertyToBooleanAndWriteBack

      public boolean convertPropertyToBooleanAndWriteBack(String propertyKey)
      reads propertyKey from additionalProperties, converts it to a boolean and writes it back to additionalProperties to be usable as a boolean in mustache files.
      Parameters:
      propertyKey - property key
      Returns:
      property value as boolean
    • convertPropertyToBooleanAndWriteBack

      public boolean convertPropertyToBooleanAndWriteBack(String propertyKey, Consumer<Boolean> booleanSetter)
      reads propertyKey from additionalProperties, converts it to a boolean and writes it back to additionalProperties to be usable as a boolean in mustache files.
      Parameters:
      propertyKey - property key
      booleanSetter - the setter function reference
      Returns:
      property value as boolean or false if it does not exist
    • convertPropertyToStringAndWriteBack

      public String convertPropertyToStringAndWriteBack(String propertyKey, Consumer<String> stringSetter)
      reads propertyKey from additionalProperties, converts it to a string and writes it back to additionalProperties to be usable as a string in mustache files.
      Parameters:
      propertyKey - property key
      stringSetter - the setter function reference
      Returns:
      property value as String or null if not found
    • convertPropertyToTypeAndWriteBack

      public <T> T convertPropertyToTypeAndWriteBack(String propertyKey, Function<String,T> converter, Consumer<T> genericTypeSetter)
      reads propertyKey from additionalProperties, converts it to T and writes it back to additionalProperties to be usable as T in mustache files.
      Parameters:
      propertyKey - property key
      genericTypeSetter - the setter function reference
      Returns:
      property value as instance of type T or null if not found
    • getIgnoreFilePathOverride

      public String getIgnoreFilePathOverride()
      Provides an override location, if any is specified, for the .openapi-generator-ignore.

      This is originally intended for the first generation only.

      Specified by:
      getIgnoreFilePathOverride in interface org.openapitools.codegen.CodegenConfig
      Returns:
      a string of the full path to an override ignore file.
    • setIgnoreFilePathOverride

      public void setIgnoreFilePathOverride(String ignoreFileOverride)
      Sets an override location for the '.openapi-generator-ignore' location for the first code generation.
      Specified by:
      setIgnoreFilePathOverride in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      ignoreFileOverride - The full path to an ignore file
    • convertPropertyToBoolean

      public boolean convertPropertyToBoolean(String propertyKey)
    • writePropertyBack

      public void writePropertyBack(String propertyKey, Object value)
    • getContentType

      protected String getContentType(io.swagger.v3.oas.models.parameters.RequestBody requestBody)
    • getConsumesInfo

      public static Set<String> getConsumesInfo(io.swagger.v3.oas.models.OpenAPI openAPI, io.swagger.v3.oas.models.Operation operation)
    • hasFormParameter

      public boolean hasFormParameter(io.swagger.v3.oas.models.Operation operation)
    • hasBodyParameter

      public boolean hasBodyParameter(io.swagger.v3.oas.models.Operation operation)
    • getProducesInfo

      public static Set<String> getProducesInfo(io.swagger.v3.oas.models.OpenAPI openAPI, io.swagger.v3.oas.models.Operation operation)
      returns the list of MIME types the APIs can produce
      Parameters:
      openAPI - current specification instance
      operation - Operation
      Returns:
      a set of MIME types
    • getCollectionFormat

      protected String getCollectionFormat(io.swagger.v3.oas.models.parameters.Parameter parameter)
    • getTag

      public org.openapitools.codegen.CodegenType getTag()
      Specified by:
      getTag in interface org.openapitools.codegen.CodegenConfig
    • getName

      public String getName()
      Specified by:
      getName in interface org.openapitools.codegen.CodegenConfig
    • getHelp

      public String getHelp()
      Specified by:
      getHelp in interface org.openapitools.codegen.CodegenConfig
    • fromRequestBodyToFormParameters

      public List<org.openapitools.codegen.CodegenParameter> fromRequestBodyToFormParameters(io.swagger.v3.oas.models.parameters.RequestBody body, Set<String> imports)
    • fromFormProperty

      public org.openapitools.codegen.CodegenParameter fromFormProperty(String name, io.swagger.v3.oas.models.media.Schema propertySchema, Set<String> imports)
    • addBodyModelSchema

      protected void addBodyModelSchema(org.openapitools.codegen.CodegenParameter codegenParameter, String name, io.swagger.v3.oas.models.media.Schema schema, Set<String> imports, String bodyParameterName, boolean forceSimpleRef)
    • updateRequestBodyForMap

      protected void updateRequestBodyForMap(org.openapitools.codegen.CodegenParameter codegenParameter, io.swagger.v3.oas.models.media.Schema schema, String name, Set<String> imports, String bodyParameterName)
    • updateRequestBodyForPrimitiveType

      protected void updateRequestBodyForPrimitiveType(org.openapitools.codegen.CodegenParameter codegenParameter, io.swagger.v3.oas.models.media.Schema schema, String bodyParameterName, Set<String> imports)
    • updateRequestBodyForObject

      protected void updateRequestBodyForObject(org.openapitools.codegen.CodegenParameter codegenParameter, io.swagger.v3.oas.models.media.Schema schema, String name, Set<String> imports, String bodyParameterName)
    • updateRequestBodyForArray

      protected void updateRequestBodyForArray(org.openapitools.codegen.CodegenParameter codegenParameter, io.swagger.v3.oas.models.media.Schema schema, String name, Set<String> imports, String bodyParameterName)
    • updateRequestBodyForString

      protected void updateRequestBodyForString(org.openapitools.codegen.CodegenParameter codegenParameter, io.swagger.v3.oas.models.media.Schema schema, Set<String> imports, String bodyParameterName)
    • toMediaTypeSchemaName

      protected String toMediaTypeSchemaName(String contentType, String mediaTypeSchemaSuffix)
    • getContent

      protected LinkedHashMap<String,org.openapitools.codegen.CodegenMediaType> getContent(io.swagger.v3.oas.models.media.Content content, Set<String> imports, String mediaTypeSchemaSuffix)
    • fromRequestBody

      public org.openapitools.codegen.CodegenParameter fromRequestBody(io.swagger.v3.oas.models.parameters.RequestBody body, Set<String> imports, String bodyParameterName)
    • addRequiredVarsMap

      protected void addRequiredVarsMap(io.swagger.v3.oas.models.media.Schema schema, org.openapitools.codegen.IJsonSchemaValidationProperties property)
    • addVarsRequiredVarsAdditionalProps

      protected void addVarsRequiredVarsAdditionalProps(io.swagger.v3.oas.models.media.Schema schema, org.openapitools.codegen.IJsonSchemaValidationProperties property)
    • getItemsName

      protected String getItemsName(io.swagger.v3.oas.models.media.Schema containingSchema, String containingSchemaName)
    • getAdditionalPropertiesName

      protected String getAdditionalPropertiesName()
    • addOption

      protected void addOption(String key, String description, String defaultValue)
    • addOption

      protected void addOption(String key, String description, String defaultValue, Map<String,String> enumValues)
    • updateOption

      protected void updateOption(String key, String defaultValue)
    • removeOption

      protected void removeOption(String key)
    • addSwitch

      protected void addSwitch(String key, String description, Boolean defaultValue)
    • generateJSONSpecFile

      protected void generateJSONSpecFile(Map<String,Object> objs)
      generates OpenAPI specification file in JSON format
      Parameters:
      objs - map of object
    • generateYAMLSpecFile

      public void generateYAMLSpecFile(Map<String,Object> objs)
      generates OpenAPI specification file in YAML format
      Parameters:
      objs - map of object
    • isDataTypeString

      public boolean isDataTypeString(String dataType)
      checks if the data should be classified as "string" in enum e.g. double in C# needs to be double-quoted (e.g. "2.8") by treating it as a string In the future, we may rename this function to "isEnumString"
      Parameters:
      dataType - data type
      Returns:
      true if it's a enum string
    • fromServers

      public List<org.openapitools.codegen.CodegenServer> fromServers(List<io.swagger.v3.oas.models.servers.Server> servers)
      Specified by:
      fromServers in interface org.openapitools.codegen.CodegenConfig
    • fromServerVariables

      public List<org.openapitools.codegen.CodegenServerVariable> fromServerVariables(Map<String,io.swagger.v3.oas.models.servers.ServerVariable> variables)
      Specified by:
      fromServerVariables in interface org.openapitools.codegen.CodegenConfig
    • setParameterNullable

      protected void setParameterNullable(org.openapitools.codegen.CodegenParameter parameter, org.openapitools.codegen.CodegenProperty property)
    • postProcessFile

      public void postProcessFile(File file, String fileType)
      Post-process the auto-generated file, e.g. using go-fmt to format the Go code. The file type can be "model-test", "model-doc", "model", "api", "api-test", "api-doc", "supporting-file", "openapi-generator-ignore", "openapi-generator-version"

      TODO: store these values in enum instead

      Specified by:
      postProcessFile in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      file - file to be processed
      fileType - file type
    • executePostProcessor

      protected boolean executePostProcessor(String[] commandArr)
      Executes an external command for file post processing.
      Parameters:
      commandArr - an array of commands and arguments. They will be concatenated with space and tokenized again.
      Returns:
      Whether the execution passed (true) or failed (false)
    • isEnablePostProcessFile

      public boolean isEnablePostProcessFile()
      Boolean value indicating the state of the option for post-processing file using environment variables.
      Specified by:
      isEnablePostProcessFile in interface org.openapitools.codegen.CodegenConfig
      Returns:
      true if the option is enabled
    • setEnablePostProcessFile

      public void setEnablePostProcessFile(boolean enablePostProcessFile)
      Set the boolean value indicating the state of the option for post-processing file using environment variables.
      Specified by:
      setEnablePostProcessFile in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      enablePostProcessFile - true to enable post-processing file
    • isEnableMinimalUpdate

      public boolean isEnableMinimalUpdate()
      Get the boolean value indicating the state of the option for updating only changed files
      Specified by:
      isEnableMinimalUpdate in interface org.openapitools.codegen.CodegenConfig
    • setEnableMinimalUpdate

      public void setEnableMinimalUpdate(boolean enableMinimalUpdate)
      Set the boolean value indicating the state of the option for updating only changed files
      Specified by:
      setEnableMinimalUpdate in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      enableMinimalUpdate - true to enable minimal update
    • isStrictSpecBehavior

      public boolean isStrictSpecBehavior()
      Indicates whether the codegen configuration should treat documents as strictly defined by the OpenAPI specification.
      Specified by:
      isStrictSpecBehavior in interface org.openapitools.codegen.CodegenConfig
      Returns:
      true to act strictly upon spec documents, potentially modifying the spec to strictly fit the spec.
    • setStrictSpecBehavior

      public void setStrictSpecBehavior(boolean strictSpecBehavior)
      Sets the boolean valid indicating whether generation will work strictly against the specification, potentially making minor changes to the input document.
      Specified by:
      setStrictSpecBehavior in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      strictSpecBehavior - true if we will behave strictly, false to allow specification documents which pass validation to be loosely interpreted against the spec.
    • getFeatureSet

      public org.openapitools.codegen.meta.FeatureSet getFeatureSet()
      Specified by:
      getFeatureSet in interface org.openapitools.codegen.CodegenConfig
    • isRemoveEnumValuePrefix

      public boolean isRemoveEnumValuePrefix()
      Get the boolean value indicating whether to remove enum value prefixes
      Specified by:
      isRemoveEnumValuePrefix in interface org.openapitools.codegen.CodegenConfig
    • setRemoveEnumValuePrefix

      public void setRemoveEnumValuePrefix(boolean removeEnumValuePrefix)
      Set the boolean value indicating whether to remove enum value prefixes
      Specified by:
      setRemoveEnumValuePrefix in interface org.openapitools.codegen.CodegenConfig
      Parameters:
      removeEnumValuePrefix - true to enable enum value prefix removal
    • addOneOfNameExtension

      public void addOneOfNameExtension(io.swagger.v3.oas.models.media.Schema schema, String name)
      Add "x-one-of-name" extension to a given oneOf schema (assuming it has at least 1 oneOf elements)
      Parameters:
      schema - schema to add the extension to
      name - name of the parent oneOf schema
    • addOneOfInterfaceModel

      public void addOneOfInterfaceModel(io.swagger.v3.oas.models.media.Schema cs, String type)
      Add a given ComposedSchema as an interface model to be generated, assuming it has `oneOf` defined
      Parameters:
      cs - ComposedSchema object to create as interface model
      type - name to use for the generated interface model
    • addImportsToOneOfInterface

      public void addImportsToOneOfInterface(List<Map<String,String>> imports)
    • modifyFeatureSet

      protected void modifyFeatureSet(Consumer<org.openapitools.codegen.meta.FeatureSet.Builder> processor)
    • isJsonMimeType

      public static boolean isJsonMimeType(String mime)
      Check if the given MIME is a JSON MIME. JSON MIME examples: application/json application/json; charset=UTF8 APPLICATION/JSON
      Parameters:
      mime - MIME string
      Returns:
      true if the input matches the JSON MIME
    • isXmlMimeType

      public static boolean isXmlMimeType(String mime)
    • isJsonVendorMimeType

      protected static boolean isJsonVendorMimeType(String mime)
      Check if the given MIME is a JSON Vendor MIME. JSON MIME examples: application/vnd.mycompany+json application/vnd.mycompany.resourceA.version1+json
      Parameters:
      mime - MIME string
      Returns:
      true if the input matches the JSON vendor MIME
    • getCollectionFormat

      protected String getCollectionFormat(org.openapitools.codegen.CodegenParameter codegenParameter)
      Builds OAPI 2.0 collectionFormat value based on style and explode values for the CodegenParameter.
      Parameters:
      codegenParameter - parameter
      Returns:
      string for a collectionFormat.
    • defaultTemplatingEngine

      public String defaultTemplatingEngine()
      Specified by:
      defaultTemplatingEngine in interface org.openapitools.codegen.CodegenConfig
    • generatorLanguage

      public org.openapitools.codegen.GeneratorLanguage generatorLanguage()
      Specified by:
      generatorLanguage in interface org.openapitools.codegen.CodegenConfig
    • generatorLanguageVersion

      public String generatorLanguageVersion()
      Specified by:
      generatorLanguageVersion in interface org.openapitools.codegen.CodegenConfig
    • getSupportedVendorExtensions

      public List<org.openapitools.codegen.VendorExtension> getSupportedVendorExtensions()
      Specified by:
      getSupportedVendorExtensions in interface org.openapitools.codegen.CodegenConfig
    • getUseInlineModelResolver

      public boolean getUseInlineModelResolver()
      Specified by:
      getUseInlineModelResolver in interface org.openapitools.codegen.CodegenConfig
    • getUseOpenapiNormalizer

      public boolean getUseOpenapiNormalizer()
      Specified by:
      getUseOpenapiNormalizer in interface org.openapitools.codegen.CodegenConfig
    • getOpenapiGeneratorIgnoreList

      public Set<String> getOpenapiGeneratorIgnoreList()
      Specified by:
      getOpenapiGeneratorIgnoreList in interface org.openapitools.codegen.CodegenConfig
    • isTypeErasedGenerics

      public boolean isTypeErasedGenerics()
      Specified by:
      isTypeErasedGenerics in interface org.openapitools.codegen.CodegenConfig
    • handleSpecialCharacters

      protected String handleSpecialCharacters(String name)
    • getSchemaFromBooleanOrSchema

      protected io.swagger.v3.oas.models.media.Schema getSchemaFromBooleanOrSchema(Object schema)
      Used to ensure that null or Schema is returned given an input Boolean/Schema/null This will be used in openapi 3.1.0 spec processing to ensure that Booleans become Schemas Because our generators only understand Schemas Note: use getIsBooleanSchemaTrue or getIsBooleanSchemaFalse on the IJsonSchemaValidationProperties if you need to be able to detect if the original schema's value was true or false
      Parameters:
      schema - the input Boolean or Schema data to convert to a Schema
      Returns:
      Schema the input data converted to a Schema if possible
    • handleConstantParams

      protected void handleConstantParams(org.openapitools.codegen.CodegenOperation operation)
      This method removes all constant Query, Header and Cookie Params from allParams and sets them as constantParams in the CodegenOperation. The definition of constant is single valued required enum params. The constantParams in the generated code should be hardcoded to the constantValue if autosetConstants feature is enabled.
      Parameters:
      operation - - operation to be processed
    • getModelNamePrefix

      public String getModelNamePrefix()
    • setModelNamePrefix

      public void setModelNamePrefix(String modelNamePrefix)
    • getApiNamePrefix

      public String getApiNamePrefix()
    • setApiNamePrefix

      public void setApiNamePrefix(String apiNamePrefix)
    • getModelNameSuffix

      public String getModelNameSuffix()
    • setModelNameSuffix

      public void setModelNameSuffix(String modelNameSuffix)
    • getApiNameSuffix

      public String getApiNameSuffix()
    • setApiNameSuffix

      public void setApiNameSuffix(String apiNameSuffix)
    • setModelPackage

      public void setModelPackage(String modelPackage)
    • setApiPackage

      public void setApiPackage(String apiPackage)
    • setFilesMetadataFilename

      public void setFilesMetadataFilename(String filesMetadataFilename)
    • setVersionMetadataFilename

      public void setVersionMetadataFilename(String versionMetadataFilename)
    • getRemoveOperationIdPrefixDelimiter

      public String getRemoveOperationIdPrefixDelimiter()
    • setRemoveOperationIdPrefixDelimiter

      public void setRemoveOperationIdPrefixDelimiter(String removeOperationIdPrefixDelimiter)
    • getRemoveOperationIdPrefixCount

      public int getRemoveOperationIdPrefixCount()
    • setRemoveOperationIdPrefixCount

      public void setRemoveOperationIdPrefixCount(int removeOperationIdPrefixCount)
    • getSortModelPropertiesByRequiredFlag

      public Boolean getSortModelPropertiesByRequiredFlag()
    • setSortModelPropertiesByRequiredFlag

      public void setSortModelPropertiesByRequiredFlag(Boolean sortModelPropertiesByRequiredFlag)
    • getEnsureUniqueParams

      public Boolean getEnsureUniqueParams()
    • setEnsureUniqueParams

      public void setEnsureUniqueParams(Boolean ensureUniqueParams)
    • getAllowUnicodeIdentifiers

      public Boolean getAllowUnicodeIdentifiers()
    • setAllowUnicodeIdentifiers

      public void setAllowUnicodeIdentifiers(Boolean allowUnicodeIdentifiers)
    • getPrependFormOrBodyParameters

      public Boolean getPrependFormOrBodyParameters()
    • setPrependFormOrBodyParameters

      public void setPrependFormOrBodyParameters(Boolean prependFormOrBodyParameters)
    • setLegacyDiscriminatorBehavior

      public void setLegacyDiscriminatorBehavior(boolean legacyDiscriminatorBehavior)
    • setDisallowAdditionalPropertiesIfNotPresent

      public void setDisallowAdditionalPropertiesIfNotPresent(boolean disallowAdditionalPropertiesIfNotPresent)
    • setEnumUnknownDefaultCase

      public void setEnumUnknownDefaultCase(boolean enumUnknownDefaultCase)
    • setAutosetConstants

      public void setAutosetConstants(boolean autosetConstants)
    • getSortParamsByRequiredFlag

      public Boolean getSortParamsByRequiredFlag()
    • setSortParamsByRequiredFlag

      public void setSortParamsByRequiredFlag(Boolean sortParamsByRequiredFlag)