@@ -20,6 +20,8 @@ public class PureCloudJavaClientCodegen extends JavaClientCodegen {
2020
2121 protected Logger LOGGER = LoggerFactory .getLogger (PureCloudJavaClientCodegen .class );
2222
23+ protected Set <String > reservedModelNames ;
24+
2325 public PureCloudJavaClientCodegen () {
2426 super ();
2527
@@ -42,6 +44,7 @@ public PureCloudJavaClientCodegen() {
4244 importMapping .put ("HashMap" , "java.util.HashMap" );
4345 importMapping .put ("Map" , "java.util.Map" );
4446 importMapping .put ("BigDecimal" , "java.math.BigDecimal" );
47+ importMapping .put ("Duration" , "java.time.Duration" );
4548
4649 // Type overrides
4750 typeMapping .put ("date" , "LocalDate" );
@@ -54,6 +57,11 @@ public PureCloudJavaClientCodegen() {
5457 reservedWords .add ("null" );
5558 reservedWords .add ("request" );
5659
60+ // Add special reserved words for Model Names
61+ reservedModelNames = new HashSet <String >();
62+ reservedModelNames .add ("configuration" );
63+ reservedModelNames .add ("case" );
64+
5765 operationTemplateFiles .put ("requestBuilder.mustache" , ".java" );
5866 //supportingFiles.add(new SupportingFile("testng.mustache", "", "testng.xml"));
5967 apiDocTemplateFiles .put ("api_json.mustache" , ".json" );
@@ -267,6 +275,9 @@ public CodegenModel fromModel(String name, Schema schema) {
267275
268276 Set <String > imports = new HashSet <>();
269277 for (String im : codegenModel .imports ) {
278+ if (im != null && reservedModelNames .contains (im .toLowerCase (Locale .ROOT ))) {
279+ im = "Model" + im ;
280+ }
270281 imports .add (im .replaceAll ("_+$" , "" ));
271282 }
272283 codegenModel .imports = imports ;
@@ -280,6 +291,37 @@ public CodegenModel fromModel(String name, Schema schema) {
280291 var .defaultValue = var .defaultValue
281292 .replaceAll ("_+$" , "" )
282293 .replaceAll ("_+(>)" , "$1" );
294+
295+ if (var .datatypeWithEnum != null && reservedModelNames .contains (var .datatypeWithEnum .toLowerCase (Locale .ROOT ))) {
296+ var .datatypeWithEnum = "Model" + var .datatypeWithEnum ;
297+ if (var .dataType != null && reservedModelNames .contains (var .dataType .toLowerCase (Locale .ROOT ))) {
298+ var .dataType = "Model" + var .dataType ;
299+ }
300+ }
301+
302+ if (var .datatypeWithEnum .startsWith ("List<" )) {
303+ String eltEnumName = var .datatypeWithEnum .substring (5 , var .datatypeWithEnum .length () - 1 );
304+ if (eltEnumName != null && reservedModelNames .contains (eltEnumName .toLowerCase (Locale .ROOT ))) {
305+ var .datatypeWithEnum = "List<" + "Model" + eltEnumName + ">" ;
306+ if (var .defaultValue != null ) {
307+ var .defaultValue = var .defaultValue .replace ("<" + eltEnumName + ">" , "<" + "Model" + eltEnumName + ">" );
308+ }
309+ String eltName = var .dataType .substring (5 , var .dataType .length () - 1 );
310+ if (eltName != null && reservedModelNames .contains (eltName .toLowerCase (Locale .ROOT ))) {
311+ var .dataType = "List<" + "Model" + eltName + ">" ;
312+ }
313+ }
314+ }
315+ if (var .datatypeWithEnum .startsWith ("Map<String, " )) {
316+ String eltEnumName = var .datatypeWithEnum .substring (12 , var .datatypeWithEnum .length () - 1 );
317+ if (eltEnumName != null && reservedModelNames .contains (eltEnumName .toLowerCase (Locale .ROOT ))) {
318+ var .datatypeWithEnum = "Map<String, " + "Model" + eltEnumName + ">" ;
319+ String eltName = var .dataType .substring (12 , var .dataType .length () - 1 );
320+ if (eltName != null && reservedModelNames .contains (eltName .toLowerCase (Locale .ROOT ))) {
321+ var .dataType = "Map<String, " + "Model" + eltName + ">" ;
322+ }
323+ }
324+ }
283325 }
284326
285327 for (String s : Arrays .asList ("pageSize" ,"pageNumber" ,"total" ,"selfUri" ,"firstUri" ,"previousUri" ,"nextUri" ,"lastUri" ,"pageCount" , "entities" )) {
0 commit comments