Package io.swagger.codegen.languages
Class AbstractCSharpCodegen
- java.lang.Object
-
- io.swagger.codegen.DefaultCodegen
-
- io.swagger.codegen.languages.AbstractCSharpCodegen
-
- All Implemented Interfaces:
CodegenConfig
- Direct Known Subclasses:
AspNetCoreServerCodegen
,CSharpClientCodegen
,CsharpDotNet2ClientCodegen
,NancyFXServerCodegen
public abstract class AbstractCSharpCodegen extends DefaultCodegen implements CodegenConfig
-
-
Field Summary
Fields Modifier and Type Field Description protected Set<String>
collectionTypes
protected String
interfacePrefix
protected org.slf4j.Logger
LOGGER
protected Set<String>
mapTypes
protected String
modelPropertyNaming
protected boolean
netCoreProjectFileFlag
protected boolean
optionalAssemblyInfoFlag
protected boolean
optionalEmitDefaultValue
protected boolean
optionalMethodArgumentFlag
protected boolean
optionalProjectFileFlag
protected String
packageAuthors
protected String
packageCompany
protected String
packageCopyright
protected String
packageDescription
protected String
packageName
protected String
packageProductName
protected String
packageTitle
protected String
packageVersion
protected boolean
preserveNewLines
protected boolean
returnICollection
protected String
sourceFolder
protected String
testFolder
protected boolean
useCollection
protected boolean
useDateTimeOffsetFlag
-
Fields inherited from class io.swagger.codegen.DefaultCodegen
additionalProperties, allowUnicodeIdentifiers, apiDocTemplateFiles, apiPackage, apiTemplateFiles, apiTestTemplateFiles, cliOptions, commonTemplateDir, defaultIncludes, embeddedTemplateDir, ensureUniqueParams, fileSuffix, gitRepoBaseURL, gitRepoId, gitUserId, hideGenerationTimestamp, httpUserAgent, ignoreFilePathOverride, ignoreImportMapping, importMapping, inputSpec, instantiationTypes, languageSpecificPrimitives, library, modelDocTemplateFiles, modelNamePrefix, modelNameSuffix, modelPackage, modelTemplateFiles, modelTestTemplateFiles, outputFolder, releaseNote, removeOperationIdPrefix, reservedWords, reservedWordsMappings, skipAliasGeneration, skipOverwrite, sortParamsByRequiredFlag, specialCharReplacements, supportedLibraries, supportingFiles, supportsInheritance, supportsMixins, templateDir, testPackage, typeAliases, typeMapping, vendorExtensions
-
-
Constructor Summary
Constructors Constructor Description AbstractCSharpCodegen()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
apiFileFolder()
String
apiTestFileFolder()
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 injectionCodegenModel
fromModel(String name, io.swagger.models.Model model, Map<String,io.swagger.models.Model> allDefinitions)
Convert Swagger Model object to Codegen Model objectString
getInterfacePrefix()
String
getSwaggerType(io.swagger.models.properties.Property p)
returns the swagger type for the propertyString
getTypeDeclaration(io.swagger.models.properties.Property p)
Output the type declaration of the propertyboolean
isPreserveNewLines()
protected boolean
isReservedWord(String word)
String
modelFileFolder()
String
modelTestFileFolder()
Map<String,Object>
postProcessAllModels(Map<String,Object> objs)
Invoked byDefaultGenerator
after all models have been post-processed, allowing for a last pass of codegen-specific model cleanup.void
postProcessModelProperty(CodegenModel model, CodegenProperty property)
Map<String,Object>
postProcessModels(Map<String,Object> objs)
Map<String,Object>
postProcessOperations(Map<String,Object> objs)
void
preprocessSwagger(io.swagger.models.Swagger swagger)
String
preserveNewlines(String input, int tabstops)
protected void
processOperation(CodegenOperation operation)
void
processOpts()
void
setInterfacePrefix(String interfacePrefix)
void
setNetCoreProjectFileFlag(boolean flag)
void
setOptionalEmitDefaultValue(boolean optionalEmitDefaultValue)
void
setOptionalMethodArgumentFlag(boolean flag)
void
setPackageAuthors(String packageAuthors)
void
setPackageCompany(String packageCompany)
void
setPackageCopyright(String packageCopyright)
void
setPackageDescription(String packageDescription)
void
setPackageName(String packageName)
void
setPackageProductName(String packageProductName)
void
setPackageTitle(String packageTitle)
void
setPackageVersion(String packageVersion)
void
setPreserveNewLines(boolean preserveNewLines)
void
setReturnICollection(boolean returnICollection)
void
setSourceFolder(String sourceFolder)
void
setUseCollection(boolean useCollection)
String
testPackageName()
String
toApiTestFilename(String name)
Return the file name of the Api TestString
toDefaultValue(io.swagger.models.properties.Property p)
Return the default value of the propertyString
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 name, String datatype)
Return the sanitized variable name for enumString
toExampleValue(io.swagger.models.properties.Property p)
Return the example value of the propertyString
toInstantiationType(io.swagger.models.properties.Property p)
Return the instantiation type of the property, especially for map and arrayString
toModelFilename(String name)
Return the capitalized file name of the modelString
toModelName(String name)
Output the proper model name (capitalized).String
toModelTestFilename(String name)
Return the capitalized file name of the model testString
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
toVarName(String name)
Return the variable name by removing invalid characters and proper escaping if it's a reserved word.void
updateCodegenPropertyEnum(CodegenProperty var)
Update codegen property's enum by adding "enumVars" (with name and value)void
useDateTimeOffset(boolean flag)
-
Methods inherited from class io.swagger.codegen.DefaultCodegen
addAdditionPropertiesToCodeGenModel, addImport, additionalProperties, addOperationToGroup, addOption, addOption, addParentContainer, addProperties, addRegularExpressionDelimiter, addSwitch, apiDocFileFolder, apiDocFilename, apiDocTemplateFiles, apiFilename, apiPackage, apiTemplateFiles, apiTestFilename, apiTestTemplateFiles, buildLibraryCliOption, camelize, camelize, cliOptions, configureDataForTestTemplate, convertPropertyToBoolean, convertPropertyToBooleanAndWriteBack, dashize, defaultIgnoreImportMappingOption, defaultIncludes, embeddedTemplateDir, ensureUniqueName, escapeText, fileSuffix, findCommonPrefixOfVars, findMethodResponse, fixUpParentAndInterfaces, fromModel, fromOperation, fromOperation, fromParameter, fromProperty, fromResponse, fromSecurity, generateExamplePath, getAlias, getAllAliases, getCommonTemplateDir, getExamples, getGitRepoBaseURL, getGitRepoId, getGitUserId, getHttpUserAgent, getIgnoreFilePathOverride, getIgnoreImportMapping, getInnerEnumAllowableValues, getInputSpec, getLibrary, getOrGenerateOperationId, getOutputDir, getParameterDataType, getReleaseNote, getSkipAliasGeneration, getSymbolName, getterAndSetterCapitalize, getTypeDeclaration, importMapping, initalizeSpecialCharacterMapping, initialCaps, instantiationTypes, isDataTypeBinary, isDataTypeFile, isHideGenerationTimestamp, isModelObject, isPrimivite, isPropertyInnerMostEnum, isRemoveOperationIdPrefix, isSkipOverwrite, isUsingFlattenSpec, languageSpecificPrimitives, modelDocFileFolder, modelDocTemplateFiles, modelFilename, modelPackage, modelTemplateFiles, modelTestTemplateFiles, needToImport, outputFolder, postProcessModelProperties, postProcessModelsEnum, postProcessOperationsWithModels, postProcessParameter, postProcessSupportingFileData, processCompiler, processSwagger, readRefModelParameter, removeNonNameElementToCamelCase, removeNonNameElementToCamelCase, reservedWords, reservedWordsMappings, sanitizeName, sanitizeTag, setAllowUnicodeIdentifiers, setApiPackage, setCommonTemplateDir, setEnsureUniqueParams, setGitRepoBaseURL, setGitRepoId, setGitUserId, setHideGenerationTimestamp, setHttpUserAgent, setIgnoreFilePathOverride, setIgnoreImportMapping, setInputSpec, setLibrary, setModelNamePrefix, setModelNameSuffix, setModelPackage, setNonArrayMapProperty, setOutputDir, setParameterBooleanFlagWithCodegenProperty, setParameterExampleValue, setReleaseNote, setRemoveOperationIdPrefix, setReservedWordsLowerCase, setSkipAliasGeneration, setSkipOverwrite, setSortParamsByRequiredFlag, setTemplateDir, shouldOverwrite, snakeCase, supportedLibraries, supportingFiles, templateDir, testPackage, titleCase, toApiDocFilename, toApiFilename, toApiImport, toApiName, toApiVarName, toBooleanGetter, toDefaultValueWithParam, toEnumDefaultValue, toExamples, toGetter, toModelDocFilename, toModelImport, toRegularExpression, toSetter, typeMapping, underscore, updateDataTypeWithEnumForArray, updateDataTypeWithEnumForMap, updatePropertyForArray, updatePropertyForMap, vendorExtensions, writeOptional, writePropertyBack
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.swagger.codegen.CodegenConfig
additionalProperties, addOperationToGroup, apiDocFileFolder, apiDocFilename, apiDocTemplateFiles, apiFilename, apiPackage, apiTemplateFiles, apiTestFilename, apiTestTemplateFiles, cliOptions, defaultIgnoreImportMappingOption, defaultIncludes, embeddedTemplateDir, escapeText, fileSuffix, fromModel, fromOperation, fromOperation, fromSecurity, generateExamplePath, getCommonTemplateDir, getGitRepoBaseURL, getGitRepoId, getGitUserId, getHelp, getHttpUserAgent, getIgnoreFilePathOverride, getIgnoreImportMapping, getInputSpec, getLibrary, getName, getOutputDir, getReleaseNote, getSkipAliasGeneration, getTag, getTypeDeclaration, importMapping, instantiationTypes, isHideGenerationTimestamp, isRemoveOperationIdPrefix, isSkipOverwrite, isUsingFlattenSpec, languageSpecificPrimitives, modelDocFileFolder, modelDocTemplateFiles, modelFilename, modelPackage, modelTemplateFiles, modelTestTemplateFiles, outputFolder, postProcessOperationsWithModels, postProcessParameter, postProcessSupportingFileData, processCompiler, processSwagger, reservedWords, reservedWordsMappings, sanitizeName, sanitizeTag, setGitRepoBaseURL, setGitRepoId, setGitUserId, setHideGenerationTimestamp, setHttpUserAgent, setIgnoreFilePathOverride, setIgnoreImportMapping, setInputSpec, setLibrary, setOutputDir, setReleaseNote, setRemoveOperationIdPrefix, setSkipAliasGeneration, setSkipOverwrite, shouldOverwrite, supportedLibraries, supportingFiles, templateDir, testPackage, toApiDocFilename, toApiFilename, toApiImport, toApiName, toApiVarName, toBooleanGetter, toGetter, toModelDocFilename, toModelImport, toSetter, typeMapping, vendorExtensions
-
-
-
-
Field Detail
-
optionalAssemblyInfoFlag
protected boolean optionalAssemblyInfoFlag
-
optionalProjectFileFlag
protected boolean optionalProjectFileFlag
-
optionalEmitDefaultValue
protected boolean optionalEmitDefaultValue
-
optionalMethodArgumentFlag
protected boolean optionalMethodArgumentFlag
-
useDateTimeOffsetFlag
protected boolean useDateTimeOffsetFlag
-
useCollection
protected boolean useCollection
-
returnICollection
protected boolean returnICollection
-
preserveNewLines
protected boolean preserveNewLines
-
netCoreProjectFileFlag
protected boolean netCoreProjectFileFlag
-
modelPropertyNaming
protected String modelPropertyNaming
-
packageVersion
protected String packageVersion
-
packageName
protected String packageName
-
packageTitle
protected String packageTitle
-
packageProductName
protected String packageProductName
-
packageDescription
protected String packageDescription
-
packageCompany
protected String packageCompany
-
packageCopyright
protected String packageCopyright
-
packageAuthors
protected String packageAuthors
-
interfacePrefix
protected String interfacePrefix
-
sourceFolder
protected String sourceFolder
-
testFolder
protected String testFolder
-
LOGGER
protected org.slf4j.Logger LOGGER
-
-
Method Detail
-
setReturnICollection
public void setReturnICollection(boolean returnICollection)
-
setOptionalEmitDefaultValue
public void setOptionalEmitDefaultValue(boolean optionalEmitDefaultValue)
-
setUseCollection
public void setUseCollection(boolean useCollection)
-
setOptionalMethodArgumentFlag
public void setOptionalMethodArgumentFlag(boolean flag)
-
setNetCoreProjectFileFlag
public void setNetCoreProjectFileFlag(boolean flag)
-
useDateTimeOffset
public void useDateTimeOffset(boolean flag)
-
processOpts
public void processOpts()
- Specified by:
processOpts
in interfaceCodegenConfig
- Overrides:
processOpts
in classDefaultCodegen
-
postProcessModelProperty
public void postProcessModelProperty(CodegenModel model, CodegenProperty property)
- Specified by:
postProcessModelProperty
in interfaceCodegenConfig
- Overrides:
postProcessModelProperty
in classDefaultCodegen
-
postProcessModels
public Map<String,Object> postProcessModels(Map<String,Object> objs)
- Specified by:
postProcessModels
in interfaceCodegenConfig
- Overrides:
postProcessModels
in classDefaultCodegen
-
postProcessAllModels
public Map<String,Object> postProcessAllModels(Map<String,Object> objs)
Invoked byDefaultGenerator
after all models have been post-processed, allowing for a last pass of codegen-specific model cleanup.- Specified by:
postProcessAllModels
in interfaceCodegenConfig
- Overrides:
postProcessAllModels
in classDefaultCodegen
- Parameters:
objs
- Current state of codegen object model.- Returns:
- An in-place modified state of the codegen object model.
-
fromModel
public CodegenModel fromModel(String name, io.swagger.models.Model model, Map<String,io.swagger.models.Model> allDefinitions)
Description copied from class:DefaultCodegen
Convert Swagger Model object to Codegen Model object- Specified by:
fromModel
in interfaceCodegenConfig
- Overrides:
fromModel
in classDefaultCodegen
- Parameters:
name
- the name of the modelmodel
- Swagger Model objectallDefinitions
- a map of all Swagger models from the spec- Returns:
- Codegen Model object
-
updateCodegenPropertyEnum
public void updateCodegenPropertyEnum(CodegenProperty var)
Update codegen property's enum by adding "enumVars" (with name and value)- Overrides:
updateCodegenPropertyEnum
in classDefaultCodegen
- Parameters:
var
- list of CodegenProperty
-
postProcessOperations
public Map<String,Object> postProcessOperations(Map<String,Object> objs)
- Specified by:
postProcessOperations
in interfaceCodegenConfig
- Overrides:
postProcessOperations
in classDefaultCodegen
-
processOperation
protected void processOperation(CodegenOperation operation)
-
apiFileFolder
public String apiFileFolder()
- Specified by:
apiFileFolder
in interfaceCodegenConfig
- Overrides:
apiFileFolder
in classDefaultCodegen
-
modelFileFolder
public String modelFileFolder()
- Specified by:
modelFileFolder
in interfaceCodegenConfig
- Overrides:
modelFileFolder
in classDefaultCodegen
-
toModelFilename
public String toModelFilename(String name)
Description copied from class:DefaultCodegen
Return the capitalized file name of the model- Specified by:
toModelFilename
in interfaceCodegenConfig
- Overrides:
toModelFilename
in classDefaultCodegen
- Parameters:
name
- the model name- Returns:
- the file name of the model
-
toOperationId
public String toOperationId(String operationId)
Description copied from class:DefaultCodegen
Return the operation ID (method name)- Overrides:
toOperationId
in classDefaultCodegen
- Parameters:
operationId
- operation ID- Returns:
- the sanitized method name
-
toVarName
public String toVarName(String name)
Description copied from class:DefaultCodegen
Return the variable name by removing invalid characters and proper escaping if it's a reserved word.- Overrides:
toVarName
in classDefaultCodegen
- Parameters:
name
- the variable name- Returns:
- the sanitized variable name
-
toParamName
public String toParamName(String name)
Description copied from class:DefaultCodegen
Return the parameter name by removing invalid characters and proper escaping if it's a reserved word.- Specified by:
toParamName
in interfaceCodegenConfig
- Overrides:
toParamName
in classDefaultCodegen
- Parameters:
name
- Codegen property object- Returns:
- the sanitized parameter name
-
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)
-
toExampleValue
public String toExampleValue(io.swagger.models.properties.Property p)
Return the example value of the property- Overrides:
toExampleValue
in classDefaultCodegen
- Parameters:
p
- Swagger property object- Returns:
- string presentation of the example value of the property
-
toDefaultValue
public String toDefaultValue(io.swagger.models.properties.Property p)
Return the default value of the property- Overrides:
toDefaultValue
in classDefaultCodegen
- Parameters:
p
- Swagger property object- Returns:
- string presentation of the default value of the property
-
isReservedWord
protected boolean isReservedWord(String word)
- Overrides:
isReservedWord
in classDefaultCodegen
-
getSwaggerType
public String getSwaggerType(io.swagger.models.properties.Property p)
Description copied from class:DefaultCodegen
returns the swagger type for the property- Overrides:
getSwaggerType
in classDefaultCodegen
- Parameters:
p
- Swagger property object- Returns:
- string presentation of the type
-
toInstantiationType
public String toInstantiationType(io.swagger.models.properties.Property p)
Description copied from class:DefaultCodegen
Return the instantiation type of the property, especially for map and array- Overrides:
toInstantiationType
in classDefaultCodegen
- Parameters:
p
- Swagger property object- Returns:
- string presentation of the instantiation type of the property
-
getTypeDeclaration
public String getTypeDeclaration(io.swagger.models.properties.Property p)
Description copied from class:DefaultCodegen
Output the type declaration of the property- Specified by:
getTypeDeclaration
in interfaceCodegenConfig
- Overrides:
getTypeDeclaration
in classDefaultCodegen
- Parameters:
p
- Swagger Property object- Returns:
- a string presentation of the property type
-
toModelName
public String toModelName(String name)
Description copied from class:DefaultCodegen
Output the proper model name (capitalized). In case the name belongs to the TypeSystem it won't be renamed.- Specified by:
toModelName
in interfaceCodegenConfig
- Overrides:
toModelName
in classDefaultCodegen
- Parameters:
name
- the name of the model- Returns:
- capitalized model name
-
apiTestFileFolder
public String apiTestFileFolder()
- Specified by:
apiTestFileFolder
in interfaceCodegenConfig
- Overrides:
apiTestFileFolder
in classDefaultCodegen
-
modelTestFileFolder
public String modelTestFileFolder()
- Specified by:
modelTestFileFolder
in interfaceCodegenConfig
- Overrides:
modelTestFileFolder
in classDefaultCodegen
-
toApiTestFilename
public String toApiTestFilename(String name)
Description copied from class:DefaultCodegen
Return the file name of the Api Test- Specified by:
toApiTestFilename
in interfaceCodegenConfig
- Overrides:
toApiTestFilename
in classDefaultCodegen
- Parameters:
name
- the file name of the Api- Returns:
- the file name of the Api
-
toModelTestFilename
public String toModelTestFilename(String name)
Description copied from class:DefaultCodegen
Return the capitalized file name of the model test- Specified by:
toModelTestFilename
in interfaceCodegenConfig
- Overrides:
toModelTestFilename
in classDefaultCodegen
- Parameters:
name
- the model name- Returns:
- the file name of the model
-
setPackageName
public void setPackageName(String packageName)
-
setPackageVersion
public void setPackageVersion(String packageVersion)
-
setPackageTitle
public void setPackageTitle(String packageTitle)
-
setPackageProductName
public void setPackageProductName(String packageProductName)
-
setPackageDescription
public void setPackageDescription(String packageDescription)
-
setPackageCompany
public void setPackageCompany(String packageCompany)
-
setPackageCopyright
public void setPackageCopyright(String packageCopyright)
-
setPackageAuthors
public void setPackageAuthors(String packageAuthors)
-
setSourceFolder
public void setSourceFolder(String sourceFolder)
-
getInterfacePrefix
public String getInterfacePrefix()
-
setInterfacePrefix
public void setInterfacePrefix(String interfacePrefix)
-
toEnumValue
public String toEnumValue(String value, String datatype)
Description copied from class:DefaultCodegen
Return the enum value in the language specified format e.g. status becomes "status"- Overrides:
toEnumValue
in classDefaultCodegen
- Parameters:
value
- enum variable namedatatype
- data type- Returns:
- the sanitized value for enum
-
toEnumVarName
public String toEnumVarName(String name, String datatype)
Description copied from class:DefaultCodegen
Return the sanitized variable name for enum- Overrides:
toEnumVarName
in classDefaultCodegen
- Parameters:
name
- enum variable namedatatype
- data type- Returns:
- the sanitized variable name for enum
-
toEnumName
public String toEnumName(CodegenProperty property)
Description copied from class:DefaultCodegen
Return the Enum name (e.g. StatusEnum given 'status')- Overrides:
toEnumName
in classDefaultCodegen
- Parameters:
property
- Codegen property- Returns:
- the Enum name
-
testPackageName
public String testPackageName()
-
isPreserveNewLines
public boolean isPreserveNewLines()
-
setPreserveNewLines
public void setPreserveNewLines(boolean preserveNewLines)
-
preprocessSwagger
public void preprocessSwagger(io.swagger.models.Swagger swagger)
- Specified by:
preprocessSwagger
in interfaceCodegenConfig
- Overrides:
preprocessSwagger
in classDefaultCodegen
-
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
-
-