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    }