Merge "Support AcceptsCreate for ChildCollection"
This commit is contained in:
@@ -211,8 +211,25 @@ 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);
|
||||||
view = view(c, req.getMethod(), path);
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
checkAccessAnnotations(view.getClass());
|
checkAccessAnnotations(view.getClass());
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user