001 // License: GPL. For details, see LICENSE file.
002 package org.openstreetmap.josm.data.osm.event;
003
004 import java.util.Collection;
005 import java.util.Collections;
006 import java.util.List;
007
008 import org.openstreetmap.josm.data.osm.DataSet;
009 import org.openstreetmap.josm.data.osm.OsmPrimitive;
010
011 public class DataChangedEvent extends AbstractDatasetChangedEvent {
012
013 private final List<AbstractDatasetChangedEvent> events;
014
015 public DataChangedEvent(DataSet dataSet, List<AbstractDatasetChangedEvent> events) {
016 super(dataSet);
017 this.events = events;
018 }
019
020 public DataChangedEvent(DataSet dataSet) {
021 this(dataSet, null);
022 }
023
024 @Override
025 public void fire(DataSetListener listener) {
026 listener.dataChanged(this);
027 }
028
029 @Override
030 public Collection<OsmPrimitive> getPrimitives() {
031 if (dataSet == null)
032 return Collections.emptyList();
033 else
034 return dataSet.allPrimitives();
035 }
036
037 @Override
038 public DatasetEventType getType() {
039 return DatasetEventType.DATA_CHANGED;
040 }
041
042 /**
043 *
044 * @return List of events that caused this DataChangedEvent. Might be null
045 */
046 public List<AbstractDatasetChangedEvent> getEvents() {
047 return events;
048 }
049
050 }