InstanceProcessor: skip missing
ci/woodpecker/push/woodpecker Pipeline was successful
Details
ci/woodpecker/push/woodpecker Pipeline was successful
Details
This commit is contained in:
parent
d1d9707add
commit
b12c7ddd37
|
@ -122,6 +122,7 @@ public class InstanceProcessor extends GProcessor {
|
|||
for (Property<?> param : properties.names) {
|
||||
isEmpty = false;
|
||||
code.addStatement("$T _$N = $L", param.getType(), param.getName(), TypeHelper.getDefaultValue(param.getType()));
|
||||
code.addStatement("boolean has_$N = false", param.getName());
|
||||
}
|
||||
if (isEmpty) {
|
||||
code.addStatement("reader.skipValue()");
|
||||
|
@ -130,20 +131,21 @@ public class InstanceProcessor extends GProcessor {
|
|||
.beginControlFlow("while (reader.hasNext())")
|
||||
.beginControlFlow("switch (reader.nextName())");
|
||||
for (Property<?> param : properties.names) {
|
||||
code.beginControlFlow("case $S ->", getSerializedName(param));
|
||||
if (param.getType().getKind().isPrimitive()) {
|
||||
code.add("case $S -> _$N = ", getSerializedName(param), param.getName());
|
||||
code.add("_$N = ", param.getName());
|
||||
Adapters.generateRead(param, spec, code, typeVariables, otherAdapters, message);
|
||||
code.add(";\n");
|
||||
} else {
|
||||
code.beginControlFlow("case $S ->", getSerializedName(param))
|
||||
.beginControlFlow("if (reader.peek() == $T.NULL)", Cl.GSON_TOKEN)
|
||||
code.beginControlFlow("if (reader.peek() == $T.NULL)", Cl.GSON_TOKEN)
|
||||
.addStatement("reader.nextNull()")
|
||||
.addStatement("_$N = null", param.getName());
|
||||
code.unindent().add("} else _$N = ", param.getName());
|
||||
Adapters.generateRead(param, spec, code, typeVariables, otherAdapters, message);
|
||||
code.add(";\n")
|
||||
.endControlFlow();
|
||||
code.add(";\n");
|
||||
}
|
||||
code.addStatement("has_$N = true", param.getName());
|
||||
code.endControlFlow();
|
||||
}
|
||||
code.add("default -> ")
|
||||
.addStatement("reader.skipValue()");
|
||||
|
@ -168,7 +170,7 @@ public class InstanceProcessor extends GProcessor {
|
|||
}
|
||||
code.add(";\n");
|
||||
for (Property.Setter param : properties.builderParams) {
|
||||
code.addStatement("builder.$N(_$N)", param.getCallableName(), param.getName());
|
||||
code.addStatement("if (has_$N) builder.$N(_$N)", param.getName(), param.getCallableName(), param.getName());
|
||||
}
|
||||
code.addStatement("result = builder.$N()", builder.getBuildMethod().getSimpleName());
|
||||
} else {
|
||||
|
@ -183,12 +185,12 @@ public class InstanceProcessor extends GProcessor {
|
|||
}
|
||||
}
|
||||
for (Property.Setter setter : properties.setters) {
|
||||
code.addStatement("result.$N(_$N)", setter.getCallableName(), setter.getName());
|
||||
code.addStatement("if (has_$N) result.$N(_$N)", setter.getName(), setter.getCallableName(), setter.getName());
|
||||
}
|
||||
for (Property.Field field : properties.fields) {
|
||||
if (Properties.containsName(properties.setters, field)) continue;
|
||||
if (Properties.containsName(properties.params, field)) continue;
|
||||
code.addStatement("result.$N = _$N", field.getName(), field.getCallableName());
|
||||
code.addStatement("if (has_$N) result.$N = _$N", field.getName(), field.getCallableName(), field.getName());
|
||||
}
|
||||
code.addStatement("return result");
|
||||
|
||||
|
|
Loading…
Reference in New Issue