1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/* Licensed to the Apache Software Foundation (ASF) under one or more
2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * contributor license agreements.  See the NOTICE file distributed with
3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * this work for additional information regarding copyright ownership.
4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0
5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (the "License"); you may not use this file except in compliance with
6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the License.  You may obtain a copy of the License at
7f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes *
8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *     http://www.apache.org/licenses/LICENSE-2.0
9f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes *
10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software
11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See the License for the specific language governing permissions and
14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * limitations under the License.
15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */
16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage java.util.prefs;
18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
197365de1056414750d0a7d1fdd26025fd247f0d04Jesse Wilsonimport java.io.IOException;
207365de1056414750d0a7d1fdd26025fd247f0d04Jesse Wilsonimport java.io.NotSerializableException;
217365de1056414750d0a7d1fdd26025fd247f0d04Jesse Wilsonimport java.io.ObjectInputStream;
227365de1056414750d0a7d1fdd26025fd247f0d04Jesse Wilsonimport java.io.ObjectOutputStream;
23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.Serializable;
24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.EventObject;
25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/**
27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * This is the event class to indicate that one child of the preference node has
28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * been added or deleted.
29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p>
305cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson * Please note that although the class is marked as {@code Serializable} by
315cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson * inheritance from {@code EventObject}, this type is not intended to be serialized
325cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson * so the serialization methods do nothing but throw a {@code NotSerializableException}.
33f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes *
345cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson * @see java.util.prefs.Preferences
355cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson * @see java.util.prefs.NodeChangeListener
36f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes *
375cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson * @since 1.4
38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */
39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class NodeChangeEvent extends EventObject implements Serializable {
405cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson
41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    private static final long serialVersionUID = 8068949086596572957L;
425cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson
43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    private final Preferences parent;
44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    private final Preferences child;
455cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson
46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Constructs a new {@code NodeChangeEvent} instance.
48f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param p
50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            the {@code Preferences} instance that fired this event; this object is
51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            considered as the event source.
52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @param c
53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *            the child {@code Preferences} instance that was added or deleted.
54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public NodeChangeEvent (Preferences p, Preferences c) {
56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        super(p);
57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        parent = p;
58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        child = c;
59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
605cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson
61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Gets the {@code Preferences} instance that fired this event.
63f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return the {@code Preferences} instance that fired this event.
65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public Preferences getParent() {
67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        return parent;
68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
695cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson
70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Gets the child {@code Preferences} node that was added or removed.
72f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @return the added or removed child {@code Preferences} node.
74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public Preferences getChild() {
76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        return child;
77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
785cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson
795cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson    /**
80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * This method always throws a <code>NotSerializableException</code>,
81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * because this object cannot be serialized,
82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    private void writeObject (ObjectOutputStream out) throws IOException {
84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        throw new NotSerializableException();
85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
865cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson
875cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson    /**
88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * This method always throws a <code>NotSerializableException</code>,
89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * because this object cannot be serialized,
90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    private void readObject (ObjectInputStream in) throws IOException, ClassNotFoundException {
92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        throw new NotSerializableException();
93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
95