diff --git a/src/main/java/net/openhft/chronicle/hash/serialization/ListMarshaller.java b/src/main/java/net/openhft/chronicle/hash/serialization/ListMarshaller.java index 6c26ed76d..8c79b134f 100644 --- a/src/main/java/net/openhft/chronicle/hash/serialization/ListMarshaller.java +++ b/src/main/java/net/openhft/chronicle/hash/serialization/ListMarshaller.java @@ -59,6 +59,16 @@ import static net.openhft.chronicle.hash.serialization.StatefulCopyable.copyIfNe public final class ListMarshaller implements BytesReader>, BytesWriter>, StatefulCopyable> { + public static ListMarshaller of( + BytesReader elementReader, BytesWriter elementWriter) { + return new ListMarshaller<>(elementReader, elementWriter); + } + + public static & BytesWriter> ListMarshaller of( + M elementMarshaller) { + return of(elementMarshaller, elementMarshaller); + } + // Config fields private BytesReader elementReader; private BytesWriter elementWriter; diff --git a/src/main/java/net/openhft/chronicle/hash/serialization/SetMarshaller.java b/src/main/java/net/openhft/chronicle/hash/serialization/SetMarshaller.java index 3fd2e84ca..136b0d940 100644 --- a/src/main/java/net/openhft/chronicle/hash/serialization/SetMarshaller.java +++ b/src/main/java/net/openhft/chronicle/hash/serialization/SetMarshaller.java @@ -60,6 +60,16 @@ import static net.openhft.chronicle.hash.serialization.StatefulCopyable.copyIfNe public final class SetMarshaller implements BytesReader>, BytesWriter>, StatefulCopyable> { + public static SetMarshaller of( + BytesReader elementReader, BytesWriter elementWriter) { + return new SetMarshaller<>(elementReader, elementWriter); + } + + public static & BytesWriter> SetMarshaller of( + M elementMarshaller) { + return of(elementMarshaller, elementMarshaller); + } + // Config fields private BytesReader elementReader; private BytesWriter elementWriter; diff --git a/src/test/java/net/openhft/chronicle/map/CHMUseCasesTest.java b/src/test/java/net/openhft/chronicle/map/CHMUseCasesTest.java index 287ee009f..1ba58a3c9 100644 --- a/src/test/java/net/openhft/chronicle/map/CHMUseCasesTest.java +++ b/src/test/java/net/openhft/chronicle/map/CHMUseCasesTest.java @@ -2415,12 +2415,11 @@ public class CHMUseCasesTest { @Test public void testListValue() throws IOException { - ListMarshaller valueMarshaller = new ListMarshaller<>( - new StringBytesReader(), CharSequenceBytesWriter.INSTANCE); ChronicleMapBuilder> builder = ChronicleMapBuilder .of(String.class, (Class>) (Class) List.class) .entries(2) - .valueMarshaller(valueMarshaller); + .valueMarshaller(ListMarshaller.of( + new StringBytesReader(), CharSequenceBytesWriter.INSTANCE)); try (ChronicleMap> map = newInstance(builder)) { @@ -2463,12 +2462,11 @@ public class CHMUseCasesTest { @Test public void testSetValue() throws IOException { - SetMarshaller valueMarshaller = new SetMarshaller<>( - new StringBytesReader(), CharSequenceBytesWriter.INSTANCE); ChronicleMapBuilder> builder = ChronicleMapBuilder .of(String.class, (Class>) (Class) Set.class) .entries(10) - .valueMarshaller(valueMarshaller); + .valueMarshaller(SetMarshaller.of( + new StringBytesReader(), CharSequenceBytesWriter.INSTANCE)); try (ChronicleMap> map = newInstance(builder)) { diff --git a/src/test/java/net/openhft/chronicle/map/DefaultValueTest.java b/src/test/java/net/openhft/chronicle/map/DefaultValueTest.java index 65f5fda69..2c75232be 100644 --- a/src/test/java/net/openhft/chronicle/map/DefaultValueTest.java +++ b/src/test/java/net/openhft/chronicle/map/DefaultValueTest.java @@ -38,12 +38,10 @@ public class DefaultValueTest { ArrayList defaultValue = new ArrayList(); defaultValue.add(42); - ListMarshaller valueMarshaller = - new ListMarshaller<>(IntegerMarshaller.INSTANCE, IntegerMarshaller.INSTANCE); try (ChronicleMap> map = ChronicleMap .of(String.class, (Class>) ((Class) List.class)) .entries(3) - .valueMarshaller(valueMarshaller) + .valueMarshaller(ListMarshaller.of(IntegerMarshaller.INSTANCE)) .averageKey("a").averageValue(Arrays.asList(1, 2)) .defaultValueProvider(absentEntry -> absentEntry.context().wrapValueAsData(defaultValue))