org.apache.velocity.runtime.configuration

Class Configuration


public class Configuration
extends Hashtable

This class extends normal Java properties by adding the possibility to use the same key many times concatenating the value strings instead of overwriting them.

The Extended Properties syntax is explained here:

Here is an example of a valid extended properties file:

      # lines starting with # are comments

      # This is the simplest property
      key = value

      # A long property may be separated on multiple lines
      longvalue = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \
                  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

      # This is a property with many tokens
      tokens_on_a_line = first token, second token

      # This sequence generates exactly the same result
      tokens_on_multiple_lines = first token
      tokens_on_multiple_lines = second token

      # commas may be escaped in tokens
      commas.excaped = Hi\, what'up?
 

NOTE: this class has not been written for performance nor low memory usage. In fact, it's way slower than it could be and generates too much memory garbage. But since performance is not an issue during intialization (and there is not much time to improve it), I wrote it this way. If you don't like it, go ahead and tune it up!

Version:
$Id: Configuration.java,v 1.33 2001/10/22 03:53:23 jon Exp $

Authors:
Stefano Mazzocchi
Jon S. Stevens
Dave Bryson
Jason van Zyl
Geir Magnusson Jr.
Leon Messerschmidt

Field Summary

protected String
basePath
Base path of the configuration file used to create this Configuration object.
private Configuration
defaults
Default configurations repository.
private ExtendedProperties
deprecationCrutch
protected String
file
The file connected to this repository (holding comments and such).
protected String
fileSeparator
File separator.
protected static String
include
This is the name of the property that can point to other properties file for including other properties files.
protected boolean
isInitialized
Has this configuration been intialized.
protected ArrayList
keysAsListed
These are the keys in the order they listed in the configuration file.

Constructor Summary

Configuration()
Creates an empty extended properties object.
Configuration(String file)
Creates and loads the extended properties from the specified file.
Configuration(String file, String defaultFile)
Creates and loads the extended properties from the specified file.

Method Summary

void
addProperty(String key, Object token)
Add a property to the configuration.
private void
addStringProperty(String key, String token)
Sets a string property w/o checking for commas - used internally when a property has been broken up into strings that could contain escaped commas to prevent the inadvertant vectorization.
void
clearProperty(String key)
Clear a property in the configuration.
void
combine(Configuration c)
Combines an existing Hashtable with this Hashtable.
static Configuration
convertProperties(Properties p)
Convert a standard properties class into a configuration class.
void
display()
Display the configuration for debugging purposes.
boolean
getBoolean(String key)
Get a boolean associated with the given configuration key.
Boolean
getBoolean(String key, Boolean defaultValue)
Get a boolean associated with the given configuration key.
boolean
getBoolean(String key, boolean defaultValue)
Get a boolean associated with the given configuration key.
byte
getByte(String key)
Get a byte associated with the given configuration key.
Byte
getByte(String key, Byte defaultValue)
Get a byte associated with the given configuration key.
byte
getByte(String key, byte defaultValue)
Get a byte associated with the given configuration key.
double
getDouble(String key)
Get a double associated with the given configuration key.
Double
getDouble(String key, Double defaultValue)
Get a double associated with the given configuration key.
double
getDouble(String key, double defaultValue)
Get a double associated with the given configuration key.
ExtendedProperties
getExtendedProperties()
Deprecated. Do not use.
float
getFloat(String key)
Get a float associated with the given configuration key.
Float
getFloat(String key, Float defaultValue)
Get a float associated with the given configuration key.
float
getFloat(String key, float defaultValue)
Get a float associated with the given configuration key.
String
getInclude()
Gets the property value for including other properties files.
int
getInt(String name)
The purpose of this method is to get the configuration resource with the given name as an integer.
int
getInt(String name, int def)
The purpose of this method is to get the configuration resource with the given name as an integer, or a default value.
int
getInteger(String key)
Get a int associated with the given configuration key.
Integer
getInteger(String key, Integer defaultValue)
Get a int associated with the given configuration key.
int
getInteger(String key, int defaultValue)
Get a int associated with the given configuration key.
Iterator
getKeys()
Get the list of the keys contained in the configuration repository.
Iterator
getKeys(String prefix)
Get the list of the keys contained in the configuration repository that match the specified prefix.
long
getLong(String key)
Get a long associated with the given configuration key.
Long
getLong(String key, Long defaultValue)
Get a long associated with the given configuration key.
long
getLong(String key, long defaultValue)
Get a long associated with the given configuration key.
Properties
getProperties(String key)
Get a list of properties associated with the given configuration key.
Properties
getProperties(String key, Properties defaults)
Get a list of properties associated with the given configuration key.
Object
getProperty(String key)
Gets a property from the configuration.
short
getShort(String key)
Get a short associated with the given configuration key.
Short
getShort(String key, Short defaultValue)
Get a short associated with the given configuration key.
short
getShort(String key, short defaultValue)
Get a short associated with the given configuration key.
String
getString(String key)
Get a string associated with the given configuration key.
String
getString(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.
Vector
getVector(String key)
Get a Vector of strings associated with the given configuration key.
Vector
getVector(String key, Vector defaultValue)
Get a Vector of strings associated with the given configuration key.
private void
init(Configuration exp)
Private initializer method that sets up the generic resources.
boolean
isInitialized()
Indicate to client code whether property resources have been initialized or not.
void
load(InputStream input)
Load the properties from the given input stream.
void
save(OutputStream output, String Header)
Save the properties to the given outputstream.
void
setInclude(String inc)
Sets the property value for including other properties files.
void
setProperty(String key, Object value)
Set a property, this will replace any previously set values.
Configuration
subset(String prefix)
Create a Configurations object that is a subset of this one.
String
testBoolean(String value)
Test whether the string represent by value maps to a boolean value or not.

Field Details

Constructor Details

Method Details

addProperty

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

Parameters:


addStringProperty

private void addStringProperty(String key,
                               String token)
Sets a string property w/o checking for commas - used internally when a property has been broken up into strings that could contain escaped commas to prevent the inadvertant vectorization. Thanks to Leon Messerschmidt for this one.


clearProperty

public void clearProperty(String key)
Clear a property in the configuration.

Parameters:


combine

public void combine(Configuration c)
Combines an existing Hashtable with this Hashtable. Warning: It will overwrite previous entries without warning.

Parameters:


convertProperties

public static Configuration convertProperties(Properties p)
Convert a standard properties class into a configuration class.

Parameters:

Returns:
Configuration configuration created from the properties object.


display

public void display()
Display the configuration for debugging purposes.


getBoolean

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

Parameters:
key - The configuration key.

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


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.


getByte

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

Parameters:
key - The configuration key.

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


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.


getDouble

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

Parameters:
key - The configuration key.

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


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.


getExtendedProperties

public ExtendedProperties getExtendedProperties()

Deprecated. Do not use. For deprecation assistance only.

Routine intended for deprecation period only as we switch from using the Configuration class in Velocity to the Jakarta Commons ExtendedProperties

Do not use this for general use. It will disappear

Returns:
ExtendedProperties containing data of Configuration


getFloat

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

Parameters:
key - The configuration key.

Returns:
The associated float.


getFloat

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

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

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


getFloat

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

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

Returns:
The associated float.


getInclude

public String getInclude()
Gets the property value for including other properties files. By default it is "include".

Returns:
A String.


getInt

public int getInt(String name)
The purpose of this method is to get the configuration resource with the given name as an integer.

Parameters:
name - The resource name.

Returns:
The value of the resource as an integer.


getInt

public int getInt(String name,
                  int def)
The purpose of this method is to get the configuration resource with the given name as an integer, or a default value.

Parameters:
name - The resource name
def - The default value of the resource.

Returns:
The value of the resource as an integer.


getInteger

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

Parameters:
key - The configuration key.

Returns:
The associated int.


getInteger

public Integer getInteger(String key,
                          Integer defaultValue)
Get a int associated with the given configuration key.

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

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


getInteger

public int getInteger(String key,
                      int defaultValue)
Get a int associated with the given configuration key.

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

Returns:
The associated int.


getKeys

public Iterator getKeys()
Get the list of the keys contained in the configuration repository.

Returns:
An Iterator.


getKeys

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

Parameters:
prefix - The prefix to test against.

Returns:
An Iterator of keys that match the prefix.


getLong

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

Parameters:
key - The configuration key.

Returns:
The associated long.


getLong

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

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

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


getLong

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

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

Returns:
The associated long.


getProperties

public Properties getProperties(String key)
Get a list of properties associated with the given configuration key.

Parameters:
key - The configuration key.

Returns:
The associated properties if key is found.


getProperties

public Properties getProperties(String key,
                                Properties defaults)
Get a list of properties associated with the given configuration key.

Parameters:
key - The configuration key.

Returns:
The associated properties if key is found.


getProperty

public Object getProperty(String key)
Gets a property from the configuration.

Parameters:
key - property to retrieve

Returns:
value as object. Will return user value if exists, if not then default value if exists, otherwise null


getShort

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

Parameters:
key - The configuration key.

Returns:
The associated 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 if key is found and has valid format, default value otherwise.


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.


getString

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

Parameters:
key - The configuration key.

Returns:
The associated string.


getString

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

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

Returns:
The associated string if key is found, default value otherwise.


getStringArray

public String[] getStringArray(String key)
Get an array of strings associated with the given configuration key.

Parameters:
key - The configuration key.

Returns:
The associated string array if key is found.


getVector

public Vector getVector(String key)
Get a Vector of strings associated with the given configuration key.

Parameters:
key - The configuration key.

Returns:
The associated Vector.


getVector

public Vector getVector(String key,
                        Vector defaultValue)
Get a Vector of strings associated with the given configuration key.

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

Returns:
The associated Vector.


init

private void init(Configuration exp)
            throws IOException
Private initializer method that sets up the generic resources.


isInitialized

public boolean isInitialized()
Indicate to client code whether property resources have been initialized or not.


load

public void load(InputStream input)
            throws IOException
Load the properties from the given input stream.

Parameters:
input - An InputStream.


save

public void save(OutputStream output,
                 String Header)
            throws IOException
Save the properties to the given outputstream.

Parameters:
output - An OutputStream.


setInclude

public void setInclude(String inc)
Sets the property value for including other properties files. By default it is "include".

Parameters:
inc - A String.


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:


subset

public Configuration subset(String prefix)
Create a Configurations object that is a subset of this one. Take into account duplicate keys by using the setProperty() in Configuration.

Parameters:


testBoolean

public String testBoolean(String value)
Test whether the string represent by value maps to a boolean value or not. We will allow true, on, and yes for a true boolean value, and false, off, and no for false boolean values. Case of value to test for boolean status is ignored.

Parameters:

Returns:
true or false if the supplied text maps to a boolean value, or null otherwise.


Copyright © 2003 Apache Software Foundation. All Rights Reserved.