docs: updated docs for record class QuartileBounds

This commit is contained in:
zihluwang
2024-10-22 13:45:03 +08:00
parent fa10b9538d
commit 6776d6e88b
@@ -18,11 +18,32 @@
package com.onixbyte.nums.model; package com.onixbyte.nums.model;
/** /**
* QuartileBound. * A record representing the quartile bounds of a dataset.
* <p>
* This class encapsulates the lower and upper bounds of a dataset, which are typically used for detecting outliers in
* the data. The bounds are calculated based on the interquartile range (IQR) of the dataset. Values below the lower
* bound or above the upper bound may be considered outliers.
* <p>
* Quartile bounds consist of:
* <ul>
* <li>{@code lowerBound} - The lower bound of the dataset, typically {@code Q1 - 1.5 * IQR}.</li>
* <li>{@code upperBound} - The upper bound of the dataset, typically {@code Q3 + 1.5 * IQR}.</li>
* </ul>
* </p>
* <p>
* Example usage:
* <pre>
* QuartileBounds bounds = QuartileBounds.builder()
* .lowerBound(1.5)
* .upperBound(7.5)
* .build();
* </pre>
* *
* @param upperBound * @param upperBound the upper bound of the dataset
* @param lowerBound * @param lowerBound the lower bound of the dataset
* @author zihluwang * @author zihluwang
* @version 1.6.5
* @since 1.6.5
*/ */
public record QuartileBounds( public record QuartileBounds(
Double upperBound, Double upperBound,
@@ -30,31 +51,74 @@ public record QuartileBounds(
) { ) {
/** /**
* Get a builder for {@link QuartileBounds}. * Creates a new {@link Builder} instance for building a {@code QuartileBounds} object.
* <p>
* The {@link Builder} pattern is used to construct the {@code QuartileBounds} object with optional values for the
* upper and lower bounds.
* </p>
* *
* @return a builder * @return a new instance of the {@link Builder} class
*/ */
public static Builder builder() { public static Builder builder() {
return new Builder(); return new Builder();
} }
/**
* A builder class for constructing instances of the {@code QuartileBounds} record.
* <p>
* The {@link Builder} pattern allows for the step-by-step construction of a {@code QuartileBounds} object,
* providing a flexible way to set values for the lower and upper bounds. Once the builder has the required values,
* the {@link #build()} method creates and returns a new {@code QuartileBounds} object.
* </p>
* <p>
* Example usage:
* <pre>
* {@code
* QuartileBounds bounds = QuartileBounds.builder()
* .lowerBound(1.5)
* .upperBound(7.5)
* .build();
* }
* </pre>
*/
public static class Builder { public static class Builder {
private Double upperBound; private Double upperBound;
private Double lowerBound; private Double lowerBound;
/**
* Private constructor for {@code Builder}, ensuring it can only be instantiated through the
* {@link QuartileBounds#builder()} method.
*/
private Builder() { private Builder() {
} }
/**
* Sets the upper bound for the {@code QuartileBounds}.
*
* @param upperBound the upper bound of the dataset
* @return the current {@code Builder} instance, for method chaining
*/
public Builder upperBound(Double upperBound) { public Builder upperBound(Double upperBound) {
this.upperBound = upperBound; this.upperBound = upperBound;
return this; return this;
} }
/**
* Sets the lower bound for the {@code QuartileBounds}.
*
* @param lowerBound the lower bound of the dataset
* @return the current {@code Builder} instance, for method chaining
*/
public Builder lowerBound(Double lowerBound) { public Builder lowerBound(Double lowerBound) {
this.lowerBound = lowerBound; this.lowerBound = lowerBound;
return this; return this;
} }
/**
* Builds and returns a new {@code QuartileBounds} instance with the specified upper and lower bounds.
*
* @return a new {@code QuartileBounds} object containing the specified bounds
*/
public QuartileBounds build() { public QuartileBounds build() {
return new QuartileBounds(upperBound, lowerBound); return new QuartileBounds(upperBound, lowerBound);
} }