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