Skip to content
This repository was archived by the owner on Oct 30, 2023. It is now read-only.

Commit 96bbbd1

Browse files
committed
Use ObjectReader instance for processing JSON.
1 parent dd121ac commit 96bbbd1

1 file changed

Lines changed: 10 additions & 15 deletions

File tree

src/main/java/com/binance/api/client/impl/BinanceApiWebSocketListener.java

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
package com.binance.api.client.impl;
22

3-
import java.io.IOException;
4-
import okhttp3.Response;
5-
import okhttp3.WebSocket;
6-
import okhttp3.WebSocketListener;
73
import com.binance.api.client.BinanceApiCallback;
84
import com.binance.api.client.exception.BinanceApiException;
95
import com.fasterxml.jackson.core.type.TypeReference;
106
import com.fasterxml.jackson.databind.ObjectMapper;
7+
import com.fasterxml.jackson.databind.ObjectReader;
8+
import okhttp3.Response;
9+
import okhttp3.WebSocket;
10+
import okhttp3.WebSocketListener;
11+
12+
import java.io.IOException;
1113

1214
/**
1315
* Binance API WebSocket listener.
@@ -18,31 +20,24 @@ public class BinanceApiWebSocketListener<T> extends WebSocketListener {
1820

1921
private static final ObjectMapper mapper = new ObjectMapper();
2022

21-
private Class<T> eventClass;
22-
23-
private TypeReference<T> eventTypeReference;
23+
private final ObjectReader objectReader;
2424

2525
private boolean closing = false;
2626

2727
public BinanceApiWebSocketListener(BinanceApiCallback<T> callback, Class<T> eventClass) {
2828
this.callback = callback;
29-
this.eventClass = eventClass;
29+
this.objectReader = mapper.readerFor(eventClass);
3030
}
3131

3232
public BinanceApiWebSocketListener(BinanceApiCallback<T> callback, TypeReference<T> eventTypeReference) {
3333
this.callback = callback;
34-
this.eventTypeReference = eventTypeReference;
34+
this.objectReader = mapper.readerFor(eventTypeReference);
3535
}
3636

3737
@Override
3838
public void onMessage(WebSocket webSocket, String text) {
3939
try {
40-
T event = null;
41-
if (eventClass == null) {
42-
event = mapper.readValue(text, eventTypeReference);
43-
} else {
44-
event = mapper.readValue(text, eventClass);
45-
}
40+
T event = objectReader.readValue(text);
4641
callback.onResponse(event);
4742
} catch (IOException e) {
4843
throw new BinanceApiException(e);

0 commit comments

Comments
 (0)