summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--examples/11-transient-0/output/java/src/test/java/org/zwobble/example/Transient0Tests.java10
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java20
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<T> 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<T> {
- void encode(T value, OutputStream outputStream) throws IOException;
+ void encode(T value, OutputStream outputStream, Map<String, Object> sharedValues) throws IOException;
}
private interface Decoder<T> {
- T decode(InputStream inputStream) throws IOException;
+ T decode(InputStream inputStream, Map<String, Object> 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)
+ )
))
);
}