Refactored getController method

This commit is contained in:
Ziver Koc 2021-08-30 01:32:26 +02:00
parent 41357ed8dd
commit b1db199beb
6 changed files with 17 additions and 27 deletions

View file

@ -10,7 +10,6 @@ import zutil.plugin.PluginManager;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.logging.Level; import java.util.logging.Level;
@ -58,6 +57,7 @@ public class EventControllerManager extends HalAbstractControllerManager<HalEven
* Register a Event instance on the manager. * Register a Event instance on the manager.
* The manager will start to save reported data for the registered Event. * The manager will start to save reported data for the registered Event.
*/ */
@SuppressWarnings("unchecked")
@Override @Override
public void register(Event event) { public void register(Event event) {
if (event.getDeviceConfig() == null) { if (event.getDeviceConfig() == null) {
@ -70,8 +70,8 @@ public class EventControllerManager extends HalAbstractControllerManager<HalEven
} }
logger.info("Registering new event(id: " + event.getId() + "): " + event.getDeviceConfig().getClass()); logger.info("Registering new event(id: " + event.getId() + "): " + event.getDeviceConfig().getClass());
Class<? extends HalEventController> c = event.getController(); Class<? extends HalEventController> controllerClass = (Class<? extends HalEventController>) event.getControllerClass();
HalEventController controller = getControllerInstance(c); HalEventController controller = getControllerInstance(controllerClass);
if (controller != null) if (controller != null)
controller.register(event.getDeviceConfig()); controller.register(event.getDeviceConfig());
@ -85,6 +85,7 @@ public class EventControllerManager extends HalAbstractControllerManager<HalEven
* Data reported on the Event will no longer be saved but already saved data will not be modified. * Data reported on the Event will no longer be saved but already saved data will not be modified.
* The Controller that owns the Event will be deallocated if it has no more registered devices. * The Controller that owns the Event will be deallocated if it has no more registered devices.
*/ */
@SuppressWarnings("unchecked")
@Override @Override
public void deregister(Event event){ public void deregister(Event event){
if (event.getDeviceConfig() == null) { if (event.getDeviceConfig() == null) {
@ -92,15 +93,15 @@ public class EventControllerManager extends HalAbstractControllerManager<HalEven
return; return;
} }
Class<? extends HalEventController> c = event.getController(); Class<? extends HalEventController> controllerClass = (Class<? extends HalEventController>) event.getControllerClass();
HalEventController controller = (HalEventController) controllerMap.get(c); HalEventController controller = (HalEventController) controllerMap.get(controllerClass);
if (controller != null) { if (controller != null) {
logger.info("Deregistering event(id: " + event.getId() + "): " + event.getDeviceConfig().getClass()); logger.info("Deregistering event(id: " + event.getId() + "): " + event.getDeviceConfig().getClass());
controller.deregister(event.getDeviceConfig()); controller.deregister(event.getDeviceConfig());
registeredEvents.remove(event); registeredEvents.remove(event);
removeControllerIfEmpty(controller); removeControllerIfEmpty(controller);
} else { } else {
logger.warning("Controller not instantiated: "+ event.getController()); logger.warning("Controller not instantiated: "+ event.getControllerClass());
} }
} }
@ -173,8 +174,11 @@ public class EventControllerManager extends HalAbstractControllerManager<HalEven
} }
} }
@SuppressWarnings("unchecked")
public void send(Event event){ public void send(Event event){
HalEventController controller = getControllerInstance(event.getController()); Class<? extends HalEventController> controllerClass = (Class<? extends HalEventController>) event.getControllerClass();
HalEventController controller = getControllerInstance(controllerClass);
if (controller != null) { if (controller != null) {
event.getDeviceData().setTimestamp(System.currentTimeMillis()); // Set timestamp to now event.getDeviceData().setTimestamp(System.currentTimeMillis()); // Set timestamp to now
controller.send(event.getDeviceConfig(), event.getDeviceData()); controller.send(event.getDeviceConfig(), event.getDeviceData());

View file

@ -70,7 +70,7 @@ public class SensorControllerManager extends HalAbstractControllerManager<HalAbs
} }
logger.info("Registering new sensor(id: " + sensor.getId() + "): " + sensor.getDeviceConfig().getClass()); logger.info("Registering new sensor(id: " + sensor.getId() + "): " + sensor.getDeviceConfig().getClass());
Class<? extends HalAbstractController> c = sensor.getController(); Class<? extends HalAbstractController> c = sensor.getControllerClass();
HalAbstractController controller = getControllerInstance(c); HalAbstractController controller = getControllerInstance(c);
if (controller != null) if (controller != null)
@ -92,7 +92,7 @@ public class SensorControllerManager extends HalAbstractControllerManager<HalAbs
return; return;
} }
Class<? extends HalAbstractController> c = sensor.getController(); Class<? extends HalAbstractController> c = sensor.getControllerClass();
HalAbstractController controller = controllerMap.get(c); HalAbstractController controller = controllerMap.get(c);
if (controller != null) { if (controller != null) {
logger.info("Deregistering sensor(id: " + sensor.getId() + "): " + sensor.getDeviceConfig().getClass()); logger.info("Deregistering sensor(id: " + sensor.getId() + "): " + sensor.getDeviceConfig().getClass());
@ -100,7 +100,7 @@ public class SensorControllerManager extends HalAbstractControllerManager<HalAbs
registeredSensors.remove(sensor); registeredSensors.remove(sensor);
removeControllerIfEmpty(controller); removeControllerIfEmpty(controller);
} else { } else {
logger.warning("Controller not instantiated: " + sensor.getController()); logger.warning("Controller not instantiated: " + sensor.getControllerClass());
} }
} }

View file

@ -128,7 +128,9 @@ public abstract class HalAbstractDevice<V extends HalAbstractDevice, C extends H
/** /**
* @return the class of the Controller responsible for this device type. * @return the class of the Controller responsible for this device type.
*/ */
public abstract Class<? extends HalAbstractController> getController(); public Class<? extends HalAbstractController> getControllerClass() {
return getDeviceConfig().getDeviceControllerClass();
}
// ---------------------------------------------------- // ----------------------------------------------------
// Device data methods // Device data methods

View file

@ -32,12 +32,6 @@ public class Event extends HalAbstractDevice<Event, HalEventConfig, HalEventData
} }
@Override
public Class<? extends HalEventController> getController(){
return (Class<? extends HalEventController>) getDeviceConfig().getDeviceControllerClass();
}
@Override @Override
protected HalEventData getLatestDeviceData(DBConnection db) { protected HalEventData getLatestDeviceData(DBConnection db) {
try { try {

View file

@ -110,11 +110,6 @@ public class Sensor extends HalAbstractDevice<Sensor, HalSensorConfig, HalSensor
} }
@Override
public Class<? extends HalAbstractController> getController(){
return (Class<? extends HalAbstractController>) getDeviceConfig().getDeviceControllerClass();
}
@Override @Override
protected HalSensorData getLatestDeviceData(DBConnection db) { protected HalSensorData getLatestDeviceData(DBConnection db) {
try { try {

View file

@ -46,11 +46,6 @@ public class Camera extends HalAbstractDevice<Camera, HalCameraConfig, HalCamera
} }
@Override
public Class<? extends HalAbstractController> getController() {
return getDeviceConfig().getDeviceControllerClass();
}
@Override @Override
protected HalCameraData getLatestDeviceData(DBConnection db) { protected HalCameraData getLatestDeviceData(DBConnection db) {
return null; return null;