001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.data.osm.event; 003 004/** 005 * A listener listening for all DataSet changes. 006 * 007 * @see DataSetListenerAdapter 008 * @author nenik 009 */ 010public interface DataSetListener { 011 /** 012 * A bunch of primitives were added into the DataSet, or existing 013 * deleted/invisible primitives were resurrected. 014 * 015 * @param event An event for an collection of newly-visible primitives 016 */ 017 void primitivesAdded(PrimitivesAddedEvent event); 018 019 /** 020 * A bunch of primitives were removed from the DataSet, or preexisting 021 * primitives were marked as deleted. 022 * 023 * @param event An event for an collection of newly-invisible primitives 024 */ 025 void primitivesRemoved(PrimitivesRemovedEvent event); 026 027 /** 028 * There was some change in the tag set of a primitive. It can have been 029 * a tag addition, tag removal or change in tag value. 030 * 031 * @param event the event for the primitive, whose tags were affected. 032 */ 033 void tagsChanged(TagsChangedEvent event); 034 035 /** 036 * A node's coordinates were modified. 037 * @param event The event for the node that was moved. 038 */ 039 void nodeMoved(NodeMovedEvent event); 040 041 /** 042 * A way's node list was changed. 043 * @param event The event for the way that was modified. 044 */ 045 void wayNodesChanged(WayNodesChangedEvent event); 046 047 /** 048 * A relation's members have changed. 049 * @param event The event for the relation that was modified. 050 */ 051 void relationMembersChanged(RelationMembersChangedEvent event); 052 053 /** 054 * Minor dataset change, currently only changeset id changed is supported, but can 055 * be extended in future. 056 * @param event the event for data modification 057 */ 058 void otherDatasetChange(AbstractDatasetChangedEvent event); 059 060 /** 061 * Called after big changes in dataset. Usually other events are stopped using Dataset.beginUpdate() and 062 * after operation is completed (Dataset.endUpdate()), {@link #dataChanged(DataChangedEvent event)} is called. 063 */ 064 void dataChanged(DataChangedEvent event); 065}