View Javadoc
1   /*
2    * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
3    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4    *
5    * This code is free software; you can redistribute it and/or modify it
6    * under the terms of the GNU General Public License version 2 only, as
7    * published by the Free Software Foundation.  Oracle designates this
8    * particular file as subject to the "Classpath" exception as provided
9    * by Oracle in the LICENSE file that accompanied this code.
10   *
11   * This code is distributed in the hope that it will be useful, but WITHOUT
12   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13   * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14   * version 2 for more details (a copy is included in the LICENSE file that
15   * accompanied this code).
16   *
17   * You should have received a copy of the GNU General Public License version
18   * 2 along with this work; if not, write to the Free Software Foundation,
19   * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20   *
21   * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22   * or visit www.oracle.com if you need additional information or have any
23   * questions.
24   */
25  
26  package javax.naming.event;
27  
28  /**
29    * Specifies the methods that a listener interested in namespace changes
30    * must implement.
31    * Specifically, the listener is interested in <tt>NamingEvent</tt>s
32    * with event types of <tt>OBJECT_ADDED</TT>, <TT>OBJECT_RENAMED</TT>, or
33    * <TT>OBJECT_REMOVED</TT>.
34    *<p>
35    * Such a listener must:
36    *<ol>
37    *<li>Implement this interface and its methods.
38    *<li>Implement <tt>NamingListener.namingExceptionThrown()</tt> so that
39    * it will be notified of exceptions thrown while attempting to
40    * collect information about the events.
41    *<li>Register with the source using the source's <tt>addNamingListener()</tt>
42    *    method.
43    *</ol>
44    * A listener that wants to be notified of <tt>OBJECT_CHANGED</tt> event types
45    * should also implement the <tt>ObjectChangeListener</tt>
46    * interface.
47    *
48    * @author Rosanna Lee
49    * @author Scott Seligman
50    *
51    * @see NamingEvent
52    * @see ObjectChangeListener
53    * @see EventContext
54    * @see EventDirContext
55    * @since 1.3
56    */
57  public interface NamespaceChangeListener extends NamingListener {
58  
59      /**
60       * Called when an object has been added.
61       *<p>
62       * The binding of the newly added object can be obtained using
63       * <tt>evt.getNewBinding()</tt>.
64       * @param evt The nonnull event.
65       * @see NamingEvent#OBJECT_ADDED
66       */
67      void objectAdded(NamingEvent evt);
68  
69      /**
70       * Called when an object has been removed.
71       *<p>
72       * The binding of the newly removed object can be obtained using
73       * <tt>evt.getOldBinding()</tt>.
74       * @param evt The nonnull event.
75       * @see NamingEvent#OBJECT_REMOVED
76       */
77      void objectRemoved(NamingEvent evt);
78  
79      /**
80       * Called when an object has been renamed.
81       *<p>
82       * The binding of the renamed object can be obtained using
83       * <tt>evt.getNewBinding()</tt>. Its old binding (before the rename)
84       * can be obtained using <tt>evt.getOldBinding()</tt>.
85       * One of these may be null if the old/new binding was outside the
86       * scope in which the listener has registered interest.
87       * @param evt The nonnull event.
88       * @see NamingEvent#OBJECT_RENAMED
89       */
90      void objectRenamed(NamingEvent evt);
91  }