CallbackGroup: use addEmpty() to setup a null callback

Adding an emptyCallback to a CallbackGroup is a common
idiom. One of the other callbacks in the same group will
handle the error condition, if any, and the caller just
needs the side-effects.

Change-Id: I1ee8ea3f7c1764f68ffc4ae7d269c8dd0a6cb98c
This commit is contained in:
Shawn Pearce
2015-01-05 12:07:01 -08:00
parent 5ba47eb42b
commit d6097bf11a
3 changed files with 11 additions and 9 deletions

View File

@@ -175,13 +175,11 @@ public class SideBySide2 extends Screen {
super.onLoad();
CallbackGroup cmGroup = new CallbackGroup();
CodeMirror.initLibrary(cmGroup.add(CallbackGroup.<Void> emptyCallback()));
CodeMirror.initLibrary(cmGroup.<Void> addEmpty());
final CallbackGroup group = new CallbackGroup();
final AsyncCallback<Void> themeCallback =
group.add(CallbackGroup.<Void> emptyCallback());
final AsyncCallback<Void> modeInjectorCb =
group.add(CallbackGroup.<Void> emptyCallback());
final AsyncCallback<Void> themeCallback = group.addEmpty();
final AsyncCallback<Void> modeInjectorCb = group.addEmpty();
DiffApi.diff(revision, path)
.base(base)

View File

@@ -84,11 +84,10 @@ public class EditScreen extends Screen {
super.onLoad();
CallbackGroup cmGroup = new CallbackGroup();
CodeMirror.initLibrary(cmGroup.add(CallbackGroup.<Void> emptyCallback()));
CodeMirror.initLibrary(cmGroup.<Void> addEmpty());
CallbackGroup group = new CallbackGroup();
if (!Patch.COMMIT_MSG.equals(path)) {
final AsyncCallback<Void> modeInjectorCb =
group.add(CallbackGroup.<Void> emptyCallback());
final AsyncCallback<Void> modeInjectorCb = group.addEmpty();
ChangeFileApi.getContentType(revision, path,
cmGroup.add(new GerritCallback<String>() {
@Override

View File

@@ -66,6 +66,11 @@ public class CallbackGroup {
remaining = new HashSet<>();
}
public <T> Callback<T> addEmpty() {
Callback<T> cb = emptyCallback();
return add(cb);
}
public <T> Callback<T> add(final AsyncCallback<T> cb) {
checkFinalAdded();
return handleAdd(cb);
@@ -91,7 +96,7 @@ public class CallbackGroup {
}
public void addListener(CallbackGroup group) {
addListener(group.add(CallbackGroup.<Void> emptyCallback()));
addListener(group.<Void> addEmpty());
}
private void applyAllSuccess() {