Use manifold type order by default
ci/woodpecker/push/woodpecker Pipeline was successful Details

This commit is contained in:
Johannes Frohnmeyer 2022-11-24 19:57:20 +01:00
parent 316d81bb18
commit 46ce536703
Signed by: Johannes
GPG Key ID: E76429612C2929F4
2 changed files with 12 additions and 25 deletions

View File

@ -207,7 +207,7 @@ public class GsonCompileProcessor extends AbstractProcessor2 {
.addParameter(Cl.GSON_WRITER, "writer")
.addParameter(classType, "value")
.addException(IOException.class)
.addCode(generatedClassName.simpleName() + ".write(writer, value);")
.addCode(generatedClassName.simpleName() + ".write(value, writer);")
.build())
.addMethod(MethodSpec.methodBuilder("read")
.addAnnotation(Override.class)
@ -232,8 +232,9 @@ public class GsonCompileProcessor extends AbstractProcessor2 {
.build()
);
spec.addMethod(
extension(MethodSpec.methodBuilder("write"), classType, Cl.GSON_WRITER, "writer")
extension(MethodSpec.methodBuilder("write"), classType)
.addModifiers(Modifier.PUBLIC, Modifier.STATIC)
.addParameter(Cl.GSON_WRITER, "writer")
.addException(IOException.class)
.addCode("$T.write(writer, value);", adapter)
.build()
@ -251,7 +252,7 @@ public class GsonCompileProcessor extends AbstractProcessor2 {
};
final String readStatement = "return read(reader)";
final String writeStatement = hasManifold ? "write(value, writer)" : "write(writer, value)";
final String writeStatement = "write(value, writer)";
spec.addMethod(
extension(MethodSpec.methodBuilder("read"))
@ -306,8 +307,9 @@ public class GsonCompileProcessor extends AbstractProcessor2 {
);
spec.addMethod(
extension(MethodSpec.methodBuilder("write"), classType, Writer.class, "out")
extension(MethodSpec.methodBuilder("write"), classType)
.addModifiers(Modifier.PUBLIC, Modifier.STATIC)
.addParameter(Writer.class, "out")
.addException(IOException.class)
.addCode(configureWriter.apply(CodeBlock.builder().beginControlFlow("try ($1T writer = new $1T(out))", Cl.GSON_WRITER))
.addStatement(writeStatement)
@ -317,8 +319,9 @@ public class GsonCompileProcessor extends AbstractProcessor2 {
);
spec.addMethod(
extension(MethodSpec.methodBuilder("write"), classType, Path.class, "path")
extension(MethodSpec.methodBuilder("write"), classType)
.addModifiers(Modifier.PUBLIC, Modifier.STATIC)
.addParameter(Path.class, "path")
.addException(IOException.class)
.addCode(CodeBlock.builder().beginControlFlow("try ($1T writer = $2T.newBufferedWriter(path, $3T.CREATE, $3T.WRITE, $3T.TRUNCATE_EXISTING))", BufferedWriter.class, Files.class, StandardOpenOption.class)
.addStatement(writeStatement)
@ -405,8 +408,9 @@ public class GsonCompileProcessor extends AbstractProcessor2 {
}
code.addStatement("writer.endObject()");
spec.addMethod(extension(MethodSpec.methodBuilder("write"), self.getTypeName(), Cl.GSON_WRITER, "writer")
spec.addMethod(extension(MethodSpec.methodBuilder("write"), self.getTypeName())
.addModifiers(Modifier.PUBLIC, Modifier.STATIC)
.addParameter(Cl.GSON_WRITER, "writer")
.addException(IOException.class)
.addCode(code.build())
.build());
@ -537,21 +541,4 @@ public class GsonCompileProcessor extends AbstractProcessor2 {
}
return method;
}
private MethodSpec.Builder extension(MethodSpec.Builder method, TypeName thizName, TypeName otherName, String other) {
if (hasManifold) {
method.addAnnotation(Cl.MANIFOLD_EXTENSION);
method.addParameter(ParameterSpec.builder(thizName, "value").addAnnotation(Cl.MANIFOLD_THIS).build())
.addParameter(otherName, other);
}
else {
method.addParameter(otherName, other)
.addParameter(thizName, "value");
}
return method;
}
private MethodSpec.Builder extension(MethodSpec.Builder method, TypeName thizName, Class<?> otherName, String other) {
return extension(method, thizName, TypeName.get(otherName), other);
}
}

View File

@ -13,9 +13,9 @@ public abstract class AdapterAdapter<T extends AdapterAdapter<T>.Hydrated> exten
public abstract class Hydrated extends Adapter<T>.Hydrated {
@Override
public void generateWrite(Runnable writeGet) {
code.add("$L.write(writer, ", getAdapter());
code.add("$L.write(", getAdapter());
writeGet.run();
code.add(");\n");
code.add(", writer);\n");
}
@Override