summaryrefslogtreecommitdiffstats
path: root/controller-api
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2023-10-12 20:49:29 +0200
committerHarald Musum <musum@yahooinc.com>2023-10-12 20:49:29 +0200
commit279193046cf8c317cb1757404c50f83888b6fc33 (patch)
tree535194915ccdb2ef0e7eafc380746164db19e561 /controller-api
parent052c6021d3d33f19be93a53c5fb95a02895889d6 (diff)
Add some convenience methods to PriceInformation
Diffstat (limited to 'controller-api')
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/pricing/PriceInformation.java12
1 files changed, 12 insertions, 0 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/pricing/PriceInformation.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/pricing/PriceInformation.java
index 887741f9196..7bb7818c87b 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/pricing/PriceInformation.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/pricing/PriceInformation.java
@@ -3,7 +3,19 @@ package com.yahoo.vespa.hosted.controller.api.integration.pricing;
import java.math.BigDecimal;
+import static java.math.BigDecimal.ZERO;
+
public record PriceInformation(BigDecimal listPriceWithSupport, BigDecimal volumeDiscount, BigDecimal committedAmountDiscount,
BigDecimal enclaveDiscount, BigDecimal totalAmount) {
+ public static PriceInformation empty() { return new PriceInformation(ZERO, ZERO, ZERO, ZERO, ZERO); }
+
+ public PriceInformation add(PriceInformation priceInformation) {
+ return new PriceInformation(this.listPriceWithSupport().add(priceInformation.listPriceWithSupport()),
+ this.volumeDiscount().add(priceInformation.volumeDiscount()),
+ this.committedAmountDiscount().add(priceInformation.committedAmountDiscount()),
+ this.enclaveDiscount().add(priceInformation.enclaveDiscount()),
+ this.totalAmount().add(priceInformation.totalAmount()));
+ }
+
}