Record Class GrowthPlan

java.lang.Object
java.lang.Record
com.eqixiac.equinix.design.cost.GrowthPlan
Record Components:
specFingerprint - the spec's fingerprint
currency - the currency every amount is in
annualGrowth - the annual growth rate used (fraction)
horizonMonths - the horizon
items - one plan per priced item
monthlyOnDemand - the design's on-demand total per month (month 1 first, one-time charges in month 1); a null entry is a month with an unpriced item
unpriced - items or months that could not be priced, with the reason
assumptions - 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().
  • Constructor Details

  • Method Details

    • onDemandTotal

      public BigDecimal onDemandTotal()
      Returns:
      the on-demand total over the horizon, or null when a month is unpriced
    • toMarkdown

      public String toMarkdown()
      Returns:
      a Markdown report: items with upgrade points and term options, monthly totals, assumptions
    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      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 with Objects::equals(Object,Object); primitive components are compared with the compare method from their corresponding wrapper classes.
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • specFingerprint

      public String specFingerprint()
      Returns the value of the specFingerprint record component.
      Returns:
      the value of the specFingerprint record component
    • currency

      public String currency()
      Returns the value of the currency record component.
      Returns:
      the value of the currency record component
    • annualGrowth

      public double annualGrowth()
      Returns the value of the annualGrowth record component.
      Returns:
      the value of the annualGrowth record component
    • horizonMonths

      public int horizonMonths()
      Returns the value of the horizonMonths record component.
      Returns:
      the value of the horizonMonths record component
    • items

      public List<GrowthPlan.ItemPlan> items()
      Returns the value of the items record component.
      Returns:
      the value of the items record component
    • monthlyOnDemand

      public List<BigDecimal> monthlyOnDemand()
      Returns the value of the monthlyOnDemand record component.
      Returns:
      the value of the monthlyOnDemand record component
    • unpriced

      public List<String> unpriced()
      Returns the value of the unpriced record component.
      Returns:
      the value of the unpriced record component
    • assumptions

      public List<String> assumptions()
      Returns the value of the assumptions record component.
      Returns:
      the value of the assumptions record component