org.apache.commons.configuration

Interface Configuration

public interface Configuration

The main Configuration interface.

This interface allows accessing and manipulating a configuration object. The major part of the methods defined in this interface deals with accessing properties of various data types. There is a generic 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 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 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 setThrowExceptionOnMissing() method, with which it can be configured to throw a NoSuchElementException exception in that case. (Note that getter methods for primitive types in AbstractConfiguration always throw an exception for missing properties because there is no way of overloading the return value.)

With the addProperty() and setProperty() methods new properties can be added to a configuration or the values of properties can be changed. With clearProperty() a property can be removed. Other methods allow to iterate over the contained properties or to create a subset configuration.

Version: $Id: Configuration.java 449017 2006-09-22 17:27:00Z oheger $

Author: Commons Configuration team

Method Summary
voidaddProperty(String key, Object value)
Add a property to the configuration.
voidclear()
Remove all properties from the configuration.
voidclearProperty(String key)
Remove a property from the configuration.
booleancontainsKey(String key)
Check if the configuration contains the specified key.
BigDecimalgetBigDecimal(String key)
Get a BigDecimal associated with the given configuration key.
BigDecimalgetBigDecimal(String key, BigDecimal defaultValue)
Get a BigDecimal associated with the given configuration key.
BigIntegergetBigInteger(String key)
Get a BigInteger associated with the given configuration key.
BigIntegergetBigInteger(String key, BigInteger defaultValue)
Get a BigInteger associated with the given configuration key.
booleangetBoolean(String key)
Get a boolean associated with the given configuration key.
booleangetBoolean(String key, boolean defaultValue)
Get a boolean associated with the given configuration key.
BooleangetBoolean(String key, Boolean defaultValue)
Get a Boolean associated with the given configuration key.
bytegetByte(String key)
Get a byte associated with the given configuration key.
bytegetByte(String key, byte defaultValue)
Get a byte associated with the given configuration key.
BytegetByte(String key, Byte defaultValue)
Get a Byte associated with the given configuration key.
doublegetDouble(String key)
Get a double associated with the given configuration key.
doublegetDouble(String key, double defaultValue)
Get a double associated with the given configuration key.
DoublegetDouble(String key, Double defaultValue)
Get a Double associated with the given configuration key.
floatgetFloat(String key)
Get a float associated with the given configuration key.
floatgetFloat(String key, float defaultValue)
Get a float associated with the given configuration key.
FloatgetFloat(String key, Float defaultValue)
Get a Float associated with the given configuration key.
intgetInt(String key)
Get a int associated with the given configuration key.
intgetInt(String key, int defaultValue)
Get a int associated with the given configuration key.
IntegergetInteger(String key, Integer defaultValue)
Get an Integer associated with the given configuration key.
IteratorgetKeys(String prefix)
Get the list of the keys contained in the configuration that match the specified prefix.
IteratorgetKeys()
Get the list of the keys contained in the configuration.
ListgetList(String key)
Get a List of strings associated with the given configuration key.
ListgetList(String key, List defaultValue)
Get a List of strings associated with the given configuration key.
longgetLong(String key)
Get a long associated with the given configuration key.
longgetLong(String key, long defaultValue)
Get a long associated with the given configuration key.
LonggetLong(String key, Long defaultValue)
Get a Long associated with the given configuration key.
PropertiesgetProperties(String key)
Get a list of properties associated with the given configuration key.
ObjectgetProperty(String key)
Gets a property from the configuration.
shortgetShort(String key)
Get a short associated with the given configuration key.
shortgetShort(String key, short defaultValue)
Get a short associated with the given configuration key.
ShortgetShort(String key, Short defaultValue)
Get a Short associated with the given configuration key.
StringgetString(String key)
Get a string associated with the given configuration key.
StringgetString(String key, String defaultValue)
Get a string associated with the given configuration key.
String[]getStringArray(String key)
Get an array of strings associated with the given configuration key.
booleanisEmpty()
Check if the configuration is empty.
voidsetProperty(String key, Object value)
Set a property, this will replace any previously set values.
Configurationsubset(String prefix)
Return a decorator Configuration containing every key from the current Configuration that starts with the specified prefix.

Method Detail

addProperty

public void addProperty(String key, Object value)
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:
resource.loader = file
is already present in the configuration and you call
addProperty("resource.loader", "classpath")
Then you will end up with a List like the following:
["file", "classpath"]

Parameters: key The key to add the property to. value The value to add.

clear

public void clear()
Remove all properties from the configuration.

clearProperty

public void clearProperty(String key)
Remove a property from the configuration.

Parameters: key the key to remove along with corresponding value.

containsKey

public boolean containsKey(String key)
Check if the configuration contains the specified key.

Parameters: key the key whose presence in this configuration is to be tested

Returns: true if the configuration contains a value for this key, false otherwise

getBigDecimal

public BigDecimal getBigDecimal(String key)
Get a BigDecimal associated with the given configuration key.

Parameters: key The configuration key.

Returns: The associated BigDecimal if key is found and has valid format

getBigDecimal

public BigDecimal getBigDecimal(String key, BigDecimal defaultValue)
Get a BigDecimal associated with the given configuration key. If the key doesn't map to an existing object, the default value is returned.

Parameters: key The configuration key. defaultValue The default value.

Returns: The associated BigDecimal if key is found and has valid format, default value otherwise.

getBigInteger

public BigInteger getBigInteger(String key)
Get a BigInteger associated with the given configuration key.

Parameters: key The configuration key.

Returns: The associated BigInteger if key is found and has valid format

getBigInteger

public BigInteger getBigInteger(String key, BigInteger defaultValue)
Get a BigInteger associated with the given configuration key. If the key doesn't map to an existing object, the default value is returned.

Parameters: key The configuration key. defaultValue The default value.

Returns: The associated BigInteger if key is found and has valid format, default value otherwise.

getBoolean

public boolean getBoolean(String key)
Get a boolean associated with the given configuration key.

Parameters: key The configuration key.

Returns: The associated boolean.

Throws: ConversionException is thrown if the key maps to an object that is not a Boolean.

getBoolean

public boolean getBoolean(String key, boolean defaultValue)
Get a boolean associated with the given configuration key. If the key doesn't map to an existing object, the default value is returned.

Parameters: key The configuration key. defaultValue The default value.

Returns: The associated boolean.

Throws: ConversionException is thrown if the key maps to an object that is not a Boolean.

getBoolean

public Boolean getBoolean(String key, Boolean defaultValue)
Get a Boolean associated with the given configuration key.

Parameters: key The configuration key. defaultValue The default value.

Returns: 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.

getByte

public byte getByte(String key)
Get a byte associated with the given configuration key.

Parameters: key The configuration key.

Returns: The associated byte.

Throws: ConversionException is thrown if the key maps to an object that is not a Byte.

getByte

public byte getByte(String key, byte defaultValue)
Get a byte associated with the given configuration key. If the key doesn't map to an existing object, the default value is returned.

Parameters: key The configuration key. defaultValue The default value.

Returns: The associated byte.

Throws: ConversionException is thrown if the key maps to an object that is not a Byte.

getByte

public Byte getByte(String key, Byte defaultValue)
Get a Byte associated with the given configuration key.

Parameters: key The configuration key. defaultValue The default value.

Returns: 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.

getDouble

public double getDouble(String key)
Get a double associated with the given configuration key.

Parameters: key The configuration key.

Returns: The associated double.

Throws: ConversionException is thrown if the key maps to an object that is not a Double.

getDouble

public double getDouble(String key, double defaultValue)
Get a double associated with the given configuration key. If the key doesn't map to an existing object, the default value is returned.

Parameters: key The configuration key. defaultValue The default value.

Returns: The associated double.

Throws: ConversionException is thrown if the key maps to an object that is not a Double.

getDouble

public Double getDouble(String key, Double defaultValue)
Get a Double associated with the given configuration key.

Parameters: key The configuration key. defaultValue The default value.

Returns: 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.

getFloat

public float getFloat(String key)
Get a float associated with the given configuration key.

Parameters: key The configuration key.

Returns: The associated float.

Throws: ConversionException is thrown if the key maps to an object that is not a Float.

getFloat

public float getFloat(String key, float defaultValue)
Get a float associated with the given configuration key. If the key doesn't map to an existing object, the default value is returned.

Parameters: key The configuration key. defaultValue The default value.

Returns: The associated float.

Throws: ConversionException is thrown if the key maps to an object that is not a Float.

getFloat

public Float getFloat(String key, Float defaultValue)
Get a Float associated with the given configuration key. If the key doesn't map to an existing object, the default value is returned.

Parameters: key The configuration key. defaultValue The default value.

Returns: 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.

getInt

public int getInt(String key)
Get a int associated with the given configuration key.

Parameters: key The configuration key.

Returns: The associated int.

Throws: ConversionException is thrown if the key maps to an object that is not a Integer.

getInt

public int getInt(String key, int defaultValue)
Get a int associated with the given configuration key. If the key doesn't map to an existing object, the default value is returned.

Parameters: key The configuration key. defaultValue The default value.

Returns: The associated int.

Throws: ConversionException is thrown if the key maps to an object that is not a Integer.

getInteger

public Integer getInteger(String key, Integer defaultValue)
Get an Integer associated with the given configuration key. If the key doesn't map to an existing object, the default value is returned.

Parameters: key The configuration key. defaultValue The default value.

Returns: 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.

getKeys

public Iterator getKeys(String prefix)
Get the list of the keys contained in the configuration that match the specified prefix.

Parameters: prefix The prefix to test against.

Returns: An Iterator of keys that match the prefix.

See Also: getKeys

getKeys

public Iterator getKeys()
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 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 clearProperty for this property. So it is highly recommended to avoid using the iterator's remove() method.

Returns: An Iterator.

getList

public 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 an empty List is returned.

Parameters: key The configuration key.

Returns: The associated List.

Throws: ConversionException is thrown if the key maps to an object that is not a List.

getList

public List getList(String key, List defaultValue)
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.

Parameters: key The configuration key. defaultValue The default value.

Returns: The associated List of strings.

Throws: ConversionException is thrown if the key maps to an object that is not a List.

getLong

public long getLong(String key)
Get a long associated with the given configuration key.

Parameters: key The configuration key.

Returns: The associated long.

Throws: ConversionException is thrown if the key maps to an object that is not a Long.

getLong

public long getLong(String key, long defaultValue)
Get a long associated with the given configuration key. If the key doesn't map to an existing object, the default value is returned.

Parameters: key The configuration key. defaultValue The default value.

Returns: The associated long.

Throws: ConversionException is thrown if the key maps to an object that is not a Long.

getLong

public Long getLong(String key, Long defaultValue)
Get a Long associated with the given configuration key. If the key doesn't map to an existing object, the default value is returned.

Parameters: key The configuration key. defaultValue The default value.

Returns: 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.

getProperties

public Properties getProperties(String key)
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 key=value. These strings are splitted at the equals sign, and the key parts will become keys of the returned Properties object, the value parts become values.

Parameters: key The configuration key.

Returns: The associated properties if key is found.

Throws: ConversionException is thrown if the key maps to an object that is not a String/List. IllegalArgumentException if one of the tokens is malformed (does not contain an equals sign).

getProperty

public Object getProperty(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 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 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).

Parameters: key property to retrieve

Returns: the value to which this configuration maps the specified key, or null if the configuration contains no mapping for this key.

getShort

public short getShort(String key)
Get a short associated with the given configuration key.

Parameters: key The configuration key.

Returns: The associated short.

Throws: ConversionException is thrown if the key maps to an object that is not a Short.

getShort

public short getShort(String key, short defaultValue)
Get a short associated with the given configuration key.

Parameters: key The configuration key. defaultValue The default value.

Returns: The associated short.

Throws: ConversionException is thrown if the key maps to an object that is not a Short.

getShort

public Short getShort(String key, Short defaultValue)
Get a Short associated with the given configuration key. If the key doesn't map to an existing object, the default value is returned.

Parameters: key The configuration key. defaultValue The default value.

Returns: 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.

getString

public String getString(String key)
Get a string associated with the given configuration key.

Parameters: key The configuration key.

Returns: The associated string.

Throws: ConversionException is thrown if the key maps to an object that is not a String.

getString

public String getString(String key, String defaultValue)
Get a string associated with the given configuration key. If the key doesn't map to an existing object, the default value is returned.

Parameters: key The configuration key. defaultValue The default value.

Returns: 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.

getStringArray

public String[] getStringArray(String key)
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

Parameters: key The configuration key.

Returns: 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.

isEmpty

public boolean isEmpty()
Check if the configuration is empty.

Returns: true if the configuration contains no property, false otherwise.

setProperty

public void setProperty(String key, Object value)
Set a property, this will replace any previously set values. Set values is implicitly a call to clearProperty(key), addProperty(key, value).

Parameters: key The key of the property to change value The new value

subset

public Configuration subset(String prefix)
Return a decorator Configuration containing every key from the current Configuration that starts with the specified prefix. The prefix is removed from the keys in the subset. For example, if the configuration contains the following properties:
    prefix.number = 1
    prefix.string = Apache
    prefixed.foo = bar
    prefix = Jakarta
the Configuration returned by subset("prefix") will contain the properties:
    number = 1
    string = Apache
    = Jakarta
(The key for the value "Jakarta" is an empty string)

Since the subset is a decorator and not a modified copy of the initial Configuration, any change made to the subset is available to the Configuration, and reciprocally.

Parameters: prefix The prefix used to select the properties.

Returns: a subset configuration

See Also: SubsetConfiguration