Split switch event data into multiple classes
This commit is contained in:
parent
4499824965
commit
6214c01157
23 changed files with 259 additions and 96 deletions
|
|
@ -4,7 +4,7 @@ import se.hal.ControllerManager;
|
|||
import se.hal.HalContext;
|
||||
import se.hal.intf.HalWebPage;
|
||||
import se.hal.struct.Event;
|
||||
import se.hal.struct.devicedata.SwitchEventData;
|
||||
import se.hal.struct.devicedata.OnOffEventData;
|
||||
import se.hal.util.DeviceNameComparator;
|
||||
import se.hal.util.HistoryDataListSqlResult;
|
||||
import se.hal.util.HistoryDataListSqlResult.HistoryData;
|
||||
|
|
@ -15,7 +15,6 @@ import zutil.log.LogUtil;
|
|||
import zutil.parser.Templator;
|
||||
|
||||
import java.sql.PreparedStatement;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
|
@ -46,7 +45,7 @@ public class EventOverviewWebPage extends HalWebPage {
|
|||
int id = (ObjectUtil.isEmpty(request.get("action_id")) ? -1 : Integer.parseInt(request.get("action_id")));
|
||||
|
||||
// change event data
|
||||
SwitchEventData eventData = new SwitchEventData();
|
||||
OnOffEventData eventData = new OnOffEventData();
|
||||
if (request.containsKey("enabled") && "on".equals(request.get("enabled")))
|
||||
eventData.turnOn();
|
||||
else
|
||||
|
|
|
|||
|
|
@ -0,0 +1,71 @@
|
|||
/*
|
||||
* Copyright (c) 2015 Ziver
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
package se.hal.struct.devicedata;
|
||||
|
||||
import se.hal.intf.HalEventData;
|
||||
|
||||
|
||||
public class AvailabilityEventData extends HalEventData {
|
||||
|
||||
private boolean available;
|
||||
|
||||
|
||||
public AvailabilityEventData() { }
|
||||
public AvailabilityEventData(boolean available, long timestamp) {
|
||||
this.available = available;
|
||||
this.setTimestamp(timestamp);
|
||||
}
|
||||
|
||||
public void setAvailable(){
|
||||
available = true;
|
||||
}
|
||||
public void setUnavailable(){
|
||||
available = false;
|
||||
}
|
||||
public void toggle(){
|
||||
available = !available;
|
||||
}
|
||||
|
||||
public boolean isAvailable(){
|
||||
return available;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString(){
|
||||
return available ? "Available" : "Unavailable";
|
||||
}
|
||||
|
||||
// ----------------------------------------
|
||||
// Storage methods
|
||||
// ----------------------------------------
|
||||
|
||||
@Override
|
||||
public double getData() {
|
||||
return (available ? 1.0 : 0.0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setData(double enabled) {
|
||||
this.available = enabled > 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -24,6 +24,7 @@ package se.hal.struct.devicedata;
|
|||
|
||||
import se.hal.intf.HalEventData;
|
||||
|
||||
|
||||
public class DimmerEventData extends HalEventData {
|
||||
|
||||
private double dimmValue;
|
||||
|
|
@ -36,6 +37,15 @@ public class DimmerEventData extends HalEventData {
|
|||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String toString(){
|
||||
return dimmValue+"%";
|
||||
}
|
||||
|
||||
// ----------------------------------------
|
||||
// Storage methods
|
||||
// ----------------------------------------
|
||||
|
||||
/**
|
||||
* @return the dim level from 0.0 to 1.0
|
||||
*/
|
||||
|
|
@ -43,13 +53,9 @@ public class DimmerEventData extends HalEventData {
|
|||
public double getData() {
|
||||
return dimmValue;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setData(double dimmValue) {
|
||||
this.dimmValue = dimmValue;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString(){
|
||||
return dimmValue+"%";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,6 +15,15 @@ public class HumiditySensorData extends HalSensorData {
|
|||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String toString(){
|
||||
return humidity+"%";
|
||||
}
|
||||
|
||||
// ----------------------------------------
|
||||
// Storage methods
|
||||
// ----------------------------------------
|
||||
|
||||
@Override
|
||||
public double getData() {
|
||||
return humidity;
|
||||
|
|
@ -23,9 +32,4 @@ public class HumiditySensorData extends HalSensorData {
|
|||
public void setData(double humidity) {
|
||||
this.humidity = humidity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString(){
|
||||
return humidity+"%";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,6 +14,15 @@ public class LightSensorData extends HalSensorData {
|
|||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String toString(){
|
||||
return lux+" lux";
|
||||
}
|
||||
|
||||
// ----------------------------------------
|
||||
// Storage methods
|
||||
// ----------------------------------------
|
||||
|
||||
/**
|
||||
* @return the light intensity in lux
|
||||
*/
|
||||
|
|
@ -21,6 +30,7 @@ public class LightSensorData extends HalSensorData {
|
|||
public double getData() {
|
||||
return lux;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param lux set the light intensity in lux
|
||||
*/
|
||||
|
|
@ -28,9 +38,4 @@ public class LightSensorData extends HalSensorData {
|
|||
public void setData(double lux) {
|
||||
this.lux = lux;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString(){
|
||||
return lux+" lux";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,39 +24,49 @@ package se.hal.struct.devicedata;
|
|||
|
||||
import se.hal.intf.HalEventData;
|
||||
|
||||
public class SwitchEventData extends HalEventData {
|
||||
|
||||
private boolean enabled;
|
||||
public class OnOffEventData extends HalEventData {
|
||||
|
||||
private boolean isOn;
|
||||
|
||||
|
||||
public SwitchEventData() { }
|
||||
public SwitchEventData(boolean enabled, long timestamp) {
|
||||
this.enabled = enabled;
|
||||
public OnOffEventData() { }
|
||||
public OnOffEventData(boolean isOn, long timestamp) {
|
||||
this.isOn = isOn;
|
||||
this.setTimestamp(timestamp);
|
||||
}
|
||||
|
||||
|
||||
public void turnOn(){
|
||||
enabled = true;
|
||||
isOn = true;
|
||||
}
|
||||
public void turnOff(){
|
||||
enabled = false;
|
||||
isOn = false;
|
||||
}
|
||||
public void toggle(){
|
||||
isOn = !isOn;
|
||||
}
|
||||
|
||||
public boolean isOn(){
|
||||
return enabled;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getData() {
|
||||
return (enabled ? 1.0 : 0.0);
|
||||
}
|
||||
@Override
|
||||
public void setData(double enabled) {
|
||||
this.enabled = enabled > 0;
|
||||
return isOn;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString(){
|
||||
return enabled ? "ON" : "OFF";
|
||||
return isOn ? "ON" : "OFF";
|
||||
}
|
||||
|
||||
// ----------------------------------------
|
||||
// Storage methods
|
||||
// ----------------------------------------
|
||||
|
||||
@Override
|
||||
public double getData() {
|
||||
return (isOn ? 1.0 : 0.0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setData(double enabled) {
|
||||
this.isOn = enabled > 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
/*
|
||||
* Copyright (c) 2015 Ziver
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
package se.hal.struct.devicedata;
|
||||
|
||||
import se.hal.intf.HalEventData;
|
||||
|
||||
|
||||
public class OpenClosedEventData extends HalEventData {
|
||||
|
||||
private boolean isOpen;
|
||||
|
||||
|
||||
public OpenClosedEventData() { }
|
||||
public OpenClosedEventData(boolean isOpen, long timestamp) {
|
||||
this.isOpen = isOpen;
|
||||
this.setTimestamp(timestamp);
|
||||
}
|
||||
|
||||
public void open(){
|
||||
isOpen = true;
|
||||
}
|
||||
public void close(){
|
||||
isOpen = false;
|
||||
}
|
||||
public void toggle(){
|
||||
isOpen = !isOpen;
|
||||
}
|
||||
|
||||
public boolean isOpen(){
|
||||
return isOpen;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString(){
|
||||
return isOpen ? "Open" : "Closed";
|
||||
}
|
||||
|
||||
// ----------------------------------------
|
||||
// Storage methods
|
||||
// ----------------------------------------
|
||||
|
||||
@Override
|
||||
public double getData() {
|
||||
return (isOpen ? 1.0 : 0.0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setData(double enabled) {
|
||||
this.isOpen = enabled > 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -2,12 +2,12 @@ package se.hal.struct.devicedata;
|
|||
|
||||
import se.hal.intf.HalSensorData;
|
||||
|
||||
|
||||
public class PowerConsumptionSensorData extends HalSensorData {
|
||||
|
||||
private double wattHours;
|
||||
|
||||
|
||||
|
||||
public PowerConsumptionSensorData() { }
|
||||
public PowerConsumptionSensorData(double wattHours, long timestamp) {
|
||||
this.wattHours = wattHours;
|
||||
|
|
@ -15,6 +15,15 @@ public class PowerConsumptionSensorData extends HalSensorData {
|
|||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String toString(){
|
||||
return wattHours+" Wh";
|
||||
}
|
||||
|
||||
// ----------------------------------------
|
||||
// Storage methods
|
||||
// ----------------------------------------
|
||||
|
||||
/**
|
||||
* @return int representing Watt/Hour
|
||||
*/
|
||||
|
|
@ -22,13 +31,9 @@ public class PowerConsumptionSensorData extends HalSensorData {
|
|||
public double getData() {
|
||||
return wattHours;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setData(double wattHours){
|
||||
this.wattHours = wattHours;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString(){
|
||||
return wattHours+" Wh";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package se.hal.struct.devicedata;
|
|||
|
||||
import se.hal.intf.HalSensorData;
|
||||
|
||||
|
||||
public class TemperatureSensorData extends HalSensorData {
|
||||
|
||||
private double temperature;
|
||||
|
|
@ -14,6 +15,15 @@ public class TemperatureSensorData extends HalSensorData {
|
|||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String toString(){
|
||||
return temperature + " C";
|
||||
}
|
||||
|
||||
// ----------------------------------------
|
||||
// Storage methods
|
||||
// ----------------------------------------
|
||||
|
||||
/**
|
||||
* @return temperature in degrees C
|
||||
*/
|
||||
|
|
@ -21,6 +31,7 @@ public class TemperatureSensorData extends HalSensorData {
|
|||
public double getData() {
|
||||
return temperature;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param temperature the temperature to set in degrees C
|
||||
*/
|
||||
|
|
@ -28,10 +39,4 @@ public class TemperatureSensorData extends HalSensorData {
|
|||
public void setData(double temperature) {
|
||||
this.temperature = temperature;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String toString(){
|
||||
return temperature + " C";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ package se.hal;
|
|||
import org.junit.Test;
|
||||
import se.hal.intf.*;
|
||||
import se.hal.struct.Event;
|
||||
import se.hal.struct.devicedata.SwitchEventData;
|
||||
import se.hal.struct.devicedata.OnOffEventData;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
|
|
@ -15,7 +15,7 @@ public class EventControllerManagerTest {
|
|||
|
||||
private ControllerManager manager = new ControllerManager();
|
||||
|
||||
|
||||
|
||||
@Test
|
||||
public void addAvailableEvent(){
|
||||
assertEquals(0, manager.getAvailableEvents().size());
|
||||
|
|
@ -90,7 +90,7 @@ public class EventControllerManagerTest {
|
|||
|
||||
@Override
|
||||
public Class<? extends HalEventData> getEventDataClass() {
|
||||
return SwitchEventData.class;
|
||||
return OnOffEventData.class;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -103,7 +103,7 @@ public class EventControllerManagerTest {
|
|||
|
||||
@Override
|
||||
public Class<? extends HalEventData> getEventDataClass() {
|
||||
return SwitchEventData.class;
|
||||
return OnOffEventData.class;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -135,7 +135,7 @@ public class EventControllerManagerTest {
|
|||
|
||||
@Override
|
||||
public void setListener(HalEventReportListener listener) { }
|
||||
|
||||
|
||||
@Override
|
||||
public void close() { }
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue