diff --git a/eraser-base/src/main/jastadd/Item.jrag b/eraser-base/src/main/jastadd/Item.jrag index 43e27802cbca591fa1baa6c1819cb817300e5547..4b8e1abe928b2736978607ab744244c9597b1862 100644 --- a/eraser-base/src/main/jastadd/Item.jrag +++ b/eraser-base/src/main/jastadd/Item.jrag @@ -235,35 +235,45 @@ aspect ItemHandling { public void ItemWithBooleanState.setState(boolean value, boolean shouldSendState) { if (isFrozen) { return; } set_state(value); - sendState0(shouldSendState); + stateUpdated(shouldSendState); } public void ItemWithStringState.setState(String value, boolean shouldSendState) { if (isFrozen) { return; } set_state(value); - sendState0(shouldSendState); + stateUpdated(shouldSendState); } public void ItemWithDoubleState.setState(double value, boolean shouldSendState) { if (isFrozen) { return; } set_state(value); - sendState0(shouldSendState); + stateUpdated(shouldSendState); } public void ColorItem.setState(TupleHSB value, boolean shouldSendState) { if (isFrozen) { return; } set_state(value); - sendState0(shouldSendState); + stateUpdated(shouldSendState); } public void DateTimeItem.setState(Date value, boolean shouldSendState) { if (isFrozen) { return; } set_state(value); - sendState0(shouldSendState); - } - - //--- sendState0 --- - protected void Item.sendState0(boolean shouldSendState) { + stateUpdated(shouldSendState); + } + + //--- stateUpdated --- + /** + * Called, whenever the state of an item is updated. Does various things including: + * <ul> + * <li>Send the new state via MQTT</li> + * <li>Send the new state to Influx DB</li> + * <li>Notify the attached {@link ItemObserver}, if any</li> + * <li>Update state of controlled items</li> + * </ul> + * @param shouldSendState whether to send the new state (currently affects MQTT and Influx) + */ + protected void Item.stateUpdated(boolean shouldSendState) { if (shouldSendState) { try { // sendState() defined in MQTT aspect