001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.data.osm.event; 003 004/** 005 * Classes that do not wish to implement all methods of DataSetListener 006 * may use this class. Implement {@link DataSetListenerAdapter.Listener} and 007 * pass this adapter instead of class itself. 008 * @since 2622 009 */ 010public class DataSetListenerAdapter implements DataSetListener { 011 012 /** 013 * Single method dataset change event listener. 014 */ 015 @FunctionalInterface 016 public interface Listener { 017 /** 018 * Called when notified about any type of dataset change event. 019 * @param event dataset change event 020 */ 021 void processDatasetEvent(AbstractDatasetChangedEvent event); 022 } 023 024 private final Listener listener; 025 026 /** 027 * Constructs a new {@code DataSetListenerAdapter}. 028 * @param listener listener for which its {@code processDatasetEvent()} method will be called for all events 029 */ 030 public DataSetListenerAdapter(Listener listener) { 031 this.listener = listener; 032 } 033 034 @Override 035 public void dataChanged(DataChangedEvent event) { 036 listener.processDatasetEvent(event); 037 } 038 039 @Override 040 public void nodeMoved(NodeMovedEvent event) { 041 listener.processDatasetEvent(event); 042 } 043 044 @Override 045 public void primitivesAdded(PrimitivesAddedEvent event) { 046 listener.processDatasetEvent(event); 047 } 048 049 @Override 050 public void primitivesRemoved(PrimitivesRemovedEvent event) { 051 listener.processDatasetEvent(event); 052 } 053 054 @Override 055 public void relationMembersChanged(RelationMembersChangedEvent event) { 056 listener.processDatasetEvent(event); 057 } 058 059 @Override 060 public void tagsChanged(TagsChangedEvent event) { 061 listener.processDatasetEvent(event); 062 } 063 064 @Override 065 public void wayNodesChanged(WayNodesChangedEvent event) { 066 listener.processDatasetEvent(event); 067 } 068 069 @Override 070 public void otherDatasetChange(AbstractDatasetChangedEvent event) { 071 listener.processDatasetEvent(event); 072 } 073 074}