001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.data.osm.event;
003
004import java.util.Collection;
005import java.util.Collections;
006
007import org.openstreetmap.josm.data.osm.DataSet;
008import org.openstreetmap.josm.data.osm.OsmPrimitive;
009
010/**
011 * Represents a change in {@link OsmPrimitive#flags} unless covered by a more specific {@linkplain AbstractDatasetChangedEvent event}
012 */
013public class PrimitiveFlagsChangedEvent extends AbstractDatasetChangedEvent {
014
015    private final OsmPrimitive primitive;
016
017    public PrimitiveFlagsChangedEvent(DataSet dataSet, OsmPrimitive primitive) {
018        super(dataSet);
019        this.primitive = primitive;
020    }
021
022    @Override
023    public void fire(DataSetListener listener) {
024        listener.otherDatasetChange(this);
025    }
026
027    @Override
028    public Collection<? extends OsmPrimitive> getPrimitives() {
029        return Collections.singleton(primitive);
030    }
031
032    @Override
033    public DatasetEventType getType() {
034        return DatasetEventType.PRIMITIVE_FLAGS_CHANGED;
035    }
036}