// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.data.osm.event; import java.util.Collection; import org.openstreetmap.josm.data.osm.DataSet; import org.openstreetmap.josm.data.osm.OsmPrimitive; public abstract class AbstractDatasetChangedEvent { public enum DatasetEventType { DATA_CHANGED, NODE_MOVED, PRIMITIVES_ADDED, PRIMITIVES_REMOVED, RELATION_MEMBERS_CHANGED, TAGS_CHANGED, WAY_NODES_CHANGED, CHANGESET_ID_CHANGED, PRIMITIVE_FLAGS_CHANGED, } protected final DataSet dataSet; protected AbstractDatasetChangedEvent(DataSet dataSet) { this.dataSet = dataSet; } public abstract void fire(DataSetListener listener); /** * Returns list of primitives modified by this event. * <br> * <strong>WARNING</strong> This value might be incorrect in case * of {@link DataChangedEvent}. It returns all primitives in the dataset * when this method is called (live list), not list of primitives when * the event was created * @return List of modified primitives */ public abstract Collection<? extends OsmPrimitive> getPrimitives(); public DataSet getDataset() { return dataSet; } public abstract DatasetEventType getType(); @Override public String toString() { return getType().toString(); } }