001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.data.osm.event;
003
004import java.util.ArrayList;
005import java.util.Collection;
006import java.util.Collections;
007import java.util.List;
008
009import org.openstreetmap.josm.data.osm.DataSet;
010import org.openstreetmap.josm.data.osm.OsmPrimitive;
011
012public class PrimitivesRemovedEvent extends AbstractDatasetChangedEvent {
013
014    private final List<? extends OsmPrimitive> primitives;
015    private final boolean wasComplete;
016
017    public PrimitivesRemovedEvent(DataSet dataSet, Collection<? extends OsmPrimitive> primitives, boolean wasComplete) {
018        super(dataSet);
019        this.primitives = Collections.unmodifiableList(new ArrayList<OsmPrimitive>(primitives));
020        this.wasComplete = wasComplete;
021    }
022
023    @Override
024    public void fire(DataSetListener listener) {
025        listener.primitivesRemoved(this);
026    }
027
028    @Override
029    public List<? extends OsmPrimitive> getPrimitives() {
030        return primitives;
031    }
032
033    /**
034     *
035     * @return True if primitive wasn't really removed from the dataset, it only become incomplete again
036     */
037    public boolean wasComplete() {
038        return wasComplete;
039    }
040
041    @Override
042    public DatasetEventType getType() {
043        return DatasetEventType.PRIMITIVES_REMOVED;
044    }
045
046}