fix(serialize-generator): more checks to prevent double declarations
ci/woodpecker/push/woodpecker Pipeline was successful Details

This commit is contained in:
Johannes Frohnmeyer 2024-04-24 10:35:03 +02:00
parent 5a9c3ee58f
commit 78ec439ccb
Signed by: Johannes
GPG Key ID: E76429612C2929F4
5 changed files with 126 additions and 126 deletions

View File

@ -50,6 +50,8 @@ public class ArrayAdapter extends Adapter<ArrayAdapter.Hydrated> {
@Override @Override
public void generateRead() { public void generateRead() {
String methodName = "deserialize$" + name;
if (klazz.methodSpecs.stream().noneMatch(s -> s.name.equals(methodName))) {
CodeBlock.Builder kode = CodeBlock.builder(); CodeBlock.Builder kode = CodeBlock.builder();
// Coerce // Coerce
kode.beginControlFlow("if (reader.isLenient() && reader.peek() != $T.BEGIN_ARRAY)", Cl.GSON_TOKEN) kode.beginControlFlow("if (reader.isLenient() && reader.peek() != $T.BEGIN_ARRAY)", Cl.GSON_TOKEN)
@ -72,7 +74,6 @@ public class ArrayAdapter extends Adapter<ArrayAdapter.Hydrated> {
.addStatement("reader.endArray()") .addStatement("reader.endArray()")
.addStatement("return list.toArray($T[]::new)", componentType); .addStatement("return list.toArray($T[]::new)", componentType);
String methodName = "deserialize$" + name;
klazz.addMethod( klazz.addMethod(
MethodSpec.methodBuilder(methodName) MethodSpec.methodBuilder(methodName)
.addModifiers(Modifier.PRIVATE, Modifier.STATIC) .addModifiers(Modifier.PRIVATE, Modifier.STATIC)
@ -85,6 +86,7 @@ public class ArrayAdapter extends Adapter<ArrayAdapter.Hydrated> {
.addCode(kode.build()) .addCode(kode.build())
.build() .build()
); );
}
code.add("$N(reader)", methodName); code.add("$N(reader)", methodName);
} }
} }

View File

@ -78,6 +78,8 @@ public class CollectionAdapter extends Adapter<CollectionAdapter.Hydrated> {
@Override @Override
public void generateRead() { public void generateRead() {
String methodName = "read$" + name;
if (klazz.methodSpecs.stream().noneMatch(s -> s.name.equals(methodName))) {
CodeBlock.Builder kode = CodeBlock.builder(); CodeBlock.Builder kode = CodeBlock.builder();
kode.addStatement("$T list = new $T<>()", typeName, implType); kode.addStatement("$T list = new $T<>()", typeName, implType);
// Coerce // Coerce
@ -100,7 +102,6 @@ public class CollectionAdapter extends Adapter<CollectionAdapter.Hydrated> {
.addStatement("reader.endArray()") .addStatement("reader.endArray()")
.addStatement("return list"); .addStatement("return list");
String methodName = "read$" + name;
klazz.addMethod( klazz.addMethod(
MethodSpec.methodBuilder(methodName) MethodSpec.methodBuilder(methodName)
.addModifiers(Modifier.PRIVATE, Modifier.STATIC) .addModifiers(Modifier.PRIVATE, Modifier.STATIC)
@ -113,6 +114,7 @@ public class CollectionAdapter extends Adapter<CollectionAdapter.Hydrated> {
.addCode(kode.build()) .addCode(kode.build())
.build() .build()
); );
}
code.add("$N(reader)", methodName); code.add("$N(reader)", methodName);
} }
} }

View File

@ -32,15 +32,7 @@ public class DateAdapter extends Adapter<DateAdapter.Hydrated> {
@Override @Override
public void generateRead() { public void generateRead() {
boolean found = false; if (klazz.methodSpecs.stream().noneMatch(s -> s.name.equals("parseDate"))) {
for (MethodSpec spec : klazz.methodSpecs) {
if (spec.name.equals("parseDate")) {
found = true;
break;
}
}
if (!found) {
klazz.addMethod( klazz.addMethod(
MethodSpec.methodBuilder("parseDate") MethodSpec.methodBuilder("parseDate")
.addModifiers(Modifier.PRIVATE, Modifier.STATIC) .addModifiers(Modifier.PRIVATE, Modifier.STATIC)

View File

@ -44,6 +44,7 @@ public class EnumAdapter extends Adapter<EnumAdapter.Hydrated> {
@Override @Override
public void generateRead() { public void generateRead() {
String methodName = "read$" + name; String methodName = "read$" + name;
if (klazz.methodSpecs.stream().noneMatch(s -> s.name.equals(methodName))) {
klazz.addMethod( klazz.addMethod(
MethodSpec.methodBuilder(methodName) MethodSpec.methodBuilder(methodName)
.addModifiers(Modifier.PRIVATE, Modifier.STATIC) .addModifiers(Modifier.PRIVATE, Modifier.STATIC)
@ -59,6 +60,7 @@ public class EnumAdapter extends Adapter<EnumAdapter.Hydrated> {
) )
.build() .build()
); );
}
code.add("$N(reader.nextString())", methodName); code.add("$N(reader.nextString())", methodName);
} }
} }

View File

@ -156,6 +156,8 @@ public class MapAdapter extends Adapter<MapAdapter.Hydrated> {
@Override @Override
public void generateRead() { public void generateRead() {
String methodName = "read$" + name;
if (klazz.methodSpecs.stream().noneMatch(s -> s.name.equals(methodName))) {
CodeBlock.Builder kode = CodeBlock.builder(); CodeBlock.Builder kode = CodeBlock.builder();
kode.addStatement("$T map = new $T<>()", typeName, implType); kode.addStatement("$T map = new $T<>()", typeName, implType);
@ -178,7 +180,6 @@ public class MapAdapter extends Adapter<MapAdapter.Hydrated> {
.addStatement("reader.endObject()") .addStatement("reader.endObject()")
.addStatement("return map"); .addStatement("return map");
String methodName = "read$" + name;
klazz.addMethod( klazz.addMethod(
MethodSpec.methodBuilder(methodName) MethodSpec.methodBuilder(methodName)
.addModifiers(Modifier.PRIVATE, Modifier.STATIC) .addModifiers(Modifier.PRIVATE, Modifier.STATIC)
@ -191,6 +192,7 @@ public class MapAdapter extends Adapter<MapAdapter.Hydrated> {
.addCode(kode.build()) .addCode(kode.build())
.build() .build()
); );
}
code.add("$N(reader)", methodName); code.add("$N(reader)", methodName);
} }
} }