Renamed AbstractDevice to HalAbstractDevice and moved int intf package

This commit is contained in:
Ziver Koc 2021-03-21 19:40:36 +01:00
parent 8d51526481
commit 7e8938c38c
17 changed files with 37 additions and 52 deletions

View file

@ -1,11 +1,9 @@
package se.hal.intf; package se.hal.intf;
import se.hal.struct.AbstractDevice;
import zutil.ClassUtil; import zutil.ClassUtil;
import zutil.log.LogUtil; import zutil.log.LogUtil;
import zutil.plugin.PluginManager; import zutil.plugin.PluginManager;
import java.lang.reflect.ParameterizedType;
import java.util.*; import java.util.*;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
@ -15,7 +13,7 @@ import java.util.logging.Logger;
* @param <T> is the device controller class * @param <T> is the device controller class
* @param <C> is the device configuration class * @param <C> is the device configuration class
*/ */
public abstract class HalAbstractControllerManager<T extends HalAbstractController, V extends AbstractDevice, C extends HalDeviceConfig> { public abstract class HalAbstractControllerManager<T extends HalAbstractController, V extends HalAbstractDevice, C extends HalDeviceConfig> {
private static final Logger logger = LogUtil.getLogger(); private static final Logger logger = LogUtil.getLogger();
/** A map of all instantiated controllers **/ /** A map of all instantiated controllers **/

View file

@ -1,10 +1,7 @@
package se.hal.struct; package se.hal.intf;
import se.hal.HalContext; import se.hal.HalContext;
import se.hal.intf.HalAbstractController; import se.hal.struct.User;
import se.hal.intf.HalDeviceConfig;
import se.hal.intf.HalDeviceData;
import se.hal.intf.HalDeviceReportListener;
import zutil.db.DBConnection; import zutil.db.DBConnection;
import zutil.db.bean.DBBean; import zutil.db.bean.DBBean;
import zutil.log.LogUtil; import zutil.log.LogUtil;
@ -25,7 +22,7 @@ import java.util.logging.Logger;
* @param <C> is the device configuration class * @param <C> is the device configuration class
* @param <D> is the device data class * @param <D> is the device data class
*/ */
public abstract class AbstractDevice<V extends AbstractDevice,C extends HalDeviceConfig,D extends HalDeviceData> extends DBBean { public abstract class HalAbstractDevice<V extends HalAbstractDevice, C extends HalDeviceConfig, D extends HalDeviceData> extends DBBean {
private static final Logger logger = LogUtil.getLogger(); private static final Logger logger = LogUtil.getLogger();
// Sensor specific data // Sensor specific data
@ -74,7 +71,7 @@ public abstract class AbstractDevice<V extends AbstractDevice,C extends HalDevic
applyConfig(); applyConfig();
deviceData = getLatestDeviceData(HalContext.getDB()); deviceData = getLatestDeviceData(HalContext.getDB());
} catch (Exception e) { } catch (Exception e) {
logger.log(Level.SEVERE, "Unable instantiate DeviceConfig: "+type, e); logger.log(Level.SEVERE, "Unable instantiate DeviceConfig: " + type, e);
} }
} }
return deviceConfig; return deviceConfig;
@ -126,6 +123,9 @@ public abstract class AbstractDevice<V extends AbstractDevice,C extends HalDevic
} }
} }
/**
* @return the class of the Controller responsible for this device type.
*/
public abstract Class<? extends HalAbstractController> getController(); public abstract Class<? extends HalAbstractController> getController();
// ---------------------------------------------------- // ----------------------------------------------------

View file

@ -2,13 +2,11 @@ package se.hal.page;
import se.hal.HalContext; import se.hal.HalContext;
import se.hal.intf.HalJsonPage; import se.hal.intf.HalJsonPage;
import se.hal.struct.AbstractDevice; import se.hal.intf.HalAbstractDevice;
import se.hal.struct.Event; import se.hal.struct.Event;
import se.hal.struct.Sensor; import se.hal.struct.Sensor;
import zutil.db.DBConnection; import zutil.db.DBConnection;
import zutil.log.LogUtil; import zutil.log.LogUtil;
import zutil.net.http.HttpHeader;
import zutil.net.http.HttpPrintStream;
import zutil.parser.DataNode; import zutil.parser.DataNode;
import java.sql.SQLException; import java.sql.SQLException;
@ -39,7 +37,7 @@ public class MapJsonPage extends HalJsonPage {
getDeviceNode(db, root); getDeviceNode(db, root);
} else if ("save".equals(request.get("action"))) { } else if ("save".equals(request.get("action"))) {
int id = Integer.parseInt(request.get("id")); int id = Integer.parseInt(request.get("id"));
AbstractDevice device = null; HalAbstractDevice device = null;
logger.info("Saving Sensor coordinates."); logger.info("Saving Sensor coordinates.");
@ -76,7 +74,7 @@ public class MapJsonPage extends HalJsonPage {
root.set("events", eventsNode); root.set("events", eventsNode);
} }
private DataNode getDeviceNode(AbstractDevice device) { private DataNode getDeviceNode(HalAbstractDevice device) {
DataNode deviceNode = new DataNode(DataNode.DataType.Map); DataNode deviceNode = new DataNode(DataNode.DataType.Map);
deviceNode.set("id", device.getId()); deviceNode.set("id", device.getId());
deviceNode.set("name", device.getName()); deviceNode.set("name", device.getName());

View file

@ -14,7 +14,7 @@ import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
@DBBean.DBTable(value="event", superBean=true) @DBBean.DBTable(value="event", superBean=true)
public class Event extends AbstractDevice<Event,HalEventConfig,HalEventData> { public class Event extends HalAbstractDevice<Event, HalEventConfig, HalEventData> {
private static final Logger logger = LogUtil.getLogger(); private static final Logger logger = LogUtil.getLogger();

View file

@ -2,6 +2,7 @@ package se.hal.struct;
import se.hal.HalContext; import se.hal.HalContext;
import se.hal.intf.HalAbstractController; import se.hal.intf.HalAbstractController;
import se.hal.intf.HalAbstractDevice;
import se.hal.intf.HalSensorConfig; import se.hal.intf.HalSensorConfig;
import se.hal.intf.HalSensorData; import se.hal.intf.HalSensorData;
import se.hal.util.DeviceDataSqlResult; import se.hal.util.DeviceDataSqlResult;
@ -19,7 +20,7 @@ import java.util.logging.Logger;
@DBBean.DBTable(value="sensor", superBean=true) @DBBean.DBTable(value="sensor", superBean=true)
public class Sensor extends AbstractDevice<Sensor,HalSensorConfig,HalSensorData> { public class Sensor extends HalAbstractDevice<Sensor, HalSensorConfig, HalSensorData> {
private static final Logger logger = LogUtil.getLogger(); private static final Logger logger = LogUtil.getLogger();
private long external_id = -1; private long external_id = -1;

View file

@ -5,7 +5,7 @@ import se.hal.intf.HalDeviceConfig;
import se.hal.intf.HalDeviceData; import se.hal.intf.HalDeviceData;
import se.hal.intf.HalDeviceReportListener; import se.hal.intf.HalDeviceReportListener;
import se.hal.intf.HalTrigger; import se.hal.intf.HalTrigger;
import se.hal.struct.AbstractDevice; import se.hal.intf.HalAbstractDevice;
import zutil.ui.Configurator; import zutil.ui.Configurator;
import zutil.ui.Configurator.PostConfigurationActionListener; import zutil.ui.Configurator.PostConfigurationActionListener;
import zutil.ui.Configurator.PreConfigurationActionListener; import zutil.ui.Configurator.PreConfigurationActionListener;
@ -31,14 +31,14 @@ public abstract class DeviceTrigger implements HalTrigger,
@Override @Override
public void preConfigurationAction(Configurator configurator, Object obj) { public void preConfigurationAction(Configurator configurator, Object obj) {
AbstractDevice device = getDevice(deviceId); HalAbstractDevice device = getDevice(deviceId);
if (device != null) if (device != null)
device.removeReportListener(this); device.removeReportListener(this);
reset(); reset();
} }
@Override @Override
public void postConfigurationAction(Configurator configurator, Object obj) { public void postConfigurationAction(Configurator configurator, Object obj) {
AbstractDevice device = getDevice(deviceId); HalAbstractDevice device = getDevice(deviceId);
if (device != null) if (device != null)
device.addReportListener(this); device.addReportListener(this);
} }
@ -67,5 +67,5 @@ public abstract class DeviceTrigger implements HalTrigger,
protected abstract AbstractDevice getDevice(long id); protected abstract HalAbstractDevice getDevice(long id);
} }

View file

@ -1,17 +1,17 @@
package se.hal.util; package se.hal.util;
import se.hal.struct.AbstractDevice; import se.hal.intf.HalAbstractDevice;
import java.util.Comparator; import java.util.Comparator;
/** /**
* A comparator that compares on the device name. * A comparator that compares on the device name.
*/ */
public class DeviceNameComparator implements Comparator<AbstractDevice> { public class DeviceNameComparator implements Comparator<HalAbstractDevice> {
private static DeviceNameComparator instance; private static DeviceNameComparator instance;
@Override @Override
public int compare(AbstractDevice device1, AbstractDevice device2) { public int compare(HalAbstractDevice device1, HalAbstractDevice device2) {
return device1.getName().compareTo(device2.getName()); return device1.getName().compareTo(device2.getName());
} }

View file

@ -114,12 +114,12 @@ public class EventControllerManagerTest {
public void initialize() { } public void initialize() { }
@Override @Override
public void register(HalEventConfig event) { public void register(HalDeviceConfig event) {
size++; size++;
} }
@Override @Override
public void deregister(HalEventConfig event) { public void deregister(HalDeviceConfig event) {
size--; size--;
} }

View file

@ -1,11 +1,7 @@
package se.hal; package se.hal;
import org.junit.Test; import org.junit.Test;
import se.hal.intf.HalAbstractController; import se.hal.intf.*;
import se.hal.intf.HalDeviceReportListener;
import se.hal.intf.HalSensorConfig;
import se.hal.intf.HalSensorController;
import se.hal.intf.HalSensorData;
import se.hal.struct.Sensor; import se.hal.struct.Sensor;
import se.hal.struct.devicedata.HumiditySensorData; import se.hal.struct.devicedata.HumiditySensorData;
import se.hal.struct.devicedata.TemperatureSensorData; import se.hal.struct.devicedata.TemperatureSensorData;
@ -140,11 +136,11 @@ public class SensorControllerManagerTest {
public void initialize() { } public void initialize() { }
@Override @Override
public void register(HalSensorConfig sensor) { public void register(HalDeviceConfig sensor) {
size++; size++;
} }
@Override @Override
public void deregister(HalSensorConfig sensor) { public void deregister(HalDeviceConfig sensor) {
size--; size--;
} }
@Override @Override

View file

@ -19,7 +19,7 @@ import java.util.concurrent.TimeUnit;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
public class NetScanController implements HalEventController, HalAutoScannableController, InetScanListener, Runnable{ public class NetScanController implements HalEventController, HalAutoScannableController, InetScanListener, Runnable {
public static Logger logger = LogUtil.getLogger(); public static Logger logger = LogUtil.getLogger();
private static final int NETWORK_SYNC_INTERVAL = 3 * 60 * 60 * 1000; // 3 hours private static final int NETWORK_SYNC_INTERVAL = 3 * 60 * 60 * 1000; // 3 hours
private static final int PING_INTERVAL = 10 * 1000; // 10 sec private static final int PING_INTERVAL = 10 * 1000; // 10 sec

View file

@ -61,7 +61,7 @@ import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
public class NutUpsController implements HalSensorController, HalAutoScannableController, Runnable{ public class NutUpsController implements HalSensorController, HalAutoScannableController, Runnable {
public static Logger logger = LogUtil.getLogger(); public static Logger logger = LogUtil.getLogger();
private static final int SYNC_INTERVAL = 60 * 1000; private static final int SYNC_INTERVAL = 60 * 1000;

View file

@ -4,7 +4,6 @@ import se.hal.intf.HalAbstractControllerManager;
import se.hal.plugin.nvr.intf.HalCameraConfig; import se.hal.plugin.nvr.intf.HalCameraConfig;
import se.hal.plugin.nvr.intf.HalCameraController; import se.hal.plugin.nvr.intf.HalCameraController;
import se.hal.plugin.nvr.struct.Camera; import se.hal.plugin.nvr.struct.Camera;
import se.hal.struct.AbstractDevice;
import zutil.log.LogUtil; import zutil.log.LogUtil;
import zutil.plugin.PluginManager; import zutil.plugin.PluginManager;

View file

@ -27,7 +27,7 @@ package se.hal.plugin.nvr.struct;
import se.hal.intf.HalAbstractController; import se.hal.intf.HalAbstractController;
import se.hal.plugin.nvr.intf.HalCameraConfig; import se.hal.plugin.nvr.intf.HalCameraConfig;
import se.hal.plugin.nvr.intf.HalCameraData; import se.hal.plugin.nvr.intf.HalCameraData;
import se.hal.struct.AbstractDevice; import se.hal.intf.HalAbstractDevice;
import zutil.db.DBConnection; import zutil.db.DBConnection;
import zutil.db.bean.DBBean; import zutil.db.bean.DBBean;
@ -35,7 +35,7 @@ import java.sql.SQLException;
import java.util.List; import java.util.List;
public class Camera extends AbstractDevice<Camera, HalCameraConfig, HalCameraData> { public class Camera extends HalAbstractDevice<Camera, HalCameraConfig, HalCameraData> {
public static List<Camera> getCameras(DBConnection db) throws SQLException{ public static List<Camera> getCameras(DBConnection db) throws SQLException{
return DBBean.load(db, Camera.class); return DBBean.load(db, Camera.class);

View file

@ -16,7 +16,7 @@ import com.zsmartsystems.zigbee.serialization.DefaultSerializer;
import com.zsmartsystems.zigbee.transport.*; import com.zsmartsystems.zigbee.transport.*;
import se.hal.HalContext; import se.hal.HalContext;
import se.hal.intf.*; import se.hal.intf.*;
import se.hal.struct.AbstractDevice; import se.hal.intf.HalAbstractDevice;
import zutil.log.LogUtil; import zutil.log.LogUtil;
import java.util.List; import java.util.List;
@ -40,7 +40,7 @@ public class HalZigbeeController implements HalSensorController, HalEventControl
protected ZigBeeNetworkManager networkManager; protected ZigBeeNetworkManager networkManager;
private HalDeviceReportListener deviceListener; private HalDeviceReportListener deviceListener;
private List<AbstractDevice> registeredDevices; private List<HalAbstractDevice> registeredDevices;
public HalZigbeeController() {} public HalZigbeeController() {}

View file

@ -3,7 +3,7 @@ package se.hal.plugin.zwave;
import org.zwave4j.*; import org.zwave4j.*;
import se.hal.HalContext; import se.hal.HalContext;
import se.hal.intf.*; import se.hal.intf.*;
import se.hal.struct.AbstractDevice; import se.hal.intf.HalAbstractDevice;
import zutil.log.LogUtil; import zutil.log.LogUtil;
import java.util.List; import java.util.List;
@ -16,7 +16,7 @@ import java.util.logging.Logger;
* *
* @author Ziver Koc * @author Ziver Koc
*/ */
public class HalZWaveController implements HalSensorController, HalEventController, HalAutoScannableController, NotificationWatcher{ public class HalZWaveController implements HalSensorController, HalEventController, HalAutoScannableController, NotificationWatcher {
private static final Logger logger = LogUtil.getLogger(); private static final Logger logger = LogUtil.getLogger();
public static final String CONFIG_ZWAVE_PORT = "zwave.com_port"; public static final String CONFIG_ZWAVE_PORT = "zwave.com_port";
@ -30,7 +30,7 @@ public class HalZWaveController implements HalSensorController, HalEventControll
private HalDeviceReportListener sensorListener; private HalDeviceReportListener sensorListener;
private HalDeviceReportListener deviceListener; private HalDeviceReportListener deviceListener;
private List<AbstractDevice> registeredDevices; private List<HalAbstractDevice> registeredDevices;
public HalZWaveController() { public HalZWaveController() {

View file

@ -1,17 +1,10 @@
package se.hal.plugin.zwave; package se.hal.plugin.zwave;
import org.zwave4j.*;
import se.hal.HalContext;
import se.hal.intf.*;
import se.hal.struct.AbstractDevice;
import zutil.log.CompactLogFormatter; import zutil.log.CompactLogFormatter;
import zutil.log.LogUtil; import zutil.log.LogUtil;
import java.io.IOException; import java.io.IOException;
import java.util.List;
import java.util.concurrent.atomic.AtomicReference;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger;
/** /**
* @author zagumennikov * @author zagumennikov