aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorValerij Fredriksen <freva@users.noreply.github.com>2023-10-12 21:37:44 +0200
committerGitHub <noreply@github.com>2023-10-12 21:37:44 +0200
commit01f92605def9d6466534d38bd7ff73ee136d7e5b (patch)
tree17c9ea240437f6ecb4f55b9779887495e85bbd53
parent5f127bd36437ea06d40ff94df1ea2c5d4795e60e (diff)
parent279193046cf8c317cb1757404c50f83888b6fc33 (diff)
Merge pull request #28912 from vespa-engine/hmusum/price-information-convenience-methods
Add some convenience methods to PriceInformation
-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()));
+ }
+
}