diff options
Diffstat (limited to 'src/main/java/org/traccar/config')
-rw-r--r-- | src/main/java/org/traccar/config/Config.java | 20 | ||||
-rw-r--r-- | src/main/java/org/traccar/config/ConfigKey.java | 4 | ||||
-rw-r--r-- | src/main/java/org/traccar/config/Keys.java | 6 |
3 files changed, 21 insertions, 9 deletions
diff --git a/src/main/java/org/traccar/config/Config.java b/src/main/java/org/traccar/config/Config.java index 1231918c6..c6d87bfd6 100644 --- a/src/main/java/org/traccar/config/Config.java +++ b/src/main/java/org/traccar/config/Config.java @@ -134,16 +134,22 @@ public class Config { return hasKey(key) ? Long.parseLong(getString(key)) : defaultValue; } - public double getDouble(ConfigKey key) { - return getDouble(key, 0.0); - } - - public double getDouble(ConfigKey key, double defaultValue) { - return hasKey(key.getKey()) ? Double.parseDouble(getString(key.getKey())) : defaultValue; + public double getDouble(ConfigKey<Double> key) { + String value = getString(key.getKey()); + if (value != null) { + return Double.parseDouble(value); + } else { + Double defaultValue = key.getDefaultValue(); + if (defaultValue != null) { + return defaultValue; + } else { + return 0; + } + } } @VisibleForTesting - public void setString(ConfigKey key, String value) { + public void setString(ConfigKey<?> key, String value) { properties.put(key.getKey(), value); } diff --git a/src/main/java/org/traccar/config/ConfigKey.java b/src/main/java/org/traccar/config/ConfigKey.java index 926b46851..cc095c087 100644 --- a/src/main/java/org/traccar/config/ConfigKey.java +++ b/src/main/java/org/traccar/config/ConfigKey.java @@ -37,4 +37,8 @@ public class ConfigKey<T> { return key; } + public T getDefaultValue() { + return defaultValue; + } + } diff --git a/src/main/java/org/traccar/config/Keys.java b/src/main/java/org/traccar/config/Keys.java index b6b78d4d7..dc204b2f5 100644 --- a/src/main/java/org/traccar/config/Keys.java +++ b/src/main/java/org/traccar/config/Keys.java @@ -91,7 +91,8 @@ public final class Keys { */ public static final ConfigKey<Double> EVENT_MOTION_SPEED_THRESHOLD = new ConfigKey<>( "event.motion.speedThreshold", - Collections.singletonList(KeyType.FILE)); + Collections.singletonList(KeyType.FILE), + 0.01); /** * Global polyline geofence distance. Within that distance from the polyline, point is considered within the @@ -99,7 +100,8 @@ public final class Keys { */ public static final ConfigKey<Double> GEOFENCE_POLYLINE_DISTANCE = new ConfigKey<>( "geofence.polylineDistance", - Collections.singletonList(KeyType.FILE)); + Collections.singletonList(KeyType.FILE), + 25.0); /** * Path to the database driver JAR file. Traccar includes drivers for MySQL, PostgreSQL and H2 databases. If you use |