43 lines
1.5 KiB
Java
43 lines
1.5 KiB
Java
package de.synolo.lib.fw.utils;
|
|
|
|
import java.util.Properties;
|
|
|
|
public class TypedProperties extends Properties {
|
|
|
|
private static final long serialVersionUID = 1L;
|
|
|
|
interface Converter<T> {
|
|
T convert(String input) throws Exception;
|
|
}
|
|
|
|
public <T> T getObject(String key, T defaultValue, Converter<T> converter) {
|
|
T val = defaultValue;
|
|
try {
|
|
val = converter.convert(getProperty(key));
|
|
}catch(Exception e) {
|
|
val = defaultValue;
|
|
}
|
|
return val;
|
|
}
|
|
|
|
public byte getByte(String key, byte defaultValue) { return getObject(key, defaultValue, Byte::parseByte); }
|
|
public byte getByte(String key) { return getByte(key, (byte)0); }
|
|
|
|
public short getShort(String key, short defaultValue) { return getObject(key, defaultValue, Short::parseShort); }
|
|
public short getShort(String key) { return getShort(key, (short)0); }
|
|
|
|
public int getInt(String key, int defaultValue) { return getObject(key, defaultValue, Integer::parseInt); }
|
|
public int getInt(String key) { return getInt(key, 0); }
|
|
|
|
public long getLong(String key, long defaultValue) { return getObject(key, defaultValue, Long::parseLong); }
|
|
public long getLong(String key) { return getLong(key, (byte)0); }
|
|
|
|
public float getFloat(String key, float defaultValue) { return getObject(key, defaultValue, Float::parseFloat); }
|
|
public float getFloat(String key) { return getFloat(key, (byte)0); }
|
|
|
|
public double getDouble(String key, double defaultValue) { return getObject(key, defaultValue, Double::parseDouble); }
|
|
public double getDouble(String key) { return getDouble(key, (byte)0); }
|
|
|
|
|
|
}
|