001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017:
018: package javax.naming.event;
019:
020: import javax.naming.Name;
021: import javax.naming.NamingException;
022: import javax.naming.directory.DirContext;
023: import javax.naming.directory.SearchControls;
024:
025: /**
026: * This interface allows registering of listeners for events concerning objects
027: * bound in a directory context.
028: * <p>
029: * The registration methods take an RFC2254 search filter as a parameter, which
030: * is used to select the objects to generate events for.
031: * </p>
032: * <p>
033: * Sometimes objects that satisfy a search filter may be bound after a listener
034: * is registered, specifying the filter. Where the directory service will not
035: * support this, and generate events for objects bound after a given filter is
036: * specified, then the <code>addNamingListener</code> methods will throw an
037: * <code>InvalidSearchFilterException</code>.
038: * </p>
039: */
040: public interface EventDirContext extends EventContext, DirContext {
041:
042: /**
043: * Registers naming listener for events concerning objects selected by the
044: * given search at <code>name</code>. The <code>name</code> parameter
045: * is relative to this context.
046: *
047: * @param name
048: * the concerning <code>Name</code>
049: * @param filter
050: * a RFC2254 search filter
051: * @param filterArgs
052: * filter arguments
053: * @param searchControls
054: * Further specifies the selection of objects to generate events
055: * for, and the information contained in
056: * <code>NamingEvents</code> that may be generated.
057: * @param namingListener
058: * the <code>NamingListener</code> to be registered
059: * @throws NamingException
060: * If any exception occured.
061: */
062: void addNamingListener(Name name, String filter,
063: Object filterArgs[], SearchControls searchControls,
064: NamingListener namingListener) throws NamingException;
065:
066: /**
067: * Registers naming listener for events concerning objects selected by the
068: * given search at <code>name</code>. The <code>name</code> parameter
069: * is relative to this context.
070: *
071: * @param name
072: * the concerning <code>Name</code>
073: * @param filter
074: * a RFC2254 search filter string with no arguments
075: * @param searchControls
076: * further specifies the selection of objects to generate events
077: * for, and the information contained in
078: * <code>NamingEvents</code> that may be generated
079: * @param namingListener
080: * the <code>NamingListener</code> to be registered
081: * @throws NamingException
082: * If any exception occured.
083: * @see #addNamingListener(Name, String, Object[], SearchControls,
084: * NamingListener)
085: */
086: void addNamingListener(Name name, String filter,
087: SearchControls searchControls, NamingListener namingListener)
088: throws NamingException;
089:
090: /**
091: * Registers naming listener for events concerning objects selected by the
092: * given search at name string <code>name</code>. The <code>s</code>
093: * parameter is relative to this context.
094: *
095: * @param name
096: * the concerning <code>Name</code>
097: * @param filter
098: * a RFC2254 search filter
099: * @param filterArgs
100: * filter arguments
101: * @param searchControls
102: * further specifies the selection of objects to generate events
103: * for, and the information contained in
104: * <code>NamingEvents</code> that may be generated
105: * @param namingListener
106: * the <code>NamingListener</code> to be registered
107: * @throws NamingException
108: * If any exception occured.
109: * @see #addNamingListener(Name, String, Object[], SearchControls,
110: * NamingListener)
111: */
112: void addNamingListener(String name, String filter,
113: Object filterArgs[], SearchControls searchControls,
114: NamingListener namingListener) throws NamingException;
115:
116: /**
117: * Registers naming listener for events concerning objects selected by the
118: * given search at name string <code>name</code>. The <code>s</code>
119: * parameter is relative to this context.
120: *
121: * @param name
122: * the concerning <code>Name</code>
123: * @param filter
124: * a RFC2254 search filter string with no arguments
125: * @param searchControls
126: * further specifies the selection of objects to generate events
127: * for, and the information contained in
128: * <code>NamingEvents</code> that may be generated
129: * @param namingListener
130: * the <code>NamingListener</code> to be registered
131: * @throws NamingException
132: * If any exception occured.
133: * @see #addNamingListener(String, String, Object[], SearchControls,
134: * NamingListener)
135: */
136: void addNamingListener(String name, String filter,
137: SearchControls searchControls, NamingListener namingListener)
138: throws NamingException;
139:
140: }
|