code: private void fireObjectChanged(DBIDRef object, Type type) {
      // flush first
      if(currentDataStoreEventType != null && !currentDataStoreEventType.equals(type)) {
        flushDataStoreEvents();
      }
      if(this.dataStoreObjects == null) {
        this.dataStoreObjects = DBIDUtil.newHashSet();
      }
      this.dataStoreObjects.add(object);
      currentDataStoreEventType = type;
  
      if(!accumulateDataStoreEvents) {
        flushDataStoreEvents();
      }
    }
docs: Handles a DataStoreEvent with the specified type. If the current event type
  is not equal to the specified type, the events accumulated up to now will
  be fired first.
  
  The new event will be aggregated and fired on demand if
  {@link #accumulateDataStoreEvents} is set, otherwise all registered
  <code>DataStoreListener</code> will be notified immediately that the
  content of the database has been changed.
  
  @param object the object that has been changed, i.e. inserted, deleted or
  updated