1 /*
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License. You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing,
13 * software distributed under the License is distributed on an
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 * KIND, either express or implied. See the License for the
16 * specific language governing permissions and limitations
17 * under the License.
18 *
19 */
20 package org.apache.directory.server.schema.bootstrap;
21
22
23 /**
24 * A configuration of related Schema objects bundled together and identified as
25 * a group.
26 *
27 * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
28 * @version $Rev: 491471 $
29 */
30 public interface BootstrapSchema extends Schema
31 {
32 /**
33 * Gets the package name of the schema's object factories.
34 *
35 * @return the name of the schema's package name
36 */
37 String getPackageName();
38
39
40 /**
41 * Gets the base class name for bootstrap Schema class files. This name
42 * is the schema name with the first character capitalized and qualified
43 * by the package name. So for a bootstrap schema name of 'bar' within
44 * the 'foo' package would return foo.Bar as the base class name.
45 *
46 * @return the base of all bootstrap schema class names for this schema
47 */
48 String getBaseClassName();
49
50
51 /**
52 * Gets the default base class name for bootstrap Schema class files. This
53 * name is the schema name with the first character capitalized and qualified
54 * by the default package name. So for a bootstrap schema name of 'bar'
55 * within the 'foo' package would return foo.Bar as the base class name.
56 *
57 * @return the default base of all bootstrap schema class names for this schema
58 */
59 String getDefaultBaseClassName();
60
61
62 /**
63 * Gets the class name for bootstrap Schema class producer type.
64 *
65 * @return the bootstrap schema class name for a producer type in this schema
66 */
67 String getFullClassName( ProducerTypeEnum type );
68
69
70 /**
71 * If the base class name for the target class does not resolve, we attempt
72 * to load another backup class using this default base class name which
73 * tries another package for the target class factory to load.
74 *
75 * @return the default base class name
76 */
77 String getFullDefaultBaseClassName( ProducerTypeEnum type );
78
79
80 /**
81 * Gets the unqualified class name for bootstrap Schema class producer type.
82 *
83 * @return the bootstrap schema class name for a producer type in this schema
84 */
85 String getUnqualifiedClassName( ProducerTypeEnum type );
86
87
88 /**
89 * Gets the unqualified class name for Schema class.
90 *
91 * @return the bootstrap schema class name
92 */
93 String getUnqualifiedClassName();
94 }