RestApiServlet: Support Rest{Read,Modify}View on the same class

Change-Id: Ib339c92f1b066c2a25947f1b3cd651f3b194e259
This commit is contained in:
Dave Borowitz
2015-06-11 11:08:11 -04:00
parent adca960f65
commit 44ceaa9fe6

View File

@@ -317,15 +317,16 @@ public class RestApiServlet extends HttpServlet {
return;
}
if (viewData.view instanceof RestModifyView<?, ?>) {
if (viewData.view instanceof RestReadView<?>
&& "GET".equals(req.getMethod())) {
result = ((RestReadView<RestResource>) viewData.view).apply(rsrc);
} else if (viewData.view instanceof RestModifyView<?, ?>) {
@SuppressWarnings("unchecked")
RestModifyView<RestResource, Object> m =
(RestModifyView<RestResource, Object>) viewData.view;
inputRequestBody = parseRequest(req, inputType(m));
result = m.apply(rsrc, inputRequestBody);
} else if (viewData.view instanceof RestReadView<?>) {
result = ((RestReadView<RestResource>) viewData.view).apply(rsrc);
} else {
throw new ResourceNotFoundException();
}