Merge "Support AcceptsCreate for ChildCollection"

This commit is contained in:
David Pursehouse
2013-01-16 10:07:16 +00:00
committed by Gerrit Code Review

View File

@@ -211,9 +211,26 @@ public class RestApiServlet extends HttpServlet {
view = c.list(); view = c.list();
break; break;
} else { } else {
rsrc = c.parse(rsrc, path.remove(0)); String id = path.remove(0);
try {
rsrc = c.parse(rsrc, id);
view = null;
} catch (ResourceNotFoundException e) {
if (c instanceof AcceptsCreate
&& ("POST".equals(req.getMethod())
|| "PUT".equals(req.getMethod()))) {
@SuppressWarnings("unchecked")
AcceptsCreate<RestResource> ac = (AcceptsCreate<RestResource>) c;
view = ac.create(rsrc, id);
status = SC_CREATED;
} else {
throw e;
}
}
if (view == null) {
view = view(c, req.getMethod(), path); view = view(c, req.getMethod(), path);
} }
}
checkAccessAnnotations(view.getClass()); checkAccessAnnotations(view.getClass());
} }