Class DefaultCodegen
- java.lang.Object
-
- org.openapitools.codegen.DefaultCodegen
-
- All Implemented Interfaces:
CodegenConfig
- Direct Known Subclasses:
AbstractAdaCodegen
,AbstractApexCodegen
,AbstractCppCodegen
,AbstractCSharpCodegen
,AbstractDartCodegen
,AbstractEiffelCodegen
,AbstractFSharpCodegen
,AbstractGoCodegen
,AbstractGraphQLCodegen
,AbstractJavaCodegen
,AbstractJuliaCodegen
,AbstractKotlinCodegen
,AbstractPhpCodegen
,AbstractPythonCodegen
,AbstractRubyCodegen
,AbstractRustCodegen
,AbstractScalaCodegen
,AbstractTypeScriptClientCodegen
,AndroidClientCodegen
,Apache2ConfigCodegen
,AsciidocDocumentationCodegen
,AvroSchemaCodegen
,BashClientCodegen
,CLibcurlClientCodegen
,ClojureClientCodegen
,ConfluenceWikiCodegen
,CrystalClientCodegen
,ElixirClientCodegen
,ElmClientCodegen
,ErlangClientCodegen
,ErlangProperCodegen
,ErlangServerCodegen
,FlashClientCodegen
,HaskellHttpClientCodegen
,HaskellServantCodegen
,HaskellYesodServerCodegen
,JavascriptApolloClientCodegen
,JavascriptClientCodegen
,JavascriptClosureAngularClientCodegen
,JetbrainsHttpClientClientCodegen
,JMeterClientCodegen
,K6ClientCodegen
,LuaClientCodegen
,MarkdownDocumentationCodegen
,MysqlSchemaCodegen
,N4jsClientCodegen
,NimClientCodegen
,NodeJSExpressServerCodegen
,ObjcClientCodegen
,OCamlClientCodegen
,OpenAPIGenerator
,OpenAPIYamlGenerator
,PerlClientCodegen
,PhpSilexServerCodegen
,PlantumlDocumentationCodegen
,PostmanCollectionCodegen
,PowerShellClientCodegen
,ProtobufSchemaCodegen
,RClientCodegen
,ScalaFinchServerCodegen
,StaticDocCodegen
,StaticHtml2Generator
,StaticHtmlGenerator
,Swift5ClientCodegen
,SwiftCombineClientCodegen
,WsdlSchemaCodegen
,XojoClientCodegen
public class DefaultCodegen extends Object implements CodegenConfig
-
-
Field Summary
-
Constructor Summary
Constructors Constructor Description DefaultCodegen()
Default constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addAdditionPropertiesToCodeGenModel(CodegenModel codegenModel, io.swagger.v3.oas.models.media.Schema schema)
Handle the model for the 'additionalProperties' keyword in the OAS schema.protected void
addBodyModelSchema(CodegenParameter codegenParameter, String name, io.swagger.v3.oas.models.media.Schema schema, Set<String> imports, String bodyParameterName, boolean forceSimpleRef)
protected void
addHeaders(io.swagger.v3.oas.models.responses.ApiResponse response, List<CodegenProperty> properties)
Add headers to codegen propertyprotected void
addImport(io.swagger.v3.oas.models.media.ComposedSchema composed, io.swagger.v3.oas.models.media.Schema childSchema, CodegenModel model, String modelName)
Add the model name of the child schema in a composed schema to the set of importsprotected void
addImport(Set<String> importsToBeAddedTo, String type)
protected void
addImport(CodegenModel m, String type)
protected void
addImports(Set<String> importsToBeAddedTo, Set<String> importsToAdd)
protected void
addImports(Set<String> importsToBeAddedTo, IJsonSchemaValidationProperties type)
protected void
addImports(CodegenModel m, IJsonSchemaValidationProperties type)
protected void
addImportsForPropertyType(CodegenModel model, CodegenProperty property)
For a given property, adds all needed imports to the model This includes a flat property type (e.g.void
addImportsToOneOfInterface(List<Map<String,String>> imports)
Map<String,Object>
additionalProperties()
protected com.google.common.collect.ImmutableMap.Builder<String,com.samskivert.mustache.Mustache.Lambda>
addMustacheLambdas()
Preset map builder with commonly used Mustache lambdas.void
addOneOfInterfaceModel(io.swagger.v3.oas.models.media.ComposedSchema cs, String type, io.swagger.v3.oas.models.OpenAPI openAPI)
Add a given ComposedSchema as an interface model to be generated, assuming it has `oneOf` definedvoid
addOneOfNameExtension(io.swagger.v3.oas.models.media.ComposedSchema s, String name)
Add "x-one-of-name" extension to a given oneOf schema (assuming it has at least 1 oneOf elements)void
addOperationToGroup(String tag, String resourcePath, io.swagger.v3.oas.models.Operation operation, CodegenOperation co, Map<String,List<CodegenOperation>> operations)
Add operation to groupprotected void
addOption(String key, String description, String defaultValue)
protected void
addOption(String key, String description, String defaultValue, Map<String,String> enumValues)
protected void
addParentContainer(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.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" listString
addRegularExpressionDelimiter(String pattern)
If the pattern misses the delimiter, add "/" to the beginning and end Otherwise, return the original patternprotected void
addRequiredVarsMap(io.swagger.v3.oas.models.media.Schema schema, IJsonSchemaValidationProperties property)
protected void
addSwitch(String key, String description, Boolean defaultValue)
protected void
addVars(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)
protected void
addVars(IJsonSchemaValidationProperties m, List<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)protected void
addVarsRequiredVarsAdditionalProps(io.swagger.v3.oas.models.media.Schema schema, IJsonSchemaValidationProperties property)
String
apiDocFileFolder()
String
apiDocFilename(String templateName, String tag)
Return the full path and API documentation fileMap<String,String>
apiDocTemplateFiles()
String
apiFileFolder()
String
apiFilename(String templateName, String tag)
String
apiPackage()
Map<String,String>
apiTemplateFiles()
String
apiTestFileFolder()
String
apiTestFilename(String templateName, String tag)
Return the full path and API test fileMap<String,String>
apiTestTemplateFiles()
protected List<Map<String,Object>>
buildEnumVars(List<Object> values, String dataType)
protected CliOption
buildLibraryCliOption(Map<String,String> supportedLibraries)
List<CliOption>
cliOptions()
boolean
convertPropertyToBoolean(String propertyKey)
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.protected CodegenDiscriminator
createDiscriminator(String schemaName, io.swagger.v3.oas.models.media.Schema schema, io.swagger.v3.oas.models.OpenAPI openAPI)
Set<String>
defaultIncludes()
String
defaultTemplatingEngine()
String
embeddedTemplateDir()
String
encodePath(String input)
String
escapeQuotationMark(String input)
Escape single and/or double quote to avoid code injectionString
escapeReservedWord(String name)
Return the escaped name of the reserved wordString
escapeText(String input)
String
escapeTextWhileAllowingNewLines(String input)
Escape characters while allowing new linesString
escapeUnsafeCharacters(String input)
override with any special text escaping logic to handle unsafe characters so as to avoid code injectionString
fileSuffix()
String
findCommonPrefixOfVars(List<Object> vars)
Returns the common prefix of variables for enum naming if two or more variables are presentprotected io.swagger.v3.oas.models.responses.ApiResponse
findMethodResponse(io.swagger.v3.oas.models.responses.ApiResponses responses)
Override with any special handling of response codesCodegenCallback
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 objectCodegenParameter
fromFormProperty(String name, io.swagger.v3.oas.models.media.Schema propertySchema, Set<String> imports)
CodegenModel
fromModel(String name, io.swagger.v3.oas.models.media.Schema schema)
Convert OAS Model object to Codegen Model object.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 objectCodegenParameter
fromParameter(io.swagger.v3.oas.models.parameters.Parameter parameter, Set<String> imports)
Convert OAS Parameter object to Codegen Parameter objectCodegenProperty
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-breakingCodegenProperty
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-breakingCodegenProperty
fromProperty(String name, io.swagger.v3.oas.models.media.Schema p, boolean required, boolean schemaIsFromAdditionalProperties)
Convert OAS Property object to Codegen Property object.CodegenParameter
fromRequestBody(io.swagger.v3.oas.models.parameters.RequestBody body, Set<String> imports, String bodyParameterName)
List<CodegenParameter>
fromRequestBodyToFormParameters(io.swagger.v3.oas.models.parameters.RequestBody body, Set<String> imports)
CodegenResponse
fromResponse(String responseCode, io.swagger.v3.oas.models.responses.ApiResponse response)
Convert OAS Response object to Codegen Response objectList<CodegenSecurity>
fromSecurity(Map<String,io.swagger.v3.oas.models.security.SecurityScheme> securitySchemeMap)
Convert map of OAS SecurityScheme objects to a list of Codegen Security objectsList<CodegenServer>
fromServers(List<io.swagger.v3.oas.models.servers.Server> servers)
List<CodegenServerVariable>
fromServerVariables(Map<String,io.swagger.v3.oas.models.servers.ServerVariable> variables)
String
generateExamplePath(String path, io.swagger.v3.oas.models.Operation operation)
Return the example pathprotected void
generateJSONSpecFile(Map<String,Object> objs)
generates OpenAPI specification file in JSON formatvoid
generateYAMLSpecFile(Map<String,Object> objs)
generates OpenAPI specification file in YAML formatGeneratorLanguage
generatorLanguage()
String
generatorLanguageVersion()
protected io.swagger.v3.oas.models.media.Schema
getAdditionalProperties(io.swagger.v3.oas.models.media.Schema schema)
Returns the additionalProperties Schema for the specified input schema.protected String
getAdditionalPropertiesName()
boolean
getAddSuffixToDuplicateOperationNicknames()
String
getAlias(String name)
Determine the type alias for the given type if it exists.Map<String,CodegenModel>
getAllModels(Map<String,ModelsMap> objs)
Index all CodegenModels by model name.protected List<CodegenDiscriminator.MappedModel>
getAllOfDescendants(String thisSchemaName, io.swagger.v3.oas.models.OpenAPI openAPI)
Boolean
getAllowUnicodeIdentifiers()
String
getApiNamePrefix()
String
getApiNameSuffix()
protected String
getCollectionFormat(io.swagger.v3.oas.models.parameters.Parameter parameter)
protected String
getCollectionFormat(CodegenParameter codegenParameter)
Builds OAPI 2.0 collectionFormat value based on style and explode values for theCodegenParameter
.static Set<String>
getConsumesInfo(io.swagger.v3.oas.models.OpenAPI openAPI, io.swagger.v3.oas.models.Operation operation)
protected LinkedHashMap<String,CodegenMediaType>
getContent(io.swagger.v3.oas.models.media.Content content, Set<String> imports, String mediaTypeSchemaSuffix)
protected String
getContentType(io.swagger.v3.oas.models.parameters.RequestBody requestBody)
Boolean
getDisallowAdditionalPropertiesIfNotPresent()
String
getDocExtension()
Documentation files extensionBoolean
getEnsureUniqueParams()
protected String
getEnumDefaultValue(String defaultValue, String dataType)
Boolean
getEnumUnknownDefaultCase()
FeatureSet
getFeatureSet()
String
getFilesMetadataFilename()
GeneratorMetadata
getGeneratorMetadata()
Returns metadata about the generator.String
getGitHost()
Git host.String
getGitRepoId()
Git repo IDString
getGitUserId()
Git user IDString
getHelp()
String
getHttpUserAgent()
HTTP user agentString
getIgnoreFilePathOverride()
Provides an override location, if any is specified, for the .openapi-generator-ignore.protected Map<String,Object>
getInnerEnumAllowableValues(CodegenProperty property)
String
getInputSpec()
protected String
getItemsName(io.swagger.v3.oas.models.media.Schema containingSchema, String containingSchemaName)
Boolean
getLegacyDiscriminatorBehavior()
String
getLibrary()
Library template (sub-template).String
getModelNamePrefix()
String
getModelNameSuffix()
protected Map<String,io.swagger.v3.oas.models.media.Schema>
getModelNameToSchemaCache()
Return a map from model name to Schema for efficient lookup.protected CodegenProperty
getMostInnerItems(CodegenProperty property)
String
getName()
protected List<CodegenDiscriminator.MappedModel>
getOneOfAnyOfDescendants(String composedSchemaName, String discPropName, io.swagger.v3.oas.models.media.ComposedSchema c, io.swagger.v3.oas.models.OpenAPI openAPI)
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.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.String
getOutputDir()
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.Boolean
getPrependFormOrBodyParameters()
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 produceString
getReleaseNote()
Release noteint
getRemoveOperationIdPrefixCount()
String
getRemoveOperationIdPrefixDelimiter()
protected io.swagger.v3.oas.models.media.Schema<?>
getSchemaAdditionalProperties(io.swagger.v3.oas.models.media.Schema schema)
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 falseprotected io.swagger.v3.oas.models.media.Schema<?>
getSchemaItems(io.swagger.v3.oas.models.media.ArraySchema schema)
String
getSchemaType(io.swagger.v3.oas.models.media.Schema schema)
returns the OpenAPI type for the property.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.Boolean
getSortModelPropertiesByRequiredFlag()
Boolean
getSortParamsByRequiredFlag()
List<VendorExtension>
getSupportedVendorExtensions()
protected String
getSymbolName(String input)
Return the symbol name of a symbolCodegenType
getTag()
TemplatingEngineAdapter
getTemplatingEngine()
String
getterAndSetterCapitalize(String name)
Camelize the method name of the getter and setterString
getTypeDeclaration(io.swagger.v3.oas.models.media.Schema schema)
Output the language-specific type declaration of the property.String
getTypeDeclaration(String name)
Output the language-specific type declaration of a given OAS name.boolean
getUseInlineModelResolver()
Boolean
getUseOneOfInterfaces()
boolean
getUseOpenAPINormalizer()
String
getVersionMetadataFilename()
protected void
handleMethodResponse(io.swagger.v3.oas.models.Operation operation, Map<String,io.swagger.v3.oas.models.media.Schema> schemas, CodegenOperation op, io.swagger.v3.oas.models.responses.ApiResponse methodResponse)
Set op's returnBaseType, returnType, examples etc.protected void
handleMethodResponse(io.swagger.v3.oas.models.Operation operation, Map<String,io.swagger.v3.oas.models.media.Schema> schemas, CodegenOperation op, io.swagger.v3.oas.models.responses.ApiResponse methodResponse, Map<String,String> schemaMappings)
Set op's returnBaseType, returnType, examples etc.protected String
handleSpecialCharacters(String name)
boolean
hasBodyParameter(io.swagger.v3.oas.models.OpenAPI openAPI, io.swagger.v3.oas.models.Operation operation)
boolean
hasFormParameter(io.swagger.v3.oas.models.OpenAPI openAPI, io.swagger.v3.oas.models.Operation operation)
Map<String,String>
importMapping()
protected void
initializeSpecialCharacterMapping()
Initialize special character mappingMap<String,String>
inlineSchemaNameDefault()
Map<String,String>
inlineSchemaNameMapping()
Map<String,String>
instantiationTypes()
boolean
isAnyTypeSchema(io.swagger.v3.oas.models.media.Schema schema)
This method has been kept to keep the introduction of ModelUtils.isAnyType as a non-breaking change this way, existing forks of our generator can continue to use this method TODO in 6.0.0 replace this method with ModelUtils.isAnyType Return true if the schema value can be any type, i.e.boolean
isDataTypeBinary(String dataType)
boolean
isDataTypeFile(String dataType)
boolean
isDataTypeString(String dataType)
checks if the data should be classified as "string" in enum e.g.boolean
isEnableMinimalUpdate()
Get the boolean value indicating the state of the option for updating only changed filesboolean
isEnablePostProcessFile()
Boolean value indicating the state of the option for post-processing file using environment variables.protected boolean
isFreeFormObject(io.swagger.v3.oas.models.media.Schema schema)
Check to see if the schema is a free form object.boolean
isHideGenerationTimestamp()
protected static boolean
isJsonMimeType(String mime)
Check if the given MIME is a JSON MIME.protected static boolean
isJsonVendorMimeType(String mime)
Check if the given MIME is a JSON Vendor MIME.boolean
isLibrary(String library)
check if current active library equals to passedboolean
isParameterNameUnique(CodegenParameter p, List<CodegenParameter> parameters)
protected Boolean
isPropertyInnerMostEnum(CodegenProperty property)
Update property for map containerboolean
isRemoveEnumValuePrefix()
Get the boolean value indicating whether to remove enum value prefixesboolean
isRemoveOperationIdPrefix()
protected boolean
isReservedWord(String word)
boolean
isSkipOperationExample()
boolean
isSkipOverwrite()
boolean
isStrictSpecBehavior()
Indicates whether the codegen configuration should treat documents as strictly defined by the OpenAPI specification.Set<String>
languageSpecificPrimitives()
String
lowerCamelCase(String name)
Return the lowerCamelCase of the stringString
modelDocFileFolder()
Map<String,String>
modelDocTemplateFiles()
String
modelFileFolder()
String
modelFilename(String templateName, String modelName)
String
modelPackage()
Map<String,String>
modelTemplateFiles()
String
modelTestFileFolder()
Map<String,String>
modelTestTemplateFiles()
protected void
modifyFeatureSet(Consumer<FeatureSet.Builder> processor)
protected boolean
needToImport(String type)
Check the type to see if it needs import the library/module/packageMap<String,String>
openapiNormalizer()
String
outputFolder()
void
postProcess()
Map<String,ModelsMap>
postProcessAllModels(Map<String,ModelsMap> objs)
void
postProcessFile(File file, String fileType)
Post-process the auto-generated file, e.g.void
postProcessModelProperty(CodegenModel model, CodegenProperty property)
ModelsMap
postProcessModels(ModelsMap objs)
ModelsMap
postProcessModelsEnum(ModelsMap objs)
post process enum defined in model's propertiesOperationsMap
postProcessOperationsWithModels(OperationsMap objs, List<ModelMap> allModels)
void
postProcessParameter(CodegenParameter parameter)
Map<String,Object>
postProcessSupportingFileData(Map<String,Object> objs)
void
preprocessOpenAPI(io.swagger.v3.oas.models.OpenAPI openAPI)
com.samskivert.mustache.Mustache.Compiler
processCompiler(com.samskivert.mustache.Mustache.Compiler compiler)
void
processOpenAPI(io.swagger.v3.oas.models.OpenAPI openAPI)
void
processOpts()
TemplatingEngineAdapter
processTemplatingEngine(TemplatingEngineAdapter templatingEngine)
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 representedprotected void
removeImport(OperationsMap objs, String importToRemove)
Removes importToRemove from the imports of objs, if present.String
removeNonNameElementToCamelCase(String name)
Remove characters not suitable for variable or method name from the input and camelize itprotected String
removeNonNameElementToCamelCase(String name, String nonNameElementPattern)
Remove characters that is not good to be included in method name from the input and camelize itprotected void
removeOption(String key)
protected void
removeSelfReferenceImports(CodegenModel model)
Removes imports from the model that points to itself Marks a self referencing property, if detectedSet<String>
reservedWords()
Map<String,String>
reservedWordsMappings()
String
sanitizeName(String name)
Sanitize name (parameter, property, method, etc)String
sanitizeName(String name, String removeCharRegEx)
Sanitize name (parameter, property, method, etc)String
sanitizeName(String name, String removeCharRegEx, ArrayList<String> exceptionList)
Sanitize name (parameter, property, method, etc)String
sanitizeTag(String tag)
Sanitize tagMap<String,String>
schemaMapping()
Map<String,String>
serverVariableOverrides()
protected void
setAddProps(io.swagger.v3.oas.models.media.Schema schema, IJsonSchemaValidationProperties property)
void
setAllowUnicodeIdentifiers(Boolean allowUnicodeIdentifiers)
void
setApiNamePrefix(String apiNamePrefix)
void
setApiNameSuffix(String apiNameSuffix)
void
setApiPackage(String apiPackage)
void
setCircularReferences(Map<String,CodegenModel> models)
void
setDisallowAdditionalPropertiesIfNotPresent(boolean val)
void
setDocExtension(String userDocExtension)
Set Documentation files extensionvoid
setEnableMinimalUpdate(boolean enableMinimalUpdate)
Set the boolean value indicating the state of the option for updating only changed filesvoid
setEnablePostProcessFile(boolean enablePostProcessFile)
Set the boolean value indicating the state of the option for post-processing file using environment variables.void
setEnsureUniqueParams(Boolean ensureUniqueParams)
void
setEnumUnknownDefaultCase(boolean val)
void
setFilesMetadataFilename(String filesMetadataFilename)
void
setGitHost(String gitHost)
Set Git host.void
setGitRepoId(String gitRepoId)
Set Git repo ID.void
setGitUserId(String gitUserId)
Set Git user ID.void
setHideGenerationTimestamp(boolean hideGenerationTimestamp)
void
setHttpUserAgent(String httpUserAgent)
Set HTTP user agent.void
setIgnoreFilePathOverride(String ignoreFileOverride)
Sets an override location for the '.openapi-generator-ignore' location for the first code generation.void
setInputSpec(String inputSpec)
void
setLegacyDiscriminatorBehavior(boolean val)
void
setLibrary(String library)
Set library template (sub-template).void
setModelNamePrefix(String modelNamePrefix)
void
setModelNameSuffix(String modelNameSuffix)
void
setModelPackage(String modelPackage)
protected void
setNonArrayMapProperty(CodegenProperty property, String type)
void
setOpenAPI(io.swagger.v3.oas.models.OpenAPI openAPI)
Set the OpenAPI document.void
setOutputDir(String dir)
void
setParameterBooleanFlagWithCodegenProperty(CodegenParameter parameter, CodegenProperty property)
Set CodegenParameter boolean flag using CodegenProperty.void
setParameterEncodingValues(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.void
setParameterExamples(CodegenParameter codegenParameter, io.swagger.v3.oas.models.parameters.Parameter parameter)
Return the examples of the parameter.void
setParameterExampleValue(CodegenParameter codegenParameter)
Return the example value of the parameter.void
setParameterExampleValue(CodegenParameter codegenParameter, io.swagger.v3.oas.models.parameters.Parameter parameter)
Return the example value of the parameter.void
setParameterExampleValue(CodegenParameter codegenParameter, io.swagger.v3.oas.models.parameters.RequestBody requestBody)
Return the example value of the parameter.protected void
setParameterNullable(CodegenParameter parameter, CodegenProperty property)
void
setPrependFormOrBodyParameters(Boolean prependFormOrBodyParameters)
void
setReleaseNote(String releaseNote)
Set release note.void
setRemoveEnumValuePrefix(boolean removeEnumValuePrefix)
Set the boolean value indicating whether to remove enum value prefixesvoid
setRemoveOperationIdPrefix(boolean removeOperationIdPrefix)
void
setRemoveOperationIdPrefixCount(int removeOperationIdPrefixCount)
void
setRemoveOperationIdPrefixDelimiter(String removeOperationIdPrefixDelimiter)
protected void
setReservedWordsLowerCase(List<String> words)
void
setSkipOperationExample(boolean skipOperationExample)
void
setSkipOverwrite(boolean skipOverwrite)
void
setSortModelPropertiesByRequiredFlag(Boolean sortModelPropertiesByRequiredFlag)
void
setSortParamsByRequiredFlag(Boolean sortParamsByRequiredFlag)
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.void
setTemplateDir(String templateDir)
void
setTemplatingEngine(TemplatingEngineAdapter templatingEngine)
void
setUseOneOfInterfaces(Boolean useOneOfInterfaces)
void
setVersionMetadataFilename(String versionMetadataFilename)
protected boolean
shouldAddImport(String type)
boolean
shouldOverwrite(String filename)
Map<String,String>
supportedLibraries()
All library templates supported.List<SupportingFile>
supportingFiles()
String
templateDir()
String
testPackage()
String
toAllOfName(List<String> names, io.swagger.v3.oas.models.media.ComposedSchema composedSchema)
Return the name of the 'allOf' composed schema.String
toAnyOfName(List<String> names, io.swagger.v3.oas.models.media.ComposedSchema composedSchema)
Return the name of the anyOf schemaString
toApiDocFilename(String name)
Return the file name of the Api DocumentationString
toApiFilename(String name)
Return the file name of the Api TestString
toApiImport(String name)
Return the fully-qualified "Api" name for importString
toApiName(String name)
Output the API (class) name (capitalized) ending with the specified or default suffix Return DefaultApi if name is emptyString
toApiTestFilename(String name)
Return the file name of the Api TestString
toApiVarName(String name)
Return the variable name in the ApiString
toArrayModelParamName(String name)
Return the parameter name of array of modelString
toBooleanGetter(String name)
Output the Getter name for boolean property, e.g.String
toDefaultParameterValue(io.swagger.v3.oas.models.media.Schema<?> schema)
Return the default value of the parameterString
toDefaultParameterValue(CodegenProperty codegenProperty, io.swagger.v3.oas.models.media.Schema<?> schema)
Return the default value of the parameterString
toDefaultValue(io.swagger.v3.oas.models.media.Schema schema)
Return the default value of the propertyString
toDefaultValue(CodegenProperty codegenProperty, io.swagger.v3.oas.models.media.Schema schema)
Return the default value of the propertyString
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 JavascriptString
toEnumDefaultValue(String value, String datatype)
Return the enum default value in the language specified formatString
toEnumName(CodegenProperty property)
Return the Enum name (e.g.String
toEnumValue(String value, String datatype)
Return the enum value in the language specified format e.g.String
toEnumVarName(String value, String datatype)
Return the sanitized variable name for enumprotected List<Map<String,Object>>
toExamples(Map<String,Object> examples)
String
toExampleValue(io.swagger.v3.oas.models.media.Schema schema)
Return the example value of the propertyString
toGetter(String name)
Output the Getter name, e.g.String
toInstantiationType(io.swagger.v3.oas.models.media.Schema schema)
Return the instantiation type of the property, especially for map and arrayprotected String
toMediaTypeSchemaName(String contentType, String mediaTypeSchemaSuffix)
String
toModelDocFilename(String name)
Return the capitalized file name of the model documentationString
toModelFilename(String name)
Return the capitalized file name of the modelString
toModelImport(String name)
Return the fully-qualified "Model" name for importMap<String,String>
toModelImportMap(String name)
Returns the same content as [[toModelImport]] with key the fully-qualified Model name and value the initial input.String
toModelName(String name)
Converts the OpenAPI schema name to a model name suitable for the current code generator.String
toModelTestFilename(String name)
Return the capitalized file name of the model testString
toOneOfName(List<String> names, io.swagger.v3.oas.models.media.ComposedSchema composedSchema)
Return the name of the oneOf schema.String
toOperationId(String operationId)
Return the operation ID (method name)String
toParamName(String name)
Return the parameter name by removing invalid characters and proper escaping if it's a reserved word.String
toRegularExpression(String pattern)
Return the regular expression/JSON schema pattern (http://json-schema.org/latest/json-schema-validation.html#anchor33)String
toSetter(String name)
Output the Setter name, e.g.protected String
toTestCaseName(String specTestCaseName)
String
toVarName(String name)
Return the variable name by removing invalid characters and proper escaping if it's a reserved word.Map<String,String>
typeMapping()
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 definedio.swagger.v3.oas.models.media.Schema
unaliasSchema(io.swagger.v3.oas.models.media.Schema schema)
Map<String,ModelsMap>
updateAllModels(Map<String,ModelsMap> objs)
Loop through all models to update different flags (e.g.void
updateCodegenPropertyEnum(CodegenProperty var)
Update codegen property's enum by adding "enumVars" (with name and value)protected void
updateDataTypeWithEnumForArray(CodegenProperty property)
Update datatypeWithEnum for array containerprotected void
updateDataTypeWithEnumForMap(CodegenProperty property)
Update datatypeWithEnum for map containerprotected void
updateEnumVarsWithExtensions(List<Map<String,Object>> enumVars, Map<String,Object> vendorExtensions, String dataType)
protected void
updateModelForAnyType(CodegenModel m, io.swagger.v3.oas.models.media.Schema schema)
protected void
updateModelForComposedSchema(CodegenModel m, io.swagger.v3.oas.models.media.Schema schema, Map<String,io.swagger.v3.oas.models.media.Schema> allDefinitions)
protected void
updateModelForInteger(CodegenModel model, io.swagger.v3.oas.models.media.Schema schema)
protected void
updateModelForNumber(CodegenModel model, io.swagger.v3.oas.models.media.Schema schema)
protected void
updateModelForObject(CodegenModel m, io.swagger.v3.oas.models.media.Schema schema)
protected void
updateModelForString(CodegenModel model, io.swagger.v3.oas.models.media.Schema schema)
Sets the booleans that define the model's typeprotected void
updateOption(String key, String defaultValue)
protected void
updateParameterForString(CodegenParameter codegenParameter, io.swagger.v3.oas.models.media.Schema parameterSchema)
protected void
updatePropertyForAnyType(CodegenProperty property, io.swagger.v3.oas.models.media.Schema p)
protected void
updatePropertyForArray(CodegenProperty property, CodegenProperty innerProperty)
Update property for array(list) containerprotected void
updatePropertyForInteger(CodegenProperty property, io.swagger.v3.oas.models.media.Schema p)
protected void
updatePropertyForMap(CodegenProperty property, io.swagger.v3.oas.models.media.Schema p)
protected void
updatePropertyForMap(CodegenProperty property, CodegenProperty innerProperty)
Update property for map containerprotected void
updatePropertyForNumber(CodegenProperty property, io.swagger.v3.oas.models.media.Schema p)
protected void
updatePropertyForObject(CodegenProperty property, io.swagger.v3.oas.models.media.Schema p)
protected void
updatePropertyForString(CodegenProperty property, io.swagger.v3.oas.models.media.Schema p)
protected void
updateRequestBodyForArray(CodegenParameter codegenParameter, io.swagger.v3.oas.models.media.Schema schema, String name, Set<String> imports, String bodyParameterName)
protected void
updateRequestBodyForMap(CodegenParameter codegenParameter, io.swagger.v3.oas.models.media.Schema schema, String name, Set<String> imports, String bodyParameterName)
protected void
updateRequestBodyForObject(CodegenParameter codegenParameter, io.swagger.v3.oas.models.media.Schema schema, String name, Set<String> imports, String bodyParameterName)
protected void
updateRequestBodyForPrimitiveType(CodegenParameter codegenParameter, io.swagger.v3.oas.models.media.Schema schema, String bodyParameterName, Set<String> imports)
protected void
updateRequestBodyForString(CodegenParameter codegenParameter, io.swagger.v3.oas.models.media.Schema schema, Set<String> imports, String bodyParameterName)
Map<String,Object>
vendorExtensions()
void
writePropertyBack(String propertyKey, Object value)
-
-
-
Field Detail
-
DefaultFeatureSet
public static 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 GeneratorMetadata generatorMetadata
-
inputSpec
protected String inputSpec
-
outputFolder
protected String outputFolder
-
modelPackage
protected String modelPackage
-
apiPackage
protected String apiPackage
-
fileSuffix
protected String fileSuffix
-
modelNamePrefix
protected String modelNamePrefix
-
modelNameSuffix
protected String modelNameSuffix
-
apiNamePrefix
protected String apiNamePrefix
-
apiNameSuffix
protected String apiNameSuffix
-
testPackage
protected String testPackage
-
filesMetadataFilename
protected String filesMetadataFilename
-
versionMetadataFilename
protected String versionMetadataFilename
-
templateDir
protected String templateDir
-
embeddedTemplateDir
protected String embeddedTemplateDir
-
supportingFiles
protected List<SupportingFile> supportingFiles
-
skipOverwrite
protected boolean skipOverwrite
-
removeOperationIdPrefix
protected boolean removeOperationIdPrefix
-
removeOperationIdPrefixDelimiter
protected String removeOperationIdPrefixDelimiter
-
removeOperationIdPrefixCount
protected int removeOperationIdPrefixCount
-
skipOperationExample
protected boolean skipOperationExample
-
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
-
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
-
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<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
-
-
Constructor Detail
-
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 Detail
-
getAddSuffixToDuplicateOperationNicknames
public boolean getAddSuffixToDuplicateOperationNicknames()
- Specified by:
getAddSuffixToDuplicateOperationNicknames
in interfaceCodegenConfig
-
cliOptions
public List<CliOption> cliOptions()
- Specified by:
cliOptions
in interfaceCodegenConfig
-
processOpts
public void processOpts()
- Specified by:
processOpts
in interfaceCodegenConfig
-
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,ModelsMap> postProcessAllModels(Map<String,ModelsMap> objs)
- Specified by:
postProcessAllModels
in interfaceCodegenConfig
-
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,CodegenModel> getAllModels(Map<String,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,ModelsMap> updateAllModels(Map<String,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 interfaceCodegenConfig
- Parameters:
objs
- Map of models- Returns:
- maps of models with various updates
-
removeImport
protected void removeImport(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 collectionimportToRemove
- the import statement to be removed
-
removeSelfReferenceImports
protected void removeSelfReferenceImports(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,CodegenModel> models)
-
postProcessModels
public ModelsMap postProcessModels(ModelsMap objs)
- Specified by:
postProcessModels
in interfaceCodegenConfig
-
postProcessModelsEnum
public ModelsMap postProcessModelsEnum(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 namedatatype
- data type- 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 namedatatype
- 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 namedatatype
- data type- Returns:
- the sanitized variable name for enum
-
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 interfaceCodegenConfig
- Parameters:
openAPI
- specification being generated
-
postProcess
public void postProcess()
- Specified by:
postProcess
in interfaceCodegenConfig
-
postProcessOperationsWithModels
public OperationsMap postProcessOperationsWithModels(OperationsMap objs, List<ModelMap> allModels)
- Specified by:
postProcessOperationsWithModels
in interfaceCodegenConfig
-
postProcessSupportingFileData
public Map<String,Object> postProcessSupportingFileData(Map<String,Object> objs)
- Specified by:
postProcessSupportingFileData
in interfaceCodegenConfig
-
postProcessModelProperty
public void postProcessModelProperty(CodegenModel model, CodegenProperty property)
- Specified by:
postProcessModelProperty
in interfaceCodegenConfig
-
postProcessParameter
public void postProcessParameter(CodegenParameter parameter)
- Specified by:
postProcessParameter
in interfaceCodegenConfig
-
preprocessOpenAPI
public void preprocessOpenAPI(io.swagger.v3.oas.models.OpenAPI openAPI)
- Specified by:
preprocessOpenAPI
in interfaceCodegenConfig
-
processOpenAPI
public void processOpenAPI(io.swagger.v3.oas.models.OpenAPI openAPI)
- Specified by:
processOpenAPI
in interfaceCodegenConfig
-
processCompiler
public com.samskivert.mustache.Mustache.Compiler processCompiler(com.samskivert.mustache.Mustache.Compiler compiler)
- Specified by:
processCompiler
in interfaceCodegenConfig
-
processTemplatingEngine
public TemplatingEngineAdapter processTemplatingEngine(TemplatingEngineAdapter templatingEngine)
- Specified by:
processTemplatingEngine
in interfaceCodegenConfig
-
escapeText
public String escapeText(String input)
- Specified by:
escapeText
in interfaceCodegenConfig
-
escapeTextWhileAllowingNewLines
public String escapeTextWhileAllowingNewLines(String input)
Escape characters while allowing new lines- Specified by:
escapeTextWhileAllowingNewLines
in interfaceCodegenConfig
- Parameters:
input
- String to be escaped- Returns:
- escaped string
-
encodePath
public String encodePath(String input)
- Specified by:
encodePath
in interfaceCodegenConfig
-
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 interfaceCodegenConfig
- 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 interfaceCodegenConfig
- Parameters:
input
- String to be cleaned up- Returns:
- string with quotation mark removed or escaped
-
defaultIncludes
public Set<String> defaultIncludes()
- Specified by:
defaultIncludes
in interfaceCodegenConfig
-
typeMapping
public Map<String,String> typeMapping()
- Specified by:
typeMapping
in interfaceCodegenConfig
-
instantiationTypes
public Map<String,String> instantiationTypes()
- Specified by:
instantiationTypes
in interfaceCodegenConfig
-
reservedWords
public Set<String> reservedWords()
- Specified by:
reservedWords
in interfaceCodegenConfig
-
languageSpecificPrimitives
public Set<String> languageSpecificPrimitives()
- Specified by:
languageSpecificPrimitives
in interfaceCodegenConfig
-
importMapping
public Map<String,String> importMapping()
- Specified by:
importMapping
in interfaceCodegenConfig
-
schemaMapping
public Map<String,String> schemaMapping()
- Specified by:
schemaMapping
in interfaceCodegenConfig
-
inlineSchemaNameMapping
public Map<String,String> inlineSchemaNameMapping()
- Specified by:
inlineSchemaNameMapping
in interfaceCodegenConfig
-
inlineSchemaNameDefault
public Map<String,String> inlineSchemaNameDefault()
- Specified by:
inlineSchemaNameDefault
in interfaceCodegenConfig
-
openapiNormalizer
public Map<String,String> openapiNormalizer()
- Specified by:
openapiNormalizer
in interfaceCodegenConfig
-
testPackage
public String testPackage()
- Specified by:
testPackage
in interfaceCodegenConfig
-
modelPackage
public String modelPackage()
- Specified by:
modelPackage
in interfaceCodegenConfig
-
apiPackage
public String apiPackage()
- Specified by:
apiPackage
in interfaceCodegenConfig
-
fileSuffix
public String fileSuffix()
- Specified by:
fileSuffix
in interfaceCodegenConfig
-
templateDir
public String templateDir()
- Specified by:
templateDir
in interfaceCodegenConfig
-
embeddedTemplateDir
public String embeddedTemplateDir()
- Specified by:
embeddedTemplateDir
in interfaceCodegenConfig
-
apiDocTemplateFiles
public Map<String,String> apiDocTemplateFiles()
- Specified by:
apiDocTemplateFiles
in interfaceCodegenConfig
-
modelDocTemplateFiles
public Map<String,String> modelDocTemplateFiles()
- Specified by:
modelDocTemplateFiles
in interfaceCodegenConfig
-
reservedWordsMappings
public Map<String,String> reservedWordsMappings()
- Specified by:
reservedWordsMappings
in interfaceCodegenConfig
-
apiTestTemplateFiles
public Map<String,String> apiTestTemplateFiles()
- Specified by:
apiTestTemplateFiles
in interfaceCodegenConfig
-
modelTestTemplateFiles
public Map<String,String> modelTestTemplateFiles()
- Specified by:
modelTestTemplateFiles
in interfaceCodegenConfig
-
apiTemplateFiles
public Map<String,String> apiTemplateFiles()
- Specified by:
apiTemplateFiles
in interfaceCodegenConfig
-
modelTemplateFiles
public Map<String,String> modelTemplateFiles()
- Specified by:
modelTemplateFiles
in interfaceCodegenConfig
-
apiFileFolder
public String apiFileFolder()
- Specified by:
apiFileFolder
in interfaceCodegenConfig
-
modelFileFolder
public String modelFileFolder()
- Specified by:
modelFileFolder
in interfaceCodegenConfig
-
apiTestFileFolder
public String apiTestFileFolder()
- Specified by:
apiTestFileFolder
in interfaceCodegenConfig
-
modelTestFileFolder
public String modelTestFileFolder()
- Specified by:
modelTestFileFolder
in interfaceCodegenConfig
-
apiDocFileFolder
public String apiDocFileFolder()
- Specified by:
apiDocFileFolder
in interfaceCodegenConfig
-
modelDocFileFolder
public String modelDocFileFolder()
- Specified by:
modelDocFileFolder
in interfaceCodegenConfig
-
additionalProperties
public Map<String,Object> additionalProperties()
- Specified by:
additionalProperties
in interfaceCodegenConfig
-
serverVariableOverrides
public Map<String,String> serverVariableOverrides()
- Specified by:
serverVariableOverrides
in interfaceCodegenConfig
-
vendorExtensions
public Map<String,Object> vendorExtensions()
- Specified by:
vendorExtensions
in interfaceCodegenConfig
-
supportingFiles
public List<SupportingFile> supportingFiles()
- Specified by:
supportingFiles
in interfaceCodegenConfig
-
outputFolder
public String outputFolder()
- Specified by:
outputFolder
in interfaceCodegenConfig
-
setOutputDir
public void setOutputDir(String dir)
- Specified by:
setOutputDir
in interfaceCodegenConfig
-
getOutputDir
public String getOutputDir()
- Specified by:
getOutputDir
in interfaceCodegenConfig
-
getInputSpec
public String getInputSpec()
- Specified by:
getInputSpec
in interfaceCodegenConfig
-
setInputSpec
public void setInputSpec(String inputSpec)
- Specified by:
setInputSpec
in interfaceCodegenConfig
-
getFilesMetadataFilename
public String getFilesMetadataFilename()
- Specified by:
getFilesMetadataFilename
in interfaceCodegenConfig
-
setFilesMetadataFilename
public void setFilesMetadataFilename(String filesMetadataFilename)
-
getVersionMetadataFilename
public String getVersionMetadataFilename()
- Specified by:
getVersionMetadataFilename
in interfaceCodegenConfig
-
setVersionMetadataFilename
public void setVersionMetadataFilename(String versionMetadataFilename)
-
setTemplateDir
public void setTemplateDir(String templateDir)
-
setModelPackage
public void setModelPackage(String modelPackage)
-
getModelNamePrefix
public String getModelNamePrefix()
-
setModelNamePrefix
public void setModelNamePrefix(String modelNamePrefix)
-
getModelNameSuffix
public String getModelNameSuffix()
-
setModelNameSuffix
public void setModelNameSuffix(String modelNameSuffix)
-
getApiNameSuffix
public String getApiNameSuffix()
-
setApiNameSuffix
public void setApiNameSuffix(String apiNameSuffix)
-
getApiNamePrefix
public String getApiNamePrefix()
-
setApiNamePrefix
public void setApiNamePrefix(String apiNamePrefix)
-
setApiPackage
public void setApiPackage(String apiPackage)
-
getSortParamsByRequiredFlag
public Boolean getSortParamsByRequiredFlag()
-
setSortParamsByRequiredFlag
public void setSortParamsByRequiredFlag(Boolean sortParamsByRequiredFlag)
-
getSortModelPropertiesByRequiredFlag
public Boolean getSortModelPropertiesByRequiredFlag()
-
setSortModelPropertiesByRequiredFlag
public void setSortModelPropertiesByRequiredFlag(Boolean sortModelPropertiesByRequiredFlag)
-
getPrependFormOrBodyParameters
public Boolean getPrependFormOrBodyParameters()
-
setPrependFormOrBodyParameters
public void setPrependFormOrBodyParameters(Boolean prependFormOrBodyParameters)
-
getEnsureUniqueParams
public Boolean getEnsureUniqueParams()
-
setEnsureUniqueParams
public void setEnsureUniqueParams(Boolean ensureUniqueParams)
-
getLegacyDiscriminatorBehavior
public Boolean getLegacyDiscriminatorBehavior()
-
setLegacyDiscriminatorBehavior
public void setLegacyDiscriminatorBehavior(boolean val)
-
getDisallowAdditionalPropertiesIfNotPresent
public Boolean getDisallowAdditionalPropertiesIfNotPresent()
-
setDisallowAdditionalPropertiesIfNotPresent
public void setDisallowAdditionalPropertiesIfNotPresent(boolean val)
-
getEnumUnknownDefaultCase
public Boolean getEnumUnknownDefaultCase()
-
setEnumUnknownDefaultCase
public void setEnumUnknownDefaultCase(boolean val)
-
getAllowUnicodeIdentifiers
public Boolean getAllowUnicodeIdentifiers()
-
setAllowUnicodeIdentifiers
public void setAllowUnicodeIdentifiers(Boolean allowUnicodeIdentifiers)
-
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 Test- Specified by:
toApiFilename
in interfaceCodegenConfig
- 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 interfaceCodegenConfig
- 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 interfaceCodegenConfig
- 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 interfaceCodegenConfig
- 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 interfaceCodegenConfig
- 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 interfaceCodegenConfig
- 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 interfaceCodegenConfig
- Parameters:
name
- the model name- Returns:
- the file name of the model
-
getGeneratorMetadata
public GeneratorMetadata getGeneratorMetadata()
Returns metadata about the generator.- Specified by:
getGeneratorMetadata
in interfaceCodegenConfig
- 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 interfaceCodegenConfig
- 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(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 interfaceCodegenConfig
- 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 interfaceCodegenConfig
- 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 interfaceCodegenConfig
- 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 interfaceCodegenConfig
- 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 interfaceCodegenConfig
- Parameters:
path
- the path of the operationoperation
- 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(CodegenParameter codegenParameter)
Return the example value of the parameter.- Parameters:
codegenParameter
- Codegen parameter
-
setParameterExampleValue
public void setParameterExampleValue(CodegenParameter codegenParameter, io.swagger.v3.oas.models.parameters.Parameter parameter)
Return the example value of the parameter.- Parameters:
codegenParameter
- Codegen parameterparameter
- Parameter
-
setParameterExamples
public void setParameterExamples(CodegenParameter codegenParameter, io.swagger.v3.oas.models.parameters.Parameter parameter)
Return the examples of the parameter.- Parameters:
codegenParameter
- Codegen parameterparameter
- Parameter
-
setParameterExampleValue
public void setParameterExampleValue(CodegenParameter codegenParameter, io.swagger.v3.oas.models.parameters.RequestBody requestBody)
Return the example value of the parameter.- Parameters:
codegenParameter
- Codegen parameterrequestBody
- Request body
-
setParameterEncodingValues
public void setParameterEncodingValues(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 parametermediaType
- MediaType from the request body
-
toExampleValue
public String toExampleValue(io.swagger.v3.oas.models.media.Schema schema)
Return the example value of the propertyThis 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 propertyThis 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 parameterReturn 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(CodegenProperty codegenProperty, io.swagger.v3.oas.models.media.Schema<?> schema)
Return the default value of the parameterReturn null if you do NOT want a default value. Any non-null value will cause {{#defaultValue} check to pass.
- Parameters:
codegenProperty
- Codegen Propertyschema
- 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 objectschema
- Property schema- Returns:
- string presentation of the default value of the property
-
toDefaultValue
public String toDefaultValue(CodegenProperty codegenProperty, io.swagger.v3.oas.models.media.Schema schema)
Return the default value of the propertyReturn null if you do NOT want a default value. Any non-null value will cause {{#defaultValue} check to pass.
- Parameters:
schema
- Property schemacodegenProperty
- 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
-
getSchemaItems
protected io.swagger.v3.oas.models.media.Schema<?> getSchemaItems(io.swagger.v3.oas.models.media.ArraySchema schema)
-
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.ComposedSchema composedSchema)
Return the name of the 'allOf' composed schema.- Parameters:
names
- List of namescomposedSchema
- composed schema- Returns:
- name of the allOf schema
-
toAnyOfName
public String toAnyOfName(List<String> names, io.swagger.v3.oas.models.media.ComposedSchema composedSchema)
Return the name of the anyOf schema- Parameters:
names
- List of namescomposedSchema
- composed schema- Returns:
- name of the anyOf schema
-
toOneOfName
public String toOneOfName(List<String> names, io.swagger.v3.oas.models.media.ComposedSchema 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 namescomposedSchema
- 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 interfaceCodegenConfig
-
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 interfaceCodegenConfig
- 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 interfaceCodegenConfig
- 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 interfaceCodegenConfig
- 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 interfaceCodegenConfig
- 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 interfaceCodegenConfig
- 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 interfaceCodegenConfig
- 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 interfaceCodegenConfig
- Parameters:
name
- the name of the model- Returns:
- capitalized model name
-
updateModelForComposedSchema
protected void updateModelForComposedSchema(CodegenModel m, io.swagger.v3.oas.models.media.Schema schema, Map<String,io.swagger.v3.oas.models.media.Schema> allDefinitions)
-
updateModelForObject
protected void updateModelForObject(CodegenModel m, io.swagger.v3.oas.models.media.Schema schema)
-
updateModelForAnyType
protected void updateModelForAnyType(CodegenModel m, io.swagger.v3.oas.models.media.Schema schema)
-
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(CodegenModel model, io.swagger.v3.oas.models.media.Schema schema)
Sets the booleans that define the model's type- Parameters:
model
- the model to updateschema
- the model's schema
-
updateModelForNumber
protected void updateModelForNumber(CodegenModel model, io.swagger.v3.oas.models.media.Schema schema)
-
updateModelForInteger
protected void updateModelForInteger(CodegenModel model, io.swagger.v3.oas.models.media.Schema schema)
-
fromModel
public CodegenModel fromModel(String name, io.swagger.v3.oas.models.media.Schema schema)
Convert OAS Model object to Codegen Model object.- Specified by:
fromModel
in interfaceCodegenConfig
- Parameters:
name
- the name of the modelschema
- OAS Model object- Returns:
- Codegen Model object
-
setAddProps
protected void setAddProps(io.swagger.v3.oas.models.media.Schema schema, IJsonSchemaValidationProperties property)
-
getOneOfAnyOfDescendants
protected List<CodegenDiscriminator.MappedModel> getOneOfAnyOfDescendants(String composedSchemaName, String discPropName, io.swagger.v3.oas.models.media.ComposedSchema c, io.swagger.v3.oas.models.OpenAPI openAPI)
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 mapdiscPropName
- The String that is the discriminator propertyName in the schemac
- The ComposedSchema that contains the discriminator and oneOf/anyOf schemasopenAPI
- The OpenAPI spec that we are using- Returns:
- the list of oneOf and anyOf MappedModel that need to be added to the discriminator map
-
getAllOfDescendants
protected List<CodegenDiscriminator.MappedModel> getAllOfDescendants(String thisSchemaName, io.swagger.v3.oas.models.OpenAPI openAPI)
-
createDiscriminator
protected CodegenDiscriminator createDiscriminator(String schemaName, io.swagger.v3.oas.models.media.Schema schema, io.swagger.v3.oas.models.OpenAPI openAPI)
-
addAdditionPropertiesToCodeGenModel
protected void addAdditionPropertiesToCodeGenModel(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 propertiesrequired
- required property onlyschema
- schema in which the properties will be added to the listsvisitedSchemas
- 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(CodegenProperty property, io.swagger.v3.oas.models.media.Schema p)
-
updatePropertyForObject
protected void updatePropertyForObject(CodegenProperty property, io.swagger.v3.oas.models.media.Schema p)
-
updatePropertyForAnyType
protected void updatePropertyForAnyType(CodegenProperty property, io.swagger.v3.oas.models.media.Schema p)
-
updatePropertyForString
protected void updatePropertyForString(CodegenProperty property, io.swagger.v3.oas.models.media.Schema p)
-
updatePropertyForNumber
protected void updatePropertyForNumber(CodegenProperty property, io.swagger.v3.oas.models.media.Schema p)
-
updatePropertyForInteger
protected void updatePropertyForInteger(CodegenProperty property, io.swagger.v3.oas.models.media.Schema p)
-
fromProperty
public 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 propertyp
- OAS property schemarequired
- true if the property is required in the next higher object schema, false otherwise- Returns:
- Codegen Property object
-
fromProperty
public 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 propertyp
- OAS property schema- Returns:
- Codegen Property object
-
fromProperty
public 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 propertyp
- OAS property schemarequired
- true if the property is required in the next higher object schema, false otherwiseschemaIsFromAdditionalProperties
- 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(CodegenProperty property, CodegenProperty innerProperty)
Update property for array(list) container- Parameters:
property
- Codegen propertyinnerProperty
- Codegen inner property of map or list
-
updatePropertyForMap
protected void updatePropertyForMap(CodegenProperty property, CodegenProperty innerProperty)
Update property for map container- Parameters:
property
- Codegen propertyinnerProperty
- Codegen inner property of map or list
-
isPropertyInnerMostEnum
protected Boolean isPropertyInnerMostEnum(CodegenProperty property)
Update property for map container- Parameters:
property
- Codegen property- Returns:
- True if the inner most type is enum
-
getMostInnerItems
protected CodegenProperty getMostInnerItems(CodegenProperty property)
-
getInnerEnumAllowableValues
protected Map<String,Object> getInnerEnumAllowableValues(CodegenProperty property)
-
updateDataTypeWithEnumForArray
protected void updateDataTypeWithEnumForArray(CodegenProperty property)
Update datatypeWithEnum for array container- Parameters:
property
- Codegen property
-
updateDataTypeWithEnumForMap
protected void updateDataTypeWithEnumForMap(CodegenProperty property)
Update datatypeWithEnum for map container- Parameters:
property
- Codegen property
-
setNonArrayMapProperty
protected void setNonArrayMapProperty(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, CodegenOperation op, io.swagger.v3.oas.models.responses.ApiResponse methodResponse)
Set op's returnBaseType, returnType, examples etc.- Parameters:
operation
- endpoint Operationschemas
- a map of the schemas in the openapi specop
- endpoint CodegenOperationmethodResponse
- 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, CodegenOperation op, io.swagger.v3.oas.models.responses.ApiResponse methodResponse, Map<String,String> schemaMappings)
Set op's returnBaseType, returnType, examples etc.- Parameters:
operation
- endpoint Operationschemas
- a map of the schemas in the openapi specop
- endpoint CodegenOperationmethodResponse
- the default ApiResponse for the endpointschemaMappings
- mappings of external types to be omitted by unaliasing
-
fromOperation
public 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 interfaceCodegenConfig
- Parameters:
httpMethod
- HTTP methodoperation
- OAS operation objectpath
- the path of the operationservers
- list of servers- Returns:
- Codegen Operation object
-
isParameterNameUnique
public boolean isParameterNameUnique(CodegenParameter p, List<CodegenParameter> parameters)
-
fromResponse
public CodegenResponse fromResponse(String responseCode, io.swagger.v3.oas.models.responses.ApiResponse response)
Convert OAS Response object to Codegen Response object- Parameters:
responseCode
- HTTP response coderesponse
- OAS Response object- Returns:
- Codegen Response object
-
fromCallback
public 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 namecallback
- OAS Callback objectservers
- list of servers- Returns:
- Codegen Response object
-
updateParameterForString
protected void updateParameterForString(CodegenParameter codegenParameter, io.swagger.v3.oas.models.media.Schema parameterSchema)
-
fromParameter
public 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 objectimports
- 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
- Parameterschema
- Schema- Returns:
- data type
-
isDataTypeBinary
public boolean isDataTypeBinary(String dataType)
-
isDataTypeFile
public boolean isDataTypeFile(String dataType)
-
fromSecurity
public List<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 interfaceCodegenConfig
- Parameters:
securitySchemeMap
- a map of OAS SecuritySchemeDefinition object- Returns:
- a list of Codegen Security objects
-
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 objectpath
- the path of the operationhttpMethod
- 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
-
addHeaders
protected void addHeaders(io.swagger.v3.oas.models.responses.ApiResponse response, List<CodegenProperty> properties)
Add headers to codegen property- Parameters:
response
- API responseproperties
- list of codegen property
-
addOperationToGroup
public void addOperationToGroup(String tag, String resourcePath, io.swagger.v3.oas.models.Operation operation, CodegenOperation co, Map<String,List<CodegenOperation>> operations)
Add operation to group- Specified by:
addOperationToGroup
in interfaceCodegenConfig
- Parameters:
tag
- name of the tagresourcePath
- path of the resourceoperation
- OAS Operation objectco
- Codegen Operation objectoperations
- map of Codegen operations
-
addParentContainer
protected void addParentContainer(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(CodegenModel m, IJsonSchemaValidationProperties type)
-
addImports
protected void addImports(Set<String> importsToBeAddedTo, IJsonSchemaValidationProperties type)
-
addImport
protected void addImport(CodegenModel m, String type)
-
addImport
protected void addImport(io.swagger.v3.oas.models.media.ComposedSchema composed, io.swagger.v3.oas.models.media.Schema childSchema, CodegenModel model, String modelName)
Add the model name of the child schema in a composed schema to the set of imports- Parameters:
composed
- composed schemachildSchema
- composed schemamodel
- codegen modelmodelName
- 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(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(IJsonSchemaValidationProperties m, List<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 propertiesproperties
- a map of properties (schema)mandatory
- a set of required properties' name
-
addImportsForPropertyType
protected void addImportsForPropertyType(CodegenModel model, 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 camelizenonNameElementPattern
- 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 interfaceCodegenConfig
-
modelFilename
public String modelFilename(String templateName, String modelName)
- Specified by:
modelFilename
in interfaceCodegenConfig
-
apiDocFilename
public String apiDocFilename(String templateName, String tag)
Return the full path and API documentation file- Specified by:
apiDocFilename
in interfaceCodegenConfig
- Parameters:
templateName
- template nametag
- 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 interfaceCodegenConfig
- Parameters:
templateName
- template nametag
- tag- Returns:
- the API test file name with full path
-
shouldOverwrite
public boolean shouldOverwrite(String filename)
- Specified by:
shouldOverwrite
in interfaceCodegenConfig
-
isSkipOverwrite
public boolean isSkipOverwrite()
- Specified by:
isSkipOverwrite
in interfaceCodegenConfig
-
setSkipOverwrite
public void setSkipOverwrite(boolean skipOverwrite)
- Specified by:
setSkipOverwrite
in interfaceCodegenConfig
-
isRemoveOperationIdPrefix
public boolean isRemoveOperationIdPrefix()
- Specified by:
isRemoveOperationIdPrefix
in interfaceCodegenConfig
-
isSkipOperationExample
public boolean isSkipOperationExample()
- Specified by:
isSkipOperationExample
in interfaceCodegenConfig
-
setRemoveOperationIdPrefix
public void setRemoveOperationIdPrefix(boolean removeOperationIdPrefix)
- Specified by:
setRemoveOperationIdPrefix
in interfaceCodegenConfig
-
getRemoveOperationIdPrefixDelimiter
public String getRemoveOperationIdPrefixDelimiter()
-
setRemoveOperationIdPrefixDelimiter
public void setRemoveOperationIdPrefixDelimiter(String removeOperationIdPrefixDelimiter)
-
getRemoveOperationIdPrefixCount
public int getRemoveOperationIdPrefixCount()
-
setRemoveOperationIdPrefixCount
public void setRemoveOperationIdPrefixCount(int removeOperationIdPrefixCount)
-
setSkipOperationExample
public void setSkipOperationExample(boolean skipOperationExample)
- Specified by:
setSkipOperationExample
in interfaceCodegenConfig
-
isHideGenerationTimestamp
public boolean isHideGenerationTimestamp()
- Specified by:
isHideGenerationTimestamp
in interfaceCodegenConfig
-
setHideGenerationTimestamp
public void setHideGenerationTimestamp(boolean hideGenerationTimestamp)
- Specified by:
setHideGenerationTimestamp
in interfaceCodegenConfig
-
supportedLibraries
public Map<String,String> supportedLibraries()
All library templates supported. (key: library name, value: library description)- Specified by:
supportedLibraries
in interfaceCodegenConfig
- Returns:
- the supported libraries
-
setLibrary
public void setLibrary(String library)
Set library template (sub-template).- Specified by:
setLibrary
in interfaceCodegenConfig
- Parameters:
library
- Library template
-
getLibrary
public String getLibrary()
Library template (sub-template).- Specified by:
getLibrary
in interfaceCodegenConfig
- 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 interfaceCodegenConfig
- Parameters:
gitHost
- Git host
-
getGitHost
public String getGitHost()
Git host.- Specified by:
getGitHost
in interfaceCodegenConfig
- Returns:
- Git host
-
setGitUserId
public void setGitUserId(String gitUserId)
Set Git user ID.- Specified by:
setGitUserId
in interfaceCodegenConfig
- Parameters:
gitUserId
- Git user ID
-
getGitUserId
public String getGitUserId()
Git user ID- Specified by:
getGitUserId
in interfaceCodegenConfig
- Returns:
- Git user ID
-
setGitRepoId
public void setGitRepoId(String gitRepoId)
Set Git repo ID.- Specified by:
setGitRepoId
in interfaceCodegenConfig
- Parameters:
gitRepoId
- Git repo ID
-
getGitRepoId
public String getGitRepoId()
Git repo ID- Specified by:
getGitRepoId
in interfaceCodegenConfig
- Returns:
- Git repo ID
-
setReleaseNote
public void setReleaseNote(String releaseNote)
Set release note.- Specified by:
setReleaseNote
in interfaceCodegenConfig
- Parameters:
releaseNote
- Release note
-
getReleaseNote
public String getReleaseNote()
Release note- Specified by:
getReleaseNote
in interfaceCodegenConfig
- Returns:
- Release note
-
getDocExtension
public String getDocExtension()
Documentation files extension- Specified by:
getDocExtension
in interfaceCodegenConfig
- Returns:
- Documentation files extension
-
setDocExtension
public void setDocExtension(String userDocExtension)
Set Documentation files extension- Specified by:
setDocExtension
in interfaceCodegenConfig
- Parameters:
userDocExtension
- documentation files extension
-
setHttpUserAgent
public void setHttpUserAgent(String httpUserAgent)
Set HTTP user agent.- Specified by:
setHttpUserAgent
in interfaceCodegenConfig
- Parameters:
httpUserAgent
- HTTP user agent
-
getHttpUserAgent
public String getHttpUserAgent()
HTTP user agent- Specified by:
getHttpUserAgent
in interfaceCodegenConfig
- Returns:
- HTTP user agent
-
buildLibraryCliOption
protected CliOption buildLibraryCliOption(Map<String,String> supportedLibraries)
-
sanitizeName
public String sanitizeName(String name)
Sanitize name (parameter, property, method, etc)- Specified by:
sanitizeName
in interfaceCodegenConfig
- Parameters:
name
- string to be sanitize- Returns:
- sanitized string
-
setTemplatingEngine
public void setTemplatingEngine(TemplatingEngineAdapter templatingEngine)
- Specified by:
setTemplatingEngine
in interfaceCodegenConfig
-
getTemplatingEngine
public TemplatingEngineAdapter getTemplatingEngine()
- Specified by:
getTemplatingEngine
in interfaceCodegenConfig
-
sanitizeName
public String sanitizeName(String name, String removeCharRegEx)
Sanitize name (parameter, property, method, etc)- Parameters:
name
- string to be sanitizeremoveCharRegEx
- 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 sanitizeremoveCharRegEx
- a regex containing all char that will be removedexceptionList
- 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 interfaceCodegenConfig
- Parameters:
tag
- Tag- Returns:
- Sanitized tag
-
setParameterBooleanFlagWithCodegenProperty
public void setParameterBooleanFlagWithCodegenProperty(CodegenParameter parameter, 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 Parameterproperty
- Codegen property
-
updateCodegenPropertyEnum
public void updateCodegenPropertyEnum(CodegenProperty var)
Update codegen property's enum by adding "enumVars" (with name and value)- Parameters:
var
- list of CodegenProperty
-
buildEnumVars
protected List<Map<String,Object>> buildEnumVars(List<Object> values, String dataType)
-
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
-
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 interfaceCodegenConfig
- 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 interfaceCodegenConfig
- Parameters:
ignoreFileOverride
- The full path to an ignore file
-
convertPropertyToBoolean
public boolean convertPropertyToBoolean(String propertyKey)
-
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.OpenAPI openAPI, io.swagger.v3.oas.models.Operation operation)
-
hasBodyParameter
public boolean hasBodyParameter(io.swagger.v3.oas.models.OpenAPI openAPI, 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 instanceoperation
- Operation- Returns:
- a set of MIME types
-
getCollectionFormat
protected String getCollectionFormat(io.swagger.v3.oas.models.parameters.Parameter parameter)
-
getTag
public CodegenType getTag()
- Specified by:
getTag
in interfaceCodegenConfig
-
getName
public String getName()
- Specified by:
getName
in interfaceCodegenConfig
-
getHelp
public String getHelp()
- Specified by:
getHelp
in interfaceCodegenConfig
-
fromRequestBodyToFormParameters
public List<CodegenParameter> fromRequestBodyToFormParameters(io.swagger.v3.oas.models.parameters.RequestBody body, Set<String> imports)
-
fromFormProperty
public CodegenParameter fromFormProperty(String name, io.swagger.v3.oas.models.media.Schema propertySchema, Set<String> imports)
-
addBodyModelSchema
protected void addBodyModelSchema(CodegenParameter codegenParameter, String name, io.swagger.v3.oas.models.media.Schema schema, Set<String> imports, String bodyParameterName, boolean forceSimpleRef)
-
updateRequestBodyForMap
protected void updateRequestBodyForMap(CodegenParameter codegenParameter, io.swagger.v3.oas.models.media.Schema schema, String name, Set<String> imports, String bodyParameterName)
-
updateRequestBodyForPrimitiveType
protected void updateRequestBodyForPrimitiveType(CodegenParameter codegenParameter, io.swagger.v3.oas.models.media.Schema schema, String bodyParameterName, Set<String> imports)
-
updateRequestBodyForObject
protected void updateRequestBodyForObject(CodegenParameter codegenParameter, io.swagger.v3.oas.models.media.Schema schema, String name, Set<String> imports, String bodyParameterName)
-
updateRequestBodyForArray
protected void updateRequestBodyForArray(CodegenParameter codegenParameter, io.swagger.v3.oas.models.media.Schema schema, String name, Set<String> imports, String bodyParameterName)
-
updateRequestBodyForString
protected void updateRequestBodyForString(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,CodegenMediaType> getContent(io.swagger.v3.oas.models.media.Content content, Set<String> imports, String mediaTypeSchemaSuffix)
-
fromRequestBody
public 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, IJsonSchemaValidationProperties property)
-
addVarsRequiredVarsAdditionalProps
protected void addVarsRequiredVarsAdditionalProps(io.swagger.v3.oas.models.media.Schema schema, 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, Map<String,String> enumValues)
-
removeOption
protected void removeOption(String key)
-
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<CodegenServer> fromServers(List<io.swagger.v3.oas.models.servers.Server> servers)
- Specified by:
fromServers
in interfaceCodegenConfig
-
fromServerVariables
public List<CodegenServerVariable> fromServerVariables(Map<String,io.swagger.v3.oas.models.servers.ServerVariable> variables)
- Specified by:
fromServerVariables
in interfaceCodegenConfig
-
setParameterNullable
protected void setParameterNullable(CodegenParameter parameter, 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-mustache", "supporting-common", "openapi-generator-ignore", "openapi-generator-version"TODO: store these values in enum instead
- Specified by:
postProcessFile
in interfaceCodegenConfig
- Parameters:
file
- file to be processedfileType
- file type
-
isEnablePostProcessFile
public boolean isEnablePostProcessFile()
Boolean value indicating the state of the option for post-processing file using environment variables.- Specified by:
isEnablePostProcessFile
in interfaceCodegenConfig
- 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 interfaceCodegenConfig
- 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 interfaceCodegenConfig
-
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 interfaceCodegenConfig
- 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 interfaceCodegenConfig
- 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 interfaceCodegenConfig
- 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 FeatureSet getFeatureSet()
- Specified by:
getFeatureSet
in interfaceCodegenConfig
-
isRemoveEnumValuePrefix
public boolean isRemoveEnumValuePrefix()
Get the boolean value indicating whether to remove enum value prefixes- Specified by:
isRemoveEnumValuePrefix
in interfaceCodegenConfig
-
setRemoveEnumValuePrefix
public void setRemoveEnumValuePrefix(boolean removeEnumValuePrefix)
Set the boolean value indicating whether to remove enum value prefixes- Specified by:
setRemoveEnumValuePrefix
in interfaceCodegenConfig
- Parameters:
removeEnumValuePrefix
- true to enable enum value prefix removal
-
addOneOfNameExtension
public void addOneOfNameExtension(io.swagger.v3.oas.models.media.ComposedSchema s, String name)
Add "x-one-of-name" extension to a given oneOf schema (assuming it has at least 1 oneOf elements)- Parameters:
s
- schema to add the extension toname
- name of the parent oneOf schema
-
addOneOfInterfaceModel
public void addOneOfInterfaceModel(io.swagger.v3.oas.models.media.ComposedSchema cs, String type, io.swagger.v3.oas.models.OpenAPI openAPI)
Add a given ComposedSchema as an interface model to be generated, assuming it has `oneOf` defined- Parameters:
cs
- ComposedSchema object to create as interface modeltype
- name to use for the generated interface modelopenAPI
- OpenAPI spec that we are using
-
addImportsToOneOfInterface
public void addImportsToOneOfInterface(List<Map<String,String>> imports)
-
modifyFeatureSet
protected void modifyFeatureSet(Consumer<FeatureSet.Builder> processor)
-
isAnyTypeSchema
public boolean isAnyTypeSchema(io.swagger.v3.oas.models.media.Schema schema)
This method has been kept to keep the introduction of ModelUtils.isAnyType as a non-breaking change this way, existing forks of our generator can continue to use this method TODO in 6.0.0 replace this method with ModelUtils.isAnyType Return true if the schema value can be any type, i.e. it can be the null value, integer, number, string, object or array. One use case is when the "type" attribute in the OAS schema is unspecified. Examples: arbitraryTypeValue: description: This is an arbitrary type schema. It is not a free-form object. The value can be any type except the 'null' value. arbitraryTypeNullableValue: description: This is an arbitrary type schema. It is not a free-form object. The value can be any type, including the 'null' value. nullable: true- Parameters:
schema
- the OAS schema.- Returns:
- true if the schema value can be an arbitrary type.
-
isFreeFormObject
protected boolean isFreeFormObject(io.swagger.v3.oas.models.media.Schema schema)
Check to see if the schema is a free form object. A free form object is an object (i.e. 'type: object' in a OAS document) that: 1) Does not define properties, and 2) Is not a composed schema (no anyOf, oneOf, allOf), and 3) additionalproperties is not defined, or additionalproperties: true, or additionalproperties: {}. Examples: components: schemas: arbitraryObject: type: object description: This is a free-form object. The value must be a map of strings to values. The value cannot be 'null'. It cannot be array, string, integer, number. arbitraryNullableObject: type: object description: This is a free-form object. The value must be a map of strings to values. The value can be 'null', It cannot be array, string, integer, number. nullable: true arbitraryTypeValue: description: This is NOT a free-form object. The value can be any type except the 'null' value.- Parameters:
schema
- potentially containing a '$ref'- Returns:
- true if it's a free-form object
-
getAdditionalProperties
protected io.swagger.v3.oas.models.media.Schema getAdditionalProperties(io.swagger.v3.oas.models.media.Schema schema)
Returns the additionalProperties Schema for the specified input schema.The additionalProperties keyword is used to control the handling of additional, undeclared properties, that is, properties whose names are not listed in the properties keyword. The additionalProperties keyword may be either a boolean or an object. If additionalProperties is a boolean and set to false, no additional properties are allowed. By default when the additionalProperties keyword is not specified in the input schema, any additional properties are allowed. This is equivalent to setting additionalProperties to the boolean value True or setting additionalProperties: {}
- Parameters:
schema
- the input schema that may or may not have the additionalProperties keyword.- Returns:
- the Schema of the additionalProperties. The null value is returned if no additional properties are allowed.
-
isJsonMimeType
protected 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
-
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(CodegenParameter codegenParameter)
Builds OAPI 2.0 collectionFormat value based on style and explode values for theCodegenParameter
.- Parameters:
codegenParameter
- parameter- Returns:
- string for a collectionFormat.
-
defaultTemplatingEngine
public String defaultTemplatingEngine()
- Specified by:
defaultTemplatingEngine
in interfaceCodegenConfig
-
generatorLanguage
public GeneratorLanguage generatorLanguage()
- Specified by:
generatorLanguage
in interfaceCodegenConfig
-
generatorLanguageVersion
public String generatorLanguageVersion()
- Specified by:
generatorLanguageVersion
in interfaceCodegenConfig
-
getSupportedVendorExtensions
public List<VendorExtension> getSupportedVendorExtensions()
- Specified by:
getSupportedVendorExtensions
in interfaceCodegenConfig
-
getUseInlineModelResolver
public boolean getUseInlineModelResolver()
- Specified by:
getUseInlineModelResolver
in interfaceCodegenConfig
-
getUseOpenAPINormalizer
public boolean getUseOpenAPINormalizer()
- Specified by:
getUseOpenAPINormalizer
in interfaceCodegenConfig
-
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
-
-