Hi Oliver,
2012/11/5 <ohe...@apache.org> > Author: oheger > Date: Mon Nov 5 17:29:01 2012 > New Revision: 1405889 > > URL: http://svn.apache.org/viewvc?rev=1405889&view=rev > Log: > Initial version of an immutable configuration interface. > > Added: > > commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/ImmutableConfiguration.java > (with props) > Modified: > > commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/Configuration.java > > Modified: > commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/Configuration.java > URL: > http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/Configuration.java?rev=1405889&r1=1405888&r2=1405889&view=diff > > ============================================================================== > --- > commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/Configuration.java > (original) > +++ > commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/Configuration.java > Mon Nov 5 17:29:01 2012 > @@ -17,11 +17,6 @@ > > package org.apache.commons.configuration; > > -import java.math.BigDecimal; > -import java.math.BigInteger; > -import java.util.Iterator; > -import java.util.List; > -import java.util.Properties; > > /** > * <p>The main Configuration interface.</p> > @@ -54,7 +49,7 @@ import java.util.Properties; > * @author Commons Configuration team > * @version $Id$ > */ > -public interface Configuration > +public interface Configuration extends ImmutableConfiguration > A Configuration IS_A ImmutableConfiguration sounds rather akward. The JavaDoc of ImmutableConfiguration says "The main interface for accessing configuration data in a read-only fashion." Maybe ImmutableConfiguration should be renamed to ReadOnlyConfiguration? Regards, Benedikt > { > /** > * Return a decorator Configuration containing every key from the > current > @@ -90,24 +85,6 @@ public interface Configuration > Configuration subset(String prefix); > > /** > - * Check if the configuration is empty. > - * > - * @return {@code true} if the configuration contains no property, > - * {@code false} otherwise. > - */ > - boolean isEmpty(); > - > - /** > - * Check if the configuration contains the specified key. > - * > - * @param key the key whose presence in this configuration is to be > tested > - * > - * @return {@code true} if the configuration contains a value for this > - * key, {@code false} otherwise > - */ > - boolean containsKey(String key); > - > - /** > * Add a property to the configuration. If it already exists then the > value > * stated here will be added to the configuration entry. For example, > if > * the property: > @@ -147,452 +124,4 @@ public interface Configuration > * Remove all properties from the configuration. > */ > void clear(); > - > - /** > - * Gets a property from the configuration. This is the most basic get > - * method for retrieving values of properties. In a typical > implementation > - * of the {@code Configuration} interface the other get methods (that > - * return specific data types) will internally make use of this > method. On > - * this level variable substitution is not yet performed. The returned > - * object is an internal representation of the property value for the > passed > - * in key. It is owned by the {@code Configuration} object. So a > caller > - * should not modify this object. It cannot be guaranteed that this > object > - * will stay constant over time (i.e. further update operations on the > - * configuration may change its internal state). > - * > - * @param key property to retrieve > - * @return the value to which this configuration maps the specified > key, or > - * null if the configuration contains no mapping for this key. > - */ > - Object getProperty(String key); > - > - /** > - * Get the list of the keys contained in the configuration that match > the > - * specified prefix. For instance, if the configuration contains the > - * following keys:<br> > - * {@code db.user, db.pwd, db.url, window.xpos, window.ypos},<br> > - * an invocation of {@code getKeys("db");}<br> > - * will return the keys below:<br> > - * {@code db.user, db.pwd, db.url}.<br> > - * Note that the prefix itself is included in the result set if there > is a > - * matching key. The exact behavior - how the prefix is actually > - * interpreted - depends on a concrete implementation. > - * > - * @param prefix The prefix to test against. > - * @return An Iterator of keys that match the prefix. > - * @see #getKeys() > - */ > - Iterator<String> getKeys(String prefix); > - > - /** > - * Get the list of the keys contained in the configuration. The > returned > - * iterator can be used to obtain all defined keys. Note that the > exact > - * behavior of the iterator's {@code remove()} method is specific to > - * a concrete implementation. It <em>may</em> remove the corresponding > - * property from the configuration, but this is not guaranteed. In > any case > - * it is no replacement for calling > - * {@link #clearProperty(String)} for this property. So it is > - * highly recommended to avoid using the iterator's {@code remove()} > - * method. > - * > - * @return An Iterator. > - */ > - Iterator<String> getKeys(); > - > - /** > - * Get a list of properties associated with the given configuration > key. > - * This method expects the given key to have an arbitrary number of > String > - * values, each of which is of the form {code key=value}. These > - * strings are split at the equals sign, and the key parts will become > - * keys of the returned {@code Properties} object, the value parts > - * become values. > - * > - * @param key The configuration key. > - * @return The associated properties if key is found. > - * > - * @throws ConversionException is thrown if the key maps to an > - * object that is not a String/List. > - * > - * @throws IllegalArgumentException if one of the tokens is > - * malformed (does not contain an equals sign). > - */ > - Properties getProperties(String key); > - > - /** > - * Get a boolean associated with the given configuration key. > - * > - * @param key The configuration key. > - * @return The associated boolean. > - * > - * @throws ConversionException is thrown if the key maps to an > - * object that is not a Boolean. > - */ > - boolean getBoolean(String key); > - > - /** > - * Get a boolean associated with the given configuration key. > - * If the key doesn't map to an existing object, the default value > - * is returned. > - * > - * @param key The configuration key. > - * @param defaultValue The default value. > - * @return The associated boolean. > - * > - * @throws ConversionException is thrown if the key maps to an > - * object that is not a Boolean. > - */ > - boolean getBoolean(String key, boolean defaultValue); > - > - /** > - * Get a {@link Boolean} associated with the given configuration key. > - * > - * @param key The configuration key. > - * @param defaultValue The default value. > - * @return The associated boolean if key is found and has valid > - * format, default value otherwise. > - * > - * @throws ConversionException is thrown if the key maps to an > - * object that is not a Boolean. > - */ > - Boolean getBoolean(String key, Boolean defaultValue); > - > - /** > - * Get a byte associated with the given configuration key. > - * > - * @param key The configuration key. > - * @return The associated byte. > - * > - * @throws ConversionException is thrown if the key maps to an > - * object that is not a Byte. > - */ > - byte getByte(String key); > - > - /** > - * Get a byte associated with the given configuration key. > - * If the key doesn't map to an existing object, the default value > - * is returned. > - * > - * @param key The configuration key. > - * @param defaultValue The default value. > - * @return The associated byte. > - * > - * @throws ConversionException is thrown if the key maps to an > - * object that is not a Byte. > - */ > - byte getByte(String key, byte defaultValue); > - > - /** > - * Get a {@link Byte} associated with the given configuration key. > - * > - * @param key The configuration key. > - * @param defaultValue The default value. > - * @return The associated byte if key is found and has valid format, > default > - * value otherwise. > - * > - * @throws ConversionException is thrown if the key maps to an object > that > - * is not a Byte. > - */ > - Byte getByte(String key, Byte defaultValue); > - > - /** > - * Get a double associated with the given configuration key. > - * > - * @param key The configuration key. > - * @return The associated double. > - * > - * @throws ConversionException is thrown if the key maps to an > - * object that is not a Double. > - */ > - double getDouble(String key); > - > - /** > - * Get a double associated with the given configuration key. > - * If the key doesn't map to an existing object, the default value > - * is returned. > - * > - * @param key The configuration key. > - * @param defaultValue The default value. > - * @return The associated double. > - * > - * @throws ConversionException is thrown if the key maps to an > - * object that is not a Double. > - */ > - double getDouble(String key, double defaultValue); > - > - /** > - * Get a {@link Double} associated with the given configuration key. > - * > - * @param key The configuration key. > - * @param defaultValue The default value. > - * @return The associated double if key is found and has valid > - * format, default value otherwise. > - * > - * @throws ConversionException is thrown if the key maps to an > - * object that is not a Double. > - */ > - Double getDouble(String key, Double defaultValue); > - > - /** > - * Get a float associated with the given configuration key. > - * > - * @param key The configuration key. > - * @return The associated float. > - * @throws ConversionException is thrown if the key maps to an > - * object that is not a Float. > - */ > - float getFloat(String key); > - > - /** > - * Get a float associated with the given configuration key. > - * If the key doesn't map to an existing object, the default value > - * is returned. > - * > - * @param key The configuration key. > - * @param defaultValue The default value. > - * @return The associated float. > - * > - * @throws ConversionException is thrown if the key maps to an > - * object that is not a Float. > - */ > - float getFloat(String key, float defaultValue); > - > - /** > - * Get a {@link Float} associated with the given configuration key. > - * If the key doesn't map to an existing object, the default value > - * is returned. > - * > - * @param key The configuration key. > - * @param defaultValue The default value. > - * @return The associated float if key is found and has valid > - * format, default value otherwise. > - * > - * @throws ConversionException is thrown if the key maps to an > - * object that is not a Float. > - */ > - Float getFloat(String key, Float defaultValue); > - > - /** > - * Get a int associated with the given configuration key. > - * > - * @param key The configuration key. > - * @return The associated int. > - * > - * @throws ConversionException is thrown if the key maps to an > - * object that is not a Integer. > - */ > - int getInt(String key); > - > - /** > - * Get a int associated with the given configuration key. > - * If the key doesn't map to an existing object, the default value > - * is returned. > - * > - * @param key The configuration key. > - * @param defaultValue The default value. > - * @return The associated int. > - * > - * @throws ConversionException is thrown if the key maps to an > - * object that is not a Integer. > - */ > - int getInt(String key, int defaultValue); > - > - /** > - * Get an {@link Integer} associated with the given configuration key. > - * If the key doesn't map to an existing object, the default value > - * is returned. > - * > - * @param key The configuration key. > - * @param defaultValue The default value. > - * @return The associated int if key is found and has valid format, > default > - * value otherwise. > - * > - * @throws ConversionException is thrown if the key maps to an object > that > - * is not a Integer. > - */ > - Integer getInteger(String key, Integer defaultValue); > - > - /** > - * Get a long associated with the given configuration key. > - * > - * @param key The configuration key. > - * @return The associated long. > - * > - * @throws ConversionException is thrown if the key maps to an > - * object that is not a Long. > - */ > - long getLong(String key); > - > - /** > - * Get a long associated with the given configuration key. > - * If the key doesn't map to an existing object, the default value > - * is returned. > - * > - * @param key The configuration key. > - * @param defaultValue The default value. > - * @return The associated long. > - * > - * @throws ConversionException is thrown if the key maps to an > - * object that is not a Long. > - */ > - long getLong(String key, long defaultValue); > - > - /** > - * Get a {@link Long} associated with the given configuration key. > - * If the key doesn't map to an existing object, the default value > - * is returned. > - * > - * @param key The configuration key. > - * @param defaultValue The default value. > - * @return The associated long if key is found and has valid > - * format, default value otherwise. > - * > - * @throws ConversionException is thrown if the key maps to an > - * object that is not a Long. > - */ > - Long getLong(String key, Long defaultValue); > - > - /** > - * Get a short associated with the given configuration key. > - * > - * @param key The configuration key. > - * @return The associated short. > - * > - * @throws ConversionException is thrown if the key maps to an > - * object that is not a Short. > - */ > - short getShort(String key); > - > - /** > - * Get a short associated with the given configuration key. > - * > - * @param key The configuration key. > - * @param defaultValue The default value. > - * @return The associated short. > - * > - * @throws ConversionException is thrown if the key maps to an > - * object that is not a Short. > - */ > - short getShort(String key, short defaultValue); > - > - /** > - * Get a {@link Short} associated with the given configuration key. > - * If the key doesn't map to an existing object, the default value > - * is returned. > - * > - * @param key The configuration key. > - * @param defaultValue The default value. > - * @return The associated short if key is found and has valid > - * format, default value otherwise. > - * > - * @throws ConversionException is thrown if the key maps to an > - * object that is not a Short. > - */ > - Short getShort(String key, Short defaultValue); > - > - /** > - * Get a {@link BigDecimal} associated with the given configuration > key. > - * > - * @param key The configuration key. > - * @return The associated BigDecimal if key is found and has valid > format > - */ > - BigDecimal getBigDecimal(String key); > - > - /** > - * Get a {@link BigDecimal} associated with the given configuration > key. > - * If the key doesn't map to an existing object, the default value > - * is returned. > - * > - * @param key The configuration key. > - * @param defaultValue The default value. > - * > - * @return The associated BigDecimal if key is found and has valid > - * format, default value otherwise. > - */ > - BigDecimal getBigDecimal(String key, BigDecimal defaultValue); > - > - /** > - * Get a {@link BigInteger} associated with the given configuration > key. > - * > - * @param key The configuration key. > - * > - * @return The associated BigInteger if key is found and has valid > format > - */ > - BigInteger getBigInteger(String key); > - > - /** > - * Get a {@link BigInteger} associated with the given configuration > key. > - * If the key doesn't map to an existing object, the default value > - * is returned. > - * > - * @param key The configuration key. > - * @param defaultValue The default value. > - * > - * @return The associated BigInteger if key is found and has valid > - * format, default value otherwise. > - */ > - BigInteger getBigInteger(String key, BigInteger defaultValue); > - > - /** > - * Get a string associated with the given configuration key. > - * > - * @param key The configuration key. > - * @return The associated string. > - * > - * @throws ConversionException is thrown if the key maps to an object > that > - * is not a String. > - */ > - String getString(String key); > - > - /** > - * Get a string associated with the given configuration key. > - * If the key doesn't map to an existing object, the default value > - * is returned. > - * > - * @param key The configuration key. > - * @param defaultValue The default value. > - * @return The associated string if key is found and has valid > - * format, default value otherwise. > - * > - * @throws ConversionException is thrown if the key maps to an object > that > - * is not a String. > - */ > - String getString(String key, String defaultValue); > - > - /** > - * Get an array of strings associated with the given configuration > key. > - * If the key doesn't map to an existing object an empty array is > returned > - * > - * @param key The configuration key. > - * @return The associated string array if key is found. > - * > - * @throws ConversionException is thrown if the key maps to an > - * object that is not a String/List of Strings. > - */ > - String[] getStringArray(String key); > - > - /** > - * Get a List of strings associated with the given configuration key. > - * If the key doesn't map to an existing object an empty List is > returned. > - * > - * @param key The configuration key. > - * @return The associated List. > - * > - * @throws ConversionException is thrown if the key maps to an > - * object that is not a List. > - */ > - List<Object> getList(String key); > - > - /** > - * Get a List of strings associated with the given configuration key. > - * If the key doesn't map to an existing object, the default value > - * is returned. > - * > - * @param key The configuration key. > - * @param defaultValue The default value. > - * @return The associated List of strings. > - * > - * @throws ConversionException is thrown if the key maps to an > - * object that is not a List. > - */ > - List<Object> getList(String key, List<Object> defaultValue); > } > > Added: > commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/ImmutableConfiguration.java > URL: > http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/ImmutableConfiguration.java?rev=1405889&view=auto > > ============================================================================== > --- > commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/ImmutableConfiguration.java > (added) > +++ > commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/ImmutableConfiguration.java > Mon Nov 5 17:29:01 2012 > @@ -0,0 +1,518 @@ > +/* > + * Licensed to the Apache Software Foundation (ASF) under one or more > + * contributor license agreements. See the NOTICE file distributed with > + * this work for additional information regarding copyright ownership. > + * The ASF licenses this file to You under the Apache License, Version 2.0 > + * (the "License"); you may not use this file except in compliance with > + * the License. You may obtain a copy of the License at > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, software > + * distributed under the License is distributed on an "AS IS" BASIS, > + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or > implied. > + * See the License for the specific language governing permissions and > + * limitations under the License. > + */ > +package org.apache.commons.configuration; > + > +import java.math.BigDecimal; > +import java.math.BigInteger; > +import java.util.Iterator; > +import java.util.List; > +import java.util.Properties; > + > +/** > + * <p>The main interface for accessing configuration data in a read-only > fashion.</p> > + * <p> > + * The major part of the methods defined in this interface deals with > accessing > + * properties of various data types. There is a generic {@code > getProperty()} > + * method, which returns the value of the queried property in its raw data > + * type. Other getter methods try to convert this raw data type into a > specific > + * data type. If this fails, a {@code ConversionException} will be > thrown.</p> > + * <p>For most of the property getter methods an overloaded version > exists that > + * allows to specify a default value, which will be returned if the > queried > + * property cannot be found in the configuration. The behavior of the > methods > + * that do not take a default value in case of a missing property is not > defined > + * by this interface and depends on a concrete implementation. E.g. the > + * {@link AbstractConfiguration} class, which is the base class > + * of most configuration implementations provided by this package, per > default > + * returns <b>null</b> if a property is not found, but provides the > + * {@link AbstractConfiguration#setThrowExceptionOnMissing(boolean) > + * setThrowExceptionOnMissing()} > + * method, with which it can be configured to throw a {@code > NoSuchElementException} > + * exception in that case. (Note that getter methods for primitive types > in > + * {@code AbstractConfiguration} always throw an exception for missing > + * properties because there is no way of overloading the return > value.)</p> > + * > + * @version $Id$ > + * @since 2.0 > + */ > +public interface ImmutableConfiguration > +{ > + /** > + * Check if the configuration is empty. > + * > + * @return {@code true} if the configuration contains no property, > + * {@code false} otherwise. > + */ > + boolean isEmpty(); > + > + /** > + * Check if the configuration contains the specified key. > + * > + * @param key the key whose presence in this configuration is to be > tested > + * > + * @return {@code true} if the configuration contains a value for this > + * key, {@code false} otherwise > + */ > + boolean containsKey(String key); > + > + /** > + * Gets a property from the configuration. This is the most basic get > + * method for retrieving values of properties. In a typical > implementation > + * of the {@code Configuration} interface the other get methods (that > + * return specific data types) will internally make use of this > method. On > + * this level variable substitution is not yet performed. The returned > + * object is an internal representation of the property value for the > passed > + * in key. It is owned by the {@code Configuration} object. So a > caller > + * should not modify this object. It cannot be guaranteed that this > object > + * will stay constant over time (i.e. further update operations on the > + * configuration may change its internal state). > + * > + * @param key property to retrieve > + * @return the value to which this configuration maps the specified > key, or > + * null if the configuration contains no mapping for this key. > + */ > + Object getProperty(String key); > + > + /** > + * Get the list of the keys contained in the configuration that match > the > + * specified prefix. For instance, if the configuration contains the > + * following keys:<br> > + * {@code db.user, db.pwd, db.url, window.xpos, window.ypos},<br> > + * an invocation of {@code getKeys("db");}<br> > + * will return the keys below:<br> > + * {@code db.user, db.pwd, db.url}.<br> > + * Note that the prefix itself is included in the result set if there > is a > + * matching key. The exact behavior - how the prefix is actually > + * interpreted - depends on a concrete implementation. > + * > + * @param prefix The prefix to test against. > + * @return An Iterator of keys that match the prefix. > + * @see #getKeys() > + */ > + Iterator<String> getKeys(String prefix); > + > + /** > + * Get the list of the keys contained in the configuration. The > returned > + * iterator can be used to obtain all defined keys. Note that the > exact > + * behavior of the iterator's {@code remove()} method is specific to > + * a concrete implementation. It <em>may</em> remove the corresponding > + * property from the configuration, but this is not guaranteed. In > any case > + * it is no replacement for calling > + * {@link #clearProperty(String)} for this property. So it is > + * highly recommended to avoid using the iterator's {@code remove()} > + * method. > + * > + * @return An Iterator. > + */ > + Iterator<String> getKeys(); > + > + /** > + * Get a list of properties associated with the given configuration > key. > + * This method expects the given key to have an arbitrary number of > String > + * values, each of which is of the form {code key=value}. These > + * strings are split at the equals sign, and the key parts will become > + * keys of the returned {@code Properties} object, the value parts > + * become values. > + * > + * @param key The configuration key. > + * @return The associated properties if key is found. > + * > + * @throws ConversionException is thrown if the key maps to an > + * object that is not a String/List. > + * > + * @throws IllegalArgumentException if one of the tokens is > + * malformed (does not contain an equals sign). > + */ > + Properties getProperties(String key); > + > + /** > + * Get a boolean associated with the given configuration key. > + * > + * @param key The configuration key. > + * @return The associated boolean. > + * > + * @throws ConversionException is thrown if the key maps to an > + * object that is not a Boolean. > + */ > + boolean getBoolean(String key); > + > + /** > + * Get a boolean associated with the given configuration key. > + * If the key doesn't map to an existing object, the default value > + * is returned. > + * > + * @param key The configuration key. > + * @param defaultValue The default value. > + * @return The associated boolean. > + * > + * @throws ConversionException is thrown if the key maps to an > + * object that is not a Boolean. > + */ > + boolean getBoolean(String key, boolean defaultValue); > + > + /** > + * Get a {@link Boolean} associated with the given configuration key. > + * > + * @param key The configuration key. > + * @param defaultValue The default value. > + * @return The associated boolean if key is found and has valid > + * format, default value otherwise. > + * > + * @throws ConversionException is thrown if the key maps to an > + * object that is not a Boolean. > + */ > + Boolean getBoolean(String key, Boolean defaultValue); > + > + /** > + * Get a byte associated with the given configuration key. > + * > + * @param key The configuration key. > + * @return The associated byte. > + * > + * @throws ConversionException is thrown if the key maps to an > + * object that is not a Byte. > + */ > + byte getByte(String key); > + > + /** > + * Get a byte associated with the given configuration key. > + * If the key doesn't map to an existing object, the default value > + * is returned. > + * > + * @param key The configuration key. > + * @param defaultValue The default value. > + * @return The associated byte. > + * > + * @throws ConversionException is thrown if the key maps to an > + * object that is not a Byte. > + */ > + byte getByte(String key, byte defaultValue); > + > + /** > + * Get a {@link Byte} associated with the given configuration key. > + * > + * @param key The configuration key. > + * @param defaultValue The default value. > + * @return The associated byte if key is found and has valid format, > default > + * value otherwise. > + * > + * @throws ConversionException is thrown if the key maps to an object > that > + * is not a Byte. > + */ > + Byte getByte(String key, Byte defaultValue); > + > + /** > + * Get a double associated with the given configuration key. > + * > + * @param key The configuration key. > + * @return The associated double. > + * > + * @throws ConversionException is thrown if the key maps to an > + * object that is not a Double. > + */ > + double getDouble(String key); > + > + /** > + * Get a double associated with the given configuration key. > + * If the key doesn't map to an existing object, the default value > + * is returned. > + * > + * @param key The configuration key. > + * @param defaultValue The default value. > + * @return The associated double. > + * > + * @throws ConversionException is thrown if the key maps to an > + * object that is not a Double. > + */ > + double getDouble(String key, double defaultValue); > + > + /** > + * Get a {@link Double} associated with the given configuration key. > + * > + * @param key The configuration key. > + * @param defaultValue The default value. > + * @return The associated double if key is found and has valid > + * format, default value otherwise. > + * > + * @throws ConversionException is thrown if the key maps to an > + * object that is not a Double. > + */ > + Double getDouble(String key, Double defaultValue); > + > + /** > + * Get a float associated with the given configuration key. > + * > + * @param key The configuration key. > + * @return The associated float. > + * @throws ConversionException is thrown if the key maps to an > + * object that is not a Float. > + */ > + float getFloat(String key); > + > + /** > + * Get a float associated with the given configuration key. > + * If the key doesn't map to an existing object, the default value > + * is returned. > + * > + * @param key The configuration key. > + * @param defaultValue The default value. > + * @return The associated float. > + * > + * @throws ConversionException is thrown if the key maps to an > + * object that is not a Float. > + */ > + float getFloat(String key, float defaultValue); > + > + /** > + * Get a {@link Float} associated with the given configuration key. > + * If the key doesn't map to an existing object, the default value > + * is returned. > + * > + * @param key The configuration key. > + * @param defaultValue The default value. > + * @return The associated float if key is found and has valid > + * format, default value otherwise. > + * > + * @throws ConversionException is thrown if the key maps to an > + * object that is not a Float. > + */ > + Float getFloat(String key, Float defaultValue); > + > + /** > + * Get a int associated with the given configuration key. > + * > + * @param key The configuration key. > + * @return The associated int. > + * > + * @throws ConversionException is thrown if the key maps to an > + * object that is not a Integer. > + */ > + int getInt(String key); > + > + /** > + * Get a int associated with the given configuration key. > + * If the key doesn't map to an existing object, the default value > + * is returned. > + * > + * @param key The configuration key. > + * @param defaultValue The default value. > + * @return The associated int. > + * > + * @throws ConversionException is thrown if the key maps to an > + * object that is not a Integer. > + */ > + int getInt(String key, int defaultValue); > + > + /** > + * Get an {@link Integer} associated with the given configuration key. > + * If the key doesn't map to an existing object, the default value > + * is returned. > + * > + * @param key The configuration key. > + * @param defaultValue The default value. > + * @return The associated int if key is found and has valid format, > default > + * value otherwise. > + * > + * @throws ConversionException is thrown if the key maps to an object > that > + * is not a Integer. > + */ > + Integer getInteger(String key, Integer defaultValue); > + > + /** > + * Get a long associated with the given configuration key. > + * > + * @param key The configuration key. > + * @return The associated long. > + * > + * @throws ConversionException is thrown if the key maps to an > + * object that is not a Long. > + */ > + long getLong(String key); > + > + /** > + * Get a long associated with the given configuration key. > + * If the key doesn't map to an existing object, the default value > + * is returned. > + * > + * @param key The configuration key. > + * @param defaultValue The default value. > + * @return The associated long. > + * > + * @throws ConversionException is thrown if the key maps to an > + * object that is not a Long. > + */ > + long getLong(String key, long defaultValue); > + > + /** > + * Get a {@link Long} associated with the given configuration key. > + * If the key doesn't map to an existing object, the default value > + * is returned. > + * > + * @param key The configuration key. > + * @param defaultValue The default value. > + * @return The associated long if key is found and has valid > + * format, default value otherwise. > + * > + * @throws ConversionException is thrown if the key maps to an > + * object that is not a Long. > + */ > + Long getLong(String key, Long defaultValue); > + > + /** > + * Get a short associated with the given configuration key. > + * > + * @param key The configuration key. > + * @return The associated short. > + * > + * @throws ConversionException is thrown if the key maps to an > + * object that is not a Short. > + */ > + short getShort(String key); > + > + /** > + * Get a short associated with the given configuration key. > + * > + * @param key The configuration key. > + * @param defaultValue The default value. > + * @return The associated short. > + * > + * @throws ConversionException is thrown if the key maps to an > + * object that is not a Short. > + */ > + short getShort(String key, short defaultValue); > + > + /** > + * Get a {@link Short} associated with the given configuration key. > + * If the key doesn't map to an existing object, the default value > + * is returned. > + * > + * @param key The configuration key. > + * @param defaultValue The default value. > + * @return The associated short if key is found and has valid > + * format, default value otherwise. > + * > + * @throws ConversionException is thrown if the key maps to an > + * object that is not a Short. > + */ > + Short getShort(String key, Short defaultValue); > + > + /** > + * Get a {@link BigDecimal} associated with the given configuration > key. > + * > + * @param key The configuration key. > + * @return The associated BigDecimal if key is found and has valid > format > + */ > + BigDecimal getBigDecimal(String key); > + > + /** > + * Get a {@link BigDecimal} associated with the given configuration > key. > + * If the key doesn't map to an existing object, the default value > + * is returned. > + * > + * @param key The configuration key. > + * @param defaultValue The default value. > + * > + * @return The associated BigDecimal if key is found and has valid > + * format, default value otherwise. > + */ > + BigDecimal getBigDecimal(String key, BigDecimal defaultValue); > + > + /** > + * Get a {@link BigInteger} associated with the given configuration > key. > + * > + * @param key The configuration key. > + * > + * @return The associated BigInteger if key is found and has valid > format > + */ > + BigInteger getBigInteger(String key); > + > + /** > + * Get a {@link BigInteger} associated with the given configuration > key. > + * If the key doesn't map to an existing object, the default value > + * is returned. > + * > + * @param key The configuration key. > + * @param defaultValue The default value. > + * > + * @return The associated BigInteger if key is found and has valid > + * format, default value otherwise. > + */ > + BigInteger getBigInteger(String key, BigInteger defaultValue); > + > + /** > + * Get a string associated with the given configuration key. > + * > + * @param key The configuration key. > + * @return The associated string. > + * > + * @throws ConversionException is thrown if the key maps to an object > that > + * is not a String. > + */ > + String getString(String key); > + > + /** > + * Get a string associated with the given configuration key. > + * If the key doesn't map to an existing object, the default value > + * is returned. > + * > + * @param key The configuration key. > + * @param defaultValue The default value. > + * @return The associated string if key is found and has valid > + * format, default value otherwise. > + * > + * @throws ConversionException is thrown if the key maps to an object > that > + * is not a String. > + */ > + String getString(String key, String defaultValue); > + > + /** > + * Get an array of strings associated with the given configuration > key. > + * If the key doesn't map to an existing object an empty array is > returned > + * > + * @param key The configuration key. > + * @return The associated string array if key is found. > + * > + * @throws ConversionException is thrown if the key maps to an > + * object that is not a String/List of Strings. > + */ > + String[] getStringArray(String key); > + > + /** > + * Get a List of strings associated with the given configuration key. > + * If the key doesn't map to an existing object an empty List is > returned. > + * > + * @param key The configuration key. > + * @return The associated List. > + * > + * @throws ConversionException is thrown if the key maps to an > + * object that is not a List. > + */ > + List<Object> getList(String key); > + > + /** > + * Get a List of strings associated with the given configuration key. > + * If the key doesn't map to an existing object, the default value > + * is returned. > + * > + * @param key The configuration key. > + * @param defaultValue The default value. > + * @return The associated List of strings. > + * > + * @throws ConversionException is thrown if the key maps to an > + * object that is not a List. > + */ > + List<Object> getList(String key, List<Object> defaultValue); > +} > > Propchange: > commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/ImmutableConfiguration.java > > ------------------------------------------------------------------------------ > svn:eol-style = native > > Propchange: > commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/ImmutableConfiguration.java > > ------------------------------------------------------------------------------ > svn:keywords = Date Author Id Revision HeadURL > > Propchange: > commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/ImmutableConfiguration.java > > ------------------------------------------------------------------------------ > svn:mime-type = text/plain > > >