001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.data.osm.event;
003
004import java.util.List;
005
006import org.openstreetmap.josm.data.osm.DataSet;
007import org.openstreetmap.josm.data.osm.OsmPrimitive;
008
009/**
010 * An event that is triggered when the changeset id has changed for a list of primitives.
011 */
012public class ChangesetIdChangedEvent extends AbstractDatasetChangedEvent {
013
014    private final List<OsmPrimitive> primitives;
015    private final int oldChangesetId;
016    private final int newChangesetId;
017
018    /**
019     * Constructs a new {@code ChangesetIdChangedEvent}.
020     * @param dataSet the dataset from which the event comes from
021     * @param primitives list of affected primitives
022     * @param oldChangesetId old changeset id
023     * @param newChangesetId new changeset id
024     */
025    public ChangesetIdChangedEvent(DataSet dataSet, List<OsmPrimitive> primitives, int oldChangesetId, int newChangesetId) {
026        super(dataSet);
027        this.primitives = primitives;
028        this.oldChangesetId = oldChangesetId;
029        this.newChangesetId = newChangesetId;
030    }
031
032    @Override
033    public void fire(DataSetListener listener) {
034        listener.otherDatasetChange(this);
035    }
036
037    @Override
038    public List<OsmPrimitive> getPrimitives() {
039        return primitives;
040    }
041
042    @Override
043    public DatasetEventType getType() {
044        return DatasetEventType.CHANGESET_ID_CHANGED;
045    }
046
047    /**
048     * Returns the old changeset id.
049     * @return the old changeset id
050     */
051    public int getOldChangesetId() {
052        return oldChangesetId;
053    }
054
055    /**
056     * Returns the new changeset id.
057     * @return the new changeset id
058     */
059    public int getNewChangesetId() {
060        return newChangesetId;
061    }
062
063}