Class MysqlSchemaCodegen
- java.lang.Object
-
- org.openapitools.codegen.DefaultCodegen
-
- org.openapitools.codegen.languages.MysqlSchemaCodegen
-
- All Implemented Interfaces:
CodegenConfig
public class MysqlSchemaCodegen extends DefaultCodegen implements CodegenConfig
-
-
Field Summary
Fields Modifier and Type Field Description protected String
columnNamePrefix
protected String
columnNameSuffix
protected String
databaseNamePrefix
protected String
databaseNameSuffix
static String
DEFAULT_DATABASE_NAME
protected String
defaultDatabaseName
static Integer
ENUM_MAX_ELEMENTS
static Integer
IDENTIFIER_MAX_LENGTH
static String
IDENTIFIER_NAMING_CONVENTION
protected String
identifierNamingConvention
static String
JSON_DATA_TYPE_ENABLED
protected Boolean
jsonDataTypeEnabled
protected Vector<String>
mysqlDateAndTimeTypes
protected Vector<String>
mysqlNumericTypes
protected Vector<String>
mysqlSpatialTypes
protected Vector<String>
mysqlStringTypes
static String
NAMED_PARAMETERS_ENABLED
protected Boolean
namedParametersEnabled
protected String
tableNamePrefix
protected String
tableNameSuffix
static String
VENDOR_EXTENSION_MYSQL_SCHEMA
-
Fields inherited from class org.openapitools.codegen.DefaultCodegen
additionalProperties, addOneOfInterfaceImports, addOneOfInterfaces, addSuffixToDuplicateOperationNicknames, allowUnicodeIdentifiers, apiDocTemplateFiles, apiNamePrefix, apiNameSuffix, apiPackage, apiTemplateFiles, apiTestTemplateFiles, cliOptions, DefaultFeatureSet, defaultIncludes, disallowAdditionalPropertiesIfNotPresent, docExtension, embeddedTemplateDir, enableMinimalUpdate, enablePostProcessFile, ensureUniqueParams, enumUnknownDefaultCase, enumUnknownDefaultCaseName, falseSchema, filesMetadataFilename, fileSuffix, generatorMetadata, gitHost, gitRepoId, gitUserId, hideGenerationTimestamp, httpUserAgent, ignoreFilePathOverride, importBaseType, importContainerType, importMapping, inlineSchemaNameDefault, inlineSchemaNameMapping, inputSpec, instantiationTypes, JSON_MIME_PATTERN, JSON_VENDOR_MIME_PATTERN, languageSpecificPrimitives, legacyDiscriminatorBehavior, library, loadDeepObjectIntoItems, modelDocTemplateFiles, modelNamePrefix, modelNameSuffix, modelPackage, modelTemplateFiles, modelTestTemplateFiles, openAPI, openapiNormalizer, outputFolder, prependFormOrBodyParameters, releaseNote, removeEnumValuePrefix, removeOperationIdPrefix, removeOperationIdPrefixCount, removeOperationIdPrefixDelimiter, reservedWords, reservedWordsMappings, schemaMapping, serverVariables, skipOperationExample, skipOverwrite, sortModelPropertiesByRequiredFlag, sortParamsByRequiredFlag, specialCharReplacements, strictSpecBehavior, supportedLibraries, supportingFiles, supportsAdditionalPropertiesWithComposedSchema, supportsInheritance, supportsMixins, supportsMultipleInheritance, templateDir, testPackage, trueSchema, typeAliases, typeMapping, useOneOfInterfaces, vendorExtensions, versionMetadataFilename
-
-
Constructor Summary
Constructors Constructor Description MysqlSchemaCodegen()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
escapeMysqlQuotedIdentifier(String identifier)
Escapes MySQL identifier to use it in SQL statements with backticks, eg.String
escapeMysqlUnquotedIdentifier(String identifier)
Escapes MySQL identifier to use it in SQL statements without backticks, eg.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
escapeUnsafeCharacters(String input)
override with any special text escaping logic to handle unsafe characters so as to avoid code injectionGeneratorLanguage
generatorLanguage()
String
getDefaultDatabaseName()
Returns default database name for all MySQL queries This value must be used with backticks only, eg.String
getHelp()
String
getIdentifierNamingConvention()
Returns identifier naming convention for table names and column names.Boolean
getJsonDataTypeEnabled()
Whether JSON data type enabled or disabled in all MySQL queriesString
getMysqlMatchedIntegerDataType(Long minimum, Long maximum, Boolean unsigned)
Finds best fitted MySQL data type for integer variable based on minimum and maximum propertiesString
getMysqlMatchedStringDataType(Integer minLength, Integer maxLength)
Finds best fitted MySQL data type for string variable based on minLength and maxLength propertiesString
getName()
Boolean
getNamedParametersEnabled()
Whether named parameters enabled or disabled in prepared SQLsCodegenType
getTag()
Boolean
isMysqlDataType(String dataType)
Checks whether string is one of MySQL Data Types Ref: https://dev.mysql.com/doc/refman/8.0/en/data-type-overview.htmlvoid
postProcessModelProperty(CodegenModel model, CodegenProperty property)
ModelsMap
postProcessModels(ModelsMap objs)
void
processBooleanTypeProperty(CodegenModel model, CodegenProperty property)
Processes each model's property mapped to boolean type and adds related vendor extensionsvoid
processDateTypeProperty(CodegenModel model, CodegenProperty property)
Processes each model's property mapped to date type and adds related vendor extensionsvoid
processDecimalTypeProperty(CodegenModel model, CodegenProperty property)
Processes each model's property mapped to decimal type and adds related vendor extensionsvoid
processIntegerTypeProperty(CodegenModel model, CodegenProperty property)
Processes each model's property mapped to integer type and adds related vendor extensionsvoid
processJsonTypeProperty(CodegenModel model, CodegenProperty property)
Processes each model's property mapped to JSON type and adds related vendor extensionsvoid
processOpts()
void
processStringTypeProperty(CodegenModel model, CodegenProperty property)
Processes each model's property mapped to string type and adds related vendor extensionsvoid
processUnknownTypeProperty(CodegenModel model, CodegenProperty property)
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
setDefaultDatabaseName(String databaseName)
Sets default database name for all MySQL queries Provided value will be escaped when necessaryvoid
setIdentifierNamingConvention(String naming)
Sets identifier naming convention for table names and column names.void
setJsonDataTypeEnabled(Boolean enabled)
Enables special JSON data type in all MySQL queries JSON data type requires MySQL version 5.7.8void
setNamedParametersEnabled(Boolean enabled)
Enables named parameters in prepared SQLsHashMap<String,Object>
toCodegenMysqlDataTypeArgument(Object value)
Generates codegen property for MySQL data type argumentHashMap<String,Object>
toCodegenMysqlDataTypeDefault(String defaultValue, String mysqlDataType)
Generates default codegen property for MySQL column definition Ref: https://dev.mysql.com/doc/refman/5.7/en/data-type-defaults.htmlString
toColumnName(String name)
Converts name to valid MySQL column name Produced name must be used with backticks only, eg.String
toDatabaseName(String name)
Converts name to valid MySQL database name Produced name must be used with backticks only, eg.String
toMysqlIdentifier(String name, String prefix, String suffix)
Converts name to valid MySQL identifier which can be used as database, table, column name Produced name must be used with backticks only, eg.String
toSrcPath(String packageName)
Slightly modified version of AbstractPhpCodegen.toSrcPath method.String
toTableName(String name)
Converts name to valid MySQL column name Produced name must be used with backticks only, eg.-
Methods inherited from class org.openapitools.codegen.DefaultCodegen
addAdditionPropertiesToCodeGenModel, addBodyModelSchema, addHeaders, addImport, addImport, addImport, addImports, addImports, addImports, addImportsForPropertyType, addImportsToOneOfInterface, additionalProperties, addMustacheLambdas, addOneOfInterfaceModel, addOneOfNameExtension, addOperationToGroup, addOption, addOption, addParentContainer, addProperties, addRegularExpressionDelimiter, addRequiredVarsMap, addSwitch, addVars, addVars, addVarsRequiredVarsAdditionalProps, apiDocFileFolder, apiDocFilename, apiDocTemplateFiles, apiFileFolder, apiFilename, apiPackage, apiTemplateFiles, apiTestFileFolder, apiTestFilename, apiTestTemplateFiles, buildEnumVars, buildLibraryCliOption, cliOptions, convertPropertyToBoolean, convertPropertyToBooleanAndWriteBack, createDiscriminator, defaultIncludes, defaultTemplatingEngine, embeddedTemplateDir, encodePath, escapeText, escapeTextWhileAllowingNewLines, fileSuffix, findCommonPrefixOfVars, findMethodResponse, fromCallback, fromFormProperty, fromModel, fromOperation, fromParameter, fromProperty, fromProperty, fromProperty, fromRequestBody, fromRequestBodyToFormParameters, fromResponse, fromSecurity, fromServers, fromServerVariables, generateExamplePath, generateJSONSpecFile, generateYAMLSpecFile, generatorLanguageVersion, getAdditionalProperties, getAdditionalPropertiesName, getAddSuffixToDuplicateOperationNicknames, 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, getItemsName, getLegacyDiscriminatorBehavior, getLibrary, getModelNamePrefix, getModelNameSuffix, getModelNameToSchemaCache, getMostInnerItems, getOneOfAnyOfDescendants, getOrGenerateOperationId, getOutputDir, getParameterDataType, getPrependFormOrBodyParameters, getProducesInfo, getReleaseNote, getRemoveOperationIdPrefixCount, getRemoveOperationIdPrefixDelimiter, getSchemaAdditionalProperties, getSchemaFromBooleanOrSchema, getSchemaItems, getSchemaType, getSingleSchemaType, getSortModelPropertiesByRequiredFlag, getSortParamsByRequiredFlag, getSupportedVendorExtensions, getSymbolName, getTemplatingEngine, getterAndSetterCapitalize, getTypeDeclaration, getTypeDeclaration, getUseInlineModelResolver, getUseOneOfInterfaces, getUseOpenAPINormalizer, getVersionMetadataFilename, handleMethodResponse, handleMethodResponse, handleSpecialCharacters, hasBodyParameter, hasFormParameter, importMapping, initializeSpecialCharacterMapping, inlineSchemaNameDefault, inlineSchemaNameMapping, instantiationTypes, isAnyTypeSchema, isDataTypeBinary, isDataTypeFile, isDataTypeString, isEnableMinimalUpdate, isEnablePostProcessFile, isFreeFormObject, isHideGenerationTimestamp, isJsonMimeType, isJsonVendorMimeType, isLibrary, isParameterNameUnique, isPropertyInnerMostEnum, isRemoveEnumValuePrefix, isRemoveOperationIdPrefix, isReservedWord, isSkipOperationExample, isSkipOverwrite, isStrictSpecBehavior, languageSpecificPrimitives, lowerCamelCase, modelDocFileFolder, modelDocTemplateFiles, modelFileFolder, modelFilename, modelPackage, modelTemplateFiles, modelTestFileFolder, modelTestTemplateFiles, modifyFeatureSet, needToImport, openapiNormalizer, outputFolder, postProcess, postProcessAllModels, postProcessFile, postProcessModelsEnum, postProcessOperationsWithModels, postProcessParameter, postProcessSupportingFileData, preprocessOpenAPI, processCompiler, processOpenAPI, processTemplatingEngine, processTestExampleData, removeImport, removeNonNameElementToCamelCase, removeNonNameElementToCamelCase, removeOption, removeSelfReferenceImports, reservedWords, reservedWordsMappings, sanitizeName, sanitizeName, sanitizeName, sanitizeTag, schemaMapping, 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, setParameterEncodingValues, setParameterExamples, setParameterExampleValue, setParameterExampleValue, setParameterExampleValue, setParameterNullable, setPrependFormOrBodyParameters, setReleaseNote, setRemoveEnumValuePrefix, setRemoveOperationIdPrefix, setRemoveOperationIdPrefixCount, setRemoveOperationIdPrefixDelimiter, setReservedWordsLowerCase, setSkipOperationExample, setSkipOverwrite, setSortModelPropertiesByRequiredFlag, setSortParamsByRequiredFlag, setStrictSpecBehavior, setTemplateDir, setTemplatingEngine, setUseOneOfInterfaces, setVersionMetadataFilename, shouldAddImport, shouldOverwrite, supportedLibraries, supportingFiles, templateDir, testPackage, toAllOfName, toAnyOfName, toApiDocFilename, toApiFilename, toApiImport, toApiName, toApiTestFilename, toApiVarName, toArrayModelParamName, toBooleanGetter, toDefaultParameterValue, toDefaultParameterValue, toDefaultValue, toDefaultValue, toDefaultValueWithParam, toEnumDefaultValue, toEnumName, toEnumValue, toEnumVarName, toExamples, toExampleValue, toGetter, toInstantiationType, toMediaTypeSchemaName, toModelDocFilename, toModelFilename, toModelImport, toModelImportMap, toModelName, toModelTestFilename, toOneOfName, toOperationId, toParamName, toRegularExpression, toSetter, toTestCaseName, toVarName, 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, 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.CodegenConfig
additionalProperties, addOperationToGroup, apiDocFileFolder, apiDocFilename, apiDocTemplateFiles, apiFileFolder, apiFilename, apiPackage, apiTemplateFiles, apiTestFileFolder, apiTestFilename, apiTestTemplateFiles, cliOptions, defaultIncludes, defaultTemplatingEngine, embeddedTemplateDir, encodePath, escapeText, escapeTextWhileAllowingNewLines, fileSuffix, fromModel, fromOperation, fromSecurity, fromServers, fromServerVariables, generateExamplePath, generatorLanguageVersion, getAddSuffixToDuplicateOperationNicknames, getDocExtension, getFeatureSet, getFilesMetadataFilename, getGeneratorMetadata, getGitHost, getGitRepoId, getGitUserId, getHttpUserAgent, getIgnoreFilePathOverride, getInputSpec, getLibrary, getOutputDir, getReleaseNote, getSupportedVendorExtensions, getTemplatingEngine, getTypeDeclaration, getTypeDeclaration, getUseInlineModelResolver, getUseOpenAPINormalizer, getVersionMetadataFilename, importMapping, inlineSchemaNameDefault, inlineSchemaNameMapping, instantiationTypes, isEnableMinimalUpdate, isEnablePostProcessFile, isHideGenerationTimestamp, isRemoveEnumValuePrefix, isRemoveOperationIdPrefix, isSkipOperationExample, isSkipOverwrite, isStrictSpecBehavior, languageSpecificPrimitives, modelDocFileFolder, modelDocTemplateFiles, modelFileFolder, modelFilename, modelPackage, modelTemplateFiles, modelTestFileFolder, modelTestTemplateFiles, openapiNormalizer, outputFolder, postProcess, postProcessAllModels, postProcessFile, postProcessOperationsWithModels, postProcessParameter, postProcessSupportingFileData, preprocessOpenAPI, processCompiler, processOpenAPI, processTemplatingEngine, reservedWords, reservedWordsMappings, sanitizeName, sanitizeTag, schemaMapping, 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, toApiName, toApiTestFilename, toApiVarName, toBooleanGetter, toGetter, toModelDocFilename, toModelFilename, toModelImport, toModelImportMap, toModelName, toModelTestFilename, toParamName, toSetter, typeMapping, unaliasSchema, updateAllModels, vendorExtensions
-
-
-
-
Field Detail
-
VENDOR_EXTENSION_MYSQL_SCHEMA
public static final String VENDOR_EXTENSION_MYSQL_SCHEMA
- See Also:
- Constant Field Values
-
DEFAULT_DATABASE_NAME
public static final String DEFAULT_DATABASE_NAME
- See Also:
- Constant Field Values
-
JSON_DATA_TYPE_ENABLED
public static final String JSON_DATA_TYPE_ENABLED
- See Also:
- Constant Field Values
-
IDENTIFIER_NAMING_CONVENTION
public static final String IDENTIFIER_NAMING_CONVENTION
- See Also:
- Constant Field Values
-
NAMED_PARAMETERS_ENABLED
public static final String NAMED_PARAMETERS_ENABLED
- See Also:
- Constant Field Values
-
ENUM_MAX_ELEMENTS
public static final Integer ENUM_MAX_ELEMENTS
-
IDENTIFIER_MAX_LENGTH
public static final Integer IDENTIFIER_MAX_LENGTH
-
defaultDatabaseName
protected String defaultDatabaseName
-
databaseNamePrefix
protected String databaseNamePrefix
-
databaseNameSuffix
protected String databaseNameSuffix
-
tableNamePrefix
protected String tableNamePrefix
-
tableNameSuffix
protected String tableNameSuffix
-
columnNamePrefix
protected String columnNamePrefix
-
columnNameSuffix
protected String columnNameSuffix
-
jsonDataTypeEnabled
protected Boolean jsonDataTypeEnabled
-
namedParametersEnabled
protected Boolean namedParametersEnabled
-
identifierNamingConvention
protected String identifierNamingConvention
-
-
Method Detail
-
getTag
public CodegenType getTag()
- Specified by:
getTag
in interfaceCodegenConfig
- Overrides:
getTag
in classDefaultCodegen
-
getName
public String getName()
- Specified by:
getName
in interfaceCodegenConfig
- Overrides:
getName
in classDefaultCodegen
-
getHelp
public String getHelp()
- Specified by:
getHelp
in interfaceCodegenConfig
- Overrides:
getHelp
in classDefaultCodegen
-
processOpts
public void processOpts()
- Specified by:
processOpts
in interfaceCodegenConfig
- Overrides:
processOpts
in classDefaultCodegen
-
postProcessModels
public ModelsMap postProcessModels(ModelsMap objs)
- Specified by:
postProcessModels
in interfaceCodegenConfig
- Overrides:
postProcessModels
in classDefaultCodegen
-
postProcessModelProperty
public void postProcessModelProperty(CodegenModel model, CodegenProperty property)
- Specified by:
postProcessModelProperty
in interfaceCodegenConfig
- Overrides:
postProcessModelProperty
in classDefaultCodegen
-
processIntegerTypeProperty
public void processIntegerTypeProperty(CodegenModel model, CodegenProperty property)
Processes each model's property mapped to integer type and adds related vendor extensions- Parameters:
model
- modelproperty
- model's property
-
processDecimalTypeProperty
public void processDecimalTypeProperty(CodegenModel model, CodegenProperty property)
Processes each model's property mapped to decimal type and adds related vendor extensions- Parameters:
model
- modelproperty
- model's property
-
processBooleanTypeProperty
public void processBooleanTypeProperty(CodegenModel model, CodegenProperty property)
Processes each model's property mapped to boolean type and adds related vendor extensions- Parameters:
model
- modelproperty
- model's property
-
processStringTypeProperty
public void processStringTypeProperty(CodegenModel model, CodegenProperty property)
Processes each model's property mapped to string type and adds related vendor extensions- Parameters:
model
- modelproperty
- model's property
-
processDateTypeProperty
public void processDateTypeProperty(CodegenModel model, CodegenProperty property)
Processes each model's property mapped to date type and adds related vendor extensions- Parameters:
model
- modelproperty
- model's property
-
processJsonTypeProperty
public void processJsonTypeProperty(CodegenModel model, CodegenProperty property)
Processes each model's property mapped to JSON type and adds related vendor extensions- Parameters:
model
- modelproperty
- model's property
-
processUnknownTypeProperty
public void processUnknownTypeProperty(CodegenModel model, CodegenProperty property)
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. \Model\User- Parameters:
model
- modelproperty
- model's property
-
toCodegenMysqlDataTypeArgument
public HashMap<String,Object> toCodegenMysqlDataTypeArgument(Object value)
Generates codegen property for MySQL data type argument- Parameters:
value
- argument value- Returns:
- generated codegen property
-
toCodegenMysqlDataTypeDefault
public HashMap<String,Object> toCodegenMysqlDataTypeDefault(String defaultValue, String mysqlDataType)
Generates default codegen property for MySQL column definition Ref: https://dev.mysql.com/doc/refman/5.7/en/data-type-defaults.html- Parameters:
defaultValue
- valuemysqlDataType
- MySQL data type- Returns:
- generated codegen property
-
getMysqlMatchedIntegerDataType
public String getMysqlMatchedIntegerDataType(Long minimum, Long maximum, Boolean unsigned)
Finds best fitted MySQL data type for integer variable based on minimum and maximum properties- Parameters:
minimum
- (optional) codegen propertymaximum
- (optional) codegen propertyunsigned
- (optional) whether variable is unsigned or not- Returns:
- MySQL integer data type
-
getMysqlMatchedStringDataType
public String getMysqlMatchedStringDataType(Integer minLength, Integer maxLength)
Finds best fitted MySQL data type for string variable based on minLength and maxLength properties- Parameters:
minLength
- (optional) codegen propertymaxLength
- (optional) codegen property- Returns:
- MySQL string data type
-
isMysqlDataType
public Boolean isMysqlDataType(String dataType)
Checks whether string is one of MySQL Data Types Ref: https://dev.mysql.com/doc/refman/8.0/en/data-type-overview.html- Parameters:
dataType
- which needs to check- Returns:
- true if value is correct MySQL data type, otherwise false
-
toDatabaseName
public String toDatabaseName(String name)
Converts name to valid MySQL database name Produced name must be used with backticks only, eg. `database_name`- Parameters:
name
- source name- Returns:
- database name
-
toTableName
public String toTableName(String name)
Converts name to valid MySQL column name Produced name must be used with backticks only, eg. `table_name`- Parameters:
name
- source name- Returns:
- table name
-
toColumnName
public String toColumnName(String name)
Converts name to valid MySQL column name Produced name must be used with backticks only, eg. `column_name`- Parameters:
name
- source name- Returns:
- column name
-
toMysqlIdentifier
public String toMysqlIdentifier(String name, String prefix, String suffix)
Converts name to valid MySQL identifier which can be used as database, table, column name Produced name must be used with backticks only, eg. `column_name`- Parameters:
name
- source nameprefix
- when escaped name is digits only, prefix will be prependedsuffix
- when escaped name is digits only, suffix will be appended- Returns:
- identifier name
-
escapeMysqlUnquotedIdentifier
public String escapeMysqlUnquotedIdentifier(String identifier)
Escapes MySQL identifier to use it in SQL statements without backticks, eg. SELECT identifier FROM Ref: https://dev.mysql.com/doc/refman/8.0/en/identifiers.html- Parameters:
identifier
- source identifier- Returns:
- escaped identifier
-
escapeMysqlQuotedIdentifier
public String escapeMysqlQuotedIdentifier(String identifier)
Escapes MySQL identifier to use it in SQL statements with backticks, eg. SELECT `identifier` FROM Ref: https://dev.mysql.com/doc/refman/8.0/en/identifiers.html- Parameters:
identifier
- source identifier- Returns:
- escaped identifier
-
escapeReservedWord
public String escapeReservedWord(String name)
Description copied from class:DefaultCodegen
Return the escaped name of the reserved word- Specified by:
escapeReservedWord
in interfaceCodegenConfig
- Overrides:
escapeReservedWord
in classDefaultCodegen
- Parameters:
name
- the name to be escaped- Returns:
- the escaped reserved word
throws Runtime exception as reserved word is not allowed (default behavior)
-
escapeQuotationMark
public String escapeQuotationMark(String input)
Description copied from class:DefaultCodegen
Escape single and/or double quote to avoid code injection- Specified by:
escapeQuotationMark
in interfaceCodegenConfig
- Overrides:
escapeQuotationMark
in classDefaultCodegen
- Parameters:
input
- String to be cleaned up- Returns:
- string with quotation mark removed or escaped
-
escapeUnsafeCharacters
public String escapeUnsafeCharacters(String input)
Description copied from class:DefaultCodegen
override with any special text escaping logic to handle unsafe characters so as to avoid code injection- Specified by:
escapeUnsafeCharacters
in interfaceCodegenConfig
- Overrides:
escapeUnsafeCharacters
in classDefaultCodegen
- Parameters:
input
- String to be cleaned up- Returns:
- string with unsafe characters removed or escaped
-
setDefaultDatabaseName
public void setDefaultDatabaseName(String databaseName)
Sets default database name for all MySQL queries Provided value will be escaped when necessary- Parameters:
databaseName
- source name
-
getDefaultDatabaseName
public String getDefaultDatabaseName()
Returns default database name for all MySQL queries This value must be used with backticks only, eg. `database_name`- Returns:
- default database name
-
setJsonDataTypeEnabled
public void setJsonDataTypeEnabled(Boolean enabled)
Enables special JSON data type in all MySQL queries JSON data type requires MySQL version 5.7.8- Parameters:
enabled
- true to enable, otherwise false
-
getJsonDataTypeEnabled
public Boolean getJsonDataTypeEnabled()
Whether JSON data type enabled or disabled in all MySQL queries- Returns:
- true if enabled otherwise false
-
setNamedParametersEnabled
public void setNamedParametersEnabled(Boolean enabled)
Enables named parameters in prepared SQLs- Parameters:
enabled
- true to enable, otherwise false
-
getNamedParametersEnabled
public Boolean getNamedParametersEnabled()
Whether named parameters enabled or disabled in prepared SQLs- Returns:
- true if enabled otherwise false
-
setIdentifierNamingConvention
public void setIdentifierNamingConvention(String naming)
Sets identifier naming convention for table names and column names. This is not related to database name which is defined by defaultDatabaseName option.- Parameters:
naming
- identifier naming convention (original|snake_case)
-
getIdentifierNamingConvention
public String getIdentifierNamingConvention()
Returns identifier naming convention for table names and column names.- Returns:
- identifier naming convention
-
toSrcPath
public String toSrcPath(String packageName)
Slightly modified version of AbstractPhpCodegen.toSrcPath method.- Parameters:
packageName
- package name- Returns:
- path
-
generatorLanguage
public GeneratorLanguage generatorLanguage()
- Specified by:
generatorLanguage
in interfaceCodegenConfig
- Overrides:
generatorLanguage
in classDefaultCodegen
-
-