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<>(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}