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    }