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 static final long serialVersionUID = 1L; 013 014 private final String key; 015 private final Setting<?> oldValue; 016 private final Setting<?> newValue; 017 018 /** 019 * Constructs a new {@code DefaultPreferenceChangeEvent}. 020 * @param source the class source of this event 021 * @param key preference key 022 * @param oldValue preference old value 023 * @param newValue preference new value 024 * @since 14977 025 */ 026 public DefaultPreferenceChangeEvent(Class<?> source, String key, Setting<?> oldValue, Setting<?> newValue) { 027 super(source); 028 this.key = key; 029 this.oldValue = oldValue; 030 this.newValue = newValue; 031 } 032 033 @Override 034 public Class<?> getSource() { 035 return (Class<?>) super.getSource(); 036 } 037 038 @Override 039 public String getKey() { 040 return key; 041 } 042 043 @Override 044 public Setting<?> getOldValue() { 045 return oldValue; 046 } 047 048 @Override 049 public Setting<?> getNewValue() { 050 return newValue; 051 } 052 053}