@NotNull
  ChangeApplier prepareChange(@NotNull List<? extends VFileEvent> events) {
    myCollectedEvents = collectEvents(events);
    return new ChangeApplier() {
      @Override
      public void beforeVfsChange() {
        CollectedEvents collected;
        //noinspection SynchronizeOnThis
        synchronized (VirtualFilePointerManagerImpl.this) {
          collected = myCollectedEvents;
          if (collected.startModCount == myPointerSetModCount) {
            incModificationCount();
          }
          else {
            myCollectedEvents = collected = collectEvents(events);
          }
        }

        for (EventDescriptor descriptor : collected.eventList) {
          descriptor.fireBefore();
        }

        assertConsistency();
      }
    };
  }
@NotNull
  ChangeApplier prepareChange(@NotNull List<? extends VFileEvent> events)