}
private void executeNext(final AsyncCallback<Boolean> outcome) {
if(index < hooks.size())
{
final AsyncCommand nextHook = hooks.get(index);
index++;
Window.setStatus(index + ": " + nextHook.getClass().getName());
nextHook.execute(new AsyncCallback<Boolean>() {
@Override
public void onFailure(Throwable caught) {
Console.error("Bootstrap failed", caught.getMessage());
}
@Override
public void onSuccess(Boolean successful) {
if(successful)
{
executeNext(outcome);
}
else
{
Console.error("Failed to execute "+nextHook.getClass().getName());
outcome.onSuccess(Boolean.FALSE);
}
}
});
}