public Registration add()

in model/src/main/java/jetbrains/jetpad/model/event/Listeners.java [40:69]


  public Registration add(final ListenerT l) {
    if (isEmpty()) {
      beforeFirstAdded();
    }

    if (myFireDepth > 0) {
      myListeners.add(new ListenerOp<>(l, true));
    } else {
      if (myListeners == null) {
        myListeners = new ArrayList<>(1);
      }
      myListeners.add(l);
      myListenersCount++;
    }
    return new Registration() {
      @Override
      protected void doRemove() {
        if (myFireDepth > 0) {
          myListeners.add(new ListenerOp<>(l, false));
        } else {
          myListeners.remove(l);
          myListenersCount--;
        }

        if (isEmpty()) {
          afterLastRemoved();
        }
      }
    };
  }