@@ -193,38 +193,57 @@ private Map<String, Object> toJson() {
193
193
}
194
194
195
195
private static Object deserializeValue (Object value , Type type ) {
196
-
197
- if (Type .ARRAY .equals (type ) || Type .SET .equals (type )) {
198
- try (StringReader reader = new StringReader (JSON .toJson (value ));
199
- JsonInput input = JSON .newInput (reader )) {
200
- value = input .read (new TypeToken <List <RemoteValue >>() {}.getType ());
201
- }
202
- } else if (Type .MAP .equals (type ) || Type .OBJECT .equals (type )) {
203
- List <List <Object >> result = (List <List <Object >>) value ;
204
- Map <Object , RemoteValue > map = new HashMap <>();
205
-
206
- for (List <Object > list : result ) {
207
- Object key = list .get (0 );
208
- if (!(key instanceof String )) {
209
- try (StringReader reader = new StringReader (JSON .toJson (key ));
210
- JsonInput keyInput = JSON .newInput (reader )) {
211
- key = keyInput .read (RemoteValue .class );
196
+ Object finalValue ;
197
+
198
+ switch (type ) {
199
+ case ARRAY :
200
+ case SET :
201
+ try (StringReader reader = new StringReader (JSON .toJson (value ));
202
+ JsonInput input = JSON .newInput (reader )) {
203
+ finalValue = input .read (new TypeToken <List <RemoteValue >>() {}.getType ());
204
+ }
205
+ break ;
206
+
207
+ case MAP :
208
+ case OBJECT :
209
+ List <List <Object >> result = (List <List <Object >>) value ;
210
+ Map <Object , RemoteValue > map = new HashMap <>();
211
+
212
+ for (List <Object > list : result ) {
213
+ Object key = list .get (0 );
214
+ if (!(key instanceof String )) {
215
+ try (StringReader reader = new StringReader (JSON .toJson (key ));
216
+ JsonInput keyInput = JSON .newInput (reader )) {
217
+ key = keyInput .read (RemoteValue .class );
218
+ }
219
+ }
220
+ try (StringReader reader = new StringReader (JSON .toJson (list .get (1 )));
221
+ JsonInput valueInput = JSON .newInput (reader )) {
222
+ RemoteValue value1 = valueInput .read (RemoteValue .class );
223
+ map .put (key , value1 );
212
224
}
213
225
}
214
- try (StringReader reader = new StringReader (JSON .toJson (list .get (1 )));
215
- JsonInput valueInput = JSON .newInput (reader )) {
216
- RemoteValue value1 = valueInput .read (RemoteValue .class );
217
- map .put (key , value1 );
226
+ finalValue = map ;
227
+ break ;
228
+
229
+ case REGULAR_EXPRESSION :
230
+ try (StringReader reader = new StringReader (JSON .toJson (value ));
231
+ JsonInput input = JSON .newInput (reader )) {
232
+ finalValue = input .read (RegExpValue .class );
218
233
}
219
- }
220
- value = map ;
221
- } else if (Type .REGULAR_EXPRESSION .equals (type )) {
222
- try (StringReader reader = new StringReader (JSON .toJson (value ));
223
- JsonInput input = JSON .newInput (reader )) {
224
- value = input .read (RegExpValue .class );
225
- }
234
+ break ;
235
+
236
+ case WINDOW :
237
+ try (StringReader reader = new StringReader (JSON .toJson (value ));
238
+ JsonInput input = JSON .newInput (reader )) {
239
+ finalValue = input .read (WindowProxyProperties .class );
240
+ }
241
+ break ;
242
+
243
+ default :
244
+ finalValue = value ;
226
245
}
227
246
228
- return value ;
247
+ return finalValue ;
229
248
}
230
249
}
0 commit comments