Check cast.

This commit is contained in:
Fabian Märki
2016-06-08 08:46:42 +02:00
parent 91d1b3c142
commit b27b43a6f6

View File

@ -43,9 +43,8 @@ import ch.psi.daq.domain.reader.Backend;
import ch.psi.daq.domain.request.validate.RequestProviderValidator; import ch.psi.daq.domain.request.validate.RequestProviderValidator;
import ch.psi.daq.queryrest.query.QueryManager; import ch.psi.daq.queryrest.query.QueryManager;
import ch.psi.daq.queryrest.response.AbstractHTTPResponse; import ch.psi.daq.queryrest.response.AbstractHTTPResponse;
import ch.psi.daq.queryrest.response.csv.CSVResponseStreamWriter; import ch.psi.daq.queryrest.response.PolymorphicResponseMixIn;
import ch.psi.daq.queryrest.response.json.JSONHTTPResponse; import ch.psi.daq.queryrest.response.json.JSONHTTPResponse;
import ch.psi.daq.queryrest.response.json.JSONResponseStreamWriter;
@RestController @RestController
public class QueryRestController { public class QueryRestController {
@ -58,23 +57,17 @@ public class QueryRestController {
@Resource @Resource
private ApplicationContext appContext; private ApplicationContext appContext;
@Resource @Resource
private Validator queryValidator; private Validator queryValidator;
private Validator requestProviderValidator = new RequestProviderValidator(); private Validator requestProviderValidator = new RequestProviderValidator();
@Resource
private JSONResponseStreamWriter jsonResponseStreamWriter;
@Resource
private CSVResponseStreamWriter csvResponseStreamWriter;
@Resource @Resource
private QueryManager queryManager; private QueryManager queryManager;
@Resource @Resource
private ObjectMapper objectMapper; private ObjectMapper objectMapper;
private Response defaultResponse = new JSONHTTPResponse(); private Response defaultResponse = new JSONHTTPResponse();
@InitBinder @InitBinder
@ -179,7 +172,19 @@ public class QueryRestController {
try { try {
LOGGER.debug("Executing queries '{}'", queries); LOGGER.debug("Executing queries '{}'", queries);
((AbstractHTTPResponse)queries.getResponseOrDefault(defaultResponse)).respond(appContext, queries, res); Response response = queries.getResponseOrDefault(defaultResponse);
if (response instanceof AbstractHTTPResponse) {
((AbstractHTTPResponse) response).respond(appContext, queries, res);
} else {
String message =
String.format(
"Expecting Response of type '%s' but received '%s'. Check JSON deserialization defined in '%s'",
AbstractHTTPResponse.class.getName(), response.getClass().getName(),
PolymorphicResponseMixIn.class.getName());
LOGGER.error(message);
throw new IllegalArgumentException(message);
}
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("Failed to execute query '{}'.", queries, e); LOGGER.error("Failed to execute query '{}'.", queries, e);