|
A Rich Interface
Most parameters are entered as strings in the various sources, but you can easily convert them to the type you need. For example, the day parameter in the above example could read like this:
int dayInt = config.getInt("day");
A good check on the quality of a utility package is always to give it some erroneous data, and watch the result. Take a look at Listing 1 to see what happens when you give Commons Configuration the integer parameter day = ABC.
Useful information. The error messages are easy to understand, so you can find the source of the error with no problem.
Here's a list of the supported data types:
-
BigDecimal
- BigInteger
- boolean
- byte
- double
- float
- int
- long
- short
- String
It's also easy to get a list of data values from your properties file. Suppose you have ages = 12, 13, 21 in the file, you'd code it like this:
List ages = config.getList("ages");
The separatora comma in the above exampleis configurable. You may also get the values as ints, but then you must use another configuration class:
. . .
DataConfiguration data = new DataConfiguration(config);
int[] iAges = data.getIntArray("ages");
. . .
The DataConfiguration class supports additional data types like Data, Calendar, and Coloras well as lists and arrays for all the types.
You may acquire all parameters in a configuration by using the config.getKeys() method. It returns an Iterator, so here's a method that will print out all parameters and their values:
public static void listProperties(Configuration config) {
Iterator it = config.getKeys();
System.out.println("*** Contents of configuration object: " +
config.getClass().getName());
while (it.hasNext()) {
String key = (String) it.next();
Object item = config.getProperty(key);
if (item instanceof List) {
System.out.println(key + "=" + config.getList(key));
} else {
System.out.println(key + "=" + config.getString(key));
}
}
}
Another nice feature in Commons Configuration is that it allows you to let a property value refer to another property value, for example:
age = 62
ages = 12, 13, 21, ${age}
Finally, if you're using a property file, you can include other property files by using the include key:
. . .
age = 62
ages = 12, 13, 21, ${age}
include = xtra.properties
. . .
This will force the xtra.properties file to load its key-value data.
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|