/**
  * Constructor for creating out of bounds labels.
  *
  * @param builder
  * @param lower
  * @param value
  */
 private Interval(HierarchyBuilderGroupingBased<T> builder, boolean lower, T value) {
   super(
       lower
           ? "<" + ((DataType<T>) builder.getDataType()).format(value)
           : ">=" + ((DataType<T>) builder.getDataType()).format(value));
   this.builder = builder;
   this.min = null;
   this.max = null;
   this.function = null;
   this.lower = lower;
 }
 @Override
 public String toString() {
   DataType<T> type = (DataType<T>) builder.getDataType();
   return "Interval[min="
       + type.format(min)
       + ", max="
       + type.format(max)
       + ", function="
       + function.toString()
       + "]";
 }