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 /** 018 * Constructs a new {@code PrimitiveFlagsChangedEvent}. 019 * @param dataSet the dataset from which the event comes from 020 * @param primitive the primitive affected by the change 021 */ 022 public PrimitiveFlagsChangedEvent(DataSet dataSet, OsmPrimitive primitive) { 023 super(dataSet); 024 this.primitive = primitive; 025 } 026 027 @Override 028 public void fire(DataSetListener listener) { 029 listener.otherDatasetChange(this); 030 } 031 032 @Override 033 public Collection<? extends OsmPrimitive> getPrimitives() { 034 return Collections.singleton(primitive); 035 } 036 037 @Override 038 public DatasetEventType getType() { 039 return DatasetEventType.PRIMITIVE_FLAGS_CHANGED; 040 } 041}