001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.data.osm.event; 003 004import java.util.Collections; 005import java.util.List; 006 007import org.openstreetmap.josm.data.osm.DataSet; 008import org.openstreetmap.josm.data.osm.Node; 009import org.openstreetmap.josm.data.osm.OsmPrimitive; 010 011/** 012 * An event that is triggered on a node move (lat/lon change) 013 */ 014public class NodeMovedEvent extends AbstractDatasetChangedEvent { 015 016 private final Node node; 017 018 /** 019 * Constructs a new {@code NodeMovedEvent}. 020 * @param dataSet the dataset from which the event comes from 021 * @param node the node affected by the move 022 */ 023 public NodeMovedEvent(DataSet dataSet, Node node) { 024 super(dataSet); 025 this.node = node; 026 } 027 028 @Override 029 public void fire(DataSetListener listener) { 030 listener.nodeMoved(this); 031 } 032 033 /** 034 * Returns the node affected by the move. 035 * @return the node affected by the move 036 */ 037 public Node getNode() { 038 return node; 039 } 040 041 @Override 042 public List<? extends OsmPrimitive> getPrimitives() { 043 return Collections.singletonList(node); 044 } 045 046 @Override 047 public DatasetEventType getType() { 048 return DatasetEventType.NODE_MOVED; 049 } 050}