// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.data.osm.event; import java.util.Collection; import java.util.Collections; import java.util.List; import org.openstreetmap.josm.data.osm.DataSet; import org.openstreetmap.josm.data.osm.OsmPrimitive; public class DataChangedEvent extends AbstractDatasetChangedEvent { private final List<AbstractDatasetChangedEvent> events; /** * Constructs a new {@code DataChangedEvent} * @param dataSet data set * @param events list of change events */ public DataChangedEvent(DataSet dataSet, List<AbstractDatasetChangedEvent> events) { super(dataSet); this.events = events; } /** * Constructs a new {@code DataChangedEvent} * @param dataSet data set */ public DataChangedEvent(DataSet dataSet) { this(dataSet, null); } @Override public void fire(DataSetListener listener) { listener.dataChanged(this); } @Override public Collection<OsmPrimitive> getPrimitives() { return dataSet == null ? Collections.emptyList() : dataSet.allPrimitives(); } @Override public DatasetEventType getType() { return DatasetEventType.DATA_CHANGED; } /** * Returns list of events that caused this DataChangedEvent. * @return List of events that caused this DataChangedEvent. Might be null */ public List<AbstractDatasetChangedEvent> getEvents() { return events; } }