mirror of
https://github.com/danieldemus/openhab-core.git
synced 2026-07-29 12:34:22 +02:00
Added variable 'triggeringChannel' to DSL rules (#2567)
Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
This commit is contained in:
+2
@@ -147,6 +147,8 @@ class RulesJvmModelInferrer extends ScriptJvmModelInferrer {
|
||||
if (containsEventTrigger(rule)) {
|
||||
val eventTypeRef = ruleModel.newTypeRef(String)
|
||||
parameters += rule.toParameter(VAR_RECEIVED_EVENT, eventTypeRef)
|
||||
val channelRef = ruleModel.newTypeRef(String)
|
||||
parameters += rule.toParameter(VAR_TRIGGERING_CHANNEL, channelRef)
|
||||
}
|
||||
if (containsThingStateChangedEventTrigger(rule) && !containsParam(parameters, VAR_PREVIOUS_STATE)) {
|
||||
val stateTypeRef = ruleModel.newTypeRef(State)
|
||||
|
||||
+2
@@ -165,6 +165,8 @@ public class DSLScriptEngine implements javax.script.ScriptEngine {
|
||||
if (value instanceof ChannelTriggeredEvent) {
|
||||
ChannelTriggeredEvent event = (ChannelTriggeredEvent) value;
|
||||
evalContext.newValue(QualifiedName.create(ScriptJvmModelInferrer.VAR_RECEIVED_EVENT), event.getEvent());
|
||||
evalContext.newValue(QualifiedName.create(ScriptJvmModelInferrer.VAR_TRIGGERING_CHANNEL),
|
||||
event.getChannel().getAsString());
|
||||
}
|
||||
if (value instanceof ItemEvent) {
|
||||
ItemEvent event = (ItemEvent) value;
|
||||
|
||||
+5
@@ -58,6 +58,9 @@ class ScriptJvmModelInferrer extends AbstractModelInferrer {
|
||||
/** Variable name for the received event in a "trigger event" rule */
|
||||
public static final String VAR_RECEIVED_EVENT = "receivedEvent";
|
||||
|
||||
/** Variable name for the triggering channel in a "trigger event" rule */
|
||||
public static final String VAR_TRIGGERING_CHANNEL = "triggeringChannel";
|
||||
|
||||
/**
|
||||
* conveninence API to build and initialize JvmTypes and their members.
|
||||
*/
|
||||
@@ -119,6 +122,8 @@ class ScriptJvmModelInferrer extends AbstractModelInferrer {
|
||||
parameters += script.toParameter(VAR_PREVIOUS_STATE, stateTypeRef)
|
||||
val eventTypeRef = script.newTypeRef(String)
|
||||
parameters += script.toParameter(VAR_RECEIVED_EVENT, eventTypeRef)
|
||||
val channelRef = script.newTypeRef(String)
|
||||
parameters += script.toParameter(VAR_TRIGGERING_CHANNEL, channelRef)
|
||||
val stateTypeRef2 = script.newTypeRef(State)
|
||||
parameters += script.toParameter(VAR_NEW_STATE, stateTypeRef2)
|
||||
body = script
|
||||
|
||||
Reference in New Issue
Block a user