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 }