Rev 1751 |
Blame |
Compare with Previous |
Last modification |
View Log
| RSS feed
/*
* Copyright (C) 2008 Steve Ratcliffe
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*
* Author: Steve Ratcliffe
* Create date: May 17, 2008
*/
package uk.me.parabola.util;
import java.util.Enumeration;
import java.util.Properties;
/**
* Wrapper that behaves as an enhanced properties class that has getProperty
* calls for different data types.
*
* @author Steve Ratcliffe
*/
public class EnhancedProperties
extends Properties {
public EnhancedProperties
() {
}
public EnhancedProperties
(Properties defaults
) {
// We copy values, rather than making them default values so that
// we can enumerate all the options.
Enumeration<?> en = defaults.
propertyNames();
while (en.
hasMoreElements()) {
String key =
(String) en.
nextElement();
setProperty
(key, defaults.
getProperty(key
));
}
}
/**
* Get a property as an integer value. If the property does not exist
* or the value is not a valid integer, then the default value is returned
* instead.
* @param key The property name to retrieve.
* @param def The Default value to use if the property does not exist or
* if the value is not a valid integer.
* @return The value of the property as an integer, or the default value.
*/
public int getProperty
(String key,
int def
) {
try {
String s = getProperty
(key
);
return s ==
null ? def :
Integer.
parseInt(s
);
} catch (NumberFormatException e
) {
return def
;
}
}
/**
* Get a property as a boolean value. If the value of the property
* begins with a '1', a 'y' or a 't' (for 1, yes, true) then true is
* returned. If the property does not exist then the given default
* value is returned.
*
* @param key The property name to get.
* @param def The default value that is returned if property does not
* exist.
* @return The value of the property as a boolean. If the property does
* not exist then the value of 'def'.
*/
public boolean getProperty
(String key,
boolean def
) {
String s = getProperty
(key
);
if (s
!=
null) {
if (s.
isEmpty())
return true;
char c = s.
toLowerCase().
charAt(0);
return (c ==
'1' || c ==
'y' || c ==
't');
}
return def
;
}
/**
* Return a property as a double value. If the property does not
* exist or is not a valid double, then the given default value
* is returned instead.
* @param key The property name.
* @param def The default value to return if no valid value.
* @return The value of the property as a double.
*/
public double getProperty
(String key,
double def
) {
try {
String s = getProperty
(key
);
return s ==
null ? def :
Double.
parseDouble(s
);
} catch (NumberFormatException e
) {
return def
;
}
}
}