Class JavaHelidonCommonCodegen
- java.lang.Object
-
- org.openapitools.codegen.DefaultCodegen
-
- org.openapitools.codegen.languages.AbstractJavaCodegen
-
- org.openapitools.codegen.languages.JavaHelidonCommonCodegen
-
- All Implemented Interfaces:
CodegenConfig
,BeanValidationFeatures
,DocumentationProviderFeatures
,PerformBeanValidationFeatures
- Direct Known Subclasses:
JavaHelidonClientCodegen
,JavaHelidonServerCodegen
public abstract class JavaHelidonCommonCodegen extends AbstractJavaCodegen implements BeanValidationFeatures, PerformBeanValidationFeatures
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
JavaHelidonCommonCodegen.GenericTypeDeclaration
static class
JavaHelidonCommonCodegen.GenericTypeDeclarations
Captures information about the model types for which we need GenericType declarations.protected static class
JavaHelidonCommonCodegen.GroupBy
-
Nested classes/interfaces inherited from interface org.openapitools.codegen.languages.features.DocumentationProviderFeatures
DocumentationProviderFeatures.AnnotationLibrary, DocumentationProviderFeatures.DocumentationProvider
-
-
Field Summary
Fields Modifier and Type Field Description protected JavaHelidonCommonCodegen.GenericTypeDeclarations
genericTypeDeclarations
protected JavaHelidonCommonCodegen.GroupBy
groupBy
static String
HELIDON_VERSION
protected int
helidonMajorVersion
protected String
helidonVersion
protected Map<String,List<CodegenOperation>>
tagToOperations
protected boolean
useOptional
protected boolean
useReactive
-
Fields inherited from class org.openapitools.codegen.languages.AbstractJavaCodegen
ADDITIONAL_ENUM_TYPE_ANNOTATIONS, ADDITIONAL_MODEL_TYPE_ANNOTATIONS, ADDITIONAL_ONE_OF_TYPE_ANNOTATIONS, additionalEnumTypeAnnotations, additionalModelTypeAnnotations, additionalOneOfTypeAnnotations, annotationLibrary, apiDocPath, artifactDescription, artifactId, artifactUrl, artifactVersion, BOOLEAN_GETTER_PREFIX, booleanGetterPrefix, CAMEL_CASE_DOLLAR_SIGN, camelCaseDollarSign, CONTAINER_DEFAULT_TO_NULL, containerDefaultToNull, DATE_LIBRARY, dateLibrary, DEFAULT_LIBRARY, DEFAULT_TEST_FOLDER, developerEmail, developerName, developerOrganization, developerOrganizationUrl, DISABLE_HTML_ESCAPING, disableHtmlEscaping, DISCRIMINATOR_CASE_SENSITIVE, discriminatorCaseSensitive, documentationProvider, GENERATE_BUILDERS, GENERATE_CONSTRUCTOR_WITH_ALL_ARGS, generateBuilders, generateConstructorWithAllArgs, groupId, IGNORE_ANYOF_IN_ENUM, ignoreAnyOfInEnum, IMPLICIT_HEADERS, IMPLICIT_HEADERS_REGEX, implicitHeaders, implicitHeadersRegex, invokerPackage, jackson, JACKSON, JAVAX_PACKAGE, licenseName, licenseUrl, LOMBOK, lombokAnnotations, modelDocPath, OPENAPI_NULLABLE, openApiNullable, outputTestFolder, parentArtifactId, parentGroupId, parentOverridden, parentVersion, projectFolder, projectTestFolder, scmConnection, scmDeveloperConnection, scmUrl, serializableModel, serializeBigDecimalAsString, sourceFolder, SUPPORT_ASYNC, supportAsync, TEST_OUTPUT, testFolder, USE_JAKARTA_EE, USE_ONE_OF_INTERFACES, useBeanValidation, useJakartaEe, WITH_XML, withXml
-
Fields inherited from class org.openapitools.codegen.DefaultCodegen
additionalProperties, addOneOfInterfaceImports, addOneOfInterfaces, addSuffixToDuplicateOperationNicknames, allowUnicodeIdentifiers, apiDocTemplateFiles, apiNamePrefix, apiNameSuffix, apiPackage, apiTemplateFiles, apiTestTemplateFiles, autosetConstants, cliOptions, DefaultFeatureSet, defaultIncludes, disallowAdditionalPropertiesIfNotPresent, docExtension, embeddedTemplateDir, enableMinimalUpdate, enablePostProcessFile, ensureUniqueParams, enumNameMapping, enumUnknownDefaultCase, enumUnknownDefaultCaseName, falseSchema, filesMetadataFilename, fileSuffix, generatorMetadata, gitHost, gitRepoId, gitUserId, hideGenerationTimestamp, httpUserAgent, ignoreFilePathOverride, importBaseType, importContainerType, importMapping, inlineSchemaNameMapping, inlineSchemaOption, inputSpec, instantiationTypes, JSON_MIME_PATTERN, JSON_VENDOR_MIME_PATTERN, languageSpecificPrimitives, legacyDiscriminatorBehavior, library, loadDeepObjectIntoItems, modelDocTemplateFiles, modelNameMapping, modelNamePrefix, modelNameSuffix, modelPackage, modelTemplateFiles, modelTestTemplateFiles, nameMapping, openAPI, openapiGeneratorIgnoreList, openapiNormalizer, operationIdNameMapping, outputFolder, parameterNameMapping, prependFormOrBodyParameters, releaseNote, removeEnumValuePrefix, removeOperationIdPrefix, removeOperationIdPrefixCount, removeOperationIdPrefixDelimiter, reservedWords, reservedWordsMappings, schemaMapping, serverVariables, skipOperationExample, skipOverwrite, sortModelPropertiesByRequiredFlag, sortParamsByRequiredFlag, specialCharReplacements, strictSpecBehavior, supportedLibraries, supportingFiles, supportsAdditionalPropertiesWithComposedSchema, supportsInheritance, supportsMixins, supportsMultipleInheritance, templateDir, templateOutputDirs, testPackage, trueSchema, typeAliases, typeMapping, useOneOfInterfaces, vendorExtensions, versionMetadataFilename, XML_MIME_PATTERN
-
Fields inherited from interface org.openapitools.codegen.languages.features.BeanValidationFeatures
USE_BEANVALIDATION
-
Fields inherited from interface org.openapitools.codegen.languages.features.DocumentationProviderFeatures
ANNOTATION_LIBRARY, DOCUMENTATION_PROVIDER
-
Fields inherited from interface org.openapitools.codegen.languages.features.PerformBeanValidationFeatures
PERFORM_BEANVALIDATION
-
-
Constructor Summary
Constructors Constructor Description JavaHelidonCommonCodegen()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addOperationToGroup(String tag, String resourcePath, io.swagger.v3.oas.models.Operation operation, CodegenOperation co, Map<String,List<CodegenOperation>> operations)
Add operation to groupprotected String
apiFolder()
static String
chooseVersion(String requestedVersionPrefix)
static String
defaultHelidonVersion()
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 objectCodegenResponse
fromResponse(String responseCode, io.swagger.v3.oas.models.responses.ApiResponse response)
Convert OAS Response object to Codegen Response objectprotected String
modelFolder()
OperationsMap
postProcessOperationsWithModels(OperationsMap objs, List<ModelMap> allModels)
void
processOpts()
protected void
processSupportingFiles(List<SupportingFile> modifiable, List<SupportingFile> unmodifiable)
Determine whether to generate or overwrite files depending on fullProject property.protected boolean
projectFilesExist()
Check if project is already generated to determine default for the fullProject flag.protected void
removeCliOptions(String... opt)
protected void
removeUnusedOptions()
Remove set of options not currently used by any Helidon generator.protected String
rootJavaEEPackage()
protected String
statusDeclaration(String code)
-
Methods inherited from class org.openapitools.codegen.languages.AbstractJavaCodegen
addAdditionPropertiesToCodeGenModel, addImports, addImportsToOneOfInterface, apiDocFileFolder, apiFileFolder, apiTestFileFolder, applyJakartaPackage, applyJavaxPackage, escapeQuotationMark, escapeReservedWord, escapeUnsafeCharacters, findByName, fromModel, getAnnotationLibrary, getDocumentationProvider, getOutputTestFolder, getSchemaType, getSupportedVendorExtensions, getterAndSetterCapitalize, getTypeDeclaration, handleImplicitHeaders, isAddNullableImports, isConstructorWithAllArgsAllowed, isTypeErasedGenerics, modelDocFileFolder, modelFileFolder, modelTestFileFolder, needToImport, postProcessAllModels, postProcessFile, postProcessModelProperty, postProcessModels, postProcessResponseWithProperty, preprocessOpenAPI, sanitizeTag, setAnnotationLibrary, setDocumentationProvider, setOutputDir, setParameterExampleValue, setParameterExampleValue, setParameterExampleValue, toApiDocFilename, toApiFilename, toApiTestFilename, toArrayDefaultValue, toBooleanGetter, toDefaultParameterValue, toDefaultValue, toEnumName, toEnumValue, toEnumVarName, toExampleValue, toModelDocFilename, toModelFilename, toModelName, toModelTestFilename, toOperationId, toParamName, toRegularExpression, toVarName
-
Methods inherited from class org.openapitools.codegen.DefaultCodegen
addBodyModelSchema, addHeaders, addImport, addImport, addImport, addImports, addImports, addImports, addImportsForPropertyType, additionalProperties, addMustacheLambdas, addOneOfInterfaceModel, addOneOfNameExtension, addOption, addOption, addParentContainer, addParentFromContainer, addProperties, addRegularExpressionDelimiter, addRequiredVarsMap, addSwitch, addVars, addVars, addVarsRequiredVarsAdditionalProps, apiDocFilename, apiDocTemplateFiles, apiFilename, apiFilename, apiPackage, apiTemplateFiles, apiTestFilename, apiTestTemplateFiles, buildEnumVars, buildLibraryCliOption, cliOptions, convertPropertyToBoolean, convertPropertyToBooleanAndWriteBack, convertPropertyToBooleanAndWriteBack, convertPropertyToStringAndWriteBack, convertPropertyToTypeAndWriteBack, createDiscriminator, defaultIncludes, defaultTemplatingEngine, embeddedTemplateDir, encodePath, enumNameMapping, escapeText, escapeTextWhileAllowingNewLines, fileSuffix, findCommonPrefixOfVars, findMethodResponse, fromCallback, fromFormProperty, fromProperty, fromProperty, fromProperty, fromRequestBody, fromRequestBodyToFormParameters, fromSecurity, fromServers, fromServerVariables, generateExamplePath, generateJSONSpecFile, generateYAMLSpecFile, generatorLanguage, generatorLanguageVersion, getAdditionalPropertiesName, getAddSuffixToDuplicateOperationNicknames, getAlias, getAllModels, getAllOfDescendants, getCollectionFormat, getCollectionFormat, getConsumesInfo, getContent, getContentType, getDisallowAdditionalPropertiesIfNotPresent, getDocExtension, getEnumDefaultValue, getEnumUnknownDefaultCase, getFeatureSet, getFilesMetadataFilename, getGeneratorMetadata, getGitHost, getGitRepoId, getGitUserId, getHelp, getHttpUserAgent, getIgnoreFilePathOverride, getInnerEnumAllowableValues, getInputSpec, getItemsName, getLegacyDiscriminatorBehavior, getLibrary, getModelNameToSchemaCache, getMostInnerItems, getName, getOneOfAnyOfDescendants, getOpenapiGeneratorIgnoreList, getOrGenerateOperationId, getOutputDir, getParameterDataType, getProducesInfo, getReleaseNote, getSchemaAdditionalProperties, getSchemaFromBooleanOrSchema, getSingleSchemaType, getSymbolName, getTag, getTemplatingEngine, getTypeDeclaration, getUseInlineModelResolver, getUseOneOfInterfaces, getUseOpenapiNormalizer, getVersionMetadataFilename, handleConstantParams, handleMethodResponse, handleMethodResponse, handleSpecialCharacters, hasBodyParameter, hasFormParameter, importMapping, initializeSpecialCharacterMapping, inlineSchemaNameMapping, inlineSchemaOption, instantiationTypes, isDataTypeBinary, isDataTypeFile, isDataTypeString, isEnableMinimalUpdate, isEnablePostProcessFile, isHideGenerationTimestamp, isJsonMimeType, isJsonVendorMimeType, isLibrary, isParameterNameUnique, isPropertyInnerMostEnum, isRemoveEnumValuePrefix, isRemoveOperationIdPrefix, isReservedWord, isSkipOperationExample, isSkipOverwrite, isStrictSpecBehavior, isXmlMimeType, languageSpecificPrimitives, lowerCamelCase, modelDocTemplateFiles, modelFilename, modelFilename, modelNameMapping, modelPackage, modelTemplateFiles, modelTestTemplateFiles, modifyFeatureSet, nameMapping, openapiGeneratorIgnoreList, openapiNormalizer, operationIdNameMapping, outputFolder, parameterNameMapping, postProcess, postProcessEnumVars, postProcessModelsEnum, postProcessParameter, postProcessSupportingFileData, postProcessWebhooksWithModels, processCompiler, processOpenAPI, processTemplatingEngine, processTestExampleData, removeImport, removeNonNameElementToCamelCase, removeNonNameElementToCamelCase, removeOption, removeSelfReferenceImports, reservedWords, reservedWordsMappings, sanitizeName, sanitizeName, sanitizeName, schemaMapping, serverVariableOverrides, setAddProps, setCircularReferences, setDocExtension, setEnableMinimalUpdate, setEnablePostProcessFile, setGitHost, setGitRepoId, setGitUserId, setHideGenerationTimestamp, setHttpUserAgent, setIgnoreFilePathOverride, setInputSpec, setLibrary, setNonArrayMapProperty, setOpenAPI, setParameterBooleanFlagWithCodegenProperty, setParameterEncodingValues, setParameterExamples, setParameterNullable, setReleaseNote, setRemoveEnumValuePrefix, setRemoveOperationIdPrefix, setReservedWordsLowerCase, setSkipOperationExample, setSkipOverwrite, setStrictSpecBehavior, setTemplatingEngine, setUseOneOfInterfaces, shouldAddImport, shouldOverwrite, SortModelPropertiesByRequiredFlag, SortParametersByRequiredFlag, specVersionGreaterThanOrEqualTo310, supportedLibraries, supportingFiles, templateDir, templateOutputDirs, testPackage, toAllOfName, toAnyOfName, toApiImport, toApiName, toApiVarName, toArrayModelParamName, toDefaultParameterValue, toDefaultValue, toDefaultValueWithParam, toEnumDefaultValue, toEnumDefaultValue, toExamples, toGetter, toInstantiationType, toMediaTypeSchemaName, toModelImport, toModelImportMap, toOneOfName, toSetter, toTestCaseName, typeMapping, unaliasPropertySchema, unaliasSchema, updateAllModels, updateCodegenPropertyEnum, updateDataTypeWithEnumForArray, updateDataTypeWithEnumForMap, updateEnumVarsWithExtensions, updateModelForAnyType, updateModelForComposedSchema, updateModelForInteger, updateModelForNumber, updateModelForObject, updateModelForString, updateOption, updateParameterForString, updatePropertyForAnyType, updatePropertyForArray, updatePropertyForInteger, updatePropertyForMap, updatePropertyForMap, updatePropertyForNumber, updatePropertyForObject, updatePropertyForString, updateRequestBodyForArray, updateRequestBodyForMap, updateRequestBodyForObject, updateRequestBodyForPrimitiveType, updateRequestBodyForString, useCodegenAsMustacheParentContext, vendorExtensions, writePropertyBack
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.openapitools.codegen.languages.features.BeanValidationFeatures
setUseBeanValidation
-
Methods inherited from interface org.openapitools.codegen.CodegenConfig
additionalProperties, apiDocFilename, apiDocTemplateFiles, apiFilename, apiFilename, apiPackage, apiTemplateFiles, apiTestFilename, apiTestTemplateFiles, cliOptions, defaultIncludes, defaultTemplatingEngine, embeddedTemplateDir, encodePath, enumNameMapping, escapeText, escapeTextWhileAllowingNewLines, fileSuffix, fromSecurity, fromServers, fromServerVariables, generateExamplePath, generatorLanguage, generatorLanguageVersion, getAddSuffixToDuplicateOperationNicknames, getDocExtension, getFeatureSet, getFilesMetadataFilename, getGeneratorMetadata, getGitHost, getGitRepoId, getGitUserId, getHelp, getHttpUserAgent, getIgnoreFilePathOverride, getInputSpec, getLibrary, getName, getOpenapiGeneratorIgnoreList, getOutputDir, getReleaseNote, getTag, getTemplatingEngine, getTypeDeclaration, getUseInlineModelResolver, getUseOpenapiNormalizer, getVersionMetadataFilename, importMapping, inlineSchemaNameMapping, inlineSchemaOption, instantiationTypes, isEnableMinimalUpdate, isEnablePostProcessFile, isHideGenerationTimestamp, isRemoveEnumValuePrefix, isRemoveOperationIdPrefix, isSkipOperationExample, isSkipOverwrite, isStrictSpecBehavior, languageSpecificPrimitives, modelDocTemplateFiles, modelFilename, modelFilename, modelNameMapping, modelPackage, modelTemplateFiles, modelTestTemplateFiles, nameMapping, openapiGeneratorIgnoreList, openapiNormalizer, operationIdNameMapping, outputFolder, parameterNameMapping, postProcess, postProcessParameter, postProcessSupportingFileData, postProcessWebhooksWithModels, processCompiler, processOpenAPI, processTemplatingEngine, reservedWords, reservedWordsMappings, sanitizeName, schemaMapping, serverVariableOverrides, setDocExtension, setEnableMinimalUpdate, setEnablePostProcessFile, setGitHost, setGitRepoId, setGitUserId, setHideGenerationTimestamp, setHttpUserAgent, setIgnoreFilePathOverride, setInputSpec, setLibrary, setOpenAPI, setReleaseNote, setRemoveEnumValuePrefix, setRemoveOperationIdPrefix, setSkipOperationExample, setSkipOverwrite, setStrictSpecBehavior, setTemplatingEngine, shouldOverwrite, supportedLibraries, supportingFiles, templateDir, templateOutputDirs, testPackage, toApiImport, toApiName, toApiVarName, toGetter, toModelImport, toModelImportMap, toSetter, typeMapping, unaliasSchema, updateAllModels, vendorExtensions
-
Methods inherited from interface org.openapitools.codegen.languages.features.DocumentationProviderFeatures
defaultDocumentationProvider, supportedAnnotationLibraries, supportedDocumentationProvider
-
Methods inherited from interface org.openapitools.codegen.languages.features.PerformBeanValidationFeatures
setPerformBeanValidation
-
-
-
-
Field Detail
-
HELIDON_VERSION
public static final String HELIDON_VERSION
- See Also:
- Constant Field Values
-
helidonVersion
protected String helidonVersion
-
helidonMajorVersion
protected int helidonMajorVersion
-
useReactive
protected boolean useReactive
-
useOptional
protected boolean useOptional
-
genericTypeDeclarations
protected final JavaHelidonCommonCodegen.GenericTypeDeclarations genericTypeDeclarations
-
tagToOperations
protected Map<String,List<CodegenOperation>> tagToOperations
-
groupBy
protected JavaHelidonCommonCodegen.GroupBy groupBy
-
-
Method Detail
-
defaultHelidonVersion
public static String defaultHelidonVersion()
-
processOpts
public void processOpts()
- Specified by:
processOpts
in interfaceCodegenConfig
- Overrides:
processOpts
in classAbstractJavaCodegen
-
addOperationToGroup
public void addOperationToGroup(String tag, String resourcePath, io.swagger.v3.oas.models.Operation operation, CodegenOperation co, Map<String,List<CodegenOperation>> operations)
Description copied from class:DefaultCodegen
Add operation to group- Specified by:
addOperationToGroup
in interfaceCodegenConfig
- Overrides:
addOperationToGroup
in classDefaultCodegen
- Parameters:
tag
- name of the tagresourcePath
- path of the resourceoperation
- OAS Operation objectco
- Codegen Operation objectoperations
- map of Codegen operations
-
fromOperation
public CodegenOperation fromOperation(String path, String httpMethod, io.swagger.v3.oas.models.Operation operation, List<io.swagger.v3.oas.models.servers.Server> servers)
Description copied from class:DefaultCodegen
Convert OAS Operation object to Codegen Operation object- Specified by:
fromOperation
in interfaceCodegenConfig
- Overrides:
fromOperation
in classAbstractJavaCodegen
- Parameters:
path
- the path of the operationhttpMethod
- HTTP methodoperation
- OAS operation objectservers
- list of servers- Returns:
- Codegen Operation object
-
fromParameter
public CodegenParameter fromParameter(io.swagger.v3.oas.models.parameters.Parameter parameter, Set<String> imports)
Description copied from class:DefaultCodegen
Convert OAS Parameter object to Codegen Parameter object- Overrides:
fromParameter
in classDefaultCodegen
- Parameters:
parameter
- OAS parameter objectimports
- set of imports for library/package/module- Returns:
- Codegen Parameter object
-
fromResponse
public CodegenResponse fromResponse(String responseCode, io.swagger.v3.oas.models.responses.ApiResponse response)
Description copied from class:DefaultCodegen
Convert OAS Response object to Codegen Response object- Overrides:
fromResponse
in classDefaultCodegen
- Parameters:
responseCode
- HTTP response coderesponse
- OAS Response object- Returns:
- Codegen Response object
-
postProcessOperationsWithModels
public OperationsMap postProcessOperationsWithModels(OperationsMap objs, List<ModelMap> allModels)
- Specified by:
postProcessOperationsWithModels
in interfaceCodegenConfig
- Overrides:
postProcessOperationsWithModels
in classAbstractJavaCodegen
-
removeUnusedOptions
protected void removeUnusedOptions()
Remove set of options not currently used by any Helidon generator. Should be called during construction but only on leaf classes.
-
processSupportingFiles
protected void processSupportingFiles(List<SupportingFile> modifiable, List<SupportingFile> unmodifiable)
Determine whether to generate or overwrite files depending on fullProject property. If property is unspecified, then check if sources are already there and avoid overwriting modifiable files.- Parameters:
modifiable
- list of modifiable files to be processedunmodifiable
- list of unmodifiable files to be processed
-
projectFilesExist
protected boolean projectFilesExist()
Check if project is already generated to determine default for the fullProject flag. Can be overridden in subclasses to strengthen test condition.- Returns:
- outcome of test
-
rootJavaEEPackage
protected String rootJavaEEPackage()
-
removeCliOptions
protected void removeCliOptions(String... opt)
-
apiFolder
protected String apiFolder()
-
modelFolder
protected String modelFolder()
-
-