Package org.openremote.manager.rules
Class JsonRulesBuilder
java.lang.Object
org.openremote.manager.rules.RulesBuilder
org.openremote.manager.rules.JsonRulesBuilder
-
Nested Class Summary
Nested classes/interfaces inherited from class org.openremote.manager.rules.RulesBuilder
RulesBuilder.Action, RulesBuilder.Builder, RulesBuilder.Condition -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final org.openremote.model.rules.Alarmsprotected final org.openremote.model.rules.Assetsprotected final AssetStorageServiceprotected final org.openremote.model.rules.HistoricDatapointsprotected final org.openremote.model.rules.json.JsonRule[]protected final org.openremote.model.rules.Rulesetprotected static Loggerprotected final org.openremote.model.rules.Notificationsstatic final Stringstatic final Stringstatic final Stringstatic final Stringprotected final org.openremote.model.rules.PredictedDatapointsprotected final RulesEngine<?> protected final BiConsumer<Runnable, Long> protected final org.openremote.container.timer.TimerServiceprotected final org.openremote.model.rules.Usersprotected final org.openremote.model.rules.WebhooksFields inherited from class org.openremote.manager.rules.RulesBuilder
builders -
Constructor Summary
ConstructorsConstructorDescriptionJsonRulesBuilder(Logger logger, org.openremote.model.rules.Ruleset ruleset, RulesEngine<?> rulesEngine, org.openremote.container.timer.TimerService timerService, AssetStorageService assetStorageService, org.openremote.model.rules.Assets assetsFacade, org.openremote.model.rules.Users usersFacade, org.openremote.model.rules.Notifications notificationsFacade, org.openremote.model.rules.Webhooks webhooksFacade, org.openremote.model.rules.Alarms alarmsFacade, org.openremote.model.rules.HistoricDatapoints historicDatapoints, org.openremote.model.rules.PredictedDatapoints predictedDatapoints, BiConsumer<Runnable, Long> scheduledActionConsumer) -
Method Summary
Modifier and TypeMethodDescriptionprotected JsonRulesBuilderadd(org.openremote.model.rules.json.JsonRule rule) protected voidaddRuleConditionStates(org.openremote.model.query.LogicGroup<org.openremote.model.rules.json.RuleCondition> ruleConditionGroup, boolean trackUnmatched, AtomicInteger index, Map<String, org.openremote.manager.rules.JsonRulesBuilder.RuleConditionState> triggerStateMap) protected static Function<Collection<org.openremote.model.attribute.AttributeInfo>, Set<org.openremote.model.attribute.AttributeInfo>> asAttributeMatcher(Supplier<Long> currentMillisProducer, List<org.openremote.model.query.filter.AttributePredicate> attributePredicates, Map<Integer, String> predicateDurationStrings, Map<org.openremote.model.util.Pair<org.openremote.model.attribute.AttributeInfo, Integer>, Long> durationMatchTimes) Creates a function that matches attributes similar toAssetQueryPredicate.asAttributeMatcher(java.util.function.Supplier<java.lang.Long>, org.openremote.model.query.LogicGroup<org.openremote.model.query.filter.AttributePredicate>), but with duration logic applied perAttributePredicateand only supports a single list of predicates.protected RulesBuilder.ConditionbuildLhsCondition(org.openremote.model.rules.json.JsonRule rule, org.openremote.manager.rules.JsonRulesBuilder.RuleState ruleState) protected RulesBuilder.ActionbuildRhsAction(org.openremote.model.rules.json.JsonRule rule, org.openremote.manager.rules.JsonRulesBuilder.RuleState ruleState) protected org.openremote.manager.rules.JsonRulesBuilder.RuleActionExecutionbuildRuleActionExecution(org.openremote.model.rules.json.JsonRule rule, org.openremote.model.rules.json.RuleAction ruleAction, String actionsName, int index, boolean useUnmatched, RulesFacts facts, org.openremote.manager.rules.JsonRulesBuilder.RuleState ruleState, org.openremote.model.rules.Assets assetsFacade, org.openremote.model.rules.Users usersFacade, org.openremote.model.rules.Notifications notificationsFacade, org.openremote.model.rules.Webhooks webhooksFacade, org.openremote.model.rules.Alarms alarmsFacade, org.openremote.model.rules.PredictedDatapoints predictedDatapointsFacade) voidexecuteRuleActions(org.openremote.model.rules.json.JsonRule rule, org.openremote.model.rules.json.RuleAction[] ruleActions, String actionsName, boolean useUnmatched, RulesFacts facts, org.openremote.manager.rules.JsonRulesBuilder.RuleState ruleState, org.openremote.model.rules.Assets assetsFacade, org.openremote.model.rules.Users usersFacade, org.openremote.model.rules.Notifications notificationsFacade, org.openremote.model.rules.Webhooks webhooksFacade, org.openremote.model.rules.Alarms alarmsFacade, org.openremote.model.rules.PredictedDatapoints predictedDatapointsFacade, BiConsumer<Runnable, Long> scheduledActionConsumer) protected StringgetAlarmContent(String sourceText, Map<String, Set<org.openremote.model.attribute.AttributeInfo>> assetStates) protected static Collection<String> getAssetIds(org.openremote.model.rules.Assets assets, org.openremote.model.query.AssetQuery assetQuery) getMatchedAssetStates(org.openremote.manager.rules.JsonRulesBuilder.RuleState ruleState, boolean useUnmatched, Collection<org.openremote.model.asset.UserAssetLink> userAssetLinks, String userId) protected StringgetRealm()protected static Collection<String> getRuleActionTargetIds(org.openremote.model.rules.json.RuleActionTarget target, boolean useUnmatched, org.openremote.manager.rules.JsonRulesBuilder.RuleState ruleState, org.openremote.model.rules.Assets assetsFacade, org.openremote.model.rules.Users usersFacade, RulesFacts facts) protected static org.shredzone.commons.suncalc.SunTimes.ParametersgetSunCalculator(org.openremote.model.rules.Ruleset ruleset, org.openremote.model.rules.SunPositionTrigger sunPositionTrigger, org.openremote.container.timer.TimerService timerService) protected static Collection<String> getUserIds(org.openremote.model.rules.Users users, org.openremote.model.query.UserQuery userQuery) protected org.openremote.model.notification.AbstractNotificationMessageinsertBodyInMessage(org.openremote.model.notification.AbstractNotificationMessage sourceMessage, boolean isHtml, String body) protected StringinsertTriggeredAssetInfo(String sourceText, Map<String, Set<org.openremote.model.attribute.AttributeInfo>> assetStates, boolean isHtml, boolean isJson) protected voidprotected voidvoidonAssetStatesChanged(RulesFacts facts, RulesEngine.AssetStateChangeEvent event) protected StringreplaceAssetIdPlaceholder(String text, org.openremote.manager.rules.JsonRulesBuilder.RuleState ruleState, boolean useUnmatched, String context, boolean firstOnly) voidstart(RulesFacts facts) voidstop(RulesFacts facts) protected static booleantargetIsNotAssets(org.openremote.model.rules.json.RuleActionTarget target) Methods inherited from class org.openremote.manager.rules.RulesBuilder
add, build
-
Field Details
-
PLACEHOLDER_RULESET_ID
- See Also:
-
PLACEHOLDER_RULESET_NAME
- See Also:
-
PLACEHOLDER_TRIGGER_ASSETS
- See Also:
-
PLACEHOLDER_ASSET_ID
- See Also:
-
assetStorageService
-
rulesEngine
-
timerService
protected final org.openremote.container.timer.TimerService timerService -
assetsFacade
protected final org.openremote.model.rules.Assets assetsFacade -
usersFacade
protected final org.openremote.model.rules.Users usersFacade -
notificationsFacade
protected final org.openremote.model.rules.Notifications notificationsFacade -
webhooksFacade
protected final org.openremote.model.rules.Webhooks webhooksFacade -
alarmsFacade
protected final org.openremote.model.rules.Alarms alarmsFacade -
historicDatapointsFacade
protected final org.openremote.model.rules.HistoricDatapoints historicDatapointsFacade -
predictedDatapointsFacade
protected final org.openremote.model.rules.PredictedDatapoints predictedDatapointsFacade -
scheduledActionConsumer
-
ruleStateMap
-
jsonRules
protected final org.openremote.model.rules.json.JsonRule[] jsonRules -
jsonRuleset
protected final org.openremote.model.rules.Ruleset jsonRuleset -
LOG
-
-
Constructor Details
-
JsonRulesBuilder
public JsonRulesBuilder(Logger logger, org.openremote.model.rules.Ruleset ruleset, RulesEngine<?> rulesEngine, org.openremote.container.timer.TimerService timerService, AssetStorageService assetStorageService, org.openremote.model.rules.Assets assetsFacade, org.openremote.model.rules.Users usersFacade, org.openremote.model.rules.Notifications notificationsFacade, org.openremote.model.rules.Webhooks webhooksFacade, org.openremote.model.rules.Alarms alarmsFacade, org.openremote.model.rules.HistoricDatapoints historicDatapoints, org.openremote.model.rules.PredictedDatapoints predictedDatapoints, BiConsumer<Runnable, Long> scheduledActionConsumer) throws Exception- Throws:
Exception
-
-
Method Details
-
stop
-
start
-
onAssetStatesChanged
-
add
- Throws:
Exception
-
addRuleConditionStates
protected void addRuleConditionStates(org.openremote.model.query.LogicGroup<org.openremote.model.rules.json.RuleCondition> ruleConditionGroup, boolean trackUnmatched, AtomicInteger index, Map<String, org.openremote.manager.rules.JsonRulesBuilder.RuleConditionState> triggerStateMap) throws Exception- Throws:
Exception
-
buildLhsCondition
protected RulesBuilder.Condition buildLhsCondition(org.openremote.model.rules.json.JsonRule rule, org.openremote.manager.rules.JsonRulesBuilder.RuleState ruleState) -
buildRhsAction
protected RulesBuilder.Action buildRhsAction(org.openremote.model.rules.json.JsonRule rule, org.openremote.manager.rules.JsonRulesBuilder.RuleState ruleState) -
executeRuleActions
public void executeRuleActions(org.openremote.model.rules.json.JsonRule rule, org.openremote.model.rules.json.RuleAction[] ruleActions, String actionsName, boolean useUnmatched, RulesFacts facts, org.openremote.manager.rules.JsonRulesBuilder.RuleState ruleState, org.openremote.model.rules.Assets assetsFacade, org.openremote.model.rules.Users usersFacade, org.openremote.model.rules.Notifications notificationsFacade, org.openremote.model.rules.Webhooks webhooksFacade, org.openremote.model.rules.Alarms alarmsFacade, org.openremote.model.rules.PredictedDatapoints predictedDatapointsFacade, BiConsumer<Runnable, Long> scheduledActionConsumer) -
getUserIds
protected static Collection<String> getUserIds(org.openremote.model.rules.Users users, org.openremote.model.query.UserQuery userQuery) -
getAssetIds
protected static Collection<String> getAssetIds(org.openremote.model.rules.Assets assets, org.openremote.model.query.AssetQuery assetQuery) -
buildRuleActionExecution
protected org.openremote.manager.rules.JsonRulesBuilder.RuleActionExecution buildRuleActionExecution(org.openremote.model.rules.json.JsonRule rule, org.openremote.model.rules.json.RuleAction ruleAction, String actionsName, int index, boolean useUnmatched, RulesFacts facts, org.openremote.manager.rules.JsonRulesBuilder.RuleState ruleState, org.openremote.model.rules.Assets assetsFacade, org.openremote.model.rules.Users usersFacade, org.openremote.model.rules.Notifications notificationsFacade, org.openremote.model.rules.Webhooks webhooksFacade, org.openremote.model.rules.Alarms alarmsFacade, org.openremote.model.rules.PredictedDatapoints predictedDatapointsFacade) -
getMatchedAssetStates
protected Map<String,Set<org.openremote.model.attribute.AttributeInfo>> getMatchedAssetStates(org.openremote.manager.rules.JsonRulesBuilder.RuleState ruleState, boolean useUnmatched, Collection<org.openremote.model.asset.UserAssetLink> userAssetLinks, String userId) -
getRealm
-
getAlarmContent
-
replaceAssetIdPlaceholder
-
insertTriggeredAssetInfo
-
insertBodyInMessage
protected org.openremote.model.notification.AbstractNotificationMessage insertBodyInMessage(org.openremote.model.notification.AbstractNotificationMessage sourceMessage, boolean isHtml, String body) -
getRuleActionTargetIds
protected static Collection<String> getRuleActionTargetIds(org.openremote.model.rules.json.RuleActionTarget target, boolean useUnmatched, org.openremote.manager.rules.JsonRulesBuilder.RuleState ruleState, org.openremote.model.rules.Assets assetsFacade, org.openremote.model.rules.Users usersFacade, RulesFacts facts) -
targetIsNotAssets
protected static boolean targetIsNotAssets(org.openremote.model.rules.json.RuleActionTarget target) -
log
-
log
-
getSunCalculator
protected static org.shredzone.commons.suncalc.SunTimes.Parameters getSunCalculator(org.openremote.model.rules.Ruleset ruleset, org.openremote.model.rules.SunPositionTrigger sunPositionTrigger, org.openremote.container.timer.TimerService timerService) throws IllegalStateException - Throws:
IllegalStateException
-
asAttributeMatcher
protected static Function<Collection<org.openremote.model.attribute.AttributeInfo>,Set<org.openremote.model.attribute.AttributeInfo>> asAttributeMatcher(Supplier<Long> currentMillisProducer, List<org.openremote.model.query.filter.AttributePredicate> attributePredicates, Map<Integer, String> predicateDurationStrings, Map<org.openremote.model.util.Pair<org.openremote.model.attribute.AttributeInfo, Integer>, Long> durationMatchTimes) Creates a function that matches attributes similar toAssetQueryPredicate.asAttributeMatcher(java.util.function.Supplier<java.lang.Long>, org.openremote.model.query.LogicGroup<org.openremote.model.query.filter.AttributePredicate>), but with duration logic applied perAttributePredicateand only supports a single list of predicates.
-