code: public static Size bounded(Size basis, Size lowerBound, Size upperBound) {
          return new BoundedSize(basis, lowerBound, upperBound);
      }
docs: Creates and returns a BoundedSize for the given basis using the specified lower and upper
  bounds.
  
  @param basis the base size
  @param lowerBound the lower bound size
  @param upperBound the upper bound size
  @return a {@code BoundedSize} for the given basis and bounds
  @throws NullPointerException if {@code basis} is {@code null}, or if both {@code lowerBound}
  and {@code upperBound} are {@code null}.