code: @Override
  	public final void run () {
  		Status result = execute();
  		if (result == null) throw new IllegalStateException("Invalid status 'null' returned by the execute method");
  		switch (result) {
  		case SUCCEEDED:
  			success();
  			return;
  		case FAILED:
  			fail();
  			return;
  		case RUNNING:
  			running();
  			return;
  		default:
  			throw new IllegalStateException("Invalid status '" + result.name() + "' returned by the execute method");
  		}
  	}
docs: This method contains the update logic of this task. The implementation delegates the {@link #execute()} method.