code: public CallbackList<T> add(Callback<T> callback) {
      checkState();
      callbacks.add(callback);
      return this;
    }
docs: Adds the supplied callback to the list.
  
  @return this instance for convenient chaining.
  @throws IllegalStateException if this callback has already fired.