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