View Javadoc

1   package org.apache.ojb.broker.util.configuration;
2   
3   /* Copyright 2002-2005 The Apache Software Foundation
4    *
5    * Licensed under the Apache License, Version 2.0 (the "License");
6    * you may not use this file except in compliance with the License.
7    * You may obtain a copy of the License at
8    *
9    *     http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  
18  import org.apache.ojb.broker.util.logging.Logger;
19  
20  /**
21   * The <code>Configurator</code> interface defines methods for looking up 
22   * Configurations and for configuring <code>Configurable</code> instances.
23   * 
24   * call sequence:
25   * 1. The application obtains a <code>Configurator</code> instance (typically from a
26   * Factory).
27   * 
28   * 2. The application uses the Configurator to configure <code>Configurable</code> 
29   * instances. 
30   * The Configurator must lookup the proper <code>Configuration</code> and invoke
31   * the <code>configure</code> method on the <code>Configurable</code> instance.
32   *
33   * <pre>
34   *      // 1. obtain Configurator
35   *      Configurator configurator = OjbConfigurator.getInstance();
36   * 
37   *      // 2. ask Configurator to configure the Configurable instance
38   *      Configurable obj = ...
39   *      configurator.configure(obj);
40   * </pre>
41   *
42   * @author Thomas Mahler
43   * @version $Id: Configurator.java,v 1.1 2007-08-24 22:17:30 ewestfal Exp $
44   */
45  public interface Configurator
46  {
47  
48  	/**
49  	 * this method allows to set a logger that tracks configuration events.
50  	 * @param loggerInstance the logger to set
51  	 */
52      public void setLogger(Logger loggerInstance);
53  
54      /**
55       * configures the <code>Configurable</code> instance target.
56       * @param target the <code>Configurable</code> instance.
57       * @throws ConfigurationException
58       */
59      public void configure(Configurable target) throws ConfigurationException;
60  
61      /**
62       * looks up the proper <code>Configuration</code> for 
63       * the <code>Configurable</code> instance target.
64       * @param target the <code>Configurable</code> instance.
65       * @return the resulting<code>Configuration</code>.
66       * @throws  ConfigurationException
67       */
68      public Configuration getConfigurationFor(Configurable target) throws ConfigurationException;
69  }