@@ -335,8 +335,10 @@ public CodegenProperty fromProperty(String name, Property p) {
335
335
swiftEnums .add (map );
336
336
}
337
337
codegenProperty .allowableValues .put ("values" , swiftEnums );
338
- codegenProperty .datatypeWithEnum =
339
- StringUtils .left (codegenProperty .datatypeWithEnum , codegenProperty .datatypeWithEnum .length () - "Enum" .length ());
338
+ codegenProperty .datatypeWithEnum = toEnumName (codegenProperty );
339
+ //codegenProperty.datatypeWithEnum =
340
+ // StringUtils.left(codegenProperty.datatypeWithEnum, codegenProperty.datatypeWithEnum.length() - "Enum".length());
341
+
340
342
// Ensure that the enum type doesn't match a reserved word or
341
343
// the variable name doesn't match the generated enum type or the
342
344
// Swift compiler will generate an error
@@ -483,4 +485,59 @@ public void setUnwrapRequired(boolean unwrapRequired) {
483
485
public void setResponseAs (String [] responseAs ) {
484
486
this .responseAs = responseAs ;
485
487
}
488
+
489
+ @ Override
490
+ public String toEnumValue (String value , String datatype ) {
491
+ if ("int" .equals (datatype ) || "double" .equals (datatype ) || "float" .equals (datatype )) {
492
+ return value ;
493
+ } else {
494
+ return "\' " + escapeText (value ) + "\' " ;
495
+ }
496
+ }
497
+
498
+ @ Override
499
+ public String toEnumDefaultValue (String value , String datatype ) {
500
+ return datatype + "_" + value ;
501
+ }
502
+
503
+ @ Override
504
+ public String toEnumVarName (String name , String datatype ) {
505
+ // number
506
+ if ("int" .equals (datatype ) || "double" .equals (datatype ) || "float" .equals (datatype )) {
507
+ String varName = new String (name );
508
+ varName = varName .replaceAll ("-" , "MINUS_" );
509
+ varName = varName .replaceAll ("\\ +" , "PLUS_" );
510
+ varName = varName .replaceAll ("\\ ." , "_DOT_" );
511
+ return varName ;
512
+ }
513
+
514
+ // string
515
+ String enumName = sanitizeName (underscore (name ).toUpperCase ());
516
+ enumName = enumName .replaceFirst ("^_" , "" );
517
+ enumName = enumName .replaceFirst ("_$" , "" );
518
+
519
+ if (enumName .matches ("\\ d.*" )) { // starts with number
520
+ return "_" + enumName ;
521
+ } else {
522
+ return enumName ;
523
+ }
524
+ }
525
+
526
+ @ Override
527
+ public String toEnumName (CodegenProperty property ) {
528
+ String enumName = underscore (toModelName (property .name )).toUpperCase ();
529
+
530
+ if (enumName .matches ("\\ d.*" )) { // starts with number
531
+ return "_" + enumName ;
532
+ } else {
533
+ return enumName ;
534
+ }
535
+ }
536
+
537
+ @ Override
538
+ public Map <String , Object > postProcessModels (Map <String , Object > objs ) {
539
+ // process enum in models
540
+ return postProcessModelsEnum (objs );
541
+ }
542
+
486
543
}
0 commit comments