diff options
author | duke2906 <philipp.prangenberg@gmail.com> | 2016-09-26 15:09:20 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-09-26 15:09:20 +0200 |
commit | 960bf899414d89221e92138fdb98777c3f4f73ec (patch) | |
tree | 87f5fd96185aa5f2fff0f84e2e2fa8be379ee837 /src/org/traccar/database/DeviceManager.java | |
parent | 0d3c05a24992eeeba02032e474d3a9bbb3239f10 (diff) | |
parent | aaec58aec04256845dc37afd713b488071b1406b (diff) | |
download | traccar-server-960bf899414d89221e92138fdb98777c3f4f73ec.tar.gz traccar-server-960bf899414d89221e92138fdb98777c3f4f73ec.tar.bz2 traccar-server-960bf899414d89221e92138fdb98777c3f4f73ec.zip |
Merge pull request #1 from tananaev/master
Update Changes, including version 3.7
Diffstat (limited to 'src/org/traccar/database/DeviceManager.java')
-rw-r--r-- | src/org/traccar/database/DeviceManager.java | 92 |
1 files changed, 88 insertions, 4 deletions
diff --git a/src/org/traccar/database/DeviceManager.java b/src/org/traccar/database/DeviceManager.java index 3476139f2..f32c7edd2 100644 --- a/src/org/traccar/database/DeviceManager.java +++ b/src/org/traccar/database/DeviceManager.java @@ -194,7 +194,7 @@ public class DeviceManager implements IdentityManager { public boolean isLatestPosition(Position position) { Position lastPosition = getLastPosition(position.getDeviceId()); - return lastPosition == null || position.getFixTime().compareTo(lastPosition.getFixTime()) > 0; + return lastPosition == null || position.getFixTime().compareTo(lastPosition.getFixTime()) >= 0; } public void updateLatestPosition(Position position) throws SQLException { @@ -316,7 +316,87 @@ public class DeviceManager implements IdentityManager { groupsById.remove(groupId); } - public String lookupAttribute(long deviceId, String attributeName) { + public boolean lookupServerBoolean(long deviceId, String attributeName, boolean defaultValue) { + String result = lookupAttribute(deviceId, attributeName, true); + if (result != null) { + return Boolean.parseBoolean(result); + } + return defaultValue; + } + + public String lookupServerString(long deviceId, String attributeName, String defaultValue) { + String result = lookupAttribute(deviceId, attributeName, true); + if (result != null) { + return result; + } + return defaultValue; + } + + public int lookupServerInteger(long deviceId, String attributeName, int defaultValue) { + String result = lookupAttribute(deviceId, attributeName, true); + if (result != null) { + return Integer.parseInt(result); + } + return defaultValue; + } + + public long lookupServerLong(long deviceId, String attributeName, long defaultValue) { + String result = lookupAttribute(deviceId, attributeName, true); + if (result != null) { + return Long.parseLong(result); + } + return defaultValue; + } + + public double lookupServerDouble(long deviceId, String attributeName, double defaultValue) { + String result = lookupAttribute(deviceId, attributeName, true); + if (result != null) { + return Double.parseDouble(result); + } + return defaultValue; + } + + public boolean lookupConfigBoolean(long deviceId, String attributeName, boolean defaultValue) { + String result = lookupAttribute(deviceId, attributeName, false); + if (result != null) { + return Boolean.parseBoolean(result); + } + return defaultValue; + } + + public String lookupConfigString(long deviceId, String attributeName, String defaultValue) { + String result = lookupAttribute(deviceId, attributeName, false); + if (result != null) { + return result; + } + return defaultValue; + } + + public int lookupConfigInteger(long deviceId, String attributeName, int defaultValue) { + String result = lookupAttribute(deviceId, attributeName, false); + if (result != null) { + return Integer.parseInt(result); + } + return defaultValue; + } + + public long lookupConfigLong(long deviceId, String attributeName, long defaultValue) { + String result = lookupAttribute(deviceId, attributeName, false); + if (result != null) { + return Long.parseLong(result); + } + return defaultValue; + } + + public double lookupConfigDouble(long deviceId, String attributeName, double defaultValue) { + String result = lookupAttribute(deviceId, attributeName, false); + if (result != null) { + return Double.parseDouble(result); + } + return defaultValue; + } + + private String lookupAttribute(long deviceId, String attributeName, boolean lookupServer) { String result = null; Device device = getDeviceById(deviceId); if (device != null) { @@ -338,8 +418,12 @@ public class DeviceManager implements IdentityManager { } } if (result == null) { - Server server = Context.getPermissionsManager().getServer(); - result = (String) server.getAttributes().get(attributeName); + if (lookupServer) { + Server server = Context.getPermissionsManager().getServer(); + result = (String) server.getAttributes().get(attributeName); + } else { + result = Context.getConfig().getString(attributeName); + } } } return result; |