package com.shizhefei.mvc.http.okhttp;
import android.util.Log;
import com.shizhefei.mvc.ResponseSender;
import java.io.IOException;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.Response;
public class CallBackParser<DATA> implements Callback, ResponseParser<DATA> {
private final ResponseParser<DATA> responseParser;
private ResponseSender<DATA> sender;
public CallBackParser(ResponseSender<DATA> sender, ResponseParser<DATA> responseParser) {
this.sender = sender;
this.responseParser = responseParser;
}
@Override
public void onFailure(Call call, IOException e) {
sender.sendError(e);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
try {
DATA data = parse(response);
sender.sendData(data);
} catch (Exception e) {
e.printStackTrace();
sender.sendError(e);
}
}
@Override
public DATA parse(Response response) throws Exception {
return responseParser.parse(response);
}
}