From c09e0e47cfe3ff2938c84ccbef136fc56e277dcc Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 25 Jul 2026 09:09:20 +0100 Subject: Pass around (unused) shared values map in java-transient-0 --- .../java/org/zwobble/example/Transient0Tests.java | 10 ++++++---- .../javatransient0/JavaTransient0Generator.java | 20 ++++++++++++++++++-- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/examples/11-transient-0/output/java/src/test/java/org/zwobble/example/Transient0Tests.java b/examples/11-transient-0/output/java/src/test/java/org/zwobble/example/Transient0Tests.java index 39eac79..0110de3 100644 --- a/examples/11-transient-0/output/java/src/test/java/org/zwobble/example/Transient0Tests.java +++ b/examples/11-transient-0/output/java/src/test/java/org/zwobble/example/Transient0Tests.java @@ -5,7 +5,9 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Optional; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; @@ -209,20 +211,20 @@ public class Transient0Tests { Decoder decoder ) throws IOException { var outputStream = new ByteArrayOutputStream(); - encoder.encode(value, outputStream); + encoder.encode(value, outputStream, new HashMap<>()); var bytes = outputStream.toByteArray(); var inputStream = new ByteArrayInputStream(bytes); - var decodedValue = decoder.decode(inputStream); + var decodedValue = decoder.decode(inputStream, new HashMap<>()); Assertions.assertEquals(value, decodedValue); } private interface Encoder { - void encode(T value, OutputStream outputStream) throws IOException; + void encode(T value, OutputStream outputStream, Map sharedValues) throws IOException; } private interface Decoder { - T decode(InputStream inputStream) throws IOException; + T decode(InputStream inputStream, Map sharedValues) throws IOException; } } diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java index ce4d3f1..a775773 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java @@ -27,6 +27,7 @@ public class JavaTransient0Generator implements Generator { private static final JavaIdentifier VALUE_NAME = JavaIdentifier.of("value"); private static final JavaIdentifier OUTPUT_STREAM_NAME = JavaIdentifier.of("outputStream"); private static final JavaIdentifier INPUT_STREAM_NAME = JavaIdentifier.of("inputStream"); + private static final JavaIdentifier SHARED_VALUES_NAME = JavaIdentifier.of("sharedValues"); public static OutputConfig parseGeneratorConfig( Path projectRoot, @@ -547,6 +548,10 @@ public class JavaTransient0Generator implements Generator { new JavaParam( JavaTypeRef.OUTPUT_STREAM, OUTPUT_STREAM_NAME + ), + new JavaParam( + JavaTypeRef.map(JavaTypeRef.STRING, JavaTypeRef.OBJECT), + SHARED_VALUES_NAME ) ), List.of(JavaTypeRef.IO_EXCEPTION), @@ -569,6 +574,10 @@ public class JavaTransient0Generator implements Generator { new JavaParam( JavaTypeRef.INPUT_STREAM, INPUT_STREAM_NAME + ), + new JavaParam( + JavaTypeRef.map(JavaTypeRef.STRING, JavaTypeRef.OBJECT), + SHARED_VALUES_NAME ) ), List.of(JavaTypeRef.IO_EXCEPTION), @@ -639,7 +648,11 @@ public class JavaTransient0Generator implements Generator { new JavaStaticMethodCall( generateTransient0TypeRef(typeNamespaceName), encodeMethodName(type), - List.of(value, new JavaRef(OUTPUT_STREAM_NAME)) + List.of( + value, + new JavaRef(OUTPUT_STREAM_NAME), + new JavaRef(SHARED_VALUES_NAME) + ) ) ); } @@ -709,7 +722,10 @@ public class JavaTransient0Generator implements Generator { Optional.of(new JavaStaticMethodCall( generateTransient0TypeRef(typeNamespaceName), decodeMethodName(type), - List.of(new JavaRef(INPUT_STREAM_NAME)) + List.of( + new JavaRef(INPUT_STREAM_NAME), + new JavaRef(SHARED_VALUES_NAME) + ) )) ); } -- cgit v1.2.3