File tree 1 file changed +13
-4
lines changed
core/src/main/java/com/cosium/json_schema_to_java_record
1 file changed +13
-4
lines changed Original file line number Diff line number Diff line change @@ -155,18 +155,27 @@ public TypeName writeJavaType(
155
155
156
156
constructorBuilder .addParameter (parameterSpecBuilder .build ());
157
157
158
- if (!propertyType .isPrimitive () && required .contains (propertyName )) {
159
- if (isList (propertyType )) {
158
+ boolean nonNull = required .contains (propertyName );
159
+ if (isList (propertyType )) {
160
+ if (nonNull ) {
160
161
compactConstructorBuilder .addStatement (
161
- "$N = $T.ofNullable($N).orElseGet($T::of)" ,
162
+ "$N = $T.ofNullable($N).map($T::copyOf). orElseGet($T::of)" ,
162
163
propertyName ,
163
164
Optional .class ,
164
165
propertyName ,
166
+ List .class ,
165
167
List .class );
166
168
} else {
167
169
compactConstructorBuilder .addStatement (
168
- "$T.requireNonNull($N)" , Objects .class , propertyName );
170
+ "$N = $T.ofNullable($N).map($T::copyOf).orElse(null)" ,
171
+ propertyName ,
172
+ Optional .class ,
173
+ propertyName ,
174
+ List .class );
169
175
}
176
+ } else if (!propertyType .isPrimitive () && nonNull ) {
177
+ compactConstructorBuilder .addStatement (
178
+ "$T.requireNonNull($N)" , Objects .class , propertyName );
170
179
}
171
180
}
172
181
typeBuilder
You can’t perform that action at this time.
0 commit comments