}
}
@SuppressWarnings("unchecked")
private IDevice updateDeviceList(IConfig<?> config, IDevice device, List<? extends IDevice> deviceList) {
IDevice newDevice = null;
if (device != null) {
String deviceName = device.getName().toLowerCase();
IDevice tmpDevice = super.getDevice(deviceName, deviceList);
newDevice = tmpDevice;
if (tmpDevice == null) {
LOGGER.trace("add device {} from {}", deviceName, config);
if (device instanceof ISensor) {
ISensor sensor = new SensorModel();
sensor.setName(deviceName);
sensor.setEnabled(false);
((List<ISensor>) deviceList).add(sensor);
newDevice = sensor;
}
if (device instanceof IActuator) {
IActuator actuator = new ActuatorModel();
actuator.setName(deviceName);
actuator.setEnabled(false);
((List<IActuator>) deviceList).add(actuator);
newDevice = actuator;
}
if (device instanceof ITimebase) {
ITimebase timebase = new TimebaseModel();
timebase.setName(deviceName);
timebase.setEnabled(false);
((List<ITimebase>) deviceList).add(timebase);
newDevice = timebase;
}
} else if (device.isEnabled()) {
tmpDevice.setEnabled(true);
}
}
return newDevice;
}