Cleanup implementation of REST views

- specify return type if possible
- remove unnecessary throw declarations
- convert some of the thrown exceptions to RestExceptions
- do not throw Exception but specific exceptions
- sort throw declarations (first RestExceptions, then other
  exceptions)

Having explicit return types and exceptions makes it easier to
programatically invoke the REST views, e.g. if a plugin wants to add a
REST view that wraps a Gerrit core REST view.

Change-Id: I5c59553b6cfad457f7ec037cceb08936247bf8e8
Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
This commit is contained in:
Edwin Kempin
2013-11-11 19:18:54 +01:00
parent bf42bc55b0
commit df134a834a
77 changed files with 287 additions and 266 deletions

View File

@@ -15,6 +15,7 @@
package com.google.gerrit.server.change;
import com.google.gerrit.extensions.restapi.CacheControl;
import com.google.gerrit.extensions.restapi.ResourceNotFoundException;
import com.google.gerrit.extensions.restapi.Response;
import com.google.gerrit.extensions.restapi.RestReadView;
import com.google.gerrit.server.change.ChangeJson.CommitInfo;
@@ -34,11 +35,16 @@ public class GetCommit implements RestReadView<RevisionResource> {
@Override
public Response<CommitInfo> apply(RevisionResource resource)
throws OrmException, PatchSetInfoNotAvailableException {
Response<CommitInfo> r = Response.ok(json.toCommit(resource.getPatchSet()));
if (resource.isCacheable()) {
r.caching(CacheControl.PRIVATE(7, TimeUnit.DAYS));
throws ResourceNotFoundException, OrmException {
try {
Response<CommitInfo> r =
Response.ok(json.toCommit(resource.getPatchSet()));
if (resource.isCacheable()) {
r.caching(CacheControl.PRIVATE(7, TimeUnit.DAYS));
}
return r;
} catch (PatchSetInfoNotAvailableException e) {
throw new ResourceNotFoundException(e.getMessage());
}
return r;
}
}