Fix map adapter
ci/woodpecker/push/woodpecker Pipeline was successful Details

This commit is contained in:
Johannes Frohnmeyer 2022-11-04 12:36:15 +01:00
parent 1ade974e31
commit 5c3a2af0a4
Signed by: Johannes
GPG Key ID: E76429612C2929F4
1 changed files with 4 additions and 3 deletions

View File

@ -133,9 +133,10 @@ public class MapAdapter extends Adapter<MapAdapter.Hydrated> {
code.add("for ($T.Entry<$T, $T> $N : (", Map.class, componentType1, componentType2, argName);
writeGet.run();
code.beginControlFlow(").entrySet())")
.add("if ($N.getKey() != null || writer.getSerializeNulls()) writer.value(", argName);
.beginControlFlow("if ($N.getKey() != null || writer.getSerializeNulls())", argName)
.add("writer.name(");
if (isEnum(componentType1)) {
code.add("$N.getKey() == null ? null : $N.getKey().name()", argName, argName);
code.add("$N.getKey() == null ? \"null\" : $N.getKey().name()", argName, argName);
} else {
code.add("$T.toString($N.getKey())", Objects.class, argName);
}
@ -145,7 +146,7 @@ public class MapAdapter extends Adapter<MapAdapter.Hydrated> {
.addStatement("if (writer.getSerializeNulls()) writer.nullValue()")
.nextControlFlow("else");
generateWrite(code, componentType2, "value" + argName, componentType2.getAnnotationMirrors(), () -> code.add("value" + argName));
code.endControlFlow().endControlFlow().addStatement("writer.endObject()");
code.endControlFlow().endControlFlow().endControlFlow().addStatement("writer.endObject()");
}
@Override