private static String boundSizeToString(BoundSize boundSize) {
    StringBuilder result = new StringBuilder("BoundSize{ ");
    if (boundSize.getMin() != null) {
      result.append("min=").append(unitValueToString(boundSize.getMin())).append(" ");
    }
    if (boundSize.getPreferred() != null) {
      result.append("pref=").append(unitValueToString(boundSize.getPreferred())).append(" ");
    }
    if (boundSize.getMax() != null) {
      result.append("max=").append(unitValueToString(boundSize.getMax())).append(" ");
    }
    if (boundSize.getGapPush()) {
      result.append("push ");
    }
    result.append("}");
    return result.toString();
  }
private static String boundSizeToString(BoundSize boundSize)