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>Configuration</code> interface defines lookup-methods to lookup
22   * typed configuration-values.
23   * For example <code>boolean getBoolean(String key, boolean defaultValue)</code> 
24   * looks up a boolean value associated with <code>key</code>.
25   * If no value is found for <code>key</code> the boolean <code>defaultValue</code>
26   * is returned.
27   * @author		Thomas Mahler
28   * @version 	$Id: Configuration.java,v 1.1 2007-08-24 22:17:30 ewestfal Exp $
29   */
30  public interface Configuration
31  {
32  
33  	/**
34  	 * this method allows to set a logger that tracks configuration events.
35  	 * @param loggerInstance the logger to set
36  	 */
37      public void setLogger(Logger loggerInstance);
38  
39      /**
40       * Returns the boolean value for the specified key. If no value for this key
41       * is found in the configuration or the value is not an legal boolean
42       * <code>defaultValue</code> is returned.
43       *
44       * @param key the key
45       * @param defaultValue the default Value
46       * @return the value for the key, or <code>defaultValue</code>
47       */
48      public boolean getBoolean(String key, boolean defaultValue);
49  
50      /**
51       * Returns the class specified by the value for the specified key. If no
52       * value for this key is found in the configuration, no class of this name
53       * can be found or the specified class is not assignable
54       * <code>assignable</code> <code>defaultValue</code> is returned.
55       *
56       * @param key the key
57       * @param defaultValue the default Value
58       * @param assignable a classe and/or interface the specified class must
59       *          extend/implement.
60       * @return the value for the key, or <code>defaultValue</code>
61       */
62      public Class getClass(String key, Class defaultValue, Class assignable);
63  
64      /**
65       * Returns the class specified by the value for the specified key. If no
66       * value for this key is found in the configuration, no class of this name
67       * can be found or the specified class is not assignable to each
68       * class/interface in <code>assignables</code> <code>defaultValue</code> is
69       * returned.
70       *
71       * @param key the key
72       * @param defaultValue the default Value
73       * @param assignables classes and/or interfaces the specified class must
74       *          extend/implement.
75       * @return the value for the key, or <code>defaultValue</code>
76       */
77      public Class getClass(String key, Class defaultValue, Class[] assignables);
78  
79      /**
80       * Returns the class specified by the value for the specified key. If no
81       * value for this key is found in the configuration or no class of this name
82       * can be found <code>defaultValue</code> is returned.
83       *
84       * @param key the key
85       * @param defaultValue the default Value
86       * @return the value for the key, or <code>defaultValue</code>
87       */
88      public Class getClass(String key, Class defaultValue);
89  
90      /**
91       * Returns the integer value for the specified key. If no value for this key
92       * is found in the configuration or the value is not an legal integer
93       * <code>defaultValue</code> is returned.
94       *
95       * @param key the key
96       * @param defaultValue the default Value
97       * @return the value for the key, or <code>defaultValue</code>
98       */
99      public int getInteger(String key, int defaultValue);
100 
101     /**
102      * Returns the string value for the specified key. If no value for this key
103      * is found in the configuration <code>defaultValue</code> is returned.
104      *
105      * @param key the key
106      * @param defaultValue the default value
107      * @return the value for the key, or <code>defaultValue</code>
108      */
109     public String getString(String key, String defaultValue);
110 
111     /**
112      * Gets an array of Strings from the value of the specified key, seperated
113      * by any key from <code>seperators</code>. If no value for this key
114      * is found the array contained in <code>defaultValue</code> is returned.
115      *
116      * @param key the key
117      * @param defaultValue the default Value
118      * @param seperators the seprators to be used
119      * @return the strings for the key, or the strings contained in
120      *          <code>defaultValue</code>
121      */
122     public String[] getStrings(String key, String defaultValue, String seperators);
123 
124     /**
125      * Gets an array of Strings from the value of the specified key, seperated
126      * by ";". If no value for this key
127      * is found the array contained in <code>defaultValue</code> is returned.
128      *
129      * @param key the key
130      * @param defaultValue the default Value
131      * @return the strings for the key, or the strings contained in
132      *          <code>defaultValue</code>
133      */
134     public String[] getStrings(String key, String defaultValue);
135 }