KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > ldap > server > jndi > ServerDirObjectFactory


1 /*
2  * Copyright 2004 The Apache Software Foundation
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * 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 org.apache.ldap.server.jndi;
18
19
20 import javax.naming.spi.DirObjectFactory JavaDoc;
21
22
23 /**
24  * A specialized ObjectFactory that is optimized for our server-side JNDI
25  * provider. This factory reports the Class of objects that it is creates as
26  * well as the objectClass corresponding to that Class. This makes it easier
27  * for the server side provider to lookup the respective factory rather than
28  * attempt several others within the list of object factories in the order of
29  * greatest specificity. JNDI SPI methods are inefficient since they are
30  * designed to try all object factories to produce the object. Our provider
31  * looks up the most specific object factory based on this additional
32  * information. This makes a huge difference when the number of ObjectFactory
33  * instances is large.
34  * <br/>
35  * Eventually, it is highly feasible for generated schemas, to also include
36  * state and object factories for various objectClasses, or domain objects.
37  * This means the number of factories will increase. By associating object and
38  * state factories with their respective objectClasses and Classes we can
39  * integrate these DAOs into the schema subsystem making factory lookups
40  * extremely fast and efficient without costing the user too much to create and
41  * store objects within the directory. At the end of the day the directory
42  * becomes a hierarchical object store where lookup, bind and rebind are the
43  * only operations besides search to access and store objects. That's pretty
44  * PHAT!
45  *
46  * @author <a HREF="mailto:dev@directory.apache.org">Apache Directory Project</a>
47  * @version $Rev$
48  */

49 public interface ServerDirObjectFactory extends DirObjectFactory JavaDoc
50 {
51     /**
52      * Gets either the OID for the objectClass or the human readable name for
53      * the objectClass this DirStateFactory is associated with. Note
54      * that associating this factory with an objectClass automatically
55      * associates this DirObjectFactory with all descendents of the objectClass.
56      *
57      * @return the OID or human readable name of the objectClass associated with this ObjectFactory
58      */

59     String JavaDoc getObjectClassId();
60
61     /**
62      * Gets the Class instance associated with this ObjectFactory. Objects to
63      * be created by this ObjectFactory will be of this type, a subclass of
64      * this type, or implement this type if it is an interface.
65      *
66      * @return the Class associated with this factory.
67      */

68     Class JavaDoc getAssociatedClass();
69 }
70
Popular Tags