Class AbstractCSharpCodegen

java.lang.Object
io.swagger.codegen.v3.generators.DefaultCodegenConfig
io.swagger.codegen.v3.generators.dotnet.AbstractCSharpCodegen
All Implemented Interfaces:
io.swagger.codegen.v3.CodegenConfig
Direct Known Subclasses:
AspNetCoreServerCodegen, CSharpClientCodegen, CsharpDotNet2ClientCodegen

public abstract class AbstractCSharpCodegen extends DefaultCodegenConfig
  • Field Details

    • 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
    • collectionTypes

      protected Set<String> collectionTypes
    • mapTypes

      protected Set<String> mapTypes
    • LOGGER

      protected org.slf4j.Logger LOGGER
  • Constructor Details

    • AbstractCSharpCodegen

      public AbstractCSharpCodegen()
  • Method Details

    • 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 interface io.swagger.codegen.v3.CodegenConfig
      Overrides:
      processOpts in class DefaultCodegenConfig
    • postProcessModelProperty

      public void postProcessModelProperty(io.swagger.codegen.v3.CodegenModel model, io.swagger.codegen.v3.CodegenProperty property)
      Specified by:
      postProcessModelProperty in interface io.swagger.codegen.v3.CodegenConfig
      Overrides:
      postProcessModelProperty in class DefaultCodegenConfig
    • postProcessModels

      public Map<String,Object> postProcessModels(Map<String,Object> objs)
      Specified by:
      postProcessModels in interface io.swagger.codegen.v3.CodegenConfig
      Overrides:
      postProcessModels in class DefaultCodegenConfig
    • postProcessAllModels

      public Map<String,Object> postProcessAllModels(Map<String,Object> objs)
      Invoked by {DefaultGenerator} after all models have been post-processed, allowing for a last pass of codegen-specific model cleanup.
      Specified by:
      postProcessAllModels in interface io.swagger.codegen.v3.CodegenConfig
      Overrides:
      postProcessAllModels in class DefaultCodegenConfig
      Parameters:
      objs - Current state of codegen object model.
      Returns:
      An in-place modified state of the codegen object model.
    • updateCodegenPropertyEnum

      public void updateCodegenPropertyEnum(io.swagger.codegen.v3.CodegenProperty var)
      Update codegen property's enum by adding "enumVars" (with name and value)
      Overrides:
      updateCodegenPropertyEnum in class DefaultCodegenConfig
      Parameters:
      var - list of CodegenProperty
    • postProcessOperations

      public Map<String,Object> postProcessOperations(Map<String,Object> objs)
      Specified by:
      postProcessOperations in interface io.swagger.codegen.v3.CodegenConfig
      Overrides:
      postProcessOperations in class DefaultCodegenConfig
    • processOperation

      protected void processOperation(io.swagger.codegen.v3.CodegenOperation operation)
    • apiFileFolder

      public String apiFileFolder()
      Specified by:
      apiFileFolder in interface io.swagger.codegen.v3.CodegenConfig
      Overrides:
      apiFileFolder in class DefaultCodegenConfig
    • modelFileFolder

      public String modelFileFolder()
      Specified by:
      modelFileFolder in interface io.swagger.codegen.v3.CodegenConfig
      Overrides:
      modelFileFolder in class DefaultCodegenConfig
    • toModelFilename

      public String toModelFilename(String name)
      Description copied from class: DefaultCodegenConfig
      Return the capitalized file name of the model
      Specified by:
      toModelFilename in interface io.swagger.codegen.v3.CodegenConfig
      Overrides:
      toModelFilename in class DefaultCodegenConfig
      Parameters:
      name - the model name
      Returns:
      the file name of the model
    • toOperationId

      public String toOperationId(String operationId)
      Description copied from class: DefaultCodegenConfig
      Return the operation ID (method name)
      Overrides:
      toOperationId in class DefaultCodegenConfig
      Parameters:
      operationId - operation ID
      Returns:
      the sanitized method name
    • toVarName

      public String toVarName(String name)
      Description copied from class: DefaultCodegenConfig
      Return the variable name by removing invalid characters and proper escaping if it's a reserved word.
      Overrides:
      toVarName in class DefaultCodegenConfig
      Parameters:
      name - the variable name
      Returns:
      the sanitized variable name
    • toParamName

      public String toParamName(String name)
      Description copied from class: DefaultCodegenConfig
      Return the parameter name by removing invalid characters and proper escaping if it's a reserved word.
      Specified by:
      toParamName in interface io.swagger.codegen.v3.CodegenConfig
      Overrides:
      toParamName in class DefaultCodegenConfig
      Parameters:
      name - Codegen property object
      Returns:
      the sanitized parameter name
    • escapeReservedWord

      public String escapeReservedWord(String name)
      Description copied from class: DefaultCodegenConfig
      Return the escaped name of the reserved word
      Specified by:
      escapeReservedWord in interface io.swagger.codegen.v3.CodegenConfig
      Overrides:
      escapeReservedWord in class DefaultCodegenConfig
      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.v3.oas.models.media.Schema schema)
      Return the example value of the property
      Overrides:
      toExampleValue in class DefaultCodegenConfig
      Parameters:
      schema - Open API Schema object
      Returns:
      string presentation of the example value of the property
    • toDefaultValue

      public String toDefaultValue(io.swagger.v3.oas.models.media.Schema schema)
      Return the default value of the property
      Overrides:
      toDefaultValue in class DefaultCodegenConfig
      Parameters:
      schema - Schema object
      Returns:
      string presentation of the default value of the property
    • isReservedWord

      protected boolean isReservedWord(String word)
      Overrides:
      isReservedWord in class DefaultCodegenConfig
    • getSchemaType

      public String getSchemaType(io.swagger.v3.oas.models.media.Schema propertySchema)
      Description copied from class: DefaultCodegenConfig
      returns the swagger type for the property
      Overrides:
      getSchemaType in class DefaultCodegenConfig
      Parameters:
      propertySchema - Schema property object
      Returns:
      string presentation of the type
    • getRefSchemaTargetType

      protected String getRefSchemaTargetType(io.swagger.v3.oas.models.media.Schema schema, String schemaType)
    • toInstantiationType

      public String toInstantiationType(io.swagger.v3.oas.models.media.Schema schema)
      Description copied from class: DefaultCodegenConfig
      Return the instantiation type of the property, especially for map and array
      Overrides:
      toInstantiationType in class DefaultCodegenConfig
      Parameters:
      schema - Swagger property object
      Returns:
      string presentation of the instantiation type of the property
    • getTypeDeclaration

      public String getTypeDeclaration(io.swagger.v3.oas.models.media.Schema propertySchema)
      Description copied from class: DefaultCodegenConfig
      Output the type declaration of the property
      Specified by:
      getTypeDeclaration in interface io.swagger.codegen.v3.CodegenConfig
      Overrides:
      getTypeDeclaration in class DefaultCodegenConfig
      Parameters:
      propertySchema - Schema Property object
      Returns:
      a string presentation of the property type
    • toModelName

      public String toModelName(String name)
      Description copied from class: DefaultCodegenConfig
      Output the proper model name (capitalized). In case the name belongs to the TypeSystem it won't be renamed.
      Specified by:
      toModelName in interface io.swagger.codegen.v3.CodegenConfig
      Overrides:
      toModelName in class DefaultCodegenConfig
      Parameters:
      name - the name of the model
      Returns:
      capitalized model name
    • apiTestFileFolder

      public String apiTestFileFolder()
      Specified by:
      apiTestFileFolder in interface io.swagger.codegen.v3.CodegenConfig
      Overrides:
      apiTestFileFolder in class DefaultCodegenConfig
    • modelTestFileFolder

      public String modelTestFileFolder()
      Specified by:
      modelTestFileFolder in interface io.swagger.codegen.v3.CodegenConfig
      Overrides:
      modelTestFileFolder in class DefaultCodegenConfig
    • toApiTestFilename

      public String toApiTestFilename(String name)
      Description copied from class: DefaultCodegenConfig
      Return the file name of the Api Test
      Specified by:
      toApiTestFilename in interface io.swagger.codegen.v3.CodegenConfig
      Overrides:
      toApiTestFilename in class DefaultCodegenConfig
      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: DefaultCodegenConfig
      Return the capitalized file name of the model test
      Specified by:
      toModelTestFilename in interface io.swagger.codegen.v3.CodegenConfig
      Overrides:
      toModelTestFilename in class DefaultCodegenConfig
      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)
    • fromModel

      public io.swagger.codegen.v3.CodegenModel fromModel(String name, io.swagger.v3.oas.models.media.Schema schema, Map<String,io.swagger.v3.oas.models.media.Schema> allDefinitions)
      Description copied from class: DefaultCodegenConfig
      Convert Swagger Model object to Codegen Model object
      Specified by:
      fromModel in interface io.swagger.codegen.v3.CodegenConfig
      Overrides:
      fromModel in class DefaultCodegenConfig
      Parameters:
      name - the name of the model
      schema - Swagger Model object
      allDefinitions - a map of all Swagger models from the spec
      Returns:
      Codegen Model object
    • toEnumValue

      public String toEnumValue(String value, String datatype)
      Description copied from class: DefaultCodegenConfig
      Return the enum value in the language specified format e.g. status becomes "status"
      Overrides:
      toEnumValue in class DefaultCodegenConfig
      Parameters:
      value - enum variable name
      datatype - data type
      Returns:
      the sanitized value for enum
    • toEnumVarName

      public String toEnumVarName(String name, String datatype)
      Description copied from class: DefaultCodegenConfig
      Return the sanitized variable name for enum
      Overrides:
      toEnumVarName in class DefaultCodegenConfig
      Parameters:
      name - enum variable name
      datatype - data type
      Returns:
      the sanitized variable name for enum
    • toEnumName

      public String toEnumName(io.swagger.codegen.v3.CodegenProperty property)
      Description copied from class: DefaultCodegenConfig
      Return the Enum name (e.g. StatusEnum given 'status')
      Overrides:
      toEnumName in class DefaultCodegenConfig
      Parameters:
      property - Codegen property
      Returns:
      the Enum name
    • testPackageName

      public String testPackageName()
    • isPreserveNewLines

      public boolean isPreserveNewLines()
    • setPreserveNewLines

      public void setPreserveNewLines(boolean preserveNewLines)
    • preprocessOpenAPI

      public void preprocessOpenAPI(io.swagger.v3.oas.models.OpenAPI openAPI)
      Specified by:
      preprocessOpenAPI in interface io.swagger.codegen.v3.CodegenConfig
      Overrides:
      preprocessOpenAPI in class DefaultCodegenConfig
    • getDefaultTemplateDir

      public String getDefaultTemplateDir()
      Specified by:
      getDefaultTemplateDir in class DefaultCodegenConfig
    • preserveNewlines

      public String preserveNewlines(String input, int tabstops)
    • escapeQuotationMark

      public String escapeQuotationMark(String input)
      Description copied from class: DefaultCodegenConfig
      Escape single and/or double quote to avoid code injection
      Specified by:
      escapeQuotationMark in interface io.swagger.codegen.v3.CodegenConfig
      Overrides:
      escapeQuotationMark in class DefaultCodegenConfig
      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: DefaultCodegenConfig
      override with any special text escaping logic to handle unsafe characters so as to avoid code injection
      Specified by:
      escapeUnsafeCharacters in interface io.swagger.codegen.v3.CodegenConfig
      Overrides:
      escapeUnsafeCharacters in class DefaultCodegenConfig
      Parameters:
      input - String to be cleaned up
      Returns:
      string with unsafe characters removed or escaped
    • addHandlebarHelpers

      public void addHandlebarHelpers(com.github.jknack.handlebars.Handlebars handlebars)
      Specified by:
      addHandlebarHelpers in interface io.swagger.codegen.v3.CodegenConfig
      Overrides:
      addHandlebarHelpers in class DefaultCodegenConfig
    • addCodegenContentParameters

      protected void addCodegenContentParameters(io.swagger.codegen.v3.CodegenOperation codegenOperation, List<io.swagger.codegen.v3.CodegenContent> codegenContents)
      Overrides:
      addCodegenContentParameters in class DefaultCodegenConfig
    • checkAliasModel

      public boolean checkAliasModel()