55import org .openapitools .codegen .CodegenOperation ;
66import org .openapitools .codegen .CodegenType ;
77import org .openapitools .codegen .SupportingFile ;
8+ import org .openapitools .codegen .languages .features .BeanValidationFeatures ;
89import org .openapitools .codegen .meta .GeneratorMetadata ;
910import org .openapitools .codegen .meta .Stability ;
1011import org .openapitools .codegen .meta .features .DocumentationFeature ;
2829
2930import static org .openapitools .codegen .utils .StringUtils .camelize ;
3031
31- public class KotlinMiskServerCodegen extends AbstractKotlinCodegen {
32+ public class KotlinMiskServerCodegen extends AbstractKotlinCodegen implements BeanValidationFeatures {
33+
34+ private static final Logger LOGGER = LoggerFactory .getLogger (KotlinMiskServerCodegen .class );
35+
36+ private static final String ROOT_PACKAGE = "rootPackage" ;
37+ private static final String MODULE_CLASS_NAME = "moduleClassName" ;
38+
39+ private boolean useBeanValidation = true ;
3240
3341 protected String rootPackage = "org.openapitools.server.api" ;
3442 protected String apiVersion = "1.0.0-SNAPSHOT" ;
35- @ Setter protected String moduleClassName = "OpenApiModule" ;
3643
37- public static final String ROOT_PACKAGE = "rootPackage" ;
38- public static final String PROJECT_NAME = "projectName" ;
39- public static final String MODULE_CLASS_NAME = "moduleClassName" ;
40-
41- final Logger LOGGER = LoggerFactory .getLogger (KotlinMiskServerCodegen .class );
44+ @ Setter protected String moduleClassName = "OpenApiModule" ;
4245
4346 @ Override
4447 public CodegenType getTag () {
@@ -58,6 +61,8 @@ public String getHelp() {
5861 public KotlinMiskServerCodegen () {
5962 super ();
6063
64+ addSwitch (USE_BEANVALIDATION , "Use BeanValidation API annotations to validate data types" , useBeanValidation );
65+
6166 modifyFeatureSet (features -> features
6267 .includeDocumentationFeatures (DocumentationFeature .Readme )
6368 .wireFormatFeatures (EnumSet .of (WireFormatFeature .PROTOBUF ))
@@ -129,6 +134,11 @@ public void processOpts() {
129134 }
130135 additionalProperties .put (MODULE_CLASS_NAME , moduleClassName );
131136
137+ if (additionalProperties .containsKey (USE_BEANVALIDATION )) {
138+ this .setUseBeanValidation (convertPropertyToBoolean (USE_BEANVALIDATION ));
139+ }
140+ writePropertyBack (USE_BEANVALIDATION , useBeanValidation );
141+
132142 String apiModuleFolder = (sourceFolder + File .separator + apiPackage ).replace ("." , File .separator );
133143 String moduleFileName = moduleClassName + ".kt" ;
134144 supportingFiles .add (new SupportingFile ("miskModule.mustache" , apiModuleFolder , moduleFileName ));
@@ -160,8 +170,17 @@ public OperationsMap postProcessOperationsWithModels(OperationsMap objs, List<Mo
160170 return objs ;
161171 }
162172
173+ @ Override
174+ public void setUseBeanValidation (boolean useBeanValidation ) {
175+ this .useBeanValidation = useBeanValidation ;
176+ }
177+
178+ public boolean getUseBeanValidation () {
179+ return this .useBeanValidation ;
180+ }
181+
163182 private String mapMediaType (String mediaType ) {
164- return MEDIA_MAPPING .getOrDefault (mediaType , "MediaTypes.APPLICATION_OCTETSTREAM /* unknown -> " + mediaType + "*/ " );
183+ return MEDIA_MAPPING .getOrDefault (mediaType , "MediaTypes.APPLICATION_OCTETSTREAM /* unknown -> " + mediaType + " */ " );
165184 }
166185
167186 private final static Map <String , String > MEDIA_MAPPING = getMappings ();
0 commit comments