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 DatasetListenerAdapter.Listener and
007 * pass this adapter instead of class itself.
008 *
009 */
010public class DataSetListenerAdapter implements DataSetListener {
011
012    @FunctionalInterface
013    public interface Listener {
014        void processDatasetEvent(AbstractDatasetChangedEvent event);
015    }
016
017    private final Listener listener;
018
019    public DataSetListenerAdapter(Listener listener) {
020        this.listener = listener;
021    }
022
023    @Override
024    public void dataChanged(DataChangedEvent event) {
025        listener.processDatasetEvent(event);
026    }
027
028    @Override
029    public void nodeMoved(NodeMovedEvent event) {
030        listener.processDatasetEvent(event);
031    }
032
033    @Override
034    public void primitivesAdded(PrimitivesAddedEvent event) {
035        listener.processDatasetEvent(event);
036    }
037
038    @Override
039    public void primitivesRemoved(PrimitivesRemovedEvent event) {
040        listener.processDatasetEvent(event);
041    }
042
043    @Override
044    public void relationMembersChanged(RelationMembersChangedEvent event) {
045        listener.processDatasetEvent(event);
046    }
047
048    @Override
049    public void tagsChanged(TagsChangedEvent event) {
050        listener.processDatasetEvent(event);
051    }
052
053    @Override
054    public void wayNodesChanged(WayNodesChangedEvent event) {
055        listener.processDatasetEvent(event);
056    }
057
058    @Override
059    public void otherDatasetChange(AbstractDatasetChangedEvent event) {
060        listener.processDatasetEvent(event);
061    }
062
063}