001 // License: GPL. For details, see LICENSE file.
002 package org.openstreetmap.josm.data.osm.event;
003
004 import java.util.ArrayList;
005 import java.util.Collection;
006 import java.util.Collections;
007 import java.util.List;
008
009 import org.openstreetmap.josm.data.osm.DataSet;
010 import org.openstreetmap.josm.data.osm.OsmPrimitive;
011
012 public 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 }