20: Update PriceAlarmDefinition to support expressions
This commit is contained in:
@@ -2,14 +2,13 @@ package com.r35157.jupiterperpsalarm.impl.ref;
|
|||||||
|
|
||||||
import com.r35157.jupiterperpsalarm.AlarmSeverity;
|
import com.r35157.jupiterperpsalarm.AlarmSeverity;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
public record PriceAlarmDefinition(
|
public record PriceAlarmDefinition(
|
||||||
int id,
|
int id,
|
||||||
JupiterPerpsAsset asset,
|
JupiterPerpsAsset asset,
|
||||||
PriceDirection direction,
|
PriceDirection direction,
|
||||||
BigDecimal target,
|
String targetExpression,
|
||||||
AlarmTrigger trigger,
|
AlarmTrigger trigger,
|
||||||
ΩsecondsΩ triggerGracePeriod,
|
ΩsecondsΩ triggerGracePeriod,
|
||||||
AlarmSeverity severity,
|
AlarmSeverity severity,
|
||||||
@@ -18,12 +17,13 @@ public record PriceAlarmDefinition(
|
|||||||
public PriceAlarmDefinition {
|
public PriceAlarmDefinition {
|
||||||
Objects.requireNonNull(asset, "asset");
|
Objects.requireNonNull(asset, "asset");
|
||||||
Objects.requireNonNull(direction, "direction");
|
Objects.requireNonNull(direction, "direction");
|
||||||
Objects.requireNonNull(target, "target");
|
Objects.requireNonNull(targetExpression, "targetExpression");
|
||||||
Objects.requireNonNull(trigger, "trigger");
|
Objects.requireNonNull(trigger, "trigger");
|
||||||
|
Objects.requireNonNull(severity, "severity");
|
||||||
Objects.requireNonNull(note, "note");
|
Objects.requireNonNull(note, "note");
|
||||||
|
|
||||||
if (target.signum() < 0) {
|
if (targetExpression.isBlank()) {
|
||||||
throw new IllegalArgumentException("Target price cannot be negative (was: " + target.signum() + ")!");
|
throw new IllegalArgumentException("Target expression cannot be blank");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (triggerGracePeriod < 0) {
|
if (triggerGracePeriod < 0) {
|
||||||
|
|||||||
Reference in New Issue
Block a user