From 8efc513524c7d64e97df0cc8efce1f72f542f1fe Mon Sep 17 00:00:00 2001
From: rschoene <rene.schoene@tu-dresden.de>
Date: Fri, 3 May 2019 10:08:01 +0200
Subject: [PATCH] Rename Item.sendState0 to Item.stateUpdated.

- Also added some documentation
- Resolves issue #15
---
 eraser-base/src/main/jastadd/Item.jrag | 28 +++++++++++++++++---------
 1 file changed, 19 insertions(+), 9 deletions(-)

diff --git a/eraser-base/src/main/jastadd/Item.jrag b/eraser-base/src/main/jastadd/Item.jrag
index 43e27802..4b8e1abe 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
-- 
GitLab