Record Class GrowthPlan
java.lang.Object
java.lang.Record
com.eqixiac.equinix.design.cost.GrowthPlan
- Record Components:
specFingerprint- the spec's fingerprintcurrency- the currency every amount is inannualGrowth- the annual growth rate used (fraction)horizonMonths- the horizonitems- one plan per priced itemmonthlyOnDemand- the design's on-demand total per month (month 1 first, one-time charges in month 1); anullentry is a month with an unpriced itemunpriced- items or months that could not be priced, with the reasonassumptions- every modelling assumption
public record GrowthPlan(String specFingerprint, String currency, double annualGrowth, int horizonMonths, List<GrowthPlan.ItemPlan> items, List<BigDecimal> monthlyOnDemand, List<String> unpriced, List<String> assumptions)
extends Record
A design priced month by month under traffic growth, with a commitment-term recommendation per item.
Produced by
GrowthPlanner.plan().-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final recordOne item's projection and term decision.static final recordOne commitment term for one item. -
Constructor Summary
ConstructorsConstructorDescriptionGrowthPlan(String specFingerprint, String currency, double annualGrowth, int horizonMonths, List<GrowthPlan.ItemPlan> items, List<BigDecimal> monthlyOnDemand, List<String> unpriced, List<String> assumptions) Copies the lists (monthlyOnDemandmay hold nulls). -
Method Summary
Modifier and TypeMethodDescriptiondoubleReturns the value of theannualGrowthrecord component.Returns the value of theassumptionsrecord component.currency()Returns the value of thecurrencyrecord component.final booleanIndicates whether some other object is "equal to" this one.final inthashCode()Returns a hash code value for this object.intReturns the value of thehorizonMonthsrecord component.items()Returns the value of theitemsrecord component.Returns the value of themonthlyOnDemandrecord component.Returns the value of thespecFingerprintrecord component.final StringtoString()Returns a string representation of this record class.unpriced()Returns the value of theunpricedrecord component.
-
Constructor Details
-
GrowthPlan
public GrowthPlan(String specFingerprint, String currency, double annualGrowth, int horizonMonths, List<GrowthPlan.ItemPlan> items, List<BigDecimal> monthlyOnDemand, List<String> unpriced, List<String> assumptions) Copies the lists (monthlyOnDemandmay hold nulls).
-
-
Method Details
-
onDemandTotal
- Returns:
- the on-demand total over the horizon, or
nullwhen a month is unpriced
-
toMarkdown
- Returns:
- a Markdown report: items with upgrade points and term options, monthly totals, assumptions
-
toString
-
hashCode
-
equals
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared withObjects::equals(Object,Object); primitive components are compared with thecomparemethod from their corresponding wrapper classes. -
specFingerprint
Returns the value of thespecFingerprintrecord component.- Returns:
- the value of the
specFingerprintrecord component
-
currency
-
annualGrowth
public double annualGrowth()Returns the value of theannualGrowthrecord component.- Returns:
- the value of the
annualGrowthrecord component
-
horizonMonths
public int horizonMonths()Returns the value of thehorizonMonthsrecord component.- Returns:
- the value of the
horizonMonthsrecord component
-
items
-
monthlyOnDemand
Returns the value of themonthlyOnDemandrecord component.- Returns:
- the value of the
monthlyOnDemandrecord component
-
unpriced
-
assumptions
Returns the value of theassumptionsrecord component.- Returns:
- the value of the
assumptionsrecord component
-