diff --git a/docs/generators/python-experimental.md b/docs/generators/python-experimental.md
index 546dcc22542a..8f3b02c7e566 100644
--- a/docs/generators/python-experimental.md
+++ b/docs/generators/python-experimental.md
@@ -31,7 +31,6 @@ sidebar_label: python-experimental
- bool
-- bytes
- date
- datetime
- dict
diff --git a/docs/generators/python.md b/docs/generators/python.md
index 7c4ff80016a1..3bd96b865bcb 100644
--- a/docs/generators/python.md
+++ b/docs/generators/python.md
@@ -31,7 +31,6 @@ sidebar_label: python
- bool
-- bytes
- date
- datetime
- dict
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonClientCodegen.java
index 74796111afd9..a2826e0044d9 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonClientCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonClientCodegen.java
@@ -682,7 +682,8 @@ public String toDefaultValue(Schema p) {
if (Pattern.compile("\r\n|\r|\n").matcher((String) p.getDefault()).find())
return "'''" + p.getDefault() + "'''";
else
- return "'" + ((String) p.getDefault()).replaceAll("'", "\'") + "'";
+ // wrap using double quotes to avoid the need to escape any embedded single quotes
+ return "\"" + p.getDefault() + "\"";
}
} else if (ModelUtils.isArraySchema(p)) {
if (p.getDefault() != null) {
@@ -726,7 +727,8 @@ private String toExampleValueRecursive(Schema schema, List included_sche
if (StringUtils.isNotBlank(example) && !"null".equals(example)) {
if (ModelUtils.isStringSchema(schema)) {
- example = "'" + example + "'";
+ // wrap using double quotes to avoid the need to escape any embedded single quotes
+ example = "\"" + example + "\"";
}
return example;
}
diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonClientCodegenTest.java
index 565e6848f64b..3c2544edf91e 100644
--- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonClientCodegenTest.java
+++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonClientCodegenTest.java
@@ -93,12 +93,21 @@ public void testRegularExpressionOpenAPISchemaVersion3() {
Assert.assertEquals(op.allParams.get(5).pattern, "/^pattern\\d{3}$/i");
}
- @Test(description = "test single quotes escape")
- public void testSingleQuotes() {
+ @Test(description = "test default value with single quotes")
+ public void testSingleQuotesDefaultValue() {
final PythonClientCodegen codegen = new PythonClientCodegen();
StringSchema schema = new StringSchema();
schema.setDefault("Text containing 'single' quote");
String defaultValue = codegen.toDefaultValue(schema);
- Assert.assertEquals("'Text containing \'single\' quote'", defaultValue);
+ Assert.assertEquals(defaultValue, "\"Text containing 'single' quote\"");
+ }
+
+ @Test(description = "test example value with single quotes")
+ public void testSingleQuotesExampleValue() {
+ final PythonClientCodegen codegen = new PythonClientCodegen();
+ StringSchema schema = new StringSchema();
+ schema.setExample("Text containing 'single' quote");
+ String exampleValue = codegen.toExampleValue(schema);
+ Assert.assertEquals(exampleValue, "\"Text containing 'single' quote\"");
}
}
diff --git a/samples/client/petstore/dart2/openapi/lib/api/pet_api.dart b/samples/client/petstore/dart2/openapi/lib/api/pet_api.dart
index 2b00c7d63b73..a413df7b4242 100644
--- a/samples/client/petstore/dart2/openapi/lib/api/pet_api.dart
+++ b/samples/client/petstore/dart2/openapi/lib/api/pet_api.dart
@@ -28,10 +28,10 @@ class PetApi {
List contentTypes = ["application/json","application/xml"];
- String contentType = contentTypes.isNotEmpty ? contentTypes[0] : "application/json";
+ String nullableContentType = contentTypes.isNotEmpty ? contentTypes[0] : null;
List authNames = ["petstore_auth"];
- if(contentType.startsWith("multipart/form-data")) {
+ if(nullableContentType != null && nullableContentType.startsWith("multipart/form-data")) {
bool hasFields = false;
MultipartRequest mp = MultipartRequest(null, null);
if(hasFields)
@@ -46,7 +46,7 @@ class PetApi {
postBody,
headerParams,
formParams,
- contentType,
+ nullableContentType,
authNames);
return response;
}
@@ -86,10 +86,10 @@ class PetApi {
List contentTypes = [];
- String contentType = contentTypes.isNotEmpty ? contentTypes[0] : "application/json";
+ String nullableContentType = contentTypes.isNotEmpty ? contentTypes[0] : null;
List authNames = ["petstore_auth"];
- if(contentType.startsWith("multipart/form-data")) {
+ if(nullableContentType != null && nullableContentType.startsWith("multipart/form-data")) {
bool hasFields = false;
MultipartRequest mp = MultipartRequest(null, null);
if(hasFields)
@@ -104,7 +104,7 @@ class PetApi {
postBody,
headerParams,
formParams,
- contentType,
+ nullableContentType,
authNames);
return response;
}
@@ -144,10 +144,10 @@ class PetApi {
List contentTypes = [];
- String contentType = contentTypes.isNotEmpty ? contentTypes[0] : "application/json";
+ String nullableContentType = contentTypes.isNotEmpty ? contentTypes[0] : null;
List authNames = ["petstore_auth"];
- if(contentType.startsWith("multipart/form-data")) {
+ if(nullableContentType != null && nullableContentType.startsWith("multipart/form-data")) {
bool hasFields = false;
MultipartRequest mp = MultipartRequest(null, null);
if(hasFields)
@@ -162,7 +162,7 @@ class PetApi {
postBody,
headerParams,
formParams,
- contentType,
+ nullableContentType,
authNames);
return response;
}
@@ -203,10 +203,10 @@ class PetApi {
List contentTypes = [];
- String contentType = contentTypes.isNotEmpty ? contentTypes[0] : "application/json";
+ String nullableContentType = contentTypes.isNotEmpty ? contentTypes[0] : null;
List authNames = ["petstore_auth"];
- if(contentType.startsWith("multipart/form-data")) {
+ if(nullableContentType != null && nullableContentType.startsWith("multipart/form-data")) {
bool hasFields = false;
MultipartRequest mp = MultipartRequest(null, null);
if(hasFields)
@@ -221,7 +221,7 @@ class PetApi {
postBody,
headerParams,
formParams,
- contentType,
+ nullableContentType,
authNames);
return response;
}
@@ -261,10 +261,10 @@ class PetApi {
List contentTypes = [];
- String contentType = contentTypes.isNotEmpty ? contentTypes[0] : "application/json";
+ String nullableContentType = contentTypes.isNotEmpty ? contentTypes[0] : null;
List authNames = ["api_key"];
- if(contentType.startsWith("multipart/form-data")) {
+ if(nullableContentType != null && nullableContentType.startsWith("multipart/form-data")) {
bool hasFields = false;
MultipartRequest mp = MultipartRequest(null, null);
if(hasFields)
@@ -279,7 +279,7 @@ class PetApi {
postBody,
headerParams,
formParams,
- contentType,
+ nullableContentType,
authNames);
return response;
}
@@ -319,10 +319,10 @@ class PetApi {
List contentTypes = ["application/json","application/xml"];
- String contentType = contentTypes.isNotEmpty ? contentTypes[0] : "application/json";
+ String nullableContentType = contentTypes.isNotEmpty ? contentTypes[0] : null;
List authNames = ["petstore_auth"];
- if(contentType.startsWith("multipart/form-data")) {
+ if(nullableContentType != null && nullableContentType.startsWith("multipart/form-data")) {
bool hasFields = false;
MultipartRequest mp = MultipartRequest(null, null);
if(hasFields)
@@ -337,7 +337,7 @@ class PetApi {
postBody,
headerParams,
formParams,
- contentType,
+ nullableContentType,
authNames);
return response;
}
@@ -376,10 +376,10 @@ class PetApi {
List contentTypes = ["application/x-www-form-urlencoded"];
- String contentType = contentTypes.isNotEmpty ? contentTypes[0] : "application/json";
+ String nullableContentType = contentTypes.isNotEmpty ? contentTypes[0] : null;
List authNames = ["petstore_auth"];
- if(contentType.startsWith("multipart/form-data")) {
+ if(nullableContentType != null && nullableContentType.startsWith("multipart/form-data")) {
bool hasFields = false;
MultipartRequest mp = MultipartRequest(null, null);
if (name != null) {
@@ -406,7 +406,7 @@ class PetApi {
postBody,
headerParams,
formParams,
- contentType,
+ nullableContentType,
authNames);
return response;
}
@@ -445,10 +445,10 @@ class PetApi {
List contentTypes = ["multipart/form-data"];
- String contentType = contentTypes.isNotEmpty ? contentTypes[0] : "application/json";
+ String nullableContentType = contentTypes.isNotEmpty ? contentTypes[0] : null;
List authNames = ["petstore_auth"];
- if(contentType.startsWith("multipart/form-data")) {
+ if(nullableContentType != null && nullableContentType.startsWith("multipart/form-data")) {
bool hasFields = false;
MultipartRequest mp = MultipartRequest(null, null);
if (additionalMetadata != null) {
@@ -474,7 +474,7 @@ class PetApi {
postBody,
headerParams,
formParams,
- contentType,
+ nullableContentType,
authNames);
return response;
}
diff --git a/samples/client/petstore/dart2/openapi/lib/api/store_api.dart b/samples/client/petstore/dart2/openapi/lib/api/store_api.dart
index 3b48cbbc4a3b..10dc4a35b85a 100644
--- a/samples/client/petstore/dart2/openapi/lib/api/store_api.dart
+++ b/samples/client/petstore/dart2/openapi/lib/api/store_api.dart
@@ -28,10 +28,10 @@ class StoreApi {
List contentTypes = [];
- String contentType = contentTypes.isNotEmpty ? contentTypes[0] : "application/json";
+ String nullableContentType = contentTypes.isNotEmpty ? contentTypes[0] : null;
List authNames = [];
- if(contentType.startsWith("multipart/form-data")) {
+ if(nullableContentType != null && nullableContentType.startsWith("multipart/form-data")) {
bool hasFields = false;
MultipartRequest mp = MultipartRequest(null, null);
if(hasFields)
@@ -46,7 +46,7 @@ class StoreApi {
postBody,
headerParams,
formParams,
- contentType,
+ nullableContentType,
authNames);
return response;
}
@@ -82,10 +82,10 @@ class StoreApi {
List contentTypes = [];
- String contentType = contentTypes.isNotEmpty ? contentTypes[0] : "application/json";
+ String nullableContentType = contentTypes.isNotEmpty ? contentTypes[0] : null;
List authNames = ["api_key"];
- if(contentType.startsWith("multipart/form-data")) {
+ if(nullableContentType != null && nullableContentType.startsWith("multipart/form-data")) {
bool hasFields = false;
MultipartRequest mp = MultipartRequest(null, null);
if(hasFields)
@@ -100,7 +100,7 @@ class StoreApi {
postBody,
headerParams,
formParams,
- contentType,
+ nullableContentType,
authNames);
return response;
}
@@ -141,10 +141,10 @@ class StoreApi {
List contentTypes = [];
- String contentType = contentTypes.isNotEmpty ? contentTypes[0] : "application/json";
+ String nullableContentType = contentTypes.isNotEmpty ? contentTypes[0] : null;
List authNames = [];
- if(contentType.startsWith("multipart/form-data")) {
+ if(nullableContentType != null && nullableContentType.startsWith("multipart/form-data")) {
bool hasFields = false;
MultipartRequest mp = MultipartRequest(null, null);
if(hasFields)
@@ -159,7 +159,7 @@ class StoreApi {
postBody,
headerParams,
formParams,
- contentType,
+ nullableContentType,
authNames);
return response;
}
@@ -199,10 +199,10 @@ class StoreApi {
List contentTypes = [];
- String contentType = contentTypes.isNotEmpty ? contentTypes[0] : "application/json";
+ String nullableContentType = contentTypes.isNotEmpty ? contentTypes[0] : null;
List authNames = [];
- if(contentType.startsWith("multipart/form-data")) {
+ if(nullableContentType != null && nullableContentType.startsWith("multipart/form-data")) {
bool hasFields = false;
MultipartRequest mp = MultipartRequest(null, null);
if(hasFields)
@@ -217,7 +217,7 @@ class StoreApi {
postBody,
headerParams,
formParams,
- contentType,
+ nullableContentType,
authNames);
return response;
}
diff --git a/samples/client/petstore/dart2/openapi/lib/api/user_api.dart b/samples/client/petstore/dart2/openapi/lib/api/user_api.dart
index 5a35ba394c08..a940ca410713 100644
--- a/samples/client/petstore/dart2/openapi/lib/api/user_api.dart
+++ b/samples/client/petstore/dart2/openapi/lib/api/user_api.dart
@@ -28,10 +28,10 @@ class UserApi {
List contentTypes = [];
- String contentType = contentTypes.isNotEmpty ? contentTypes[0] : "application/json";
+ String nullableContentType = contentTypes.isNotEmpty ? contentTypes[0] : null;
List authNames = [];
- if(contentType.startsWith("multipart/form-data")) {
+ if(nullableContentType != null && nullableContentType.startsWith("multipart/form-data")) {
bool hasFields = false;
MultipartRequest mp = MultipartRequest(null, null);
if(hasFields)
@@ -46,7 +46,7 @@ class UserApi {
postBody,
headerParams,
formParams,
- contentType,
+ nullableContentType,
authNames);
return response;
}
@@ -85,10 +85,10 @@ class UserApi {
List contentTypes = [];
- String contentType = contentTypes.isNotEmpty ? contentTypes[0] : "application/json";
+ String nullableContentType = contentTypes.isNotEmpty ? contentTypes[0] : null;
List authNames = [];
- if(contentType.startsWith("multipart/form-data")) {
+ if(nullableContentType != null && nullableContentType.startsWith("multipart/form-data")) {
bool hasFields = false;
MultipartRequest mp = MultipartRequest(null, null);
if(hasFields)
@@ -103,7 +103,7 @@ class UserApi {
postBody,
headerParams,
formParams,
- contentType,
+ nullableContentType,
authNames);
return response;
}
@@ -142,10 +142,10 @@ class UserApi {
List contentTypes = [];
- String contentType = contentTypes.isNotEmpty ? contentTypes[0] : "application/json";
+ String nullableContentType = contentTypes.isNotEmpty ? contentTypes[0] : null;
List authNames = [];
- if(contentType.startsWith("multipart/form-data")) {
+ if(nullableContentType != null && nullableContentType.startsWith("multipart/form-data")) {
bool hasFields = false;
MultipartRequest mp = MultipartRequest(null, null);
if(hasFields)
@@ -160,7 +160,7 @@ class UserApi {
postBody,
headerParams,
formParams,
- contentType,
+ nullableContentType,
authNames);
return response;
}
@@ -199,10 +199,10 @@ class UserApi {
List contentTypes = [];
- String contentType = contentTypes.isNotEmpty ? contentTypes[0] : "application/json";
+ String nullableContentType = contentTypes.isNotEmpty ? contentTypes[0] : null;
List authNames = [];
- if(contentType.startsWith("multipart/form-data")) {
+ if(nullableContentType != null && nullableContentType.startsWith("multipart/form-data")) {
bool hasFields = false;
MultipartRequest mp = MultipartRequest(null, null);
if(hasFields)
@@ -217,7 +217,7 @@ class UserApi {
postBody,
headerParams,
formParams,
- contentType,
+ nullableContentType,
authNames);
return response;
}
@@ -256,10 +256,10 @@ class UserApi {
List contentTypes = [];
- String contentType = contentTypes.isNotEmpty ? contentTypes[0] : "application/json";
+ String nullableContentType = contentTypes.isNotEmpty ? contentTypes[0] : null;
List authNames = [];
- if(contentType.startsWith("multipart/form-data")) {
+ if(nullableContentType != null && nullableContentType.startsWith("multipart/form-data")) {
bool hasFields = false;
MultipartRequest mp = MultipartRequest(null, null);
if(hasFields)
@@ -274,7 +274,7 @@ class UserApi {
postBody,
headerParams,
formParams,
- contentType,
+ nullableContentType,
authNames);
return response;
}
@@ -319,10 +319,10 @@ class UserApi {
List contentTypes = [];
- String contentType = contentTypes.isNotEmpty ? contentTypes[0] : "application/json";
+ String nullableContentType = contentTypes.isNotEmpty ? contentTypes[0] : null;
List authNames = [];
- if(contentType.startsWith("multipart/form-data")) {
+ if(nullableContentType != null && nullableContentType.startsWith("multipart/form-data")) {
bool hasFields = false;
MultipartRequest mp = MultipartRequest(null, null);
if(hasFields)
@@ -337,7 +337,7 @@ class UserApi {
postBody,
headerParams,
formParams,
- contentType,
+ nullableContentType,
authNames);
return response;
}
@@ -374,10 +374,10 @@ class UserApi {
List contentTypes = [];
- String contentType = contentTypes.isNotEmpty ? contentTypes[0] : "application/json";
+ String nullableContentType = contentTypes.isNotEmpty ? contentTypes[0] : null;
List authNames = [];
- if(contentType.startsWith("multipart/form-data")) {
+ if(nullableContentType != null && nullableContentType.startsWith("multipart/form-data")) {
bool hasFields = false;
MultipartRequest mp = MultipartRequest(null, null);
if(hasFields)
@@ -392,7 +392,7 @@ class UserApi {
postBody,
headerParams,
formParams,
- contentType,
+ nullableContentType,
authNames);
return response;
}
@@ -434,10 +434,10 @@ class UserApi {
List contentTypes = [];
- String contentType = contentTypes.isNotEmpty ? contentTypes[0] : "application/json";
+ String nullableContentType = contentTypes.isNotEmpty ? contentTypes[0] : null;
List authNames = [];
- if(contentType.startsWith("multipart/form-data")) {
+ if(nullableContentType != null && nullableContentType.startsWith("multipart/form-data")) {
bool hasFields = false;
MultipartRequest mp = MultipartRequest(null, null);
if(hasFields)
@@ -452,7 +452,7 @@ class UserApi {
postBody,
headerParams,
formParams,
- contentType,
+ nullableContentType,
authNames);
return response;
}
diff --git a/samples/client/petstore/dart2/openapi/lib/api_client.dart b/samples/client/petstore/dart2/openapi/lib/api_client.dart
index 793ac6a73410..d68c9691879f 100644
--- a/samples/client/petstore/dart2/openapi/lib/api_client.dart
+++ b/samples/client/petstore/dart2/openapi/lib/api_client.dart
@@ -100,7 +100,7 @@ class ApiClient {
Object body,
Map headerParams,
Map formParams,
- String contentType,
+ String nullableContentType,
List authNames) async {
_updateParamsForAuth(authNames, queryParams, headerParams);
@@ -116,7 +116,10 @@ class ApiClient {
String url = basePath + path + queryString;
headerParams.addAll(_defaultHeaderMap);
- headerParams['Content-Type'] = contentType;
+ if (nullableContentType != null) {
+ final contentType = nullableContentType;
+ headerParams['Content-Type'] = contentType;
+ }
if(body is MultipartRequest) {
var request = MultipartRequest(method, Uri.parse(url));
@@ -127,20 +130,21 @@ class ApiClient {
var response = await client.send(request);
return Response.fromStream(response);
} else {
- var msgBody = contentType == "application/x-www-form-urlencoded" ? formParams : serialize(body);
+ var msgBody = nullableContentType == "application/x-www-form-urlencoded" ? formParams : serialize(body);
+ final nullableHeaderParams = (headerParams.isEmpty)? null: headerParams;
switch(method) {
case "POST":
- return client.post(url, headers: headerParams, body: msgBody);
+ return client.post(url, headers: nullableHeaderParams, body: msgBody);
case "PUT":
- return client.put(url, headers: headerParams, body: msgBody);
+ return client.put(url, headers: nullableHeaderParams, body: msgBody);
case "DELETE":
- return client.delete(url, headers: headerParams);
+ return client.delete(url, headers: nullableHeaderParams);
case "PATCH":
- return client.patch(url, headers: headerParams, body: msgBody);
+ return client.patch(url, headers: nullableHeaderParams, body: msgBody);
case "HEAD":
- return client.head(url, headers: headerParams);
+ return client.head(url, headers: nullableHeaderParams);
default:
- return client.get(url, headers: headerParams);
+ return client.get(url, headers: nullableHeaderParams);
}
}
}
diff --git a/samples/client/petstore/java/rest-assured/src/main/java/org/openapitools/client/model/AdditionalPropertiesAnyType.java b/samples/client/petstore/java/rest-assured/src/main/java/org/openapitools/client/model/AdditionalPropertiesAnyType.java
index aba19948f055..79c169543fde 100644
--- a/samples/client/petstore/java/rest-assured/src/main/java/org/openapitools/client/model/AdditionalPropertiesAnyType.java
+++ b/samples/client/petstore/java/rest-assured/src/main/java/org/openapitools/client/model/AdditionalPropertiesAnyType.java
@@ -25,9 +25,6 @@
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
-import javax.validation.constraints.*;
-import javax.validation.Valid;
-import org.hibernate.validator.constraints.*;
/**
* AdditionalPropertiesAnyType
diff --git a/samples/client/petstore/java/rest-assured/src/main/java/org/openapitools/client/model/AdditionalPropertiesArray.java b/samples/client/petstore/java/rest-assured/src/main/java/org/openapitools/client/model/AdditionalPropertiesArray.java
index bb35b0970ef4..e16ee861f893 100644
--- a/samples/client/petstore/java/rest-assured/src/main/java/org/openapitools/client/model/AdditionalPropertiesArray.java
+++ b/samples/client/petstore/java/rest-assured/src/main/java/org/openapitools/client/model/AdditionalPropertiesArray.java
@@ -26,9 +26,6 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import javax.validation.constraints.*;
-import javax.validation.Valid;
-import org.hibernate.validator.constraints.*;
/**
* AdditionalPropertiesArray
diff --git a/samples/client/petstore/java/rest-assured/src/main/java/org/openapitools/client/model/AdditionalPropertiesBoolean.java b/samples/client/petstore/java/rest-assured/src/main/java/org/openapitools/client/model/AdditionalPropertiesBoolean.java
index b3528f7a8722..29161b52aa16 100644
--- a/samples/client/petstore/java/rest-assured/src/main/java/org/openapitools/client/model/AdditionalPropertiesBoolean.java
+++ b/samples/client/petstore/java/rest-assured/src/main/java/org/openapitools/client/model/AdditionalPropertiesBoolean.java
@@ -25,9 +25,6 @@
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
-import javax.validation.constraints.*;
-import javax.validation.Valid;
-import org.hibernate.validator.constraints.*;
/**
* AdditionalPropertiesBoolean
diff --git a/samples/client/petstore/java/rest-assured/src/main/java/org/openapitools/client/model/AdditionalPropertiesClass.java b/samples/client/petstore/java/rest-assured/src/main/java/org/openapitools/client/model/AdditionalPropertiesClass.java
index 9b270abdb56e..a067b01ec979 100644
--- a/samples/client/petstore/java/rest-assured/src/main/java/org/openapitools/client/model/AdditionalPropertiesClass.java
+++ b/samples/client/petstore/java/rest-assured/src/main/java/org/openapitools/client/model/AdditionalPropertiesClass.java
@@ -27,9 +27,6 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import javax.validation.constraints.*;
-import javax.validation.Valid;
-import org.hibernate.validator.constraints.*;
/**
* AdditionalPropertiesClass
@@ -131,7 +128,6 @@ public AdditionalPropertiesClass putMapNumberItem(String key, BigDecimal mapNumb
* @return mapNumber
**/
@javax.annotation.Nullable
- @Valid
@ApiModelProperty(value = "")
public Map getMapNumber() {
@@ -225,7 +221,6 @@ public AdditionalPropertiesClass putMapArrayIntegerItem(String key, List> getMapArrayInteger() {
@@ -257,7 +252,6 @@ public AdditionalPropertiesClass putMapArrayAnytypeItem(String key, List