docs: private void queueActionLocked(DeltaType actionType, Object obj) {
      String id = this.keyOf(obj);
  
      // If object is supposed to be deleted (last event is Deleted),
      // then we should ignore Sync events, because it would result in
      // recreation of this object.
      if (actionType == DeltaType.Sync && this.willObjectBeDeletedLocked(id)) {
        return;
      }
  
      Deque<MutablePair<DeltaType, Object>> deltas = items.get(id);
      if (deltas == null) {
        Deque<MutablePair<DeltaType, Object>> deltaList = new LinkedList<>();
        deltaList.add(new MutablePair(actionType, obj));
        deltas = new LinkedList<>(deltaList);
      } else {
        deltas.add(new MutablePair<DeltaType, Object>(actionType, obj));
      }
  
      // TODO(yue9944882): Eliminate the force class casting here
      Deque<MutablePair<DeltaType, Object>> combinedDeltaList =
          combineDeltas((LinkedList<MutablePair<DeltaType, Object>>) deltas);
  
      boolean exist = items.containsKey(id);
      if (combinedDeltaList != null && combinedDeltaList.size() > 0) {
        if (!exist) {
          this.queue.add(id);
        }
        this.items.put(id, new LinkedList<>(combinedDeltaList));
        notEmpty.signalAll();
      } else {
        this.items.remove(id);
      }
    }