Skip to content
Snippets Groups Projects

Resolve "Create pages documentation"

Merged René Schöne requested to merge 33-create-pages-documentation into dev
15 files
+ 97
66
Compare changes
  • Side-by-side
  • Inline
Files
15
aspect ItemHandling {
aspect ItemHandling {
protected boolean Item.isFrozen = false;
public void Item.freeze() { isFrozen = true; }
public void Item.unfreeze() { isFrozen = false; }
public final boolean Item.isFrozen() { return isFrozen; }
protected boolean Item.sendState = true;
protected boolean Item.sendState = true;
public void Item.disableSendState() { sendState = false; }
public void Item.disableSendState() { sendState = false; }
public void Item.enableSendState() { sendState = true; }
public void Item.enableSendState() { sendState = true; }
@@ -142,6 +137,9 @@ aspect ItemHandling {
@@ -142,6 +137,9 @@ aspect ItemHandling {
//--- setStateFromBoolean ---
//--- setStateFromBoolean ---
public abstract void Item.setStateFromBoolean(boolean value);
public abstract void Item.setStateFromBoolean(boolean value);
public void ColorItem.setStateFromBoolean(boolean value) {
public void ColorItem.setStateFromBoolean(boolean value) {
 
if (getState()!=null && getState().getBrightness()!=0 && value) {
 
return;
 
}
setBrightness(value ? 100 : 0);
setBrightness(value ? 100 : 0);
}
}
public void DateTimeItem.setStateFromBoolean(boolean value) {
public void DateTimeItem.setStateFromBoolean(boolean value) {
@@ -254,31 +252,31 @@ aspect ItemHandling {
@@ -254,31 +252,31 @@ aspect ItemHandling {
//--- setState(value,shouldSendState) ---
//--- setState(value,shouldSendState) ---
public void ItemWithBooleanState.setState(boolean value, boolean shouldSendState) {
public void ItemWithBooleanState.setState(boolean value, boolean shouldSendState) {
if (isFrozen || stateEquals(value)) { return; }
if (stateEquals(value)) { return; }
set_state(value);
set_state(value);
stateUpdated(shouldSendState);
stateUpdated(shouldSendState);
}
}
public void ItemWithStringState.setState(String value, boolean shouldSendState) {
public void ItemWithStringState.setState(String value, boolean shouldSendState) {
if (isFrozen || stateEquals(value)) { return; }
if (stateEquals(value)) { return; }
set_state(value);
set_state(value);
stateUpdated(shouldSendState);
stateUpdated(shouldSendState);
}
}
public void ItemWithDoubleState.setState(double value, boolean shouldSendState) {
public void ItemWithDoubleState.setState(double value, boolean shouldSendState) {
if (isFrozen || stateEquals(value)) { return; }
if (stateEquals(value)) { return; }
set_state(value);
set_state(value);
stateUpdated(shouldSendState);
stateUpdated(shouldSendState);
}
}
public void ColorItem.setState(TupleHSB value, boolean shouldSendState) {
public void ColorItem.setState(TupleHSB value, boolean shouldSendState) {
if (isFrozen || stateEquals(value)) { return; }
if (stateEquals(value)) { return; }
set_state(value);
set_state(value);
stateUpdated(shouldSendState);
stateUpdated(shouldSendState);
}
}
public void DateTimeItem.setState(Instant value, boolean shouldSendState) {
public void DateTimeItem.setState(Instant value, boolean shouldSendState) {
if (isFrozen || stateEquals(value)) { return; }
if (stateEquals(value)) { return; }
set_state(value);
set_state(value);
stateUpdated(shouldSendState);
stateUpdated(shouldSendState);
}
}
@@ -290,7 +288,6 @@ aspect ItemHandling {
@@ -290,7 +288,6 @@ aspect ItemHandling {
* <li>Send the new state via MQTT</li>
* <li>Send the new state via MQTT</li>
* <li>Send the new state to Influx DB</li>
* <li>Send the new state to Influx DB</li>
* <li>Notify the attached {@link ItemObserver}, if any</li>
* <li>Notify the attached {@link ItemObserver}, if any</li>
* <li>Update state of controlled items</li>
* </ul>
* </ul>
* @param shouldSendState whether to send the new state (currently affects MQTT and Influx)
* @param shouldSendState whether to send the new state (currently affects MQTT and Influx)
*/
*/
@@ -306,9 +303,6 @@ aspect ItemHandling {
@@ -306,9 +303,6 @@ aspect ItemHandling {
if (hasItemObserver()) {
if (hasItemObserver()) {
getItemObserver().apply();
getItemObserver().apply();
}
}
for (Item controlled : getControllingList()) {
doUpdateFor(controlled);
}
}
}
//--- sendState ---
//--- sendState ---
@@ -388,22 +382,56 @@ aspect ItemHandling {
@@ -388,22 +382,56 @@ aspect ItemHandling {
syn DateTimeItem Item.asDateTimeItem() = (DateTimeItem) this;
syn DateTimeItem Item.asDateTimeItem() = (DateTimeItem) this;
syn DateTimeItem DateTimeItem.asDateTimeItem() = this;
syn DateTimeItem DateTimeItem.asDateTimeItem() = this;
//--- doUpdateFor ---
protected abstract void Item.doUpdateFor(Item controlling);
//--- State Copy ---
protected void ItemWithBooleanState.doUpdateFor(Item controlling) {
public void Item.addControlling(Item controlledItem) {
controlling.setStateFromBoolean(this.getState());
getRoot().addRule(createControllerRule(this,controlledItem));
}
}
protected void ItemWithStringState.doUpdateFor(Item controlling) {
controlling.setStateFromString(this.getState());
public void Item.addControlledBy(Item controllerItem) {
 
getRoot().addRule(createControllerRule(controllerItem,this));
}
}
protected void ItemWithDoubleState.doUpdateFor(Item controlling) {
controlling.setStateFromDouble(this.getState());
public void Item.synchronizeWith(Item item) {
 
addControlledBy(item);
 
addControlling(item);
}
}
protected void ColorItem.doUpdateFor(Item controlling) {
controlling.setStateFromColor(this.getState());
 
 
private Rule Item.createControllerRule(Item controllerItem, Item controlledItem) {
 
Rule rule = new Rule();
 
 
ItemStateChangeCondition condition = new ItemStateChangeCondition();
 
condition.setItem(controllerItem);
 
rule.addCondition(condition);
 
 
SetStateFromTriggeringItemAction action = new SetStateFromTriggeringItemAction();
 
action.setAffectedItem(controlledItem);
 
rule.addAction(action);
 
rule.activateFor(controllerItem);
 
 
return rule;
 
 
}
 
 
 
//--- copyStateTo ---
 
protected abstract void Item.copyStateTo(Item stateReceiver);
 
protected void ItemWithBooleanState.copyStateTo(Item stateReceiver) {
 
stateReceiver.setStateFromBoolean(this.getState());
 
}
 
protected void ItemWithStringState.copyStateTo(Item stateReceiver) {
 
stateReceiver.setStateFromString(this.getState());
}
}
protected void DateTimeItem.doUpdateFor(Item controlling) {
protected void ItemWithDoubleState.copyStateTo(Item stateReceiver) {
controlling.setStateFromInstant(this.getState());
stateReceiver.setStateFromDouble(this.getState());
 
}
 
protected void ColorItem.copyStateTo(Item stateReceiver) {
 
stateReceiver.setStateFromColor(this.getState());
 
}
 
protected void DateTimeItem.copyStateTo(Item stateReceiver) {
 
stateReceiver.setStateFromInstant(this.getState());
}
}
private void ColorItem.setBrightness(int value) {
private void ColorItem.setBrightness(int value) {
@@ -414,20 +442,10 @@ aspect ItemHandling {
@@ -414,20 +442,10 @@ aspect ItemHandling {
public abstract void ItemUpdate.apply();
public abstract void ItemUpdate.apply();
public void ItemUpdateColor.apply() {
public void ItemUpdateColor.apply() {
getItem().setStateFromColor(getNewHSB());
getItem().setStateFromColor(getNewHSB());
getItem().freeze();
for (Item controller : getItem().getControlledByList()) {
controller.setStateFromColor(getNewHSB());
}
getItem().unfreeze();
}
}
//--- ItemUpdate.apply ---
//--- ItemUpdate.apply ---
public void ItemUpdateDouble.apply() {
public void ItemUpdateDouble.apply() {
getItem().setStateFromDouble(getNewValue());
getItem().setStateFromDouble(getNewValue());
getItem().freeze();
for (Item controller : getItem().getControlledByList()) {
controller.setStateFromDouble(getNewValue());
}
getItem().unfreeze();
}
}
//--- ItemUpdate.describe ---
//--- ItemUpdate.describe ---
Loading