001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.spi.preferences; 003 004import java.util.EventObject; 005 006/** 007 * Default implementation of the {@link PreferenceChangeEvent} interface. 008 * @since 12881 009 */ 010public class DefaultPreferenceChangeEvent extends EventObject implements PreferenceChangeEvent { 011 012 private final String key; 013 private final Setting<?> oldValue; 014 private final Setting<?> newValue; 015 016 /** 017 * Constructs a new {@code DefaultPreferenceChangeEvent}. 018 * @param source the class source of this event 019 * @param key preference key 020 * @param oldValue preference old value 021 * @param newValue preference new value 022 * @since 14977 023 */ 024 public DefaultPreferenceChangeEvent(Class<?> source, String key, Setting<?> oldValue, Setting<?> newValue) { 025 super(source); 026 this.key = key; 027 this.oldValue = oldValue; 028 this.newValue = newValue; 029 } 030 031 @Override 032 public Class<?> getSource() { 033 return (Class<?>) super.getSource(); 034 } 035 036 @Override 037 public String getKey() { 038 return key; 039 } 040 041 @Override 042 public Setting<?> getOldValue() { 043 return oldValue; 044 } 045 046 @Override 047 public Setting<?> getNewValue() { 048 return newValue; 049 } 050 051}