aboutsummaryrefslogtreecommitdiff
path: root/src/org/traccar
diff options
context:
space:
mode:
authorAbyss777 <abyss@fox5.ru>2017-07-26 17:52:27 +0500
committerAbyss777 <abyss@fox5.ru>2017-07-26 17:52:27 +0500
commitd31f68d80a8e3ae75fa0c2f02b9ca258486a3cad (patch)
treed44c13177de39aad1d0907a4150dfa6e440ab02f /src/org/traccar
parent82edf57e1b93d5a5ca34294dc62e3620889c2341 (diff)
downloadtrackermap-server-d31f68d80a8e3ae75fa0c2f02b9ca258486a3cad.tar.gz
trackermap-server-d31f68d80a8e3ae75fa0c2f02b9ca258486a3cad.tar.bz2
trackermap-server-d31f68d80a8e3ae75fa0c2f02b9ca258486a3cad.zip
- Implement base manager classes as generics
- Remame getDeviceById and getDeviceByUniqueId functions
Diffstat (limited to 'src/org/traccar')
-rw-r--r--src/org/traccar/BaseProtocolDecoder.java2
-rw-r--r--src/org/traccar/BaseProtocolEncoder.java4
-rw-r--r--src/org/traccar/FilterHandler.java2
-rw-r--r--src/org/traccar/MainEventHandler.java2
-rw-r--r--src/org/traccar/WebDataHandler.java2
-rw-r--r--src/org/traccar/api/resource/AttributeResource.java2
-rw-r--r--src/org/traccar/api/resource/CalendarResource.java9
-rw-r--r--src/org/traccar/api/resource/DeviceResource.java4
-rw-r--r--src/org/traccar/api/resource/DriverResource.java2
-rw-r--r--src/org/traccar/api/resource/GeofenceResource.java2
-rw-r--r--src/org/traccar/api/resource/GroupResource.java2
-rw-r--r--src/org/traccar/api/resource/PositionResource.java2
-rw-r--r--src/org/traccar/api/resource/UserResource.java2
-rw-r--r--src/org/traccar/database/AttributesManager.java13
-rw-r--r--src/org/traccar/database/BaseObjectManager.java28
-rw-r--r--src/org/traccar/database/CalendarManager.java7
-rw-r--r--src/org/traccar/database/ConnectionManager.java2
-rw-r--r--src/org/traccar/database/DeviceManager.java34
-rw-r--r--src/org/traccar/database/DriversManager.java25
-rw-r--r--src/org/traccar/database/ExtendedObjectManager.java4
-rw-r--r--src/org/traccar/database/GeofenceManager.java7
-rw-r--r--src/org/traccar/database/GroupsManager.java19
-rw-r--r--src/org/traccar/database/IdentityManager.java4
-rw-r--r--src/org/traccar/database/PermissionsManager.java5
-rw-r--r--src/org/traccar/database/SimpleObjectManager.java5
-rw-r--r--src/org/traccar/database/UsersManager.java21
-rw-r--r--src/org/traccar/events/FuelDropEventHandler.java2
-rw-r--r--src/org/traccar/events/GeofenceEventHandler.java11
-rw-r--r--src/org/traccar/events/IgnitionEventHandler.java2
-rw-r--r--src/org/traccar/events/MaintenanceEventHandler.java2
-rw-r--r--src/org/traccar/events/MotionEventHandler.java2
-rw-r--r--src/org/traccar/events/OverspeedEventHandler.java2
-rw-r--r--src/org/traccar/notification/EventForwarder.java2
-rw-r--r--src/org/traccar/notification/NotificationFormatter.java2
-rw-r--r--src/org/traccar/processing/ComputedAttributesHandler.java4
-rw-r--r--src/org/traccar/protocol/Gt06ProtocolDecoder.java2
-rw-r--r--src/org/traccar/protocol/MeitrackProtocolDecoder.java4
-rw-r--r--src/org/traccar/reports/Events.java2
-rw-r--r--src/org/traccar/reports/ReportUtils.java4
-rw-r--r--src/org/traccar/reports/Route.java2
-rw-r--r--src/org/traccar/reports/Stops.java2
-rw-r--r--src/org/traccar/reports/Summary.java2
-rw-r--r--src/org/traccar/reports/Trips.java2
43 files changed, 110 insertions, 150 deletions
diff --git a/src/org/traccar/BaseProtocolDecoder.java b/src/org/traccar/BaseProtocolDecoder.java
index b7ceabb5c..cc16000f4 100644
--- a/src/org/traccar/BaseProtocolDecoder.java
+++ b/src/org/traccar/BaseProtocolDecoder.java
@@ -75,7 +75,7 @@ public abstract class BaseProtocolDecoder extends ExtendedObjectDecoder {
try {
for (String uniqueId : uniqueIds) {
if (uniqueId != null) {
- Device device = Context.getIdentityManager().getDeviceByUniqueId(uniqueId);
+ Device device = Context.getIdentityManager().getByUniqueId(uniqueId);
if (device != null) {
deviceId = device.getId();
break;
diff --git a/src/org/traccar/BaseProtocolEncoder.java b/src/org/traccar/BaseProtocolEncoder.java
index 3c2d08471..2c8a81868 100644
--- a/src/org/traccar/BaseProtocolEncoder.java
+++ b/src/org/traccar/BaseProtocolEncoder.java
@@ -25,12 +25,12 @@ import org.traccar.model.Device;
public abstract class BaseProtocolEncoder extends OneToOneEncoder {
protected String getUniqueId(long deviceId) {
- return Context.getIdentityManager().getDeviceById(deviceId).getUniqueId();
+ return Context.getIdentityManager().getById(deviceId).getUniqueId();
}
protected void initDevicePassword(Command command, String defaultPassword) {
if (!command.getAttributes().containsKey(Command.KEY_DEVICE_PASSWORD)) {
- Device device = Context.getIdentityManager().getDeviceById(command.getDeviceId());
+ Device device = Context.getIdentityManager().getById(command.getDeviceId());
String password = device.getString(Command.KEY_DEVICE_PASSWORD);
if (password != null) {
command.set(Command.KEY_DEVICE_PASSWORD, password);
diff --git a/src/org/traccar/FilterHandler.java b/src/org/traccar/FilterHandler.java
index 71c0a1cf5..1f5fffc86 100644
--- a/src/org/traccar/FilterHandler.java
+++ b/src/org/traccar/FilterHandler.java
@@ -184,7 +184,7 @@ public class FilterHandler extends BaseDataHandler {
message.append("Position filtered by ");
message.append(filterType.toString());
message.append("filters from device: ");
- message.append(Context.getIdentityManager().getDeviceById(position.getDeviceId()).getUniqueId());
+ message.append(Context.getIdentityManager().getById(position.getDeviceId()).getUniqueId());
message.append(" with id: ");
message.append(position.getDeviceId());
diff --git a/src/org/traccar/MainEventHandler.java b/src/org/traccar/MainEventHandler.java
index a005ee44b..8e88e15b9 100644
--- a/src/org/traccar/MainEventHandler.java
+++ b/src/org/traccar/MainEventHandler.java
@@ -55,7 +55,7 @@ public class MainEventHandler extends IdleStateAwareChannelHandler {
Log.warning(error);
}
- String uniqueId = Context.getIdentityManager().getDeviceById(position.getDeviceId()).getUniqueId();
+ String uniqueId = Context.getIdentityManager().getById(position.getDeviceId()).getUniqueId();
// Log position
StringBuilder s = new StringBuilder();
diff --git a/src/org/traccar/WebDataHandler.java b/src/org/traccar/WebDataHandler.java
index eaf0978ef..c64dcc81b 100644
--- a/src/org/traccar/WebDataHandler.java
+++ b/src/org/traccar/WebDataHandler.java
@@ -75,7 +75,7 @@ public class WebDataHandler extends BaseDataHandler {
public String formatRequest(Position position) {
- Device device = Context.getIdentityManager().getDeviceById(position.getDeviceId());
+ Device device = Context.getIdentityManager().getById(position.getDeviceId());
String request = url
.replace("{name}", device.getName())
diff --git a/src/org/traccar/api/resource/AttributeResource.java b/src/org/traccar/api/resource/AttributeResource.java
index 7b81d3ffb..c12fcd9e6 100644
--- a/src/org/traccar/api/resource/AttributeResource.java
+++ b/src/org/traccar/api/resource/AttributeResource.java
@@ -81,7 +81,7 @@ public class AttributeResource extends BaseResource {
Context.getPermissionsManager().checkDevice(getUserId(), deviceId);
result.retainAll(attributesManager.getDeviceItems(deviceId));
}
- return attributesManager.getItems(Attribute.class, result);
+ return attributesManager.getItems(result);
}
diff --git a/src/org/traccar/api/resource/CalendarResource.java b/src/org/traccar/api/resource/CalendarResource.java
index a0f8656af..f8d78a847 100644
--- a/src/org/traccar/api/resource/CalendarResource.java
+++ b/src/org/traccar/api/resource/CalendarResource.java
@@ -18,6 +18,7 @@ package org.traccar.api.resource;
import java.sql.SQLException;
import java.util.Collection;
+import java.util.Set;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
@@ -47,20 +48,22 @@ public class CalendarResource extends BaseResource {
@QueryParam("all") boolean all, @QueryParam("userId") long userId) throws SQLException {
CalendarManager calendarManager = Context.getCalendarManager();
+ Set<Long> result = null;
if (all) {
if (Context.getPermissionsManager().isAdmin(getUserId())) {
- return calendarManager.getItems(Calendar.class, calendarManager.getAllItems());
+ result = calendarManager.getAllItems();
} else {
Context.getPermissionsManager().checkManager(getUserId());
- return calendarManager.getItems(Calendar.class, calendarManager.getManagedItems(getUserId()));
+ result = calendarManager.getManagedItems(getUserId());
}
} else {
if (userId == 0) {
userId = getUserId();
}
Context.getPermissionsManager().checkUser(getUserId(), userId);
- return calendarManager.getItems(Calendar.class, calendarManager.getUserItems(userId));
+ result = calendarManager.getUserItems(userId);
}
+ return calendarManager.getItems(result);
}
@POST
diff --git a/src/org/traccar/api/resource/DeviceResource.java b/src/org/traccar/api/resource/DeviceResource.java
index c621d4304..a473b7bde 100644
--- a/src/org/traccar/api/resource/DeviceResource.java
+++ b/src/org/traccar/api/resource/DeviceResource.java
@@ -68,7 +68,7 @@ public class DeviceResource extends BaseResource {
} else {
result = new HashSet<Long>();
for (String uniqueId : uniqueIds) {
- Device device = deviceManager.getDeviceByUniqueId(uniqueId);
+ Device device = deviceManager.getByUniqueId(uniqueId);
Context.getPermissionsManager().checkDevice(getUserId(), device.getId());
result.add(device.getId());
}
@@ -77,7 +77,7 @@ public class DeviceResource extends BaseResource {
result.add(deviceId);
}
}
- return deviceManager.getItems(Device.class, result);
+ return deviceManager.getItems(result);
}
@POST
diff --git a/src/org/traccar/api/resource/DriverResource.java b/src/org/traccar/api/resource/DriverResource.java
index 72eadb711..d44979998 100644
--- a/src/org/traccar/api/resource/DriverResource.java
+++ b/src/org/traccar/api/resource/DriverResource.java
@@ -79,7 +79,7 @@ public class DriverResource extends BaseResource {
Context.getPermissionsManager().checkDevice(getUserId(), deviceId);
result.retainAll(driversManager.getDeviceItems(deviceId));
}
- return driversManager.getItems(Driver.class, result);
+ return driversManager.getItems(result);
}
diff --git a/src/org/traccar/api/resource/GeofenceResource.java b/src/org/traccar/api/resource/GeofenceResource.java
index 47f889e9c..9a110fbcf 100644
--- a/src/org/traccar/api/resource/GeofenceResource.java
+++ b/src/org/traccar/api/resource/GeofenceResource.java
@@ -78,7 +78,7 @@ public class GeofenceResource extends BaseResource {
Context.getPermissionsManager().checkDevice(getUserId(), deviceId);
result.retainAll(geofenceManager.getDeviceItems(deviceId));
}
- return geofenceManager.getItems(Geofence.class, result);
+ return geofenceManager.getItems(result);
}
diff --git a/src/org/traccar/api/resource/GroupResource.java b/src/org/traccar/api/resource/GroupResource.java
index f832660b2..4482f06c0 100644
--- a/src/org/traccar/api/resource/GroupResource.java
+++ b/src/org/traccar/api/resource/GroupResource.java
@@ -60,7 +60,7 @@ public class GroupResource extends BaseResource {
Context.getPermissionsManager().checkUser(getUserId(), userId);
result = groupsManager.getUserItems(userId);
}
- return groupsManager.getItems(Group.class, result);
+ return groupsManager.getItems(result);
}
@POST
diff --git a/src/org/traccar/api/resource/PositionResource.java b/src/org/traccar/api/resource/PositionResource.java
index 9d3cd9ae6..6dab51744 100644
--- a/src/org/traccar/api/resource/PositionResource.java
+++ b/src/org/traccar/api/resource/PositionResource.java
@@ -87,7 +87,7 @@ public class PositionResource extends BaseResource {
@QueryParam("deviceId") long deviceId, @QueryParam("from") String from, @QueryParam("to") String to)
throws SQLException {
Context.getPermissionsManager().checkDevice(getUserId(), deviceId);
- GpxBuilder gpx = new GpxBuilder(Context.getIdentityManager().getDeviceById(deviceId).getName());
+ GpxBuilder gpx = new GpxBuilder(Context.getIdentityManager().getById(deviceId).getName());
gpx.addPositions(Context.getDataManager().getPositions(
deviceId, DateUtil.parseDate(from), DateUtil.parseDate(to)));
return Response.ok(gpx.build()).header(HttpHeaders.CONTENT_DISPOSITION, CONTENT_DISPOSITION_VALUE_GPX).build();
diff --git a/src/org/traccar/api/resource/UserResource.java b/src/org/traccar/api/resource/UserResource.java
index 9998ed346..deb2dd2b4 100644
--- a/src/org/traccar/api/resource/UserResource.java
+++ b/src/org/traccar/api/resource/UserResource.java
@@ -58,7 +58,7 @@ public class UserResource extends BaseResource {
} else {
throw new SecurityException("Admin or manager access required");
}
- return usersManager.getItems(User.class, result);
+ return usersManager.getItems(result);
}
@PermitAll
diff --git a/src/org/traccar/database/AttributesManager.java b/src/org/traccar/database/AttributesManager.java
index e80d57c4e..28816645a 100644
--- a/src/org/traccar/database/AttributesManager.java
+++ b/src/org/traccar/database/AttributesManager.java
@@ -17,23 +17,16 @@
package org.traccar.database;
import org.traccar.model.Attribute;
-import org.traccar.model.BaseModel;
-public class AttributesManager extends ExtendedObjectManager {
+public class AttributesManager extends ExtendedObjectManager<Attribute> {
public AttributesManager(DataManager dataManager) {
super(dataManager, Attribute.class);
}
@Override
- public Attribute getById(long calendarId) {
- return (Attribute) super.getById(calendarId);
- }
-
- @Override
- public void updateCachedItem(BaseModel item) {
- Attribute attribute = (Attribute) item;
- Attribute cachedAttribute = getById(item.getId());
+ public void updateCachedItem(Attribute attribute) {
+ Attribute cachedAttribute = getById(attribute.getId());
cachedAttribute.setDescription(attribute.getDescription());
cachedAttribute.setAttribute(attribute.getAttribute());
cachedAttribute.setExpression(attribute.getExpression());
diff --git a/src/org/traccar/database/BaseObjectManager.java b/src/org/traccar/database/BaseObjectManager.java
index 92cfd9b6b..cc1dbde5f 100644
--- a/src/org/traccar/database/BaseObjectManager.java
+++ b/src/org/traccar/database/BaseObjectManager.java
@@ -27,14 +27,14 @@ import java.util.concurrent.ConcurrentHashMap;
import org.traccar.helper.Log;
import org.traccar.model.BaseModel;
-public class BaseObjectManager {
+public class BaseObjectManager<T extends BaseModel> {
private final DataManager dataManager;
- private Map<Long, BaseModel> items;
- private Class<? extends BaseModel> baseClass;
+ private Map<Long, T> items;
+ private Class<T> baseClass;
- protected BaseObjectManager(DataManager dataManager, Class<? extends BaseModel> baseClass) {
+ protected BaseObjectManager(DataManager dataManager, Class<T> baseClass) {
this.dataManager = dataManager;
this.baseClass = baseClass;
refreshItems();
@@ -44,23 +44,23 @@ public class BaseObjectManager {
return dataManager;
}
- protected final Class<? extends BaseModel> getBaseClass() {
+ protected final Class<T> getBaseClass() {
return baseClass;
}
- public BaseModel getById(long itemId) {
+ public T getById(long itemId) {
return items.get(itemId);
}
public void refreshItems() {
if (dataManager != null) {
try {
- Collection<? extends BaseModel> databaseItems = dataManager.getObjects(baseClass);
+ Collection<T> databaseItems = dataManager.getObjects(baseClass);
if (items == null) {
items = new ConcurrentHashMap<>(databaseItems.size());
}
Set<Long> databaseItemIds = new HashSet<>();
- for (BaseModel item : databaseItems) {
+ for (T item : databaseItems) {
databaseItemIds.add(item.getId());
if (items.containsKey(item.getId())) {
updateCachedItem(item);
@@ -79,20 +79,20 @@ public class BaseObjectManager {
}
}
- protected void addNewItem(BaseModel item) {
+ protected void addNewItem(T item) {
items.put(item.getId(), item);
}
- public void addItem(BaseModel item) throws SQLException {
+ public void addItem(T item) throws SQLException {
dataManager.addObject(item);
addNewItem(item);
}
- protected void updateCachedItem(BaseModel item) {
+ protected void updateCachedItem(T item) {
items.put(item.getId(), item);
}
- public void updateItem(BaseModel item) throws SQLException {
+ public void updateItem(T item) throws SQLException {
dataManager.updateObject(item);
updateCachedItem(item);
}
@@ -109,10 +109,10 @@ public class BaseObjectManager {
}
}
- public final <T> Collection<T> getItems(Class<T> clazz, Set<Long> itemIds) {
+ public final Collection<T> getItems(Set<Long> itemIds) {
Collection<T> result = new LinkedList<>();
for (long itemId : itemIds) {
- result.add((T) getById(itemId));
+ result.add(getById(itemId));
}
return result;
}
diff --git a/src/org/traccar/database/CalendarManager.java b/src/org/traccar/database/CalendarManager.java
index b8d0914ee..44ced1082 100644
--- a/src/org/traccar/database/CalendarManager.java
+++ b/src/org/traccar/database/CalendarManager.java
@@ -18,15 +18,10 @@ package org.traccar.database;
import org.traccar.model.Calendar;
-public class CalendarManager extends SimpleObjectManager {
+public class CalendarManager extends SimpleObjectManager<Calendar> {
public CalendarManager(DataManager dataManager) {
super(dataManager, Calendar.class);
}
- @Override
- public Calendar getById(long calendarId) {
- return (Calendar) super.getById(calendarId);
- }
-
}
diff --git a/src/org/traccar/database/ConnectionManager.java b/src/org/traccar/database/ConnectionManager.java
index 0baafb578..1445fb785 100644
--- a/src/org/traccar/database/ConnectionManager.java
+++ b/src/org/traccar/database/ConnectionManager.java
@@ -70,7 +70,7 @@ public class ConnectionManager {
}
public void updateDevice(final long deviceId, String status, Date time) {
- Device device = Context.getIdentityManager().getDeviceById(deviceId);
+ Device device = Context.getIdentityManager().getById(deviceId);
if (device == null) {
return;
}
diff --git a/src/org/traccar/database/DeviceManager.java b/src/org/traccar/database/DeviceManager.java
index 1fe7ddfa5..4aafe6631 100644
--- a/src/org/traccar/database/DeviceManager.java
+++ b/src/org/traccar/database/DeviceManager.java
@@ -30,7 +30,6 @@ import org.traccar.BaseProtocol;
import org.traccar.Config;
import org.traccar.Context;
import org.traccar.helper.Log;
-import org.traccar.model.BaseModel;
import org.traccar.model.Command;
import org.traccar.model.CommandType;
import org.traccar.model.Device;
@@ -39,7 +38,7 @@ import org.traccar.model.Group;
import org.traccar.model.Position;
import org.traccar.model.Server;
-public class DeviceManager extends BaseObjectManager implements IdentityManager, ManagableObjects {
+public class DeviceManager extends BaseObjectManager<Device> implements IdentityManager, ManagableObjects {
public static final long DEFAULT_REFRESH_DELAY = 300;
@@ -73,12 +72,7 @@ public class DeviceManager extends BaseObjectManager implements IdentityManager,
}
@Override
- public Device getDeviceById(long id) {
- return (Device) getById(id);
- }
-
- @Override
- public Device getDeviceByUniqueId(String uniqueId) throws SQLException {
+ public Device getByUniqueId(String uniqueId) throws SQLException {
boolean forceUpdate = !devicesByUniqueId.containsKey(uniqueId) && !config.getBoolean("database.ignoreUnknown");
updateDeviceCache(forceUpdate);
@@ -105,7 +99,7 @@ public class DeviceManager extends BaseObjectManager implements IdentityManager,
}
public Collection<Device> getAllDevices() {
- return getItems(Device.class, getAllItems());
+ return getItems(getAllItems());
}
@Override
@@ -142,9 +136,8 @@ public class DeviceManager extends BaseObjectManager implements IdentityManager,
}
@Override
- protected void addNewItem(BaseModel item) {
- super.addNewItem(item);
- Device device = (Device) item;
+ protected void addNewItem(Device device) {
+ super.addNewItem(device);
putUniqueDeviceId(device);
if (device.getPhone() != null && !device.getPhone().isEmpty()) {
putPhone(device);
@@ -158,9 +151,8 @@ public class DeviceManager extends BaseObjectManager implements IdentityManager,
}
@Override
- protected void updateCachedItem(BaseModel item) {
- Device device = (Device) item;
- Device cachedDevice = getDeviceById(device.getId());
+ protected void updateCachedItem(Device device) {
+ Device cachedDevice = getById(device.getId());
cachedDevice.setName(device.getName());
cachedDevice.setGroupId(device.getGroupId());
cachedDevice.setCategory(device.getCategory());
@@ -182,7 +174,7 @@ public class DeviceManager extends BaseObjectManager implements IdentityManager,
@Override
protected void removeCachedItem(long deviceId) {
- Device cachedDevice = getDeviceById(deviceId);
+ Device cachedDevice = getById(deviceId);
if (cachedDevice != null) {
String deviceUniqueId = cachedDevice.getUniqueId();
String phone = cachedDevice.getPhone();
@@ -197,7 +189,7 @@ public class DeviceManager extends BaseObjectManager implements IdentityManager,
public void updateDeviceStatus(Device device) throws SQLException {
getDataManager().updateDeviceStatus(device);
- Device cachedDevice = getDeviceById(device.getId());
+ Device cachedDevice = getById(device.getId());
if (cachedDevice != null) {
cachedDevice.setStatus(device.getStatus());
}
@@ -226,7 +218,7 @@ public class DeviceManager extends BaseObjectManager implements IdentityManager,
getDataManager().updateLatestPosition(position);
- Device device = getDeviceById(position.getDeviceId());
+ Device device = getById(position.getDeviceId());
if (device != null) {
device.setPositionId(position.getId());
}
@@ -305,7 +297,7 @@ public class DeviceManager extends BaseObjectManager implements IdentityManager,
private String lookupAttribute(long deviceId, String attributeName, boolean lookupConfig) {
String result = null;
- Device device = getDeviceById(deviceId);
+ Device device = getById(deviceId);
if (device != null) {
result = device.getString(attributeName);
if (result == null && lookupGroupsAttribute) {
@@ -352,9 +344,9 @@ public class DeviceManager extends BaseObjectManager implements IdentityManager,
Position lastPosition = getLastPosition(deviceId);
if (lastPosition != null) {
BaseProtocol protocol = Context.getServerManager().getProtocol(lastPosition.getProtocol());
- protocol.sendTextCommand(getDeviceById(deviceId).getPhone(), command);
+ protocol.sendTextCommand(getById(deviceId).getPhone(), command);
} else if (command.getType().equals(Command.TYPE_CUSTOM)) {
- Context.getSmppManager().sendMessageSync(((Device) getById(deviceId)).getPhone(),
+ Context.getSmppManager().sendMessageSync(getById(deviceId).getPhone(),
command.getString(Command.KEY_DATA), true);
} else {
throw new RuntimeException("Command " + command.getType() + " is not supported");
diff --git a/src/org/traccar/database/DriversManager.java b/src/org/traccar/database/DriversManager.java
index 420824dbb..d3866a5f0 100644
--- a/src/org/traccar/database/DriversManager.java
+++ b/src/org/traccar/database/DriversManager.java
@@ -20,37 +20,30 @@ import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import org.traccar.model.Driver;
-import org.traccar.model.BaseModel;
-public class DriversManager extends ExtendedObjectManager {
+public class DriversManager extends ExtendedObjectManager<Driver> {
- private Map<String, Driver> driversByUniqueId;
+ private Map<String, Long> driversByUniqueId;
public DriversManager(DataManager dataManager) {
super(dataManager, Driver.class);
}
- @Override
- public Driver getById(long driverId) {
- return (Driver) super.getById(driverId);
- }
-
private void putUniqueDriverId(Driver driver) {
if (driversByUniqueId == null) {
- driversByUniqueId = new ConcurrentHashMap<>();
+ driversByUniqueId = new ConcurrentHashMap<>(getAllItems().size());
}
- driversByUniqueId.put(driver.getUniqueId(), driver);
+ driversByUniqueId.put(driver.getUniqueId(), driver.getId());
}
@Override
- protected void addNewItem(BaseModel item) {
- super.addNewItem(item);
- putUniqueDriverId((Driver) item);
+ protected void addNewItem(Driver driver) {
+ super.addNewItem(driver);
+ putUniqueDriverId(driver);
}
@Override
- protected void updateCachedItem(BaseModel item) {
- Driver driver = (Driver) item;
+ protected void updateCachedItem(Driver driver) {
Driver cachedDriver = getById(driver.getId());
cachedDriver.setName(driver.getName());
if (!driver.getUniqueId().equals(cachedDriver.getUniqueId())) {
@@ -72,6 +65,6 @@ public class DriversManager extends ExtendedObjectManager {
}
public Driver getDriverByUniqueId(String uniqueId) {
- return driversByUniqueId.get(uniqueId);
+ return getById(driversByUniqueId.get(uniqueId));
}
}
diff --git a/src/org/traccar/database/ExtendedObjectManager.java b/src/org/traccar/database/ExtendedObjectManager.java
index 19c9ca5b2..16785cb37 100644
--- a/src/org/traccar/database/ExtendedObjectManager.java
+++ b/src/org/traccar/database/ExtendedObjectManager.java
@@ -30,13 +30,13 @@ import org.traccar.model.Group;
import org.traccar.model.Permission;
import org.traccar.model.BaseModel;
-public abstract class ExtendedObjectManager extends SimpleObjectManager {
+public abstract class ExtendedObjectManager<T extends BaseModel> extends SimpleObjectManager<T> {
private final Map<Long, Set<Long>> deviceItems = new ConcurrentHashMap<>();
private final Map<Long, Set<Long>> deviceItemsWithGroups = new ConcurrentHashMap<>();
private final Map<Long, Set<Long>> groupItems = new ConcurrentHashMap<>();
- protected ExtendedObjectManager(DataManager dataManager, Class<? extends BaseModel> baseClass) {
+ protected ExtendedObjectManager(DataManager dataManager, Class<T> baseClass) {
super(dataManager, baseClass);
refreshExtendedPermissions();
}
diff --git a/src/org/traccar/database/GeofenceManager.java b/src/org/traccar/database/GeofenceManager.java
index 4bc3909cd..a32847cf9 100644
--- a/src/org/traccar/database/GeofenceManager.java
+++ b/src/org/traccar/database/GeofenceManager.java
@@ -23,18 +23,13 @@ import org.traccar.model.Device;
import org.traccar.model.Geofence;
import org.traccar.model.Position;
-public class GeofenceManager extends ExtendedObjectManager {
+public class GeofenceManager extends ExtendedObjectManager<Geofence> {
public GeofenceManager(DataManager dataManager) {
super(dataManager, Geofence.class);
}
@Override
- public Geofence getById(long geofenceId) {
- return (Geofence) super.getById(geofenceId);
- }
-
- @Override
public final void refreshExtendedPermissions() {
super.refreshExtendedPermissions();
recalculateDevicesGeofences();
diff --git a/src/org/traccar/database/GroupsManager.java b/src/org/traccar/database/GroupsManager.java
index 095e7a22c..20b403d55 100644
--- a/src/org/traccar/database/GroupsManager.java
+++ b/src/org/traccar/database/GroupsManager.java
@@ -26,7 +26,7 @@ import org.traccar.helper.Log;
import org.traccar.model.BaseModel;
import org.traccar.model.Group;
-public class GroupsManager extends BaseObjectManager implements ManagableObjects {
+public class GroupsManager extends BaseObjectManager<Group> implements ManagableObjects {
private AtomicLong groupsLastUpdate = new AtomicLong();
private final long dataRefreshDelay;
@@ -37,11 +37,6 @@ public class GroupsManager extends BaseObjectManager implements ManagableObjects
DeviceManager.DEFAULT_REFRESH_DELAY) * 1000;
}
- @Override
- public Group getById(long groupId) {
- return (Group) super.getById(groupId);
- }
-
private void checkGroupCycles(BaseModel group) {
Set<Long> groups = new HashSet<>();
while (group != null) {
@@ -76,15 +71,15 @@ public class GroupsManager extends BaseObjectManager implements ManagableObjects
}
@Override
- protected void addNewItem(BaseModel item) {
- checkGroupCycles(item);
- super.addNewItem(item);
+ protected void addNewItem(Group group) {
+ checkGroupCycles(group);
+ super.addNewItem(group);
}
@Override
- protected void updateCachedItem(BaseModel item) {
- checkGroupCycles(item);
- super.updateCachedItem(item);
+ protected void updateCachedItem(Group group) {
+ checkGroupCycles(group);
+ super.updateCachedItem(group);
}
@Override
diff --git a/src/org/traccar/database/IdentityManager.java b/src/org/traccar/database/IdentityManager.java
index c8c593a54..82d905963 100644
--- a/src/org/traccar/database/IdentityManager.java
+++ b/src/org/traccar/database/IdentityManager.java
@@ -20,9 +20,9 @@ import org.traccar.model.Position;
public interface IdentityManager {
- Device getDeviceById(long id);
+ Device getById(long id);
- Device getDeviceByUniqueId(String uniqueId) throws Exception;
+ Device getByUniqueId(String uniqueId) throws Exception;
Position getLastPosition(long deviceId);
diff --git a/src/org/traccar/database/PermissionsManager.java b/src/org/traccar/database/PermissionsManager.java
index 54e5ed979..3b03c1900 100644
--- a/src/org/traccar/database/PermissionsManager.java
+++ b/src/org/traccar/database/PermissionsManager.java
@@ -18,6 +18,7 @@ package org.traccar.database;
import org.traccar.Context;
import org.traccar.helper.Log;
import org.traccar.model.Attribute;
+import org.traccar.model.BaseModel;
import org.traccar.model.Calendar;
import org.traccar.model.Device;
import org.traccar.model.Driver;
@@ -99,7 +100,7 @@ public class PermissionsManager {
devicePermissions.clear();
try {
GroupTree groupTree = new GroupTree(Context.getGroupsManager().getItems(
- Group.class, Context.getGroupsManager().getAllItems()),
+ Context.getGroupsManager().getAllItems()),
Context.getDeviceManager().getAllDevices());
for (Permission groupPermission : dataManager.getPermissions(User.class, Group.class)) {
Set<Long> userGroupPermissions = getGroupPermissions(groupPermission.getOwnerId());
@@ -284,7 +285,7 @@ public class PermissionsManager {
public void checkPermission(Class<?> object, long userId, long objectId)
throws SecurityException {
- SimpleObjectManager manager = null;
+ SimpleObjectManager<? extends BaseModel> manager = null;
if (object.equals(Device.class)) {
checkDevice(userId, objectId);
diff --git a/src/org/traccar/database/SimpleObjectManager.java b/src/org/traccar/database/SimpleObjectManager.java
index fa41f30b6..0b4d11378 100644
--- a/src/org/traccar/database/SimpleObjectManager.java
+++ b/src/org/traccar/database/SimpleObjectManager.java
@@ -28,11 +28,12 @@ import org.traccar.model.BaseModel;
import org.traccar.model.Permission;
import org.traccar.model.User;
-public abstract class SimpleObjectManager extends BaseObjectManager implements ManagableObjects {
+public abstract class SimpleObjectManager<T extends BaseModel> extends BaseObjectManager<T>
+ implements ManagableObjects {
private Map<Long, Set<Long>> userItems;
- protected SimpleObjectManager(DataManager dataManager, Class<? extends BaseModel> baseClass) {
+ protected SimpleObjectManager(DataManager dataManager, Class<T> baseClass) {
super(dataManager, baseClass);
}
diff --git a/src/org/traccar/database/UsersManager.java b/src/org/traccar/database/UsersManager.java
index e53409b4f..28e6a31b2 100644
--- a/src/org/traccar/database/UsersManager.java
+++ b/src/org/traccar/database/UsersManager.java
@@ -21,10 +21,9 @@ import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
-import org.traccar.model.BaseModel;
import org.traccar.model.User;
-public class UsersManager extends SimpleObjectManager {
+public class UsersManager extends SimpleObjectManager<User> {
private Map<String, Long> usersTokens;
@@ -32,11 +31,6 @@ public class UsersManager extends SimpleObjectManager {
super(dataManager, User.class);
}
- @Override
- public User getById(long userId) {
- return (User) super.getById(userId);
- }
-
private void putToken(User user) {
if (usersTokens == null) {
usersTokens = new ConcurrentHashMap<>();
@@ -47,16 +41,15 @@ public class UsersManager extends SimpleObjectManager {
}
@Override
- protected void addNewItem(BaseModel item) {
- super.addNewItem(item);
- putToken((User) item);
+ protected void addNewItem(User user) {
+ super.addNewItem(user);
+ putToken(user);
}
@Override
- protected void updateCachedItem(BaseModel item) {
- User user = (User) item;
- User cachedUser = getById(item.getId());
- super.updateCachedItem(item);
+ protected void updateCachedItem(User user) {
+ User cachedUser = getById(user.getId());
+ super.updateCachedItem(user);
if (user.getToken() != null) {
usersTokens.put(user.getToken(), user.getId());
}
diff --git a/src/org/traccar/events/FuelDropEventHandler.java b/src/org/traccar/events/FuelDropEventHandler.java
index e9a261aea..4e09bd4fa 100644
--- a/src/org/traccar/events/FuelDropEventHandler.java
+++ b/src/org/traccar/events/FuelDropEventHandler.java
@@ -31,7 +31,7 @@ public class FuelDropEventHandler extends BaseEventHandler {
@Override
protected Collection<Event> analyzePosition(Position position) {
- Device device = Context.getIdentityManager().getDeviceById(position.getDeviceId());
+ Device device = Context.getIdentityManager().getById(position.getDeviceId());
if (device == null) {
return null;
}
diff --git a/src/org/traccar/events/GeofenceEventHandler.java b/src/org/traccar/events/GeofenceEventHandler.java
index 516df9d69..79e5d0f8e 100644
--- a/src/org/traccar/events/GeofenceEventHandler.java
+++ b/src/org/traccar/events/GeofenceEventHandler.java
@@ -25,7 +25,6 @@ import org.traccar.database.GeofenceManager;
import org.traccar.model.Calendar;
import org.traccar.model.Device;
import org.traccar.model.Event;
-import org.traccar.model.Geofence;
import org.traccar.model.Position;
public class GeofenceEventHandler extends BaseEventHandler {
@@ -38,7 +37,7 @@ public class GeofenceEventHandler extends BaseEventHandler {
@Override
protected Collection<Event> analyzePosition(Position position) {
- Device device = Context.getIdentityManager().getDeviceById(position.getDeviceId());
+ Device device = Context.getIdentityManager().getById(position.getDeviceId());
if (device == null) {
return null;
}
@@ -59,8 +58,8 @@ public class GeofenceEventHandler extends BaseEventHandler {
Collection<Event> events = new ArrayList<>();
for (long geofenceId : newGeofences) {
- long calendarId = ((Geofence) geofenceManager.getById(geofenceId)).getCalendarId();
- Calendar calendar = calendarId != 0 ? (Calendar) Context.getCalendarManager().getById(calendarId) : null;
+ long calendarId = geofenceManager.getById(geofenceId).getCalendarId();
+ Calendar calendar = calendarId != 0 ? Context.getCalendarManager().getById(calendarId) : null;
if (calendar == null || calendar.checkMoment(position.getFixTime())) {
Event event = new Event(Event.TYPE_GEOFENCE_ENTER, position.getDeviceId(), position.getId());
event.setGeofenceId(geofenceId);
@@ -68,8 +67,8 @@ public class GeofenceEventHandler extends BaseEventHandler {
}
}
for (long geofenceId : oldGeofences) {
- long calendarId = ((Geofence) geofenceManager.getById(geofenceId)).getCalendarId();
- Calendar calendar = calendarId != 0 ? (Calendar) Context.getCalendarManager().getById(calendarId) : null;
+ long calendarId = geofenceManager.getById(geofenceId).getCalendarId();
+ Calendar calendar = calendarId != 0 ? Context.getCalendarManager().getById(calendarId) : null;
if (calendar == null || calendar.checkMoment(position.getFixTime())) {
Event event = new Event(Event.TYPE_GEOFENCE_EXIT, position.getDeviceId(), position.getId());
event.setGeofenceId(geofenceId);
diff --git a/src/org/traccar/events/IgnitionEventHandler.java b/src/org/traccar/events/IgnitionEventHandler.java
index c628cc107..5519135bf 100644
--- a/src/org/traccar/events/IgnitionEventHandler.java
+++ b/src/org/traccar/events/IgnitionEventHandler.java
@@ -29,7 +29,7 @@ public class IgnitionEventHandler extends BaseEventHandler {
@Override
protected Collection<Event> analyzePosition(Position position) {
- Device device = Context.getIdentityManager().getDeviceById(position.getDeviceId());
+ Device device = Context.getIdentityManager().getById(position.getDeviceId());
if (device == null || !Context.getIdentityManager().isLatestPosition(position)) {
return null;
}
diff --git a/src/org/traccar/events/MaintenanceEventHandler.java b/src/org/traccar/events/MaintenanceEventHandler.java
index 86836f6af..ffeefc8c5 100644
--- a/src/org/traccar/events/MaintenanceEventHandler.java
+++ b/src/org/traccar/events/MaintenanceEventHandler.java
@@ -32,7 +32,7 @@ public class MaintenanceEventHandler extends BaseEventHandler {
@Override
protected Collection<Event> analyzePosition(Position position) {
- Device device = Context.getIdentityManager().getDeviceById(position.getDeviceId());
+ Device device = Context.getIdentityManager().getById(position.getDeviceId());
if (device == null || !Context.getIdentityManager().isLatestPosition(position)) {
return null;
}
diff --git a/src/org/traccar/events/MotionEventHandler.java b/src/org/traccar/events/MotionEventHandler.java
index e6fd10f3e..ed81176a8 100644
--- a/src/org/traccar/events/MotionEventHandler.java
+++ b/src/org/traccar/events/MotionEventHandler.java
@@ -29,7 +29,7 @@ public class MotionEventHandler extends BaseEventHandler {
@Override
protected Collection<Event> analyzePosition(Position position) {
- Device device = Context.getIdentityManager().getDeviceById(position.getDeviceId());
+ Device device = Context.getIdentityManager().getById(position.getDeviceId());
if (device == null) {
return null;
}
diff --git a/src/org/traccar/events/OverspeedEventHandler.java b/src/org/traccar/events/OverspeedEventHandler.java
index 00c3845d2..795892f40 100644
--- a/src/org/traccar/events/OverspeedEventHandler.java
+++ b/src/org/traccar/events/OverspeedEventHandler.java
@@ -37,7 +37,7 @@ public class OverspeedEventHandler extends BaseEventHandler {
@Override
protected Collection<Event> analyzePosition(Position position) {
- Device device = Context.getIdentityManager().getDeviceById(position.getDeviceId());
+ Device device = Context.getIdentityManager().getById(position.getDeviceId());
if (device == null) {
return null;
}
diff --git a/src/org/traccar/notification/EventForwarder.java b/src/org/traccar/notification/EventForwarder.java
index 08f55df75..ac37f980c 100644
--- a/src/org/traccar/notification/EventForwarder.java
+++ b/src/org/traccar/notification/EventForwarder.java
@@ -69,7 +69,7 @@ public final class EventForwarder {
data.put(KEY_POSITION, position);
}
if (event.getDeviceId() != 0) {
- Device device = Context.getIdentityManager().getDeviceById(event.getDeviceId());
+ Device device = Context.getIdentityManager().getById(event.getDeviceId());
if (device != null) {
data.put(KEY_DEVICE, device);
}
diff --git a/src/org/traccar/notification/NotificationFormatter.java b/src/org/traccar/notification/NotificationFormatter.java
index cd9959671..33fd2cdc7 100644
--- a/src/org/traccar/notification/NotificationFormatter.java
+++ b/src/org/traccar/notification/NotificationFormatter.java
@@ -40,7 +40,7 @@ public final class NotificationFormatter {
public static VelocityContext prepareContext(long userId, Event event, Position position) {
User user = Context.getPermissionsManager().getUser(userId);
- Device device = Context.getIdentityManager().getDeviceById(event.getDeviceId());
+ Device device = Context.getIdentityManager().getById(event.getDeviceId());
VelocityContext velocityContext = new VelocityContext();
velocityContext.put("user", user);
diff --git a/src/org/traccar/processing/ComputedAttributesHandler.java b/src/org/traccar/processing/ComputedAttributesHandler.java
index d6a762535..f1f371475 100644
--- a/src/org/traccar/processing/ComputedAttributesHandler.java
+++ b/src/org/traccar/processing/ComputedAttributesHandler.java
@@ -51,7 +51,7 @@ public class ComputedAttributesHandler extends BaseDataHandler {
private MapContext prepareContext(Position position) {
MapContext result = new MapContext();
if (mapDeviceAttributes) {
- Device device = Context.getIdentityManager().getDeviceById(position.getDeviceId());
+ Device device = Context.getIdentityManager().getById(position.getDeviceId());
if (device != null) {
for (Object key : device.getAttributes().keySet()) {
result.set((String) key, device.getAttributes().get(key));
@@ -86,7 +86,7 @@ public class ComputedAttributesHandler extends BaseDataHandler {
@Override
protected Position handlePosition(Position position) {
- Collection<Attribute> attributes = Context.getAttributesManager().getItems(Attribute.class,
+ Collection<Attribute> attributes = Context.getAttributesManager().getItems(
Context.getAttributesManager().getAllDeviceItems(position.getDeviceId()));
for (Attribute attribute : attributes) {
if (attribute.getAttribute() != null) {
diff --git a/src/org/traccar/protocol/Gt06ProtocolDecoder.java b/src/org/traccar/protocol/Gt06ProtocolDecoder.java
index 36358b6e5..186867b9d 100644
--- a/src/org/traccar/protocol/Gt06ProtocolDecoder.java
+++ b/src/org/traccar/protocol/Gt06ProtocolDecoder.java
@@ -555,7 +555,7 @@ public class Gt06ProtocolDecoder extends BaseProtocolDecoder {
if (photo.writableBytes() > 0) {
sendPhotoRequest(channel, pictureId);
} else {
- Device device = Context.getDeviceManager().getDeviceById(deviceSession.getDeviceId());
+ Device device = Context.getDeviceManager().getById(deviceSession.getDeviceId());
Context.getMediaManager().writeFile(device.getUniqueId(), photo, "jpg");
photos.remove(pictureId);
}
diff --git a/src/org/traccar/protocol/MeitrackProtocolDecoder.java b/src/org/traccar/protocol/MeitrackProtocolDecoder.java
index 711697fc4..469ef3f76 100644
--- a/src/org/traccar/protocol/MeitrackProtocolDecoder.java
+++ b/src/org/traccar/protocol/MeitrackProtocolDecoder.java
@@ -160,7 +160,7 @@ public class MeitrackProtocolDecoder extends BaseProtocolDecoder {
}
}
- String deviceModel = Context.getIdentityManager().getDeviceById(deviceSession.getDeviceId()).getModel();
+ String deviceModel = Context.getIdentityManager().getById(deviceSession.getDeviceId()).getModel();
if (deviceModel == null) {
deviceModel = "";
}
@@ -316,7 +316,7 @@ public class MeitrackProtocolDecoder extends BaseProtocolDecoder {
case "D03":
if (channel != null) {
DeviceSession deviceSession = getDeviceSession(channel, remoteAddress);
- String imei = Context.getIdentityManager().getDeviceById(deviceSession.getDeviceId()).getUniqueId();
+ String imei = Context.getIdentityManager().getById(deviceSession.getDeviceId()).getUniqueId();
channel.write("@@O46," + imei + ",D00,camera_picture.jpg,0*00\r\n");
}
return null;
diff --git a/src/org/traccar/reports/Events.java b/src/org/traccar/reports/Events.java
index 348e6077f..63077de32 100644
--- a/src/org/traccar/reports/Events.java
+++ b/src/org/traccar/reports/Events.java
@@ -88,7 +88,7 @@ public final class Events {
}
}
DeviceReport deviceEvents = new DeviceReport();
- Device device = Context.getIdentityManager().getDeviceById(deviceId);
+ Device device = Context.getIdentityManager().getById(deviceId);
deviceEvents.setDeviceName(device.getName());
sheetNames.add(WorkbookUtil.createSafeSheetName(deviceEvents.getDeviceName()));
if (device.getGroupId() != 0) {
diff --git a/src/org/traccar/reports/ReportUtils.java b/src/org/traccar/reports/ReportUtils.java
index bc58d28df..cf94030ab 100644
--- a/src/org/traccar/reports/ReportUtils.java
+++ b/src/org/traccar/reports/ReportUtils.java
@@ -176,7 +176,7 @@ public final class ReportUtils {
long tripDuration = endTrip.getFixTime().getTime() - startTrip.getFixTime().getTime();
long deviceId = startTrip.getDeviceId();
trip.setDeviceId(deviceId);
- trip.setDeviceName(Context.getIdentityManager().getDeviceById(deviceId).getName());
+ trip.setDeviceName(Context.getIdentityManager().getById(deviceId).getName());
trip.setStartPositionId(startTrip.getId());
trip.setStartLat(startTrip.getLatitude());
@@ -210,7 +210,7 @@ public final class ReportUtils {
long deviceId = startStop.getDeviceId();
stop.setDeviceId(deviceId);
- stop.setDeviceName(Context.getIdentityManager().getDeviceById(deviceId).getName());
+ stop.setDeviceName(Context.getIdentityManager().getById(deviceId).getName());
stop.setPositionId(startStop.getId());
stop.setLatitude(startStop.getLatitude());
diff --git a/src/org/traccar/reports/Route.java b/src/org/traccar/reports/Route.java
index 69be55155..1c53a15cc 100644
--- a/src/org/traccar/reports/Route.java
+++ b/src/org/traccar/reports/Route.java
@@ -57,7 +57,7 @@ public final class Route {
Collection<Position> positions = Context.getDataManager()
.getPositions(deviceId, from, to);
DeviceReport deviceRoutes = new DeviceReport();
- Device device = Context.getIdentityManager().getDeviceById(deviceId);
+ Device device = Context.getIdentityManager().getById(deviceId);
deviceRoutes.setDeviceName(device.getName());
sheetNames.add(WorkbookUtil.createSafeSheetName(deviceRoutes.getDeviceName()));
if (device.getGroupId() != 0) {
diff --git a/src/org/traccar/reports/Stops.java b/src/org/traccar/reports/Stops.java
index 20a6c1ce3..886fd7915 100644
--- a/src/org/traccar/reports/Stops.java
+++ b/src/org/traccar/reports/Stops.java
@@ -74,7 +74,7 @@ public final class Stops {
Context.getPermissionsManager().checkDevice(userId, deviceId);
Collection<StopReport> stops = detectStops(deviceId, from, to);
DeviceReport deviceStops = new DeviceReport();
- Device device = Context.getIdentityManager().getDeviceById(deviceId);
+ Device device = Context.getIdentityManager().getById(deviceId);
deviceStops.setDeviceName(device.getName());
sheetNames.add(WorkbookUtil.createSafeSheetName(deviceStops.getDeviceName()));
if (device.getGroupId() != 0) {
diff --git a/src/org/traccar/reports/Summary.java b/src/org/traccar/reports/Summary.java
index 5aaf33fae..dd9877cd7 100644
--- a/src/org/traccar/reports/Summary.java
+++ b/src/org/traccar/reports/Summary.java
@@ -38,7 +38,7 @@ public final class Summary {
private static SummaryReport calculateSummaryResult(long deviceId, Date from, Date to) throws SQLException {
SummaryReport result = new SummaryReport();
result.setDeviceId(deviceId);
- result.setDeviceName(Context.getIdentityManager().getDeviceById(deviceId).getName());
+ result.setDeviceName(Context.getIdentityManager().getById(deviceId).getName());
Collection<Position> positions = Context.getDataManager().getPositions(deviceId, from, to);
if (positions != null && !positions.isEmpty()) {
Position firstPosition = null;
diff --git a/src/org/traccar/reports/Trips.java b/src/org/traccar/reports/Trips.java
index 7b5df0248..68b03a819 100644
--- a/src/org/traccar/reports/Trips.java
+++ b/src/org/traccar/reports/Trips.java
@@ -73,7 +73,7 @@ public final class Trips {
Context.getPermissionsManager().checkDevice(userId, deviceId);
Collection<TripReport> trips = detectTrips(deviceId, from, to);
DeviceReport deviceTrips = new DeviceReport();
- Device device = Context.getIdentityManager().getDeviceById(deviceId);
+ Device device = Context.getIdentityManager().getById(deviceId);
deviceTrips.setDeviceName(device.getName());
sheetNames.add(WorkbookUtil.createSafeSheetName(deviceTrips.getDeviceName()));
if (device.getGroupId() != 0) {