class ValueSchedule implements ImmutableBean, Serializable {

  @Override
  public boolean equals(Object obj) {
    if (obj == this) {
      return true;
    }
    if (obj != null && obj.getClass() == this.getClass()) {
      ValueSchedule other = (ValueSchedule) obj;
      return JodaBeanUtils.equal(initialValue, other.initialValue) &&
          JodaBeanUtils.equal(steps, other.steps) &&
          JodaBeanUtils.equal(stepSequence, other.stepSequence);
    }
    return false;
  }

  private  ValueSchedule(
      double initialValue,
      List<ValueStep> steps,
      ValueStepSequence stepSequence);

}