// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.data.osm.event; /** * A listener listening for all DataSet changes. * * @author nenik * @see DataSetListenerAdapter */ public interface DataSetListener { /** * A bunch of primitives were added into the DataSet, or existing * deleted/invisible primitives were resurrected. * * @param event An event for an collection of newly-visible primitives */ void primitivesAdded(PrimitivesAddedEvent event); /** * A bunch of primitives were removed from the DataSet, or preexisting * primitives were marked as deleted. * * @param event An event for an collection of newly-invisible primitives */ void primitivesRemoved(PrimitivesRemovedEvent event); /** * There was some change in the tag set of a primitive. It can have been * a tag addition, tag removal or change in tag value. * * @param event the event for the primitive, whose tags were affected. */ void tagsChanged(TagsChangedEvent event); /** * A node's coordinates were modified. * @param event The event for the node that was moved. */ void nodeMoved(NodeMovedEvent event); /** * A way's node list was changed. * @param event The event for the way that was modified. */ void wayNodesChanged(WayNodesChangedEvent event); /** * A relation's members have changed. * @param event The event for the relation that was modified. */ void relationMembersChanged(RelationMembersChangedEvent event); /** * Minor dataset change, currently only changeset id changed is supported, but can * be extended in future. * @param event the event for data modification */ void otherDatasetChange(AbstractDatasetChangedEvent event); /** * Called after big changes in dataset. Usually other events are stopped using Dataset.beginUpdate() and * after operation is completed (Dataset.endUpdate()), {@link #dataChanged(DataChangedEvent event)} is called. * @param event data change event */ void dataChanged(DataChangedEvent event); }