fix notNull checking for schedule in ProfileState, rename variables and fix logic for parsing dynamicValues in AlarmRuleState
This commit is contained in:
parent
3351ced60a
commit
2b203bfdd5
@ -140,26 +140,30 @@ class AlarmRuleState {
|
||||
case ANY_TIME:
|
||||
return true;
|
||||
case SPECIFIC_TIME: {
|
||||
SpecificTimeSchedule originalSchedule = (SpecificTimeSchedule) alarmRule.getSchedule();
|
||||
EntityKeyValue dynamicValue = getDynamicValue(data, originalSchedule.getDynamicValue());
|
||||
SpecificTimeSchedule defaultSchedule = (SpecificTimeSchedule) alarmRule.getSchedule();
|
||||
EntityKeyValue dynamicValue = getDynamicValue(data, defaultSchedule.getDynamicValue());
|
||||
|
||||
if (dynamicValue != null) {
|
||||
SpecificTimeSchedule schedule = JsonConverter.parse(dynamicValue.getJsonValue(), SpecificTimeSchedule.class);
|
||||
originalSchedule = schedule == null ? originalSchedule : schedule;
|
||||
SpecificTimeSchedule schedule;
|
||||
try {
|
||||
schedule = JsonConverter.parse(dynamicValue.getJsonValue(), SpecificTimeSchedule.class);
|
||||
} catch (Exception e) {
|
||||
schedule = defaultSchedule;
|
||||
}
|
||||
|
||||
return isActiveSpecific(originalSchedule, eventTs);
|
||||
return isActiveSpecific(schedule, eventTs);
|
||||
}
|
||||
case CUSTOM: {
|
||||
CustomTimeSchedule originalSchedule = (CustomTimeSchedule) alarmRule.getSchedule();
|
||||
EntityKeyValue dynamicValue = getDynamicValue(data, originalSchedule.getDynamicValue());
|
||||
CustomTimeSchedule defaultSchedule = (CustomTimeSchedule) alarmRule.getSchedule();
|
||||
EntityKeyValue dynamicValue = getDynamicValue(data, defaultSchedule.getDynamicValue());
|
||||
|
||||
if (dynamicValue != null) {
|
||||
CustomTimeSchedule schedule = JsonConverter.parse(dynamicValue.getJsonValue(), CustomTimeSchedule.class);
|
||||
originalSchedule = schedule == null ? originalSchedule : schedule;
|
||||
CustomTimeSchedule schedule;
|
||||
try {
|
||||
schedule = JsonConverter.parse(dynamicValue.getJsonValue(), CustomTimeSchedule.class);
|
||||
} catch (Exception e) {
|
||||
schedule = defaultSchedule;
|
||||
}
|
||||
|
||||
return isActiveCustom(originalSchedule, eventTs);
|
||||
return isActiveCustom(schedule, eventTs);
|
||||
}
|
||||
default:
|
||||
throw new RuntimeException("Unsupported schedule type: " + alarmRule.getSchedule().getType());
|
||||
|
||||
@ -80,7 +80,10 @@ class ProfileState {
|
||||
addDynamicValuesRecursively(keyFilter.getPredicate(), entityKeys, ruleKeys);
|
||||
}
|
||||
addEntityKeysFromAlarmConditionSpec(alarmRule);
|
||||
addScheduleDynamicValues(alarmRule.getSchedule());
|
||||
AlarmSchedule schedule = alarmRule.getSchedule();
|
||||
if (schedule != null) {
|
||||
addScheduleDynamicValues(schedule);
|
||||
}
|
||||
}));
|
||||
if (alarm.getClearRule() != null) {
|
||||
var clearAlarmKeys = alarmClearKeys.computeIfAbsent(alarm.getId(), id -> new HashSet<>());
|
||||
@ -99,12 +102,13 @@ class ProfileState {
|
||||
DynamicValue<String> dynamicValue = null;
|
||||
switch (schedule.getType()) {
|
||||
case SPECIFIC_TIME:
|
||||
SpecificTimeSchedule specSchedule = (SpecificTimeSchedule) schedule;
|
||||
dynamicValue = specSchedule.getDynamicValue();
|
||||
SpecificTimeSchedule specificTimeSchedule = (SpecificTimeSchedule) schedule;
|
||||
dynamicValue = specificTimeSchedule.getDynamicValue();
|
||||
break;
|
||||
case CUSTOM:
|
||||
CustomTimeSchedule custSchedule = (CustomTimeSchedule) schedule;
|
||||
dynamicValue = custSchedule.getDynamicValue();
|
||||
CustomTimeSchedule customTimeSchedule = (CustomTimeSchedule) schedule;
|
||||
dynamicValue = customTimeSchedule.getDynamicValue();
|
||||
break;
|
||||
}
|
||||
|
||||
if (dynamicValue != null) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user