| PreferenceChangeEvent.java |
1 /*
2 * %W% %E%
3 *
4 * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
5 * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
6 */
7
8 package java.util.prefs;
9
10 import java.io.NotSerializableException;
11
12 /**
13 * An event emitted by a <tt>Preferences</tt> node to indicate that
14 * a preference has been added, removed or has had its value changed.<p>
15 *
16 * Note, that although PreferenceChangeEvent inherits Serializable interface
17 * from EventObject, it is not intended to be Serializable. Appropriate
18 * serialization methods are implemented to throw NotSerializableException.
19 *
20 * @author Josh Bloch
21 * @version %I%, %G%
22 * @see Preferences
23 * @see PreferenceChangeListener
24 * @see NodeChangeEvent
25 * @since 1.4
26 * @serial exclude
27 */
28 public class PreferenceChangeEvent extends java.util.EventObject {
29
30 /**
31 * Key of the preference that changed.
32 *
33 * @serial
34 */
35 private String key;
36
37 /**
38 * New value for preference, or <tt>null</tt> if it was removed.
39 *
40 * @serial
41 */
42 private String newValue;
43
44 /**
45 * Constructs a new <code>PreferenceChangeEvent</code> instance.
46 *
47 * @param node The Preferences node that emitted the event.
48 * @param key The key of the preference that was changed.
49 * @param newValue The new value of the preference, or <tt>null</tt>
50 * if the preference is being removed.
51 */
52 public PreferenceChangeEvent(Preferences node, String key,
53 String newValue) {
54 super(node);
55 this.key = key;
56 this.newValue = newValue;
57 }
58
59 /**
60 * Returns the preference node that emitted the event.
61 *
62 * @return The preference node that emitted the event.
63 */
64 public Preferences getNode() {
65 return (Preferences) getSource();
66 }
67
68 /**
69 * Returns the key of the preference that was changed.
70 *
71 * @return The key of the preference that was changed.
72 */
73 public String getKey() {
74 return key;
75 }
76
77 /**
78 * Returns the new value for the preference.
79 *
80 * @return The new value for the preference, or <tt>null</tt> if the
81 * preference was removed.
82 */
83 public String getNewValue() {
84 return newValue;
85 }
86
87 /**
88 * Throws NotSerializableException, since NodeChangeEvent objects
89 * are not intended to be serializable.
90 */
91 private void writeObject(java.io.ObjectOutputStream out)
92 throws NotSerializableException {
93 throw new NotSerializableException("Not serializable.");
94 }
95
96 /**
97 * Throws NotSerializableException, since PreferenceChangeEvent objects
98 * are not intended to be serializable.
99 */
100 private void readObject(java.io.ObjectInputStream in)
101 throws NotSerializableException {
102 throw new NotSerializableException("Not serializable.");
103 }
104
105 // Defined so that this class isn't flagged as a potential problem when
106 // searches for missing serialVersionUID fields are done.
107 private static final long serialVersionUID = 793724513368024975L;
108 }
109