001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.data.osm.event;
003
004import java.util.Collections;
005import java.util.List;
006import java.util.Map;
007
008import org.openstreetmap.josm.data.osm.DataSet;
009import org.openstreetmap.josm.data.osm.OsmPrimitive;
010
011public 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}