001    package calhoun.util;
002    
003    import java.util.Properties;
004    
005    import org.apache.commons.lang.StringUtils;
006    
007    public class TypedProperties extends Properties {
008            private static final long serialVersionUID = 8275327757663063251L;
009    
010            public TypedProperties() {
011            }
012            
013            public TypedProperties(Properties props) {
014                    super(props);
015            }
016            
017            public int getIntProperty(String name, int defValue) {
018                    String val = getProperty(name);
019                    return (val == null) ? defValue : Integer.parseInt(val);
020            }
021    
022            public double getDoubleProperty(String name, double defValue) {
023                    String val = getProperty(name);
024                    return (val == null) ? defValue : Double.parseDouble(val);
025            }
026    
027            public double[] getDoubleArrayProperty(String name, double[] defValue) {
028                    String val = getProperty(name);
029                    if(val == null) {
030                            return defValue;
031                    }
032                    String[] vals = StringUtils.split(val, ',');
033                    double[] ret = new double[vals.length];
034                    for(int i = 0; i<vals.length; ++i) {
035                            ret[i] = Double.parseDouble(vals[i]);
036                    }
037                    return ret;
038            }
039    
040            public int[] getIntArrayProperty(String name, int[] defValue) {
041                    String val = getProperty(name);
042                    if(val == null) {
043                            return defValue;
044                    }
045                    String[] vals = val.split(",");
046                    int[] ret = new int[vals.length];
047                    for(int i = 0; i<vals.length; ++i) {
048                            ret[i] = Integer.parseInt(vals[i]);
049                    }
050                    return ret;
051            }
052    
053            public short[] getShortArrayProperty(String name, short[] defValue) {
054                    String val = getProperty(name);
055                    if(val == null) {
056                            return defValue;
057                    }
058                    String[] vals = val.split(",");
059                    short[] ret = new short[vals.length];
060                    for(int i = 0; i<vals.length; ++i) {
061                            ret[i] = Short.parseShort(vals[i]);
062                    }
063                    return ret;
064            }
065    
066            public boolean  getBooleanProperty(String name, boolean defValue) {
067                    String val = getProperty(name);
068                    return (val == null) ? defValue : Boolean.parseBoolean(val);
069            }
070    
071    }