Hi Oliver,
2012/11/5 <oheger@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
>
>
>
|