001 // License: GPL. For details, see LICENSE file.
002 package org.openstreetmap.josm.data.osm.event;
003
004 import java.util.Collections;
005 import java.util.List;
006 import java.util.Map;
007
008 import org.openstreetmap.josm.data.osm.DataSet;
009 import org.openstreetmap.josm.data.osm.OsmPrimitive;
010
011 public class TagsChangedEvent extends AbstractDatasetChangedEvent {
012
013 private final OsmPrimitive primitive;
014 private final Map<String, String> originalKeys;
015
016 public TagsChangedEvent(DataSet dataSet, OsmPrimitive primitive, Map<String, String> originalKeys) {
017 super(dataSet);
018 this.primitive = primitive;
019 this.originalKeys = originalKeys;
020 }
021
022 @Override
023 public void fire(DataSetListener listener) {
024 listener.tagsChanged(this);
025 }
026
027 public OsmPrimitive getPrimitive() {
028 return primitive;
029 }
030
031 @Override
032 public List<? extends OsmPrimitive> getPrimitives() {
033 return Collections.singletonList(primitive);
034 }
035
036 @Override
037 public DatasetEventType getType() {
038 return DatasetEventType.TAGS_CHANGED;
039 }
040
041 public Map<String, String> getOriginalKeys() {
042 return originalKeys;
043 }
044
045 }