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 }