Return-Path: X-Original-To: apmail-commons-commits-archive@minotaur.apache.org Delivered-To: apmail-commons-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id DF3E09021 for ; Mon, 5 Nov 2012 17:29:31 +0000 (UTC) Received: (qmail 69480 invoked by uid 500); 5 Nov 2012 17:29:31 -0000 Delivered-To: apmail-commons-commits-archive@commons.apache.org Received: (qmail 69117 invoked by uid 500); 5 Nov 2012 17:29:25 -0000 Mailing-List: contact commits-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@commons.apache.org Delivered-To: mailing list commits@commons.apache.org Received: (qmail 69087 invoked by uid 99); 5 Nov 2012 17:29:25 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 05 Nov 2012 17:29:24 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 05 Nov 2012 17:29:22 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 4438223888E7 for ; Mon, 5 Nov 2012 17:29:02 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1405889 - in /commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration: Configuration.java ImmutableConfiguration.java Date: Mon, 05 Nov 2012 17:29:02 -0000 To: commits@commons.apache.org From: oheger@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121105172902.4438223888E7@eris.apache.org> X-Virus-Checked: Checked by ClamAV on 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; /** *

The main Configuration interface.

@@ -54,7 +49,7 @@ import java.util.Properties; * @author Commons Configuration team * @version $Id$ */ -public interface Configuration +public interface Configuration extends ImmutableConfiguration { /** * 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:
- * {@code db.user, db.pwd, db.url, window.xpos, window.ypos},
- * an invocation of {@code getKeys("db");}
- * will return the keys below:
- * {@code db.user, db.pwd, db.url}.
- * 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 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 may 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 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 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 getList(String key, List 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; + +/** + *

The main interface for accessing configuration data in a read-only fashion.

+ *

+ * 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.

+ *

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 null 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.)

+ * + * @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:
+ * {@code db.user, db.pwd, db.url, window.xpos, window.ypos},
+ * an invocation of {@code getKeys("db");}
+ * will return the keys below:
+ * {@code db.user, db.pwd, db.url}.
+ * 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 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 may 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 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 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 getList(String key, List 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