@@ -41,6 +41,15 @@ public static void addDefaultSerializers (Kryo kryo) {
41
41
}
42
42
}
43
43
44
+ /** Creates new serializers for all types of {@link java.util.ImmutableCollections}s and registers them.
45
+ *
46
+ * @param kryo the {@link Kryo} instance to register the serializers on. */
47
+ public static void registerSerializers (Kryo kryo ) {
48
+ JdkImmutableListSerializer .registerSerializers (kryo );
49
+ JdkImmutableMapSerializer .registerSerializers (kryo );
50
+ JdkImmutableSetSerializer .registerSerializers (kryo );
51
+ }
52
+
44
53
static class JdkImmutableListSerializer extends CollectionSerializer <List <Object >> {
45
54
46
55
private JdkImmutableListSerializer () {
@@ -79,6 +88,14 @@ static void addDefaultSerializers (Kryo kryo) {
79
88
kryo .addDefaultSerializer (List .of (1 , 2 , 3 , 4 ).getClass (), serializer );
80
89
kryo .addDefaultSerializer (List .of (1 , 2 , 3 , 4 ).subList (0 , 2 ).getClass (), serializer );
81
90
}
91
+
92
+ static void registerSerializers (Kryo kryo ) {
93
+ final JdkImmutableListSerializer serializer = new JdkImmutableListSerializer ();
94
+ kryo .register (List .of ().getClass (), serializer );
95
+ kryo .register (List .of (1 ).getClass (), serializer );
96
+ kryo .register (List .of (1 , 2 , 3 , 4 ).getClass (), serializer );
97
+ kryo .register (List .of (1 , 2 , 3 , 4 ).subList (0 , 2 ).getClass (), serializer );
98
+ }
82
99
}
83
100
84
101
static class JdkImmutableMapSerializer extends MapSerializer <Map <Object , Object >> {
@@ -119,6 +136,13 @@ static void addDefaultSerializers (Kryo kryo) {
119
136
kryo .addDefaultSerializer (Map .of (1 , 2 ).getClass (), serializer );
120
137
kryo .addDefaultSerializer (Map .of (1 , 2 , 3 , 4 ).getClass (), serializer );
121
138
}
139
+
140
+ static void registerSerializers (Kryo kryo ) {
141
+ final JdkImmutableMapSerializer serializer = new JdkImmutableMapSerializer ();
142
+ kryo .register (Map .of ().getClass (), serializer );
143
+ kryo .register (Map .of (1 , 2 ).getClass (), serializer );
144
+ kryo .register (Map .of (1 , 2 , 3 , 4 ).getClass (), serializer );
145
+ }
122
146
}
123
147
124
148
static class JdkImmutableSetSerializer extends CollectionSerializer <Set <Object >> {
@@ -158,6 +182,13 @@ static void addDefaultSerializers (Kryo kryo) {
158
182
kryo .addDefaultSerializer (Set .of (1 ).getClass (), serializer );
159
183
kryo .addDefaultSerializer (Set .of (1 , 2 , 3 , 4 ).getClass (), serializer );
160
184
}
185
+
186
+ static void registerSerializers (Kryo kryo ) {
187
+ final JdkImmutableSetSerializer serializer = new JdkImmutableSetSerializer ();
188
+ kryo .register (Set .of ().getClass (), serializer );
189
+ kryo .register (Set .of (1 ).getClass (), serializer );
190
+ kryo .register (Set .of (1 , 2 , 3 , 4 ).getClass (), serializer );
191
+ }
161
192
}
162
193
163
194
}
0 commit comments