View Javadoc

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.schema.bootstrap;
18  
19  
20  /***
21   * A configuration of related Schema objects bundled together and identified as
22   * a group.
23   *
24   * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
25   * @version $Rev: 157708 $
26   */
27  public interface BootstrapSchema
28  {
29      /***
30       * Gets the name of the owner of the schema objects within this
31       * BootstrapSchema.
32       *
33       * @return the identifier for the owner of this set's objects
34       */
35      String getOwner();
36  
37      /***
38       * Gets the name of the logical schema the objects of this BootstrapSchema
39       * belong to: e.g. krb5-kdc may be the logical LDAP schema name.
40       *
41       * @return the name of the logical schema
42       */
43      String getSchemaName();
44  
45      /***
46       * Gets the package name of the schema's object factories.
47       *
48       * @return the name of the schema's package name
49       */
50      String getPackageName();
51  
52      /***
53       * Gets the names of other schemas that this objects within this
54       * BootstrapSchema depends upon.  These dependent schemas are those
55       * whose ConfigurationSets will be processed first.
56       *
57       * @return the String names of schema dependencies
58       */
59      String[] getDependencies();
60  
61      /***
62       * Gets the base class name for bootstrap Schema class files.  This name
63       * is the schema name with the first character capitalized and qualified
64       * by the package name.  So for a bootstrap schema name of 'bar' within
65       * the 'foo' package would return foo.Bar as the base class name.
66       *
67       * @return the base of all bootstrap schema class names for this schema
68       */
69      String getBaseClassName();
70  
71      /***
72       * Gets the default base class name for bootstrap Schema class files.  This
73       * name is the schema name with the first character capitalized and qualified
74       * by the default package name.  So for a bootstrap schema name of 'bar'
75       * within the 'foo' package would return foo.Bar as the base class name.
76       *
77       * @return the default base of all bootstrap schema class names for this schema
78       */
79      String getDefaultBaseClassName();
80  
81      /***
82       * Gets the class name for bootstrap Schema class producer type.
83       *
84       * @return the bootstrap schema class name for a producer type in this schema
85       */
86      String getFullClassName( ProducerTypeEnum type );
87  
88      /***
89       * If the base class name for the target class does not resolve, we attempt
90       * to load another backup class using this default base class name which
91       * tries another package for the target class factory to load.
92       *
93       * @return the default base class name
94       */
95      String getFullDefaultBaseClassName( ProducerTypeEnum type );
96  
97      /***
98       * Gets the unqualified class name for bootstrap Schema class producer type.
99       *
100      * @return the bootstrap schema class name for a producer type in this schema
101      */
102     String getUnqualifiedClassName( ProducerTypeEnum type );
103 
104     /***
105      * Gets the unqualified class name for Schema class.
106      *
107      * @return the bootstrap schema class name
108      */
109     String getUnqualifiedClassName();
110 }