From a9478ded48de140d47d17def1ee5329267fe6088 Mon Sep 17 00:00:00 2001 From: Abyss777 Date: Wed, 19 Jul 2017 15:24:55 +0500 Subject: Refactored four managers --- src/org/traccar/model/AttributeAlias.java | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) (limited to 'src/org/traccar/model/AttributeAlias.java') diff --git a/src/org/traccar/model/AttributeAlias.java b/src/org/traccar/model/AttributeAlias.java index 2835c0558..5aa8a5122 100644 --- a/src/org/traccar/model/AttributeAlias.java +++ b/src/org/traccar/model/AttributeAlias.java @@ -16,17 +16,7 @@ */ package org.traccar.model; -public class AttributeAlias { - - private long id; - - public long getId() { - return id; - } - - public void setId(long id) { - this.id = id; - } +public class AttributeAlias extends Identifiable { private long deviceId; -- cgit v1.2.3 From e00fbfa466b17e94f59e6ff8fefb83f08999b3ec Mon Sep 17 00:00:00 2001 From: Abyss777 Date: Thu, 20 Jul 2017 17:12:29 +0500 Subject: Rename Identifiable and Extensible to BaseModel and ExtendedModel --- src/org/traccar/database/AttributesManager.java | 4 +- src/org/traccar/database/DataManager.java | 8 +- src/org/traccar/database/DriversManager.java | 8 +- .../traccar/database/ExtendedObjectManager.java | 4 +- src/org/traccar/database/SimpleObjectManager.java | 22 ++-- src/org/traccar/model/Attribute.java | 2 +- src/org/traccar/model/AttributeAlias.java | 2 +- src/org/traccar/model/BaseModel.java | 31 +++++ src/org/traccar/model/Calendar.java | 2 +- src/org/traccar/model/Device.java | 2 +- src/org/traccar/model/Driver.java | 2 +- src/org/traccar/model/ExtendedModel.java | 125 +++++++++++++++++++++ src/org/traccar/model/Extensible.java | 125 --------------------- src/org/traccar/model/Geofence.java | 2 +- src/org/traccar/model/Group.java | 2 +- src/org/traccar/model/Identifiable.java | 31 ----- src/org/traccar/model/Message.java | 2 +- src/org/traccar/model/Notification.java | 2 +- src/org/traccar/model/Server.java | 2 +- src/org/traccar/model/Statistics.java | 2 +- src/org/traccar/model/User.java | 2 +- .../traccar/notification/PropertiesProvider.java | 10 +- 22 files changed, 196 insertions(+), 196 deletions(-) create mode 100644 src/org/traccar/model/BaseModel.java create mode 100644 src/org/traccar/model/ExtendedModel.java delete mode 100644 src/org/traccar/model/Extensible.java delete mode 100644 src/org/traccar/model/Identifiable.java (limited to 'src/org/traccar/model/AttributeAlias.java') diff --git a/src/org/traccar/database/AttributesManager.java b/src/org/traccar/database/AttributesManager.java index ebfdbc9b4..6531019d1 100644 --- a/src/org/traccar/database/AttributesManager.java +++ b/src/org/traccar/database/AttributesManager.java @@ -22,7 +22,7 @@ import org.traccar.model.AttributePermission; import org.traccar.model.Attribute; import org.traccar.model.DeviceAttribute; import org.traccar.model.GroupAttribute; -import org.traccar.model.Identifiable; +import org.traccar.model.BaseModel; public class AttributesManager extends ExtendedObjectManager { @@ -33,7 +33,7 @@ public class AttributesManager extends ExtendedObjectManager { } @Override - public void updateItem(Identifiable item) throws SQLException { + public void updateItem(BaseModel item) throws SQLException { Attribute attribute = (Attribute) item; getDataManager().updateObject(attribute); Attribute cachedAttribute = (Attribute) getById(item.getId()); diff --git a/src/org/traccar/database/DataManager.java b/src/org/traccar/database/DataManager.java index 6c9cca86c..7497294a1 100644 --- a/src/org/traccar/database/DataManager.java +++ b/src/org/traccar/database/DataManager.java @@ -41,7 +41,7 @@ import org.traccar.helper.Log; import org.traccar.model.AttributeAlias; import org.traccar.model.Device; import org.traccar.model.Event; -import org.traccar.model.Identifiable; +import org.traccar.model.BaseModel; import org.traccar.model.Position; import org.traccar.model.Server; import org.traccar.model.Statistics; @@ -285,21 +285,21 @@ public class DataManager { return QueryBuilder.create(dataSource, getQuery(query)).executeQuery(clazz); } - public void addObject(Identifiable entity) throws SQLException { + public void addObject(BaseModel entity) throws SQLException { String query = "database.insert" + entity.getClass().getSimpleName(); entity.setId(QueryBuilder.create(dataSource, getQuery(query), true) .setObject(entity) .executeUpdate()); } - public void updateObject(Identifiable entity) throws SQLException { + public void updateObject(BaseModel entity) throws SQLException { String query = "database.update" + entity.getClass().getSimpleName(); QueryBuilder.create(dataSource, getQuery(query)) .setObject(entity) .executeUpdate(); } - public void removeObject(Class clazz, long entityId) throws SQLException { + public void removeObject(Class clazz, long entityId) throws SQLException { String query = "database.delete" + clazz.getSimpleName(); QueryBuilder.create(dataSource, getQuery(query)) .setLong("id", entityId) diff --git a/src/org/traccar/database/DriversManager.java b/src/org/traccar/database/DriversManager.java index 9b01f1a70..dba06a37f 100644 --- a/src/org/traccar/database/DriversManager.java +++ b/src/org/traccar/database/DriversManager.java @@ -25,7 +25,7 @@ import org.traccar.model.DeviceDriver; import org.traccar.model.Driver; import org.traccar.model.DriverPermission; import org.traccar.model.GroupDriver; -import org.traccar.model.Identifiable; +import org.traccar.model.BaseModel; public class DriversManager extends ExtendedObjectManager { @@ -42,7 +42,7 @@ public class DriversManager extends ExtendedObjectManager { if (getDataManager() != null) { try { clearItems(); - for (Identifiable item : getDataManager().getObjects(getBaseClass())) { + for (BaseModel item : getDataManager().getObjects(getBaseClass())) { putItem(item.getId(), item); driversByUniqueId.put(((Driver) item).getUniqueId(), (Driver) item); } @@ -54,13 +54,13 @@ public class DriversManager extends ExtendedObjectManager { } @Override - public void addItem(Identifiable item) throws SQLException { + public void addItem(BaseModel item) throws SQLException { super.addItem(item); driversByUniqueId.put(((Driver) item).getUniqueId(), (Driver) item); } @Override - public void updateItem(Identifiable item) throws SQLException { + public void updateItem(BaseModel item) throws SQLException { Driver driver = (Driver) item; getDataManager().updateObject(driver); Driver cachedDriver = (Driver) getById(driver.getId()); diff --git a/src/org/traccar/database/ExtendedObjectManager.java b/src/org/traccar/database/ExtendedObjectManager.java index a6508f066..caad989c2 100644 --- a/src/org/traccar/database/ExtendedObjectManager.java +++ b/src/org/traccar/database/ExtendedObjectManager.java @@ -29,7 +29,7 @@ import org.traccar.model.BaseDevicePermission; import org.traccar.model.BaseGroupPermission; import org.traccar.model.BaseUserPermission; import org.traccar.model.Device; -import org.traccar.model.Identifiable; +import org.traccar.model.BaseModel; public abstract class ExtendedObjectManager extends SimpleObjectManager { @@ -41,7 +41,7 @@ public abstract class ExtendedObjectManager extends SimpleObjectManager { private Class groupPermissionClass; protected ExtendedObjectManager(DataManager dataManager, - Class baseClass, + Class baseClass, Class permissionClass, Class devicePermissionClass, Class groupPermissionClass) { diff --git a/src/org/traccar/database/SimpleObjectManager.java b/src/org/traccar/database/SimpleObjectManager.java index f5f807850..aae407b56 100644 --- a/src/org/traccar/database/SimpleObjectManager.java +++ b/src/org/traccar/database/SimpleObjectManager.java @@ -27,20 +27,20 @@ import java.util.concurrent.ConcurrentHashMap; import org.traccar.Context; import org.traccar.helper.Log; import org.traccar.model.BaseUserPermission; -import org.traccar.model.Identifiable; +import org.traccar.model.BaseModel; public abstract class SimpleObjectManager { private final DataManager dataManager; - private final Map items = new ConcurrentHashMap<>(); + private final Map items = new ConcurrentHashMap<>(); private final Map> userItems = new ConcurrentHashMap<>(); - private Class baseClass; + private Class baseClass; private Class permissionClass; protected SimpleObjectManager(DataManager dataManager, - Class baseClass, + Class baseClass, Class permissionClass) { this.dataManager = dataManager; this.baseClass = baseClass; @@ -51,11 +51,11 @@ public abstract class SimpleObjectManager { return dataManager; } - protected final Class getBaseClass() { + protected final Class getBaseClass() { return baseClass; } - public final Identifiable getById(long itemId) { + public final BaseModel getById(long itemId) { return items.get(itemId); } @@ -63,7 +63,7 @@ public abstract class SimpleObjectManager { items.clear(); } - protected final void putItem(long itemId, Identifiable item) { + protected final void putItem(long itemId, BaseModel item) { items.put(itemId, item); } @@ -90,7 +90,7 @@ public abstract class SimpleObjectManager { if (dataManager != null) { try { clearItems(); - for (Identifiable item : dataManager.getObjects(this.baseClass)) { + for (BaseModel item : dataManager.getObjects(this.baseClass)) { putItem(item.getId(), item); } } catch (SQLException error) { @@ -113,18 +113,18 @@ public abstract class SimpleObjectManager { } } - public void addItem(Identifiable item) throws SQLException { + public void addItem(BaseModel item) throws SQLException { dataManager.addObject(item); putItem(item.getId(), item); } - public void updateItem(Identifiable item) throws SQLException { + public void updateItem(BaseModel item) throws SQLException { dataManager.updateObject(item); putItem(item.getId(), item); } public void removeItem(long itemId) throws SQLException { - Identifiable item = getById(itemId); + BaseModel item = getById(itemId); if (item != null) { dataManager.removeObject(item.getClass(), itemId); removeCachedItem(itemId); diff --git a/src/org/traccar/model/Attribute.java b/src/org/traccar/model/Attribute.java index ab12cd2c4..45d40b3ec 100644 --- a/src/org/traccar/model/Attribute.java +++ b/src/org/traccar/model/Attribute.java @@ -16,7 +16,7 @@ */ package org.traccar.model; -public class Attribute extends Identifiable { +public class Attribute extends BaseModel { private String description; diff --git a/src/org/traccar/model/AttributeAlias.java b/src/org/traccar/model/AttributeAlias.java index 5aa8a5122..1599ab939 100644 --- a/src/org/traccar/model/AttributeAlias.java +++ b/src/org/traccar/model/AttributeAlias.java @@ -16,7 +16,7 @@ */ package org.traccar.model; -public class AttributeAlias extends Identifiable { +public class AttributeAlias extends BaseModel { private long deviceId; diff --git a/src/org/traccar/model/BaseModel.java b/src/org/traccar/model/BaseModel.java new file mode 100644 index 000000000..8bdb916e8 --- /dev/null +++ b/src/org/traccar/model/BaseModel.java @@ -0,0 +1,31 @@ +/* + * Copyright 2017 Anton Tananaev (anton@traccar.org) + * Copyright 2017 Andrey Kunitsyn (andrey@traccar.org) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.traccar.model; + +public class BaseModel { + + private long id; + + public final long getId() { + return id; + } + + public final void setId(long id) { + this.id = id; + } + +} diff --git a/src/org/traccar/model/Calendar.java b/src/org/traccar/model/Calendar.java index 55f696d50..3d855b1be 100644 --- a/src/org/traccar/model/Calendar.java +++ b/src/org/traccar/model/Calendar.java @@ -34,7 +34,7 @@ import net.fortuna.ical4j.model.Period; import net.fortuna.ical4j.model.component.CalendarComponent; import org.traccar.database.QueryIgnore; -public class Calendar extends Extensible { +public class Calendar extends ExtendedModel { private String name; diff --git a/src/org/traccar/model/Device.java b/src/org/traccar/model/Device.java index 2324da532..6a13c2b77 100644 --- a/src/org/traccar/model/Device.java +++ b/src/org/traccar/model/Device.java @@ -18,7 +18,7 @@ package org.traccar.model; import java.util.Date; import java.util.List; -public class Device extends Extensible { +public class Device extends ExtendedModel { private String name; diff --git a/src/org/traccar/model/Driver.java b/src/org/traccar/model/Driver.java index 7a51d9151..05f52fd4d 100644 --- a/src/org/traccar/model/Driver.java +++ b/src/org/traccar/model/Driver.java @@ -16,7 +16,7 @@ */ package org.traccar.model; -public class Driver extends Extensible { +public class Driver extends ExtendedModel { private String name; diff --git a/src/org/traccar/model/ExtendedModel.java b/src/org/traccar/model/ExtendedModel.java new file mode 100644 index 000000000..a4bf00e70 --- /dev/null +++ b/src/org/traccar/model/ExtendedModel.java @@ -0,0 +1,125 @@ +/* + * Copyright 2016 - 2017 Anton Tananaev (anton@traccar.org) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.traccar.model; + +import java.util.LinkedHashMap; +import java.util.Map; + +public class ExtendedModel extends BaseModel { + + private Map attributes = new LinkedHashMap<>(); + + public Map getAttributes() { + return attributes; + } + + public void setAttributes(Map attributes) { + this.attributes = attributes; + } + + public void set(String key, Boolean value) { + attributes.put(key, value); + } + + public void set(String key, Byte value) { + if (value != null) { + attributes.put(key, value.intValue()); + } + } + + public void set(String key, Short value) { + if (value != null) { + attributes.put(key, value.intValue()); + } + } + + public void set(String key, Integer value) { + if (value != null) { + attributes.put(key, value); + } + } + + public void set(String key, Long value) { + if (value != null) { + attributes.put(key, value); + } + } + + public void set(String key, Float value) { + if (value != null) { + attributes.put(key, value.doubleValue()); + } + } + + public void set(String key, Double value) { + if (value != null) { + attributes.put(key, value); + } + } + + public void set(String key, String value) { + if (value != null && !value.isEmpty()) { + attributes.put(key, value); + } + } + + public void add(Map.Entry entry) { + if (entry != null && entry.getValue() != null) { + attributes.put(entry.getKey(), entry.getValue()); + } + } + + public String getString(String key) { + if (attributes.containsKey(key)) { + return (String) attributes.get(key); + } else { + return null; + } + } + + public double getDouble(String key) { + if (attributes.containsKey(key)) { + return ((Number) attributes.get(key)).doubleValue(); + } else { + return 0.0; + } + } + + public boolean getBoolean(String key) { + if (attributes.containsKey(key)) { + return Boolean.parseBoolean(attributes.get(key).toString()); + } else { + return false; + } + } + + public int getInteger(String key) { + if (attributes.containsKey(key)) { + return ((Number) attributes.get(key)).intValue(); + } else { + return 0; + } + } + + public long getLong(String key) { + if (attributes.containsKey(key)) { + return ((Number) attributes.get(key)).longValue(); + } else { + return 0; + } + } + +} diff --git a/src/org/traccar/model/Extensible.java b/src/org/traccar/model/Extensible.java deleted file mode 100644 index 3b382838e..000000000 --- a/src/org/traccar/model/Extensible.java +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Copyright 2016 Anton Tananaev (anton@traccar.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.traccar.model; - -import java.util.LinkedHashMap; -import java.util.Map; - -public class Extensible extends Identifiable { - - private Map attributes = new LinkedHashMap<>(); - - public Map getAttributes() { - return attributes; - } - - public void setAttributes(Map attributes) { - this.attributes = attributes; - } - - public void set(String key, Boolean value) { - attributes.put(key, value); - } - - public void set(String key, Byte value) { - if (value != null) { - attributes.put(key, value.intValue()); - } - } - - public void set(String key, Short value) { - if (value != null) { - attributes.put(key, value.intValue()); - } - } - - public void set(String key, Integer value) { - if (value != null) { - attributes.put(key, value); - } - } - - public void set(String key, Long value) { - if (value != null) { - attributes.put(key, value); - } - } - - public void set(String key, Float value) { - if (value != null) { - attributes.put(key, value.doubleValue()); - } - } - - public void set(String key, Double value) { - if (value != null) { - attributes.put(key, value); - } - } - - public void set(String key, String value) { - if (value != null && !value.isEmpty()) { - attributes.put(key, value); - } - } - - public void add(Map.Entry entry) { - if (entry != null && entry.getValue() != null) { - attributes.put(entry.getKey(), entry.getValue()); - } - } - - public String getString(String key) { - if (attributes.containsKey(key)) { - return (String) attributes.get(key); - } else { - return null; - } - } - - public double getDouble(String key) { - if (attributes.containsKey(key)) { - return ((Number) attributes.get(key)).doubleValue(); - } else { - return 0.0; - } - } - - public boolean getBoolean(String key) { - if (attributes.containsKey(key)) { - return Boolean.parseBoolean(attributes.get(key).toString()); - } else { - return false; - } - } - - public int getInteger(String key) { - if (attributes.containsKey(key)) { - return ((Number) attributes.get(key)).intValue(); - } else { - return 0; - } - } - - public long getLong(String key) { - if (attributes.containsKey(key)) { - return ((Number) attributes.get(key)).longValue(); - } else { - return 0; - } - } - -} diff --git a/src/org/traccar/model/Geofence.java b/src/org/traccar/model/Geofence.java index dfb888852..21c196da9 100644 --- a/src/org/traccar/model/Geofence.java +++ b/src/org/traccar/model/Geofence.java @@ -26,7 +26,7 @@ import org.traccar.geofence.GeofencePolyline; import com.fasterxml.jackson.annotation.JsonIgnore; -public class Geofence extends Extensible { +public class Geofence extends ExtendedModel { public static final String TYPE_GEOFENCE_CILCLE = "geofenceCircle"; public static final String TYPE_GEOFENCE_POLYGON = "geofencePolygon"; diff --git a/src/org/traccar/model/Group.java b/src/org/traccar/model/Group.java index c21d43127..aad206aad 100644 --- a/src/org/traccar/model/Group.java +++ b/src/org/traccar/model/Group.java @@ -15,7 +15,7 @@ */ package org.traccar.model; -public class Group extends Extensible { +public class Group extends ExtendedModel { private String name; diff --git a/src/org/traccar/model/Identifiable.java b/src/org/traccar/model/Identifiable.java deleted file mode 100644 index f22cfe800..000000000 --- a/src/org/traccar/model/Identifiable.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright 2017 Anton Tananaev (anton@traccar.org) - * Copyright 2017 Andrey Kunitsyn (andrey@traccar.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.traccar.model; - -public class Identifiable { - - private long id; - - public final long getId() { - return id; - } - - public final void setId(long id) { - this.id = id; - } - -} diff --git a/src/org/traccar/model/Message.java b/src/org/traccar/model/Message.java index ab472202b..dad9c20f0 100644 --- a/src/org/traccar/model/Message.java +++ b/src/org/traccar/model/Message.java @@ -15,7 +15,7 @@ */ package org.traccar.model; -public class Message extends Extensible { +public class Message extends ExtendedModel { private long deviceId; diff --git a/src/org/traccar/model/Notification.java b/src/org/traccar/model/Notification.java index 6c61cafaf..e7bb69903 100644 --- a/src/org/traccar/model/Notification.java +++ b/src/org/traccar/model/Notification.java @@ -15,7 +15,7 @@ */ package org.traccar.model; -public class Notification extends Extensible { +public class Notification extends ExtendedModel { private long userId; diff --git a/src/org/traccar/model/Server.java b/src/org/traccar/model/Server.java index 4ded65204..cd5b0624e 100644 --- a/src/org/traccar/model/Server.java +++ b/src/org/traccar/model/Server.java @@ -19,7 +19,7 @@ import java.util.TimeZone; import org.traccar.helper.Log; -public class Server extends Extensible { +public class Server extends ExtendedModel { public String getVersion() { return Log.getAppVersion(); diff --git a/src/org/traccar/model/Statistics.java b/src/org/traccar/model/Statistics.java index c7ae5af7a..2acf8514f 100644 --- a/src/org/traccar/model/Statistics.java +++ b/src/org/traccar/model/Statistics.java @@ -17,7 +17,7 @@ package org.traccar.model; import java.util.Date; -public class Statistics extends Extensible { +public class Statistics extends ExtendedModel { private Date captureTime; diff --git a/src/org/traccar/model/User.java b/src/org/traccar/model/User.java index 366ced503..6e6a079c2 100644 --- a/src/org/traccar/model/User.java +++ b/src/org/traccar/model/User.java @@ -21,7 +21,7 @@ import org.traccar.helper.Hashing; import java.util.Date; import java.util.TimeZone; -public class User extends Extensible { +public class User extends ExtendedModel { private String name; diff --git a/src/org/traccar/notification/PropertiesProvider.java b/src/org/traccar/notification/PropertiesProvider.java index e7cac8d0f..2fea901af 100644 --- a/src/org/traccar/notification/PropertiesProvider.java +++ b/src/org/traccar/notification/PropertiesProvider.java @@ -16,27 +16,27 @@ package org.traccar.notification; import org.traccar.Config; -import org.traccar.model.Extensible; +import org.traccar.model.ExtendedModel; public class PropertiesProvider { private Config config; - private Extensible extensible; + private ExtendedModel extendedModel; public PropertiesProvider(Config config) { this.config = config; } - public PropertiesProvider(Extensible extensible) { - this.extensible = extensible; + public PropertiesProvider(ExtendedModel extendedModel) { + this.extendedModel = extendedModel; } public String getString(String key) { if (config != null) { return config.getString(key); } else { - return extensible.getString(key); + return extendedModel.getString(key); } } -- cgit v1.2.3 From ba892a34c4a78ddc4ec7b24cc72b62278f608322 Mon Sep 17 00:00:00 2001 From: Abyss777 Date: Tue, 5 Sep 2017 18:14:36 +0500 Subject: Remove Attribute Aliases support --- schema/changelog-3.15.xml | 17 ++++ schema/changelog-master.xml | 1 + setup/default.xml | 21 ---- src/org/traccar/Context.java | 9 -- src/org/traccar/api/BaseObjectResource.java | 4 - .../api/resource/AttributeAliasResource.java | 93 ----------------- src/org/traccar/database/AliasesManager.java | 113 --------------------- src/org/traccar/database/DataManager.java | 24 ----- src/org/traccar/model/AttributeAlias.java | 51 ---------- swagger.json | 109 +++++--------------- 10 files changed, 44 insertions(+), 398 deletions(-) create mode 100644 schema/changelog-3.15.xml delete mode 100644 src/org/traccar/api/resource/AttributeAliasResource.java delete mode 100644 src/org/traccar/database/AliasesManager.java delete mode 100644 src/org/traccar/model/AttributeAlias.java (limited to 'src/org/traccar/model/AttributeAlias.java') diff --git a/schema/changelog-3.15.xml b/schema/changelog-3.15.xml new file mode 100644 index 000000000..a2d944abb --- /dev/null +++ b/schema/changelog-3.15.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + diff --git a/schema/changelog-master.xml b/schema/changelog-master.xml index d1b51b40e..58b2a8307 100644 --- a/schema/changelog-master.xml +++ b/schema/changelog-master.xml @@ -15,4 +15,5 @@ + diff --git a/setup/default.xml b/setup/default.xml index d96ceeb6d..95b69e216 100644 --- a/setup/default.xml +++ b/setup/default.xml @@ -62,27 +62,6 @@ DELETE FROM events WHERE serverTime < :serverTime - - SELECT * FROM attribute_aliases - - - - INSERT INTO attribute_aliases (deviceId, attribute, alias) - VALUES (:deviceId, :attribute, :alias) - - - - UPDATE attribute_aliases SET - deviceId = :deviceId, - attribute = :attribute, - alias = :alias - WHERE id = :id - - - - DELETE FROM attribute_aliases WHERE id = :id - - SELECT * FROM statistics WHERE captureTime BETWEEN :from AND :to ORDER BY captureTime diff --git a/src/org/traccar/Context.java b/src/org/traccar/Context.java index 10fdd9f29..87d8257ee 100644 --- a/src/org/traccar/Context.java +++ b/src/org/traccar/Context.java @@ -25,7 +25,6 @@ import java.util.Properties; import org.apache.velocity.app.VelocityEngine; import org.eclipse.jetty.util.URIUtil; -import org.traccar.database.AliasesManager; import org.traccar.database.CalendarManager; import org.traccar.database.AttributesManager; import org.traccar.database.BaseObjectManager; @@ -202,12 +201,6 @@ public final class Context { return eventForwarder; } - private static AliasesManager aliasesManager; - - public static AliasesManager getAliasesManager() { - return aliasesManager; - } - private static AttributesManager attributesManager; public static AttributesManager getAttributesManager() { @@ -395,8 +388,6 @@ public final class Context { eventForwarder = new EventForwarder(); } - aliasesManager = new AliasesManager(dataManager); - attributesManager = new AttributesManager(dataManager); driversManager = new DriversManager(dataManager); diff --git a/src/org/traccar/api/BaseObjectResource.java b/src/org/traccar/api/BaseObjectResource.java index a1b90bc28..b13dc2e71 100644 --- a/src/org/traccar/api/BaseObjectResource.java +++ b/src/org/traccar/api/BaseObjectResource.java @@ -138,10 +138,6 @@ public abstract class BaseObjectResource extends BaseResour Context.getPermissionsManager().refreshAllExtendedPermissions(); } } - // Next should be removed with Attribute Aliases - if (baseClass.equals(Device.class)) { - Context.getAliasesManager().removeDevice(id); - } return Response.noContent().build(); } diff --git a/src/org/traccar/api/resource/AttributeAliasResource.java b/src/org/traccar/api/resource/AttributeAliasResource.java deleted file mode 100644 index b2636acf1..000000000 --- a/src/org/traccar/api/resource/AttributeAliasResource.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright 2016 Anton Tananaev (anton@traccar.org) - * Copyright 2016 Andrey Kunitsyn (andrey@traccar.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.traccar.api.resource; - -import java.sql.SQLException; -import java.util.Collection; - -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; - -import org.traccar.Context; -import org.traccar.api.BaseResource; -import org.traccar.model.AttributeAlias; - -@Path("attributes/aliases") -@Produces(MediaType.APPLICATION_JSON) -@Consumes(MediaType.APPLICATION_JSON) -public class AttributeAliasResource extends BaseResource { - - @GET - public Collection get(@QueryParam("deviceId") long deviceId) throws SQLException { - if (deviceId != 0) { - if (!Context.getPermissionsManager().isAdmin(getUserId())) { - Context.getPermissionsManager().checkDevice(getUserId(), deviceId); - } - return Context.getAliasesManager().getAttributeAliases(deviceId); - } else { - return Context.getAliasesManager().getAllAttributeAliases(getUserId()); - } - } - - @POST - public Response add(AttributeAlias entity) throws SQLException { - Context.getPermissionsManager().checkReadonly(getUserId()); - Context.getPermissionsManager().checkDeviceReadonly(getUserId()); - if (!Context.getPermissionsManager().isAdmin(getUserId())) { - Context.getPermissionsManager().checkDevice(getUserId(), entity.getDeviceId()); - } - Context.getAliasesManager().addAttributeAlias(entity); - return Response.ok(entity).build(); - } - - @Path("{id}") - @PUT - public Response update(AttributeAlias entity) throws SQLException { - Context.getPermissionsManager().checkReadonly(getUserId()); - Context.getPermissionsManager().checkDeviceReadonly(getUserId()); - if (!Context.getPermissionsManager().isAdmin(getUserId())) { - AttributeAlias oldEntity = Context.getAliasesManager().getAttributeAlias(entity.getId()); - Context.getPermissionsManager().checkDevice(getUserId(), oldEntity.getDeviceId()); - Context.getPermissionsManager().checkDevice(getUserId(), entity.getDeviceId()); - } - Context.getAliasesManager().updateAttributeAlias(entity); - return Response.ok(entity).build(); - } - - @Path("{id}") - @DELETE - public Response remove(@PathParam("id") long id) throws SQLException { - Context.getPermissionsManager().checkReadonly(getUserId()); - Context.getPermissionsManager().checkDeviceReadonly(getUserId()); - if (!Context.getPermissionsManager().isAdmin(getUserId())) { - AttributeAlias entity = Context.getAliasesManager().getAttributeAlias(id); - Context.getPermissionsManager().checkDevice(getUserId(), entity.getDeviceId()); - } - Context.getAliasesManager().removeArrtibuteAlias(id); - return Response.noContent().build(); - } - -} diff --git a/src/org/traccar/database/AliasesManager.java b/src/org/traccar/database/AliasesManager.java deleted file mode 100644 index 4f4f09731..000000000 --- a/src/org/traccar/database/AliasesManager.java +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright 2016 Anton Tananaev (anton@traccar.org) - * Copyright 2016 Andrey Kunitsyn (andrey@traccar.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.traccar.database; - -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.ConcurrentHashMap; - -import org.traccar.Context; -import org.traccar.helper.Log; -import org.traccar.model.AttributeAlias; - -public class AliasesManager { - - private final DataManager dataManager; - - private final Map> deviceAliases = new ConcurrentHashMap<>(); - private final Map aliasesById = new ConcurrentHashMap<>(); - - public AliasesManager(DataManager dataManager) { - this.dataManager = dataManager; - if (dataManager != null) { - try { - for (AttributeAlias attributeAlias : dataManager.getAttributeAliases()) { - getAttributeAliases(attributeAlias.getDeviceId()) - .add(attributeAlias); - aliasesById.put(attributeAlias.getId(), attributeAlias); - } - } catch (SQLException error) { - Log.warning(error); - } - } - } - - public Set getAttributeAliases(long deviceId) { - if (!deviceAliases.containsKey(deviceId)) { - deviceAliases.put(deviceId, new HashSet()); - } - return deviceAliases.get(deviceId); - } - - public void removeDevice(long deviceId) { - for (AttributeAlias attributeAlias : getAttributeAliases(deviceId)) { - aliasesById.remove(attributeAlias.getId()); - } - deviceAliases.remove(deviceId); - } - - public void addAttributeAlias(AttributeAlias attributeAlias) throws SQLException { - dataManager.addAttributeAlias(attributeAlias); - aliasesById.put(attributeAlias.getId(), attributeAlias); - getAttributeAliases(attributeAlias.getDeviceId()).add(attributeAlias); - } - - public void updateAttributeAlias(AttributeAlias attributeAlias) throws SQLException { - dataManager.updateAttributeAlias(attributeAlias); - AttributeAlias cachedAlias = aliasesById.get(attributeAlias.getId()); - if (cachedAlias.getDeviceId() != attributeAlias.getDeviceId()) { - getAttributeAliases(cachedAlias.getDeviceId()).remove(cachedAlias); - cachedAlias.setDeviceId(attributeAlias.getDeviceId()); - getAttributeAliases(cachedAlias.getDeviceId()).add(cachedAlias); - } - cachedAlias.setAttribute(attributeAlias.getAttribute()); - cachedAlias.setAlias(attributeAlias.getAlias()); - } - - public void removeArrtibuteAlias(long attributeAliasId) throws SQLException { - dataManager.removeAttributeAlias(attributeAliasId); - AttributeAlias cachedAlias = aliasesById.get(attributeAliasId); - getAttributeAliases(cachedAlias.getDeviceId()).remove(cachedAlias); - aliasesById.remove(attributeAliasId); - } - - public AttributeAlias getAttributeAlias(long deviceId, String attribute) { - for (AttributeAlias alias : getAttributeAliases(deviceId)) { - if (alias.getAttribute().equals(attribute)) { - return alias; - } - } - return null; - } - - public Collection getAllAttributeAliases(long userId) { - Collection userDevicesAliases = new ArrayList<>(); - for (long deviceId : Context.getPermissionsManager().getDevicePermissions(userId)) { - userDevicesAliases.addAll(getAttributeAliases(deviceId)); - } - return userDevicesAliases; - } - - public AttributeAlias getAttributeAlias(long id) { - return aliasesById.get(id); - } - -} diff --git a/src/org/traccar/database/DataManager.java b/src/org/traccar/database/DataManager.java index 2e3e68bc9..4535a9c38 100644 --- a/src/org/traccar/database/DataManager.java +++ b/src/org/traccar/database/DataManager.java @@ -42,7 +42,6 @@ import liquibase.resource.ResourceAccessor; import org.traccar.Config; import org.traccar.helper.Log; import org.traccar.model.Attribute; -import org.traccar.model.AttributeAlias; import org.traccar.model.Device; import org.traccar.model.Driver; import org.traccar.model.Event; @@ -366,29 +365,6 @@ public class DataManager { .executeQuery(Event.class); } - public Collection getAttributeAliases() throws SQLException { - return QueryBuilder.create(dataSource, getQuery("database.selectAttributeAliases")) - .executeQuery(AttributeAlias.class); - } - - public void addAttributeAlias(AttributeAlias attributeAlias) throws SQLException { - attributeAlias.setId(QueryBuilder.create(dataSource, getQuery("database.insertAttributeAlias"), true) - .setObject(attributeAlias) - .executeUpdate()); - } - - public void updateAttributeAlias(AttributeAlias attributeAlias) throws SQLException { - QueryBuilder.create(dataSource, getQuery("database.updateAttributeAlias")) - .setObject(attributeAlias) - .executeUpdate(); - } - - public void removeAttributeAlias(long attributeAliasId) throws SQLException { - QueryBuilder.create(dataSource, getQuery("database.deleteAttributeAlias")) - .setLong("id", attributeAliasId) - .executeUpdate(); - } - public Collection getStatistics(Date from, Date to) throws SQLException { return QueryBuilder.create(dataSource, getQuery("database.selectStatistics")) .setDate("from", from) diff --git a/src/org/traccar/model/AttributeAlias.java b/src/org/traccar/model/AttributeAlias.java deleted file mode 100644 index 1599ab939..000000000 --- a/src/org/traccar/model/AttributeAlias.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 2016 Anton Tananaev (anton@traccar.org) - * Copyright 2016 Andrey Kunitsyn (andrey@traccar.org) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.traccar.model; - -public class AttributeAlias extends BaseModel { - - private long deviceId; - - public long getDeviceId() { - return deviceId; - } - - public void setDeviceId(long deviceId) { - this.deviceId = deviceId; - } - - private String attribute; - - public String getAttribute() { - return attribute; - } - - public void setAttribute(String attribute) { - this.attribute = attribute; - } - - private String alias; - - public String getAlias() { - return alias; - } - - public void setAlias(String alias) { - this.alias = alias; - } - -} diff --git a/swagger.json b/swagger.json index ffe56c9da..eba9e0910 100644 --- a/swagger.json +++ b/swagger.json @@ -1,7 +1,7 @@ { "swagger": "2.0", "info": { - "version": "3.13", + "version": "3.14", "title": "traccar" }, "host": "demo.traccar.org", @@ -861,10 +861,25 @@ } } }, - "/statistics": { + "/reports/stops": { "get": { - "summary": "Fetch server Statistics", + "summary": "Fetch a list of ReportStops within the time period for the Devices or Groups", + "description": "At least one _deviceId_ or one _groupId_ must be passed", + "consumes": [ + "application/json", + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" + ], + "produces": [ + "application/json", + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" + ], "parameters": [ + { + "$ref": "#/parameters/deviceIdArray" + }, + { + "$ref": "#/parameters/groupIdArray" + }, { "$ref": "#/parameters/fromTime" }, @@ -878,20 +893,22 @@ "schema": { "type": "array", "items": { - "$ref": "#/definitions/Statistics" + "$ref": "#/definitions/ReportStops" } } } } } }, - "/attributes/aliases": { + "/statistics": { "get": { - "summary": "Fetch a list of AttributeAlias", - "description": "Without params, it returns a list of AttributeAlias from all the user's Devices", + "summary": "Fetch server Statistics", "parameters": [ { - "$ref": "#/parameters/deviceId" + "$ref": "#/parameters/fromTime" + }, + { + "$ref": "#/parameters/toTime" } ], "responses": { @@ -900,61 +917,11 @@ "schema": { "type": "array", "items": { - "$ref": "#/definitions/AttributeAlias" + "$ref": "#/definitions/Statistics" } } } } - }, - "post": { - "summary": "Set an AttributeAlias", - "parameters": [ - { - "$ref": "#/parameters/AttributeAlias" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/AttributeAlias" - } - } - } - } - }, - "/attributes/aliases/{id}": { - "put": { - "summary": "Update an AttributeAlias", - "parameters": [ - { - "$ref": "#/parameters/entityId" - }, - { - "$ref": "#/parameters/AttributeAlias" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/AttributeAlias" - } - } - } - }, - "delete": { - "summary": "Delete an AttributeAlias", - "parameters": [ - { - "$ref": "#/parameters/entityId" - } - ], - "responses": { - "204": { - "description": "No Content" - } - } } }, "/calendars": { @@ -1714,22 +1681,6 @@ } } }, - "AttributeAlias": { - "properties": { - "id": { - "type": "integer" - }, - "deviceId": { - "type": "integer" - }, - "attribute": { - "type": "string" - }, - "alias": { - "type": "string" - } - } - }, "DeviceTotalDistance": { "properties": { "deviceId": { @@ -1868,14 +1819,6 @@ "$ref": "#/definitions/Geofence" } }, - "AttributeAlias": { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/AttributeAlias" - } - }, "Calendar": { "name": "body", "in": "body", -- cgit v1.2.3