mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

coulbeck
12.27.2007 35af51f9683f5ef8cec66baca7b89aa1e1cbc44e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/*
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License, Version 1.0 only
 * (the "License").  You may not use this file except in compliance
 * with the License.
 *
 * You can obtain a copy of the license at
 * trunk/opends/resource/legal-notices/OpenDS.LICENSE
 * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at
 * trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
 * add the following below this CDDL HEADER, with the fields enclosed
 * by brackets "[]" replaced with your own identifying information:
 *      Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 *
 *
 *      Portions Copyright 2006-2007 Sun Microsystems, Inc.
 */
package org.opends.server.api;
 
 
 
import org.opends.server.config.ConfigEntry;
import org.opends.server.config.ConfigException;
import org.opends.server.types.DirectoryException;
import org.opends.server.types.DN;
import org.opends.server.types.InitializationException;
 
 
/**
 * This class defines the set of methods and structures that must be
 * implemented by a Directory Server configuration handler.
 */
public abstract class ConfigHandler
       extends Backend
{
  /**
   * Bootstraps this configuration handler using the information in
   * the provided configuration file.  Depending on this configuration
   * handler implementation, the provided file may contain either the
   * entire server configuration or information that is needed to
   * access the configuration in some other location or repository.
   *
   * @param  configFile   The path to the file to use to initialize
   *                      this configuration handler.
   * @param  checkSchema  Indicates whether to perform schema checking
   *                      on the configuration data.
   *
   * @throws  InitializationException  If a problem occurs while
   *                                   attempting to initialize this
   *                                   configuration handler.
   */
  public abstract void initializeConfigHandler(String configFile,
                                               boolean checkSchema)
         throws InitializationException;
 
 
 
  /**
   * Finalizes this configuration handler so that it will release any
   * resources associated with it so that it will no longer be used.
   * This will be called when the Directory Server is shutting down,
   * as well as in the startup process once the schema has been read
   * so that the configuration can be re-read using the updated
   * schema.
   */
  public abstract void finalizeConfigHandler();
 
 
 
  /**
   * Retrieves the entry that is at the root of the Directory Server
   * configuration.
   *
   * @return  The entry that is at the root of the Directory Server
   *          configuration.
   *
   * @throws  ConfigException  If a problem occurs while interacting
   *                           with the configuration.
   */
  public abstract ConfigEntry getConfigRootEntry()
         throws ConfigException;
 
 
 
  /**
   * Retrieves the requested entry from the configuration.
   *
   * @param  entryDN  The distinguished name of the configuration
   *                  entry to retrieve.
   *
   * @return  The requested configuration entry.
   *
   * @throws  ConfigException  If a problem occurs while interacting
   *                           with the configuration.
   */
  public abstract ConfigEntry getConfigEntry(DN entryDN)
         throws ConfigException;
 
 
 
  /**
   * Retrieves the absolute path of the Directory Server instance
   * root.
   *
   * @return  The absolute path of the Directory Server instance root.
   */
  public abstract String getServerRoot();
 
 
 
  /**
   * Writes an updated version of the Directory Server configuration
   * to the repository.  This should ensure that the stored
   * configuration matches the pending configuration.
   *
   * @throws  DirectoryException  If a problem is encountered while
   *                              writing the updated configuration.
   */
  public abstract void writeUpdatedConfig()
         throws DirectoryException;
}