forked from loafle/openapi-generator-original
[dart-dio] Generate the correct serializers (#8357)
* only generate actually used serializers (anything used in body or response) * generate previously missing serializers for collection types * improve formatting
This commit is contained in:
parent
3b6c2b2342
commit
c43234711a
@ -289,6 +289,7 @@ public class DartDioClientCodegen extends DartClientCodegen {
|
|||||||
Map<String, Object> operations = (Map<String, Object>) objs.get("operations");
|
Map<String, Object> operations = (Map<String, Object>) objs.get("operations");
|
||||||
List<CodegenOperation> operationList = (List<CodegenOperation>) operations.get("operation");
|
List<CodegenOperation> operationList = (List<CodegenOperation>) operations.get("operation");
|
||||||
|
|
||||||
|
Set<Map<String, Object>> serializers = new HashSet<>();
|
||||||
Set<String> modelImports = new HashSet<>();
|
Set<String> modelImports = new HashSet<>();
|
||||||
Set<String> fullImports = new HashSet<>();
|
Set<String> fullImports = new HashSet<>();
|
||||||
|
|
||||||
@ -314,6 +315,13 @@ public class DartDioClientCodegen extends DartClientCodegen {
|
|||||||
param.baseType = "MultipartFile";
|
param.baseType = "MultipartFile";
|
||||||
param.dataType = "MultipartFile";
|
param.dataType = "MultipartFile";
|
||||||
}
|
}
|
||||||
|
if (param.isContainer) {
|
||||||
|
final Map<String, Object> serializer = new HashMap<>();
|
||||||
|
serializer.put("isArray", param.isArray);
|
||||||
|
serializer.put("isMap", param.isMap);
|
||||||
|
serializer.put("baseType", param.baseType);
|
||||||
|
serializers.add(serializer);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
op.vendorExtensions.put("x-is-json", isJson);
|
op.vendorExtensions.put("x-is-json", isJson);
|
||||||
@ -336,10 +344,19 @@ public class DartDioClientCodegen extends DartClientCodegen {
|
|||||||
}
|
}
|
||||||
modelImports.addAll(imports);
|
modelImports.addAll(imports);
|
||||||
op.imports = imports;
|
op.imports = imports;
|
||||||
|
|
||||||
|
if (op.returnContainer != null) {
|
||||||
|
final Map<String, Object> serializer = new HashMap<>();
|
||||||
|
serializer.put("isArray", Objects.equals("array", op.returnContainer));
|
||||||
|
serializer.put("isMap", Objects.equals("map", op.returnContainer));
|
||||||
|
serializer.put("baseType", op.returnBaseType);
|
||||||
|
serializers.add(serializer);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
objs.put("modelImports", modelImports);
|
objs.put("modelImports", modelImports);
|
||||||
objs.put("fullImports", fullImports);
|
objs.put("fullImports", fullImports);
|
||||||
|
objs.put("serializers", serializers);
|
||||||
|
|
||||||
return objs;
|
return objs;
|
||||||
}
|
}
|
||||||
|
@ -10,25 +10,26 @@ import 'package:built_value/standard_json_plugin.dart';
|
|||||||
import 'package:{{pubName}}/local_date_serializer.dart';{{/timeMachine}}
|
import 'package:{{pubName}}/local_date_serializer.dart';{{/timeMachine}}
|
||||||
{{#models}}{{#model}}import 'package:{{pubName}}/model/{{classFilename}}.dart';
|
{{#models}}{{#model}}import 'package:{{pubName}}/model/{{classFilename}}.dart';
|
||||||
{{/model}}{{/models}}
|
{{/model}}{{/models}}
|
||||||
|
|
||||||
part 'serializers.g.dart';
|
part 'serializers.g.dart';
|
||||||
|
|
||||||
@SerializersFor(const [
|
@SerializersFor(const [{{#models}}{{#model}}
|
||||||
{{#models}}{{#model}}{{classname}},
|
{{classname}},{{/model}}{{/models}}
|
||||||
{{/model}}{{/models}}
|
|
||||||
])
|
])
|
||||||
|
Serializers serializers = (_$serializers.toBuilder(){{#apiInfo}}{{#apis}}{{#serializers}}
|
||||||
//allow all models to be serialized within a list
|
..addBuilderFactory(
|
||||||
Serializers serializers = (_$serializers.toBuilder()
|
{{#isArray}}
|
||||||
{{#models}}{{#model}}..addBuilderFactory(
|
const FullType(BuiltList, [FullType({{baseType}})]),
|
||||||
const FullType(BuiltList, const [const FullType({{classname}})]),
|
() => ListBuilder<{{baseType}}>(),
|
||||||
() => new ListBuilder<{{classname}}>())
|
{{/isArray}}
|
||||||
{{/model}}{{/models}}
|
{{#isMap}}
|
||||||
..add(Iso8601DateTimeSerializer())
|
const FullType(BuiltMap, [FullType(String), FullType({{baseType}})]),
|
||||||
).build();
|
() => MapBuilder<String, {{baseType}}>(),
|
||||||
|
{{/isMap}}
|
||||||
|
){{/serializers}}{{/apis}}{{/apiInfo}}{{#timeMachine}}
|
||||||
|
..add(OffsetDateSerializer())
|
||||||
|
..add(OffsetDateTimeSerializer()){{/timeMachine}}
|
||||||
|
..add(Iso8601DateTimeSerializer()))
|
||||||
|
.build();
|
||||||
|
|
||||||
Serializers standardSerializers =
|
Serializers standardSerializers =
|
||||||
(serializers.toBuilder()
|
(serializers.toBuilder()..addPlugin(StandardJsonPlugin())).build();
|
||||||
{{#timeMachine}}..add(OffsetDateSerializer())
|
|
||||||
..add(OffsetDateTimeSerializer())
|
|
||||||
{{/timeMachine}}..addPlugin(StandardJsonPlugin())).build();
|
|
||||||
|
@ -20,43 +20,31 @@ import 'package:openapi/model/pet.dart';
|
|||||||
import 'package:openapi/model/tag.dart';
|
import 'package:openapi/model/tag.dart';
|
||||||
import 'package:openapi/model/user.dart';
|
import 'package:openapi/model/user.dart';
|
||||||
|
|
||||||
|
|
||||||
part 'serializers.g.dart';
|
part 'serializers.g.dart';
|
||||||
|
|
||||||
@SerializersFor(const [
|
@SerializersFor(const [
|
||||||
ApiResponse,
|
ApiResponse,
|
||||||
Category,
|
Category,
|
||||||
Order,
|
Order,
|
||||||
Pet,
|
Pet,
|
||||||
Tag,
|
Tag,
|
||||||
User,
|
User,
|
||||||
|
|
||||||
])
|
])
|
||||||
|
|
||||||
//allow all models to be serialized within a list
|
|
||||||
Serializers serializers = (_$serializers.toBuilder()
|
Serializers serializers = (_$serializers.toBuilder()
|
||||||
..addBuilderFactory(
|
..addBuilderFactory(
|
||||||
const FullType(BuiltList, const [const FullType(ApiResponse)]),
|
const FullType(BuiltList, [FullType(Pet)]),
|
||||||
() => new ListBuilder<ApiResponse>())
|
() => ListBuilder<Pet>(),
|
||||||
..addBuilderFactory(
|
)
|
||||||
const FullType(BuiltList, const [const FullType(Category)]),
|
..addBuilderFactory(
|
||||||
() => new ListBuilder<Category>())
|
const FullType(BuiltMap, [FullType(String), FullType(int)]),
|
||||||
..addBuilderFactory(
|
() => MapBuilder<String, int>(),
|
||||||
const FullType(BuiltList, const [const FullType(Order)]),
|
)
|
||||||
() => new ListBuilder<Order>())
|
..addBuilderFactory(
|
||||||
..addBuilderFactory(
|
const FullType(BuiltList, [FullType(User)]),
|
||||||
const FullType(BuiltList, const [const FullType(Pet)]),
|
() => ListBuilder<User>(),
|
||||||
() => new ListBuilder<Pet>())
|
)
|
||||||
..addBuilderFactory(
|
..add(Iso8601DateTimeSerializer()))
|
||||||
const FullType(BuiltList, const [const FullType(Tag)]),
|
.build();
|
||||||
() => new ListBuilder<Tag>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(User)]),
|
|
||||||
() => new ListBuilder<User>())
|
|
||||||
|
|
||||||
..add(Iso8601DateTimeSerializer())
|
|
||||||
).build();
|
|
||||||
|
|
||||||
Serializers standardSerializers =
|
Serializers standardSerializers =
|
||||||
(serializers.toBuilder()
|
(serializers.toBuilder()..addPlugin(StandardJsonPlugin())).build();
|
||||||
..addPlugin(StandardJsonPlugin())).build();
|
|
||||||
|
@ -20,43 +20,31 @@ import 'package:openapi/model/pet.dart';
|
|||||||
import 'package:openapi/model/tag.dart';
|
import 'package:openapi/model/tag.dart';
|
||||||
import 'package:openapi/model/user.dart';
|
import 'package:openapi/model/user.dart';
|
||||||
|
|
||||||
|
|
||||||
part 'serializers.g.dart';
|
part 'serializers.g.dart';
|
||||||
|
|
||||||
@SerializersFor(const [
|
@SerializersFor(const [
|
||||||
ApiResponse,
|
ApiResponse,
|
||||||
Category,
|
Category,
|
||||||
Order,
|
Order,
|
||||||
Pet,
|
Pet,
|
||||||
Tag,
|
Tag,
|
||||||
User,
|
User,
|
||||||
|
|
||||||
])
|
])
|
||||||
|
|
||||||
//allow all models to be serialized within a list
|
|
||||||
Serializers serializers = (_$serializers.toBuilder()
|
Serializers serializers = (_$serializers.toBuilder()
|
||||||
..addBuilderFactory(
|
..addBuilderFactory(
|
||||||
const FullType(BuiltList, const [const FullType(ApiResponse)]),
|
const FullType(BuiltList, [FullType(Pet)]),
|
||||||
() => new ListBuilder<ApiResponse>())
|
() => ListBuilder<Pet>(),
|
||||||
..addBuilderFactory(
|
)
|
||||||
const FullType(BuiltList, const [const FullType(Category)]),
|
..addBuilderFactory(
|
||||||
() => new ListBuilder<Category>())
|
const FullType(BuiltMap, [FullType(String), FullType(int)]),
|
||||||
..addBuilderFactory(
|
() => MapBuilder<String, int>(),
|
||||||
const FullType(BuiltList, const [const FullType(Order)]),
|
)
|
||||||
() => new ListBuilder<Order>())
|
..addBuilderFactory(
|
||||||
..addBuilderFactory(
|
const FullType(BuiltList, [FullType(User)]),
|
||||||
const FullType(BuiltList, const [const FullType(Pet)]),
|
() => ListBuilder<User>(),
|
||||||
() => new ListBuilder<Pet>())
|
)
|
||||||
..addBuilderFactory(
|
..add(Iso8601DateTimeSerializer()))
|
||||||
const FullType(BuiltList, const [const FullType(Tag)]),
|
.build();
|
||||||
() => new ListBuilder<Tag>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(User)]),
|
|
||||||
() => new ListBuilder<User>())
|
|
||||||
|
|
||||||
..add(Iso8601DateTimeSerializer())
|
|
||||||
).build();
|
|
||||||
|
|
||||||
Serializers standardSerializers =
|
Serializers standardSerializers =
|
||||||
(serializers.toBuilder()
|
(serializers.toBuilder()..addPlugin(StandardJsonPlugin())).build();
|
||||||
..addPlugin(StandardJsonPlugin())).build();
|
|
||||||
|
@ -57,191 +57,72 @@ import 'package:openapi/model/special_model_name.dart';
|
|||||||
import 'package:openapi/model/tag.dart';
|
import 'package:openapi/model/tag.dart';
|
||||||
import 'package:openapi/model/user.dart';
|
import 'package:openapi/model/user.dart';
|
||||||
|
|
||||||
|
|
||||||
part 'serializers.g.dart';
|
part 'serializers.g.dart';
|
||||||
|
|
||||||
@SerializersFor(const [
|
@SerializersFor(const [
|
||||||
AdditionalPropertiesClass,
|
AdditionalPropertiesClass,
|
||||||
Animal,
|
Animal,
|
||||||
ApiResponse,
|
ApiResponse,
|
||||||
ArrayOfArrayOfNumberOnly,
|
ArrayOfArrayOfNumberOnly,
|
||||||
ArrayOfNumberOnly,
|
ArrayOfNumberOnly,
|
||||||
ArrayTest,
|
ArrayTest,
|
||||||
Capitalization,
|
Capitalization,
|
||||||
Cat,
|
Cat,
|
||||||
CatAllOf,
|
CatAllOf,
|
||||||
Category,
|
Category,
|
||||||
ClassModel,
|
ClassModel,
|
||||||
Dog,
|
Dog,
|
||||||
DogAllOf,
|
DogAllOf,
|
||||||
EnumArrays,
|
EnumArrays,
|
||||||
EnumTest,
|
EnumTest,
|
||||||
FileSchemaTestClass,
|
FileSchemaTestClass,
|
||||||
Foo,
|
Foo,
|
||||||
FormatTest,
|
FormatTest,
|
||||||
HasOnlyReadOnly,
|
HasOnlyReadOnly,
|
||||||
HealthCheckResult,
|
HealthCheckResult,
|
||||||
InlineResponseDefault,
|
InlineResponseDefault,
|
||||||
MapTest,
|
MapTest,
|
||||||
MixedPropertiesAndAdditionalPropertiesClass,
|
MixedPropertiesAndAdditionalPropertiesClass,
|
||||||
Model200Response,
|
Model200Response,
|
||||||
ModelClient,
|
ModelClient,
|
||||||
ModelEnumClass,
|
ModelEnumClass,
|
||||||
ModelFile,
|
ModelFile,
|
||||||
ModelList,
|
ModelList,
|
||||||
ModelReturn,
|
ModelReturn,
|
||||||
Name,
|
Name,
|
||||||
NullableClass,
|
NullableClass,
|
||||||
NumberOnly,
|
NumberOnly,
|
||||||
Order,
|
Order,
|
||||||
OuterComposite,
|
OuterComposite,
|
||||||
OuterEnum,
|
OuterEnum,
|
||||||
OuterEnumDefaultValue,
|
OuterEnumDefaultValue,
|
||||||
OuterEnumInteger,
|
OuterEnumInteger,
|
||||||
OuterEnumIntegerDefaultValue,
|
OuterEnumIntegerDefaultValue,
|
||||||
Pet,
|
Pet,
|
||||||
ReadOnlyFirst,
|
ReadOnlyFirst,
|
||||||
SpecialModelName,
|
SpecialModelName,
|
||||||
Tag,
|
Tag,
|
||||||
User,
|
User,
|
||||||
|
|
||||||
])
|
])
|
||||||
|
|
||||||
//allow all models to be serialized within a list
|
|
||||||
Serializers serializers = (_$serializers.toBuilder()
|
Serializers serializers = (_$serializers.toBuilder()
|
||||||
..addBuilderFactory(
|
..addBuilderFactory(
|
||||||
const FullType(BuiltList, const [const FullType(AdditionalPropertiesClass)]),
|
const FullType(BuiltMap, [FullType(String), FullType(String)]),
|
||||||
() => new ListBuilder<AdditionalPropertiesClass>())
|
() => MapBuilder<String, String>(),
|
||||||
..addBuilderFactory(
|
)
|
||||||
const FullType(BuiltList, const [const FullType(Animal)]),
|
..addBuilderFactory(
|
||||||
() => new ListBuilder<Animal>())
|
const FullType(BuiltList, [FullType(Pet)]),
|
||||||
..addBuilderFactory(
|
() => ListBuilder<Pet>(),
|
||||||
const FullType(BuiltList, const [const FullType(ApiResponse)]),
|
)
|
||||||
() => new ListBuilder<ApiResponse>())
|
..addBuilderFactory(
|
||||||
..addBuilderFactory(
|
const FullType(BuiltMap, [FullType(String), FullType(int)]),
|
||||||
const FullType(BuiltList, const [const FullType(ArrayOfArrayOfNumberOnly)]),
|
() => MapBuilder<String, int>(),
|
||||||
() => new ListBuilder<ArrayOfArrayOfNumberOnly>())
|
)
|
||||||
..addBuilderFactory(
|
..addBuilderFactory(
|
||||||
const FullType(BuiltList, const [const FullType(ArrayOfNumberOnly)]),
|
const FullType(BuiltList, [FullType(User)]),
|
||||||
() => new ListBuilder<ArrayOfNumberOnly>())
|
() => ListBuilder<User>(),
|
||||||
..addBuilderFactory(
|
)
|
||||||
const FullType(BuiltList, const [const FullType(ArrayTest)]),
|
..add(Iso8601DateTimeSerializer()))
|
||||||
() => new ListBuilder<ArrayTest>())
|
.build();
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(Capitalization)]),
|
|
||||||
() => new ListBuilder<Capitalization>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(Cat)]),
|
|
||||||
() => new ListBuilder<Cat>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(CatAllOf)]),
|
|
||||||
() => new ListBuilder<CatAllOf>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(Category)]),
|
|
||||||
() => new ListBuilder<Category>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(ClassModel)]),
|
|
||||||
() => new ListBuilder<ClassModel>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(Dog)]),
|
|
||||||
() => new ListBuilder<Dog>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(DogAllOf)]),
|
|
||||||
() => new ListBuilder<DogAllOf>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(EnumArrays)]),
|
|
||||||
() => new ListBuilder<EnumArrays>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(EnumTest)]),
|
|
||||||
() => new ListBuilder<EnumTest>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(FileSchemaTestClass)]),
|
|
||||||
() => new ListBuilder<FileSchemaTestClass>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(Foo)]),
|
|
||||||
() => new ListBuilder<Foo>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(FormatTest)]),
|
|
||||||
() => new ListBuilder<FormatTest>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(HasOnlyReadOnly)]),
|
|
||||||
() => new ListBuilder<HasOnlyReadOnly>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(HealthCheckResult)]),
|
|
||||||
() => new ListBuilder<HealthCheckResult>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(InlineResponseDefault)]),
|
|
||||||
() => new ListBuilder<InlineResponseDefault>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(MapTest)]),
|
|
||||||
() => new ListBuilder<MapTest>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(MixedPropertiesAndAdditionalPropertiesClass)]),
|
|
||||||
() => new ListBuilder<MixedPropertiesAndAdditionalPropertiesClass>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(Model200Response)]),
|
|
||||||
() => new ListBuilder<Model200Response>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(ModelClient)]),
|
|
||||||
() => new ListBuilder<ModelClient>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(ModelEnumClass)]),
|
|
||||||
() => new ListBuilder<ModelEnumClass>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(ModelFile)]),
|
|
||||||
() => new ListBuilder<ModelFile>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(ModelList)]),
|
|
||||||
() => new ListBuilder<ModelList>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(ModelReturn)]),
|
|
||||||
() => new ListBuilder<ModelReturn>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(Name)]),
|
|
||||||
() => new ListBuilder<Name>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(NullableClass)]),
|
|
||||||
() => new ListBuilder<NullableClass>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(NumberOnly)]),
|
|
||||||
() => new ListBuilder<NumberOnly>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(Order)]),
|
|
||||||
() => new ListBuilder<Order>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(OuterComposite)]),
|
|
||||||
() => new ListBuilder<OuterComposite>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(OuterEnum)]),
|
|
||||||
() => new ListBuilder<OuterEnum>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(OuterEnumDefaultValue)]),
|
|
||||||
() => new ListBuilder<OuterEnumDefaultValue>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(OuterEnumInteger)]),
|
|
||||||
() => new ListBuilder<OuterEnumInteger>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(OuterEnumIntegerDefaultValue)]),
|
|
||||||
() => new ListBuilder<OuterEnumIntegerDefaultValue>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(Pet)]),
|
|
||||||
() => new ListBuilder<Pet>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(ReadOnlyFirst)]),
|
|
||||||
() => new ListBuilder<ReadOnlyFirst>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(SpecialModelName)]),
|
|
||||||
() => new ListBuilder<SpecialModelName>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(Tag)]),
|
|
||||||
() => new ListBuilder<Tag>())
|
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltList, const [const FullType(User)]),
|
|
||||||
() => new ListBuilder<User>())
|
|
||||||
|
|
||||||
..add(Iso8601DateTimeSerializer())
|
|
||||||
).build();
|
|
||||||
|
|
||||||
Serializers standardSerializers =
|
Serializers standardSerializers =
|
||||||
(serializers.toBuilder()
|
(serializers.toBuilder()..addPlugin(StandardJsonPlugin())).build();
|
||||||
..addPlugin(StandardJsonPlugin())).build();
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user