public class KtormSchemaCodegen extends AbstractKotlinCodegen
| Modifier and Type | Class and Description |
|---|---|
protected static class |
KtormSchemaCodegen.SqlType |
AbstractKotlinCodegen.SERIALIZATION_LIBRARY_TYPE| Modifier and Type | Field and Description |
|---|---|
static String |
ADD_SURROGATE_KEY |
protected boolean |
addSurrogateKey |
protected String |
columnNamePrefix |
protected String |
columnNameSuffix |
protected String |
databaseNamePrefix |
protected String |
databaseNameSuffix |
static String |
DEFAULT_DATABASE_NAME |
protected String |
defaultDatabaseName |
static Integer |
IDENTIFIER_MAX_LENGTH |
static String |
IDENTIFIER_NAMING_CONVENTION |
protected String |
identifierNamingConvention |
static String |
IMPORT_MODEL_PACKAGE_NAME |
protected String |
importModelPackageName |
static String |
PRIMARY_KEY_CONVENTION |
protected String |
primaryKeyConvention |
protected Map<String,String> |
sqlTypeMapping |
protected String |
tableNamePrefix |
protected String |
tableNameSuffix |
static String |
VENDOR_EXTENSION_SCHEMA |
apiDocPath, apiSuffix, artifactId, artifactVersion, enumPropertyNaming, groupId, MODEL_MUTABLE, MODEL_MUTABLE_DESC, modelDocPath, needsDataClassBody, nonPublicApi, packageName, parcelizeModels, propertyAdditionalKeywords, serializableModel, SERIALIZATION_LIBRARY_DESC, serializationLibrary, sourceFolder, testFolderadditionalProperties, addOneOfInterfaceImports, addOneOfInterfaces, allowUnicodeIdentifiers, apiDocTemplateFiles, apiNamePrefix, apiNameSuffix, apiPackage, apiTemplateFiles, apiTestTemplateFiles, cliOptions, DefaultFeatureSet, defaultIncludes, disallowAdditionalPropertiesIfNotPresent, docExtension, embeddedTemplateDir, enableMinimalUpdate, enablePostProcessFile, ensureUniqueParams, enumUnknownDefaultCase, enumUnknownDefaultCaseName, filesMetadataFilename, fileSuffix, generatorMetadata, gitHost, gitRepoId, gitUserId, hideGenerationTimestamp, httpUserAgent, ignoreFilePathOverride, importMapping, inputSpec, instantiationTypes, JSON_MIME_PATTERN, JSON_VENDOR_MIME_PATTERN, languageSpecificPrimitives, legacyDiscriminatorBehavior, library, modelDocTemplateFiles, modelNamePrefix, modelNameSuffix, modelPackage, modelTemplateFiles, modelTestTemplateFiles, openAPI, outputFolder, prependFormOrBodyParameters, releaseNote, removeEnumValuePrefix, removeOperationIdPrefix, removeOperationIdPrefixCount, removeOperationIdPrefixDelimiter, reservedWords, reservedWordsMappings, serverVariables, skipOperationExample, skipOverwrite, sortModelPropertiesByRequiredFlag, sortParamsByRequiredFlag, specialCharReplacements, strictSpecBehavior, supportedLibraries, supportingFiles, supportsAdditionalPropertiesWithComposedSchema, supportsInheritance, supportsMixins, supportsMultipleInheritance, templateDir, testPackage, typeAliases, typeMapping, useOneOfInterfaces, vendorExtensions, versionMetadataFilename| Constructor and Description |
|---|
KtormSchemaCodegen() |
| Modifier and Type | Method and Description |
|---|---|
String |
escapeQuotationMark(String input)
Escape single and/or double quote to avoid code injection
|
String |
escapeQuotedIdentifier(String identifier)
Escapes identifier to use it in SQL statements with backticks, eg.
|
String |
escapeReservedWord(String name)
Return the escaped name of the reserved word
|
String |
escapeUnsafeCharacters(String input)
override with any special text escaping logic to handle unsafe
characters so as to avoid code injection
|
boolean |
getAddSurrogateKey()
Returns primary key naming convention
|
String |
getDefaultDatabaseName()
Returns default database name for all queries
This value must be used with backticks only, eg.
|
String |
getHelp() |
String |
getIdentifierNamingConvention()
Returns identifier naming convention for table names and column names.
|
String |
getImportModelPackageName()
Returns imported package name for the models
|
String |
getName() |
String |
getPrimaryKeyConvention()
Returns primary key naming convention
|
CodegenType |
getTag() |
void |
postProcessModelProperty(CodegenModel model,
CodegenProperty property)
Processes each model's property mapped
|
Map<String,Object> |
postProcessModels(Map<String,Object> objs) |
void |
processBooleanTypeProperty(CodegenModel model,
CodegenProperty property,
String description,
org.openapitools.codegen.languages.KtormSchemaCodegen.KtormSchema ktormSchema)
Processes each model's property mapped to boolean type and adds related vendor extensions
|
void |
processDateTypeProperty(CodegenModel model,
CodegenProperty property,
String description,
org.openapitools.codegen.languages.KtormSchemaCodegen.KtormSchema ktormSchema)
Processes each model's property mapped to date type and adds related vendor extensions
|
boolean |
processForeignKey(CodegenModel model,
CodegenProperty property,
Map<String,Object> relationDefinition)
Processes each model's property that relates to another model
|
void |
processIntegerTypeProperty(CodegenModel model,
CodegenProperty property,
String description,
org.openapitools.codegen.languages.KtormSchemaCodegen.KtormSchema ktormSchema)
Processes each model's property mapped to integer type and adds related vendor extensions
|
void |
processJsonTypeProperty(CodegenModel model,
CodegenProperty property,
String description,
org.openapitools.codegen.languages.KtormSchemaCodegen.KtormSchema ktormSchema)
Processes each model's property mapped to JSON type and adds related vendor extensions
|
void |
processNullAndDefault(CodegenModel model,
CodegenProperty property,
String description,
Map<String,Object> columnDefinition)
Processes each model's property null/default definitions
|
void |
processOpts() |
void |
processRealTypeProperty(CodegenModel model,
CodegenProperty property,
String description,
org.openapitools.codegen.languages.KtormSchemaCodegen.KtormSchema ktormSchema)
Processes each model's property mapped to some real type and adds related vendor extensions
|
void |
processStringTypeProperty(CodegenModel model,
CodegenProperty property,
String description,
org.openapitools.codegen.languages.KtormSchemaCodegen.KtormSchema ktormSchema)
Processes each model's property mapped to string type and adds related vendor extensions
|
void |
processTypeArgs(String dataType,
String dataFormat,
Object min,
Object max,
Map<String,Object> columnDefinition)
Processes each model's property type arguments definitions
|
void |
processUnknownTypeProperty(CodegenModel model,
CodegenProperty property,
String description,
org.openapitools.codegen.languages.KtormSchemaCodegen.KtormSchema ktormSchema)
Processes each model's property not mapped to any type and adds related
vendor extensions Most of time it's related to referenced properties eg.
|
void |
setAddSurrogateKey(boolean enable)
Sets primary key naming convention
|
void |
setDefaultDatabaseName(String databaseName)
Sets default database name for all queries
Provided value will be escaped when necessary
|
void |
setIdentifierNamingConvention(String naming)
Sets identifier naming convention for table names and column names.
|
void |
setImportModelPackageName(String name)
Sets imported package name for the models
|
void |
setPrimaryKeyConvention(String name)
Sets primary key naming convention
|
String |
toColumnName(String name)
Converts name to valid column name
Produced name must be used with backticks only, eg.
|
String |
toDatabaseName(String name)
Converts name to valid database name
Produced name must be used with backticks only, eg.
|
String |
toIdentifier(String name,
String prefix,
String suffix)
Converts name to valid identifier which can be used as database, table, column name
Produced name must be used quoted only, eg.
|
String |
toSrcPath(String packageName)
Slightly modified version of AbstractPhpCodegen.toSrcPath method.
|
String |
toTableName(String name)
Converts name to valid column name
Produced name must be used with backticks only, eg.
|
apiDocFileFolder, apiFileFolder, apiTestFileFolder, fromModel, getEnumPropertyNaming, getParcelizeModels, getSchemaType, getSerializationLibrary, getTypeDeclaration, isDataTypeString, isNeedsDataClassBody, isReservedWord, isSerializableModel, modelDocFileFolder, modelFileFolder, needToImport, nonPublicApi, postProcessFile, setApiSuffix, setArtifactId, setArtifactVersion, setEnumPropertyNaming, setGroupId, setNeedsDataClassBody, setNonPublicApi, setPackageName, setParcelizeModels, setSerializableModel, setSerializationLibrary, setSourceFolder, setTestFolder, toApiName, toDefaultValue, toEnumName, toEnumValue, toEnumVarName, toModelFilename, toModelImport, toModelName, toOperationId, toParamName, toRegularExpression, toVariableName, toVarNameaddAdditionPropertiesToCodeGenModel, addBodyModelSchema, addHeaders, addImport, addImportsForPropertyType, addImportsToOneOfInterface, additionalProperties, addMustacheLambdas, addOneOfInterfaceModel, addOneOfNameExtension, addOperationToGroup, addOption, addParentContainer, addProperties, addRegularExpressionDelimiter, addSwitch, addVars, apiDocFilename, apiDocTemplateFiles, apiFilename, apiPackage, apiTemplateFiles, apiTestFilename, apiTestTemplateFiles, buildEnumVars, buildLibraryCliOption, cliOptions, convertPropertyToBoolean, convertPropertyToBooleanAndWriteBack, createDiscriminator, defaultIncludes, embeddedTemplateDir, encodePath, escapeText, escapeTextWhileAllowingNewLines, fileSuffix, findCommonPrefixOfVars, findMethodResponse, fromCallback, fromFormProperty, fromOperation, fromParameter, fromProperty, fromRequestBody, fromRequestBodyToFormParameters, fromResponse, fromSecurity, fromServers, fromServerVariables, generateExamplePath, generateJSONSpecFile, generateYAMLSpecFile, getAdditionalProperties, getAlias, getAllModels, getAllOfDescendants, getAllowUnicodeIdentifiers, getApiNamePrefix, getApiNameSuffix, getCollectionFormat, getCollectionFormat, getConsumesInfo, getContent, getContentType, getDisallowAdditionalPropertiesIfNotPresent, getDocExtension, getEnsureUniqueParams, getEnumDefaultValue, getEnumUnknownDefaultCase, getFeatureSet, getFilesMetadataFilename, getGeneratorMetadata, getGitHost, getGitRepoId, getGitUserId, getHttpUserAgent, getIgnoreFilePathOverride, getInnerEnumAllowableValues, getInputSpec, getLegacyDiscriminatorBehavior, getLibrary, getModelNamePrefix, getModelNameSuffix, getModelNameToSchemaCache, getMostInnerItems, getOneOfAnyOfDescendants, getOrGenerateOperationId, getOutputDir, getParameterDataType, getPrependFormOrBodyParameters, getProducesInfo, getReleaseNote, getRemoveOperationIdPrefixCount, getRemoveOperationIdPrefixDelimiter, getSchemaAdditionalProperties, getSchemaItems, getSingleSchemaType, getSortModelPropertiesByRequiredFlag, getSortParamsByRequiredFlag, getSymbolName, getTemplatingEngine, getterAndSetterCapitalize, getTypeDeclaration, getUseOneOfInterfaces, getVersionMetadataFilename, handleMethodResponse, handleMethodResponse, hasBodyParameter, hasFormParameter, importMapping, initializeSpecialCharacterMapping, instantiationTypes, isAnyTypeSchema, isDataTypeBinary, isDataTypeFile, isEnableMinimalUpdate, isEnablePostProcessFile, isFreeFormObject, isHideGenerationTimestamp, isJsonMimeType, isJsonVendorMimeType, isLibrary, isParameterNameUnique, isPropertyInnerMostEnum, isRemoveEnumValuePrefix, isRemoveOperationIdPrefix, isSkipOperationExample, isSkipOverwrite, isStrictSpecBehavior, languageSpecificPrimitives, lowerCamelCase, modelDocTemplateFiles, modelFilename, modelPackage, modelTemplateFiles, modelTestFileFolder, modelTestTemplateFiles, modifyFeatureSet, outputFolder, postProcess, postProcessAllModels, postProcessModelsEnum, postProcessOperationsWithModels, postProcessParameter, postProcessSupportingFileData, preprocessOpenAPI, processCompiler, processOpenAPI, processTemplatingEngine, removeNonNameElementToCamelCase, removeNonNameElementToCamelCase, removeOption, removeSelfReferenceImports, reservedWords, reservedWordsMappings, sanitizeName, sanitizeName, sanitizeName, sanitizeTag, serverVariableOverrides, setAddProps, setAllowUnicodeIdentifiers, setApiNamePrefix, setApiNameSuffix, setApiPackage, setCircularReferences, setDisallowAdditionalPropertiesIfNotPresent, setDocExtension, setEnableMinimalUpdate, setEnablePostProcessFile, setEnsureUniqueParams, setEnumUnknownDefaultCase, setFilesMetadataFilename, setGitHost, setGitRepoId, setGitUserId, setHideGenerationTimestamp, setHttpUserAgent, setIgnoreFilePathOverride, setInputSpec, setLegacyDiscriminatorBehavior, setLibrary, setModelNamePrefix, setModelNameSuffix, setModelPackage, setNonArrayMapProperty, setOpenAPI, setOutputDir, setParameterBooleanFlagWithCodegenProperty, setParameterContentType, setParameterExampleValue, setParameterExampleValue, setParameterExampleValue, setParameterNullable, setPrependFormOrBodyParameters, setReleaseNote, setRemoveEnumValuePrefix, setRemoveOperationIdPrefix, setRemoveOperationIdPrefixCount, setRemoveOperationIdPrefixDelimiter, setReservedWordsLowerCase, setSkipOperationExample, setSkipOverwrite, setSortModelPropertiesByRequiredFlag, setSortParamsByRequiredFlag, setStrictSpecBehavior, setTemplateDir, setTemplatingEngine, setUseOneOfInterfaces, setVersionMetadataFilename, shouldOverwrite, supportedLibraries, supportingFiles, templateDir, testPackage, toAllOfName, toAnyOfName, toApiDocFilename, toApiFilename, toApiImport, toApiTestFilename, toApiVarName, toArrayModelParamName, toBooleanGetter, toDefaultParameterValue, toDefaultValueWithParam, toEnumDefaultValue, toExamples, toExampleValue, toGetter, toInstantiationType, toMediaTypeSchemaName, toModelDocFilename, toModelImportMap, toModelTestFilename, toOneOfName, toSetter, typeMapping, unaliasPropertySchema, unaliasSchema, updateAllModels, updateCodegenPropertyEnum, updateDataTypeWithEnumForArray, updateDataTypeWithEnumForMap, updateEnumVarsWithExtensions, updateModelForAnyType, updateModelForComposedSchema, updateModelForObject, updateOption, updateParameterForString, updatePropertyForAnyType, updatePropertyForArray, updatePropertyForMap, updatePropertyForMap, updatePropertyForObject, updatePropertyForString, updateRequestBodyForArray, updateRequestBodyForMap, updateRequestBodyForObject, updateRequestBodyForPrimitiveType, updateRequestBodyForString, vendorExtensions, writePropertyBackclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitadditionalProperties, addOperationToGroup, apiDocFilename, apiDocTemplateFiles, apiFilename, apiPackage, apiTemplateFiles, apiTestFilename, apiTestTemplateFiles, cliOptions, defaultIncludes, embeddedTemplateDir, encodePath, escapeText, escapeTextWhileAllowingNewLines, fileSuffix, fromOperation, fromSecurity, fromServers, fromServerVariables, generateExamplePath, getDocExtension, getFeatureSet, getFilesMetadataFilename, getGeneratorMetadata, getGitHost, getGitRepoId, getGitUserId, getHttpUserAgent, getIgnoreFilePathOverride, getInputSpec, getLibrary, getOutputDir, getReleaseNote, getTemplatingEngine, getTypeDeclaration, getVersionMetadataFilename, importMapping, instantiationTypes, isEnableMinimalUpdate, isEnablePostProcessFile, isHideGenerationTimestamp, isRemoveEnumValuePrefix, isRemoveOperationIdPrefix, isSkipOperationExample, isSkipOverwrite, isStrictSpecBehavior, languageSpecificPrimitives, modelDocTemplateFiles, modelFilename, modelPackage, modelTemplateFiles, modelTestFileFolder, modelTestTemplateFiles, outputFolder, postProcess, postProcessAllModels, postProcessOperationsWithModels, postProcessParameter, postProcessSupportingFileData, preprocessOpenAPI, processCompiler, processOpenAPI, processTemplatingEngine, reservedWords, reservedWordsMappings, sanitizeName, sanitizeTag, serverVariableOverrides, setDocExtension, setEnableMinimalUpdate, setEnablePostProcessFile, setGitHost, setGitRepoId, setGitUserId, setHideGenerationTimestamp, setHttpUserAgent, setIgnoreFilePathOverride, setInputSpec, setLibrary, setOpenAPI, setOutputDir, setReleaseNote, setRemoveEnumValuePrefix, setRemoveOperationIdPrefix, setSkipOperationExample, setSkipOverwrite, setStrictSpecBehavior, setTemplatingEngine, shouldOverwrite, supportedLibraries, supportingFiles, templateDir, testPackage, toApiDocFilename, toApiFilename, toApiImport, toApiTestFilename, toApiVarName, toBooleanGetter, toGetter, toModelDocFilename, toModelImportMap, toModelTestFilename, toSetter, typeMapping, unaliasSchema, updateAllModels, vendorExtensionspublic static final String VENDOR_EXTENSION_SCHEMA
public static final String DEFAULT_DATABASE_NAME
public static final String IMPORT_MODEL_PACKAGE_NAME
public static final String IDENTIFIER_NAMING_CONVENTION
public static final String PRIMARY_KEY_CONVENTION
public static final String ADD_SURROGATE_KEY
public static final Integer IDENTIFIER_MAX_LENGTH
protected String importModelPackageName
protected String defaultDatabaseName
protected String databaseNamePrefix
protected String databaseNameSuffix
protected String tableNamePrefix
protected String tableNameSuffix
protected String columnNamePrefix
protected String columnNameSuffix
protected String identifierNamingConvention
protected String primaryKeyConvention
protected boolean addSurrogateKey
public CodegenType getTag()
getTag in interface CodegenConfiggetTag in class DefaultCodegenpublic String getName()
getName in interface CodegenConfiggetName in class DefaultCodegenpublic String getHelp()
getHelp in interface CodegenConfiggetHelp in class DefaultCodegenpublic void processOpts()
processOpts in interface CodegenConfigprocessOpts in class AbstractKotlinCodegenpublic Map<String,Object> postProcessModels(Map<String,Object> objs)
postProcessModels in interface CodegenConfigpostProcessModels in class AbstractKotlinCodegenpublic void postProcessModelProperty(CodegenModel model, CodegenProperty property)
postProcessModelProperty in interface CodegenConfigpostProcessModelProperty in class DefaultCodegenmodel - codegen modelproperty - model's propertypublic void processIntegerTypeProperty(CodegenModel model, CodegenProperty property, String description, org.openapitools.codegen.languages.KtormSchemaCodegen.KtormSchema ktormSchema)
model - codegen modelproperty - model's propertydescription - property custom descriptionktormSchema - schemapublic void processRealTypeProperty(CodegenModel model, CodegenProperty property, String description, org.openapitools.codegen.languages.KtormSchemaCodegen.KtormSchema ktormSchema)
model - codegen modelproperty - model's propertydescription - property custom descriptionktormSchema - schemapublic void processBooleanTypeProperty(CodegenModel model, CodegenProperty property, String description, org.openapitools.codegen.languages.KtormSchemaCodegen.KtormSchema ktormSchema)
model - codegen modelproperty - model's propertydescription - property custom descriptionktormSchema - schemapublic void processStringTypeProperty(CodegenModel model, CodegenProperty property, String description, org.openapitools.codegen.languages.KtormSchemaCodegen.KtormSchema ktormSchema)
model - codegen modelproperty - model's propertydescription - property custom descriptionktormSchema - schemapublic void processDateTypeProperty(CodegenModel model, CodegenProperty property, String description, org.openapitools.codegen.languages.KtormSchemaCodegen.KtormSchema ktormSchema)
model - codegen modelproperty - model's propertydescription - property custom descriptionktormSchema - schemapublic void processJsonTypeProperty(CodegenModel model, CodegenProperty property, String description, org.openapitools.codegen.languages.KtormSchemaCodegen.KtormSchema ktormSchema)
model - codegen modelproperty - model's propertydescription - property custom descriptionktormSchema - schemapublic void processUnknownTypeProperty(CodegenModel model, CodegenProperty property, String description, org.openapitools.codegen.languages.KtormSchemaCodegen.KtormSchema ktormSchema)
model - codegen modelproperty - model's propertydescription - property custom descriptionktormSchema - schemapublic void processTypeArgs(String dataType, String dataFormat, Object min, Object max, Map<String,Object> columnDefinition)
dataType - the chosen sql typedataFormat - the chosen sql formatmin - the minimum value, if specified, in the target typemax - the maximum value, if specified, in the target typecolumnDefinition - resulting column definition dictionarypublic void processNullAndDefault(CodegenModel model, CodegenProperty property, String description, Map<String,Object> columnDefinition)
model - model's nameproperty - model's propertydescription - property's customized descriptioncolumnDefinition - resulting column definition dictionarypublic boolean processForeignKey(CodegenModel model, CodegenProperty property, Map<String,Object> relationDefinition)
model - model's nameproperty - model's propertyrelationDefinition - resulting relation definition dictionarypublic String toDatabaseName(String name)
name - source namepublic String toTableName(String name)
name - source namepublic String toColumnName(String name)
name - source namepublic String toIdentifier(String name, String prefix, String suffix)
name - source nameprefix - when escaped name is digits only, prefix will be prependedsuffix - when escaped name is digits only, suffix will be appendedpublic String escapeQuotedIdentifier(String identifier)
identifier - source identifierpublic String escapeReservedWord(String name)
DefaultCodegenescapeReservedWord in interface CodegenConfigescapeReservedWord in class AbstractKotlinCodegenname - the name to be escapedthrows Runtime exception as reserved word is not allowed (default behavior)
public String escapeQuotationMark(String input)
DefaultCodegenescapeQuotationMark in interface CodegenConfigescapeQuotationMark in class AbstractKotlinCodegeninput - String to be cleaned uppublic String escapeUnsafeCharacters(String input)
DefaultCodegenescapeUnsafeCharacters in interface CodegenConfigescapeUnsafeCharacters in class AbstractKotlinCodegeninput - String to be cleaned uppublic void setDefaultDatabaseName(String databaseName)
databaseName - source namepublic String getDefaultDatabaseName()
public void setImportModelPackageName(String name)
name - namepublic String getImportModelPackageName()
public void setIdentifierNamingConvention(String naming)
naming - identifier naming convention (original|snake_case)public String getIdentifierNamingConvention()
public void setPrimaryKeyConvention(String name)
name - namepublic String getPrimaryKeyConvention()
public void setAddSurrogateKey(boolean enable)
enable - enable this optionpublic boolean getAddSurrogateKey()
Copyright © 2021. All rights reserved.