20: Update PriceAlarmDefinition to support expressions

This commit is contained in:
2026-06-27 18:55:32 +02:00
parent 940e1ece94
commit 97ecb7572a
@@ -2,14 +2,13 @@ package com.r35157.jupiterperpsalarm.impl.ref;
import com.r35157.jupiterperpsalarm.AlarmSeverity;
import java.math.BigDecimal;
import java.util.Objects;
public record PriceAlarmDefinition(
int id,
JupiterPerpsAsset asset,
PriceDirection direction,
BigDecimal target,
String targetExpression,
AlarmTrigger trigger,
ΩsecondsΩ triggerGracePeriod,
AlarmSeverity severity,
@@ -18,12 +17,13 @@ public record PriceAlarmDefinition(
public PriceAlarmDefinition {
Objects.requireNonNull(asset, "asset");
Objects.requireNonNull(direction, "direction");
Objects.requireNonNull(target, "target");
Objects.requireNonNull(targetExpression, "targetExpression");
Objects.requireNonNull(trigger, "trigger");
Objects.requireNonNull(severity, "severity");
Objects.requireNonNull(note, "note");
if (target.signum() < 0) {
throw new IllegalArgumentException("Target price cannot be negative (was: " + target.signum() + ")!");
if (targetExpression.isBlank()) {
throw new IllegalArgumentException("Target expression cannot be blank");
}
if (triggerGracePeriod < 0) {