summaryrefslogtreecommitdiff
path: root/src/main/java/sevenUnits/unit
diff options
context:
space:
mode:
authorAdrien Hopkins <adrien.p.hopkins@gmail.com>2025-06-04 19:45:37 -0500
committerAdrien Hopkins <adrien.p.hopkins@gmail.com>2025-06-04 19:45:37 -0500
commit79e1653caf5c30667877a158433cbcd766a135af (patch)
tree891527e7365bf78eab3722704c1f74e57fbbca7d /src/main/java/sevenUnits/unit
parentd80b80857e739eb32afd7625789944abd3afe376 (diff)
Add version numbers to all @since tags
Specifically, for every @since tag with a date, I added another that contains the correspending version. I did not add date @since tags to comments that do not have them, as that would be too tedious for what it's worth. These dates could still be found by using git bisect though.
Diffstat (limited to 'src/main/java/sevenUnits/unit')
-rw-r--r--src/main/java/sevenUnits/unit/BaseDimension.java3
-rw-r--r--src/main/java/sevenUnits/unit/BaseUnit.java6
-rw-r--r--src/main/java/sevenUnits/unit/BritishImperial.java5
-rw-r--r--src/main/java/sevenUnits/unit/FunctionalUnit.java5
-rw-r--r--src/main/java/sevenUnits/unit/LinearUnit.java14
-rw-r--r--src/main/java/sevenUnits/unit/LinearUnitValue.java23
-rw-r--r--src/main/java/sevenUnits/unit/LoadingException.java1
-rw-r--r--src/main/java/sevenUnits/unit/Metric.java2
-rw-r--r--src/main/java/sevenUnits/unit/USCustomary.java5
-rw-r--r--src/main/java/sevenUnits/unit/Unit.java14
-rw-r--r--src/main/java/sevenUnits/unit/UnitDatabase.java24
-rw-r--r--src/main/java/sevenUnits/unit/UnitPrefix.java11
-rw-r--r--src/main/java/sevenUnits/unit/UnitType.java2
-rw-r--r--src/main/java/sevenUnits/unit/UnitValue.java6
14 files changed, 121 insertions, 0 deletions
diff --git a/src/main/java/sevenUnits/unit/BaseDimension.java b/src/main/java/sevenUnits/unit/BaseDimension.java
index cfa6af9..fe7b772 100644
--- a/src/main/java/sevenUnits/unit/BaseDimension.java
+++ b/src/main/java/sevenUnits/unit/BaseDimension.java
@@ -26,6 +26,7 @@ import sevenUnits.utils.Nameable;
*
* @author Adrien Hopkins
* @since 2019-10-16
+ * @since v0.3.0
*/
public final class BaseDimension implements Nameable {
/**
@@ -35,6 +36,7 @@ public final class BaseDimension implements Nameable {
* @param symbol symbol used for dimension
* @return dimension
* @since 2019-10-16
+ * @since v0.3.0
*/
public static BaseDimension valueOf(final String name, final String symbol) {
return new BaseDimension(name, symbol);
@@ -57,6 +59,7 @@ public final class BaseDimension implements Nameable {
* @param symbol symbol of unit
* @throws NullPointerException if any argument is null
* @since 2019-10-16
+ * @since v0.3.0
*/
private BaseDimension(final String name, final String symbol) {
this.name = Objects.requireNonNull(name, "name must not be null.");
diff --git a/src/main/java/sevenUnits/unit/BaseUnit.java b/src/main/java/sevenUnits/unit/BaseUnit.java
index 0d375f8..2898de5 100644
--- a/src/main/java/sevenUnits/unit/BaseUnit.java
+++ b/src/main/java/sevenUnits/unit/BaseUnit.java
@@ -31,6 +31,7 @@ import sevenUnits.utils.NameSymbol;
*
* @author Adrien Hopkins
* @since 2019-10-16
+ * @since v0.3.0
*/
public final class BaseUnit extends Unit {
/**
@@ -41,6 +42,7 @@ public final class BaseUnit extends Unit {
* @param symbol symbol of unit
* @return base unit
* @since 2019-10-16
+ * @since v0.3.0
*/
public static BaseUnit valueOf(final BaseDimension dimension,
final String name, final String symbol) {
@@ -56,6 +58,7 @@ public final class BaseUnit extends Unit {
* @param otherNames other possible names of unit
* @return base unit
* @since 2019-10-21
+ * @since v0.3.0
*/
public static BaseUnit valueOf(final BaseDimension dimension,
final String name, final String symbol, final Set<String> otherNames) {
@@ -75,6 +78,7 @@ public final class BaseUnit extends Unit {
* @param symbol symbol of unit
* @throws NullPointerException if any argument is null
* @since 2019-10-16
+ * @since v0.3.0
*/
private BaseUnit(final BaseDimension dimension, final String primaryName,
final String symbol, final Set<String> otherNames) {
@@ -90,6 +94,7 @@ public final class BaseUnit extends Unit {
*
* @return this unit as a {@code LinearUnit}
* @since 2019-10-16
+ * @since v0.3.0
*/
public LinearUnit asLinearUnit() {
return LinearUnit.valueOf(this.getBase(), 1);
@@ -108,6 +113,7 @@ public final class BaseUnit extends Unit {
/**
* @return dimension
* @since 2019-10-16
+ * @since v0.3.0
*/
public final BaseDimension getBaseDimension() {
return this.dimension;
diff --git a/src/main/java/sevenUnits/unit/BritishImperial.java b/src/main/java/sevenUnits/unit/BritishImperial.java
index e327055..a6fd43f 100644
--- a/src/main/java/sevenUnits/unit/BritishImperial.java
+++ b/src/main/java/sevenUnits/unit/BritishImperial.java
@@ -23,6 +23,7 @@ import sevenUnits.utils.NameSymbol;
*
* @author Adrien Hopkins
* @since 2019-10-21
+ * @since v0.3.0
*/
// this class is just constants, most of which are obvious from the variable name
// so no need to check for missing values
@@ -33,6 +34,7 @@ public final class BritishImperial {
*
* @author Adrien Hopkins
* @since 2019-11-08
+ * @since v0.3.0
*/
public static final class Area {
public static final LinearUnit SQUARE_FOOT = Length.FOOT.toExponent(2);
@@ -48,6 +50,7 @@ public final class BritishImperial {
*
* @author Adrien Hopkins
* @since 2019-10-28
+ * @since v0.3.0
*/
public static final class Length {
/**
@@ -81,6 +84,7 @@ public final class BritishImperial {
*
* @author Adrien Hopkins
* @since 2019-11-08
+ * @since v0.3.0
*/
public static final class Mass {
public static final LinearUnit POUND = Metric.GRAM.times(453.59237);
@@ -99,6 +103,7 @@ public final class BritishImperial {
*
* @author Adrien Hopkins
* @since 2019-11-08
+ * @since v0.3.0
*/
public static final class Volume {
public static final LinearUnit FLUID_OUNCE = Metric.LITRE
diff --git a/src/main/java/sevenUnits/unit/FunctionalUnit.java b/src/main/java/sevenUnits/unit/FunctionalUnit.java
index fb24629..41db164 100644
--- a/src/main/java/sevenUnits/unit/FunctionalUnit.java
+++ b/src/main/java/sevenUnits/unit/FunctionalUnit.java
@@ -27,6 +27,7 @@ import sevenUnits.utils.ObjectProduct;
*
* @author Adrien Hopkins
* @since 2019-05-22
+ * @since v0.3.0
*/
final class FunctionalUnit extends Unit {
/**
@@ -34,6 +35,7 @@ final class FunctionalUnit extends Unit {
* that value expressed in this unit.
*
* @since 2019-05-22
+ * @since v0.3.0
*/
private final DoubleUnaryOperator converterFrom;
@@ -42,6 +44,7 @@ final class FunctionalUnit extends Unit {
* value expressed in the unit's base.
*
* @since 2019-05-22
+ * @since v0.3.0
*/
private final DoubleUnaryOperator converterTo;
@@ -55,6 +58,7 @@ final class FunctionalUnit extends Unit {
* and returns that value expressed in the unit's base.
* @throws NullPointerException if any argument is null
* @since 2019-05-22
+ * @since v0.3.0
*/
public FunctionalUnit(final ObjectProduct<BaseUnit> base,
final DoubleUnaryOperator converterFrom,
@@ -77,6 +81,7 @@ final class FunctionalUnit extends Unit {
* @param ns name and symbol of resulting unit
* @throws NullPointerException if any argument is null
* @since 2019-05-22
+ * @since v0.3.0
*/
public FunctionalUnit(final ObjectProduct<BaseUnit> base,
final DoubleUnaryOperator converterFrom,
diff --git a/src/main/java/sevenUnits/unit/LinearUnit.java b/src/main/java/sevenUnits/unit/LinearUnit.java
index 6c1aba3..7191196 100644
--- a/src/main/java/sevenUnits/unit/LinearUnit.java
+++ b/src/main/java/sevenUnits/unit/LinearUnit.java
@@ -29,6 +29,7 @@ import sevenUnits.utils.UncertainDouble;
*
* @author Adrien Hopkins
* @since 2019-10-16
+ * @since v0.3.0
*/
public final class LinearUnit extends Unit {
/**
@@ -39,6 +40,7 @@ public final class LinearUnit extends Unit {
* @param value value to convert
* @return value expressed as a {@code LinearUnit}
* @since 2019-10-16
+ * @since v0.3.0
* @throws NullPointerException if unit is null
*/
public static LinearUnit fromUnitValue(final Unit unit, final double value) {
@@ -56,6 +58,7 @@ public final class LinearUnit extends Unit {
* @param ns name(s) and symbol of unit
* @return value expressed as a {@code LinearUnit}
* @since 2019-10-21
+ * @since v0.3.0
* @throws NullPointerException if unit or ns is null
*/
public static LinearUnit fromUnitValue(final Unit unit, final double value,
@@ -70,6 +73,7 @@ public final class LinearUnit extends Unit {
* @return the base unit associated with {@code unit}, as a
* {@code LinearUnit}.
* @since 2020-10-02
+ * @since v0.3.0
*/
public static LinearUnit getBase(final Unit unit) {
return new LinearUnit(unit.getBase(), 1, NameSymbol.EMPTY);
@@ -84,6 +88,7 @@ public final class LinearUnit extends Unit {
* @param conversionFactor number to multiply base by
* @return product of base and conversion factor
* @since 2019-10-16
+ * @since v0.3.0
* @throws NullPointerException if unitBase is null
*/
public static LinearUnit valueOf(final ObjectProduct<BaseUnit> unitBase,
@@ -101,6 +106,7 @@ public final class LinearUnit extends Unit {
* @param ns name(s) and symbol of unit
* @return product of base and conversion factor
* @since 2019-10-21
+ * @since v0.3.0
* @throws NullPointerException if unitBase is null
*/
public static LinearUnit valueOf(final ObjectProduct<BaseUnit> unitBase,
@@ -116,6 +122,7 @@ public final class LinearUnit extends Unit {
* </pre>
*
* @since 2019-10-16
+ * @since v0.3.0
*/
private final double conversionFactor;
@@ -125,6 +132,7 @@ public final class LinearUnit extends Unit {
* @param unitBase base of linear unit
* @param conversionFactor conversion factor between base and unit
* @since 2019-10-16
+ * @since v0.3.0
*/
private LinearUnit(final ObjectProduct<BaseUnit> unitBase,
final double conversionFactor, final NameSymbol ns) {
@@ -150,6 +158,7 @@ public final class LinearUnit extends Unit {
* @param value value to convert
* @return converted value
* @since 2019-09-07
+ * @since v0.3.0
* @throws IllegalArgumentException if {@code other} is incompatible for
* conversion with this unit (as tested by
* {@link Unit#canConvertTo}).
@@ -181,6 +190,7 @@ public final class LinearUnit extends Unit {
* Converts an {@code UncertainDouble} to the base unit.
*
* @since 2020-09-07
+ * @since v0.3.0
*/
UncertainDouble convertToBase(final UncertainDouble value) {
return value.timesExact(this.getConversionFactor());
@@ -249,6 +259,7 @@ public final class LinearUnit extends Unit {
/**
* @return conversion factor
* @since 2019-10-16
+ * @since v0.3.0
*/
public double getConversionFactor() {
return this.conversionFactor;
@@ -270,6 +281,7 @@ public final class LinearUnit extends Unit {
* is a {@code BaseUnit b} where
* {@code b.asLinearUnit().equals(this)} returns {@code true}.)
* @since 2019-10-16
+ * @since v0.3.0
*/
public boolean isBase() {
return this.isCoherent() && this.getBase().isSingleObject();
@@ -278,6 +290,7 @@ public final class LinearUnit extends Unit {
/**
* @return whether this unit is coherent (i.e. has conversion factor 1)
* @since 2019-10-16
+ * @since v0.3.0
*/
public boolean isCoherent() {
return this.getConversionFactor() == 1;
@@ -403,6 +416,7 @@ public final class LinearUnit extends Unit {
* @param exponent exponent to raise unit to
* @return result of rounded exponentation
* @since 2024-08-22
+ * @since v1.0.0
* @see ObjectProduct#toExponentRounded
*/
public LinearUnit toExponentRounded(final double exponent) {
diff --git a/src/main/java/sevenUnits/unit/LinearUnitValue.java b/src/main/java/sevenUnits/unit/LinearUnitValue.java
index 8d30907..86520d7 100644
--- a/src/main/java/sevenUnits/unit/LinearUnitValue.java
+++ b/src/main/java/sevenUnits/unit/LinearUnitValue.java
@@ -34,6 +34,7 @@ import sevenUnits.utils.UncertainDouble;
*
* @author Adrien Hopkins
* @since 2020-07-26
+ * @since v0.3.0
*/
public final class LinearUnitValue {
/** The value 1 as a LinearUnitValue. */
@@ -46,6 +47,7 @@ public final class LinearUnitValue {
* @param value value to express
* @return exact {@code LinearUnitValue} instance
* @since 2020-07-26
+ * @since v0.3.0
*/
public static final LinearUnitValue getExact(final LinearUnit unit,
final double value) {
@@ -61,6 +63,7 @@ public final class LinearUnitValue {
* @param value value to express
* @return uncertain {@code LinearUnitValue} instance
* @since 2020-07-26
+ * @since v0.3.0
*/
public static final LinearUnitValue of(final LinearUnit unit,
final UncertainDouble value) {
@@ -77,6 +80,7 @@ public final class LinearUnitValue {
* @param unit unit to express as
* @param value value to express
* @since 2020-07-26
+ * @since v0.3.0
*/
private LinearUnitValue(final LinearUnit unit, final UncertainDouble value) {
this.unit = unit;
@@ -87,6 +91,7 @@ public final class LinearUnitValue {
* @return this value as a {@code UnitValue}. All uncertainty information is
* removed from the returned value.
* @since 2020-08-04
+ * @since v0.3.0
*/
public final UnitValue asUnitValue() {
return UnitValue.of(this.unit, this.value.value());
@@ -96,6 +101,7 @@ public final class LinearUnitValue {
* @param other a {@code LinearUnit}
* @return true iff this value can be represented with {@code other}.
* @since 2020-07-26
+ * @since v0.3.0
*/
public final boolean canConvertTo(final LinearUnit other) {
return this.unit.canConvertTo(other);
@@ -108,6 +114,7 @@ public final class LinearUnitValue {
* @param other new unit to express value in
* @return value expressed in {@code other}
* @since 2020-07-26
+ * @since v0.3.0
*/
public final LinearUnitValue convertTo(final LinearUnit other) {
return LinearUnitValue.of(other, this.unit.convertTo(other, this.value));
@@ -122,6 +129,7 @@ public final class LinearUnitValue {
* @throws IllegalArgumentException if no units are provided or units
* provided have incompatible bases
* @since 2024-08-15
+ * @since v1.0.0
*/
public final List<LinearUnitValue> convertToMultiple(
final List<LinearUnit> others) {
@@ -155,6 +163,7 @@ public final class LinearUnitValue {
* @param divisor value to divide by
* @return multiplied value
* @since 2020-07-28
+ * @since v0.3.0
*/
public LinearUnitValue dividedBy(final double divisor) {
return LinearUnitValue.of(this.unit, this.value.dividedByExact(divisor));
@@ -166,6 +175,7 @@ public final class LinearUnitValue {
* @param divisor value to multiply by
* @return quotient
* @since 2020-07-28
+ * @since v0.3.0
*/
public LinearUnitValue dividedBy(final LinearUnitValue divisor) {
return LinearUnitValue.of(this.unit.dividedBy(divisor.unit),
@@ -178,6 +188,7 @@ public final class LinearUnitValue {
* km) returns true.
*
* @since 2020-07-26
+ * @since v0.3.0
* @see #equals(Object, boolean)
*/
@Override
@@ -202,6 +213,7 @@ public final class LinearUnitValue {
* @return true iff this and obj are equal
*
* @since 2020-07-28
+ * @since v0.3.0
*/
public boolean equals(final Object obj, final boolean avoidFPErrors) {
if (!avoidFPErrors)
@@ -219,6 +231,7 @@ public final class LinearUnitValue {
* @return true iff this and other are within each other's uncertainty range
*
* @since 2020-07-26
+ * @since v0.3.0
*/
public boolean equivalent(final LinearUnitValue other) {
if (other == null
@@ -234,6 +247,7 @@ public final class LinearUnitValue {
/**
* @return the unit
* @since 2020-09-29
+ * @since v0.3.0
*/
public final LinearUnit getUnit() {
return this.unit;
@@ -242,6 +256,7 @@ public final class LinearUnitValue {
/**
* @return the value
* @since 2020-09-29
+ * @since v0.3.0
*/
public final UncertainDouble getValue() {
return this.value;
@@ -250,6 +265,7 @@ public final class LinearUnitValue {
/**
* @return the exact value
* @since 2020-09-07
+ * @since v0.3.0
*/
public final double getValueExact() {
return this.value.value();
@@ -270,6 +286,7 @@ public final class LinearUnitValue {
* @throws IllegalArgumentException if {@code subtrahend} has a unit that is
* not compatible for addition
* @since 2020-07-26
+ * @since v0.3.0
*/
public LinearUnitValue minus(final LinearUnitValue subtrahend) {
Objects.requireNonNull(subtrahend, "subtrahend may not be null");
@@ -292,6 +309,7 @@ public final class LinearUnitValue {
* @throws IllegalArgumentException if {@code addend} has a unit that is not
* compatible for addition
* @since 2020-07-26
+ * @since v0.3.0
*/
public LinearUnitValue plus(final LinearUnitValue addend) {
Objects.requireNonNull(addend, "addend may not be null");
@@ -312,6 +330,7 @@ public final class LinearUnitValue {
* @param multiplier value to multiply by
* @return multiplied value
* @since 2020-07-28
+ * @since v0.3.0
*/
public LinearUnitValue times(final double multiplier) {
return LinearUnitValue.of(this.unit, this.value.timesExact(multiplier));
@@ -323,6 +342,7 @@ public final class LinearUnitValue {
* @param multiplier value to multiply by
* @return product
* @since 2020-07-28
+ * @since v0.3.0
*/
public LinearUnitValue times(final LinearUnitValue multiplier) {
return LinearUnitValue.of(this.unit.times(multiplier.unit),
@@ -335,6 +355,7 @@ public final class LinearUnitValue {
* @param exponent exponent to raise to
* @return result of exponentiation
* @since 2020-07-28
+ * @since v0.3.0
*/
public LinearUnitValue toExponent(final int exponent) {
return LinearUnitValue.of(this.unit.toExponent(exponent),
@@ -348,6 +369,7 @@ public final class LinearUnitValue {
* @return result of exponentation
*
* @since 2024-08-22
+ * @since v1.0.0
* @see ObjectProduct#toExponentRounded
*/
public LinearUnitValue toExponentRounded(final double exponent) {
@@ -375,6 +397,7 @@ public final class LinearUnitValue {
* @return string representing this value
*
* @since 2020-07-26
+ * @since v0.3.0
*/
public String toString(final boolean showUncertainty,
RoundingMode roundingMode) {
diff --git a/src/main/java/sevenUnits/unit/LoadingException.java b/src/main/java/sevenUnits/unit/LoadingException.java
index b806147..7b3d708 100644
--- a/src/main/java/sevenUnits/unit/LoadingException.java
+++ b/src/main/java/sevenUnits/unit/LoadingException.java
@@ -25,6 +25,7 @@ import java.util.Optional;
*
* @author Adrien Hopkins
* @since 2024-08-22
+ * @since v1.0.0
*/
public final class LoadingException extends RuntimeException {
/** The type of file that was being loaded. */
diff --git a/src/main/java/sevenUnits/unit/Metric.java b/src/main/java/sevenUnits/unit/Metric.java
index 166cbcf..34fd0b8 100644
--- a/src/main/java/sevenUnits/unit/Metric.java
+++ b/src/main/java/sevenUnits/unit/Metric.java
@@ -36,6 +36,7 @@ import sevenUnits.utils.ObjectProduct;
*
* @author Adrien Hopkins
* @since 2019-10-16
+ * @since v0.3.0
*/
// this class is just constants, most of which are obvious from the variable name
// so no need to check for missing values
@@ -109,6 +110,7 @@ public final class Metric {
*
* @author Adrien Hopkins
* @since 2019-11-08
+ * @since v0.3.0
*/
public static final class Constants {
public static final LinearUnit EARTH_GRAVITY = METRE.dividedBy(SECOND)
diff --git a/src/main/java/sevenUnits/unit/USCustomary.java b/src/main/java/sevenUnits/unit/USCustomary.java
index 1923d9e..be8c5e2 100644
--- a/src/main/java/sevenUnits/unit/USCustomary.java
+++ b/src/main/java/sevenUnits/unit/USCustomary.java
@@ -21,6 +21,7 @@ package sevenUnits.unit;
*
* @author Adrien Hopkins
* @since 2019-10-21
+ * @since v0.3.0
*/
// this class is just constants, most of which are obvious from the variable name
// so no need to check for missing values
@@ -31,6 +32,7 @@ public final class USCustomary {
*
* @author Adrien Hopkins
* @since 2019-11-08
+ * @since v0.3.0
*/
public static final class Area {
public static final LinearUnit SQUARE_SURVEY_FOOT = Length.SURVEY_FOOT
@@ -49,6 +51,7 @@ public final class USCustomary {
*
* @author Adrien Hopkins
* @since 2019-10-28
+ * @since v0.3.0
*/
public static final class Length {
public static final LinearUnit FOOT = BritishImperial.Length.FOOT;
@@ -79,6 +82,7 @@ public final class USCustomary {
*
* @author Adrien Hopkins
* @since 2019-11-08
+ * @since v0.3.0
*/
public static final class Mass {
public static final LinearUnit GRAIN = BritishImperial.Mass.GRAIN;
@@ -99,6 +103,7 @@ public final class USCustomary {
*
* @author Adrien Hopkins
* @since 2019-11-08
+ * @since v0.3.0
*/
public static final class Volume {
public static final LinearUnit CUBIC_INCH = Length.INCH.toExponent(3);
diff --git a/src/main/java/sevenUnits/unit/Unit.java b/src/main/java/sevenUnits/unit/Unit.java
index 5d67ed0..d651fe2 100644
--- a/src/main/java/sevenUnits/unit/Unit.java
+++ b/src/main/java/sevenUnits/unit/Unit.java
@@ -31,6 +31,7 @@ import sevenUnits.utils.ObjectProduct;
*
* @author Adrien Hopkins
* @since 2019-10-16
+ * @since v0.3.0
*/
public abstract class Unit implements Nameable {
/**
@@ -51,6 +52,7 @@ public abstract class Unit implements Nameable {
* and returns that value expressed in the unit's base.
* @return a unit that uses the provided functions to convert.
* @since 2019-05-22
+ * @since v0.3.0
* @throws NullPointerException if any argument is null
*/
public static final Unit fromConversionFunctions(
@@ -79,6 +81,7 @@ public abstract class Unit implements Nameable {
* @param ns names and symbol of unit
* @return a unit that uses the provided functions to convert.
* @since 2019-05-22
+ * @since v0.3.0
* @throws NullPointerException if any argument is null
*/
public static final Unit fromConversionFunctions(
@@ -92,6 +95,7 @@ public abstract class Unit implements Nameable {
* The combination of units that this unit is based on.
*
* @since 2019-10-16
+ * @since v0.3.0
*/
private final ObjectProduct<BaseUnit> unitBase;
@@ -99,6 +103,7 @@ public abstract class Unit implements Nameable {
* This unit's name(s) and symbol
*
* @since 2020-09-07
+ * @since v0.3.0
*/
private final NameSymbol nameSymbol;
@@ -106,6 +111,7 @@ public abstract class Unit implements Nameable {
* Cache storing the result of getDimension()
*
* @since 2019-10-16
+ * @since v0.3.0
*/
private transient ObjectProduct<BaseDimension> dimension = null;
@@ -113,6 +119,7 @@ public abstract class Unit implements Nameable {
* A constructor that constructs {@code BaseUnit} instances.
*
* @since 2019-10-16
+ * @since v0.3.0
*/
Unit(final NameSymbol nameSymbol) {
if (this instanceof BaseUnit) {
@@ -128,6 +135,7 @@ public abstract class Unit implements Nameable {
* @param unitBase base of unit
* @param ns names and symbol of unit
* @since 2019-10-16
+ * @since v0.3.0
* @throws NullPointerException if unitBase or ns is null
*/
protected Unit(ObjectProduct<BaseUnit> unitBase, NameSymbol ns) {
@@ -187,6 +195,7 @@ public abstract class Unit implements Nameable {
* @param value value to convert
* @return converted value
* @since 2019-05-22
+ * @since v0.3.0
* @throws IllegalArgumentException if {@code other} is incompatible for
* conversion with this unit (as tested by
* {@link Unit#canConvertTo}).
@@ -255,6 +264,7 @@ public abstract class Unit implements Nameable {
/**
* @return the nameSymbol
* @since 2020-09-07
+ * @since v0.3.0
*/
@Override
public final NameSymbol getNameSymbol() {
@@ -281,6 +291,7 @@ public abstract class Unit implements Nameable {
* @return true iff this unit is metric.
*
* @since 2020-08-27
+ * @since v0.3.0
*/
public final boolean isMetric() {
// first condition - check that it is a linear unit
@@ -302,6 +313,7 @@ public abstract class Unit implements Nameable {
/**
* @return a string representing this unit's definition
* @since 2022-03-10
+ * @since v0.3.0
*/
public String toDefinitionString() {
if (!this.unitBase.getNameSymbol().isEmpty())
@@ -314,6 +326,7 @@ public abstract class Unit implements Nameable {
/**
* @return a string containing both this unit's name and its definition
* @since 2022-03-10
+ * @since v0.3.0
*/
public final String toFullString() {
return this.toString() + " (" + this.toDefinitionString() + ")";
@@ -333,6 +346,7 @@ public abstract class Unit implements Nameable {
* @param ns name(s) and symbol to use
* @return a copy of this unit with provided name(s) and symbol
* @since 2019-10-21
+ * @since v0.3.0
* @throws NullPointerException if ns is null
*/
public Unit withName(final NameSymbol ns) {
diff --git a/src/main/java/sevenUnits/unit/UnitDatabase.java b/src/main/java/sevenUnits/unit/UnitDatabase.java
index 6cf794b..b0d026f 100644
--- a/src/main/java/sevenUnits/unit/UnitDatabase.java
+++ b/src/main/java/sevenUnits/unit/UnitDatabase.java
@@ -138,6 +138,7 @@ public final class UnitDatabase {
/**
* @since 2019-05-03
+ * @since v0.3.0
*/
@Override
public boolean equals(final Object o) {
@@ -160,6 +161,7 @@ public final class UnitDatabase {
/**
* @since 2019-05-03
+ * @since v0.3.0
*/
@Override
public int hashCode() {
@@ -181,6 +183,7 @@ public final class UnitDatabase {
* value.
*
* @since 2019-05-03
+ * @since v0.3.0
*/
@Override
public String toString() {
@@ -307,6 +310,7 @@ public final class UnitDatabase {
* @return the next element in the iterator, without iterating over
* it
* @since 2019-05-03
+ * @since v0.3.0
*/
private Entry<String, Unit> peek() {
if (!this.hasNext())
@@ -333,6 +337,7 @@ public final class UnitDatabase {
* of the representation are unspecified and subject to change.
*
* @since 2019-05-03
+ * @since v0.3.0
*/
@Override
public String toString() {
@@ -622,6 +627,7 @@ public final class UnitDatabase {
* @return the next element in the iterator, without iterating over
* it
* @since 2019-05-03
+ * @since v0.3.0
*/
private String peek() {
if (!this.hasNext())
@@ -645,6 +651,7 @@ public final class UnitDatabase {
* of the representation are unspecified and subject to change.
*
* @since 2019-05-03
+ * @since v0.3.0
*/
@Override
public String toString() {
@@ -1136,6 +1143,7 @@ public final class UnitDatabase {
* @param exponentUnit exponent
* @return result
* @since 2020-08-04
+ * @since v0.3.0
*/
private static final LinearUnitValue exponentiateUnitValues(
final LinearUnitValue base, final LinearUnitValue exponentValue) {
@@ -1151,6 +1159,7 @@ public final class UnitDatabase {
/**
* @return true if entry represents a removable duplicate entry of map.
* @since 2021-05-22
+ * @since v0.3.0
*/
static <T> boolean isRemovableDuplicate(Map<String, T> map,
Entry<String, T> entry) {
@@ -1236,6 +1245,7 @@ public final class UnitDatabase {
* A parser that can parse unit value expressions.
*
* @since 2020-08-04
+ * @since v0.3.0
*/
private final ExpressionParser<LinearUnitValue> unitValueExpressionParser = new ExpressionParser.Builder<>(
this::getLinearUnitValue)
@@ -1297,6 +1307,7 @@ public final class UnitDatabase {
* @param prefixRepetitionRule the rule that determines when prefix
* repetition is allowed
* @since 2020-08-26
+ * @since v0.3.0
*/
public UnitDatabase(Predicate<List<UnitPrefix>> prefixRepetitionRule) {
this.prefixlessUnits = new HashMap<>();
@@ -1468,6 +1479,7 @@ public final class UnitDatabase {
* @param name name of unit set
* @param value unit set to add
* @since 2024-08-16
+ * @since v1.0.0
*/
public void addUnitSet(String name, List<LinearUnit> value) {
if (value.isEmpty())
@@ -1486,6 +1498,7 @@ public final class UnitDatabase {
* Removes all units, unit sets, prefixes and dimensions from this database.
*
* @since 2022-02-26
+ * @since v0.4.0
*/
public void clear() {
this.dimensions.clear();
@@ -1538,6 +1551,7 @@ public final class UnitDatabase {
* @return true iff there is a unit set with this name
*
* @since 2024-08-16
+ * @since v1.0.0
*/
public boolean containsUnitSetName(String name) {
return this.unitSets.containsKey(name);
@@ -1559,6 +1573,7 @@ public final class UnitDatabase {
* @param expression expression to parse
* @return {@code LinearUnitValue} representing value of expression
* @since 2020-08-04
+ * @since v0.3.0
*/
public LinearUnitValue evaluateUnitExpression(final String expression) {
Objects.requireNonNull(expression, "expression must not be null.");
@@ -1697,6 +1712,7 @@ public final class UnitDatabase {
* @param name name of unit
* @return {@code LinearUnitValue} instance
* @since 2020-08-04
+ * @since v0.3.0
*/
LinearUnitValue getLinearUnitValue(final String name) {
try {
@@ -1735,6 +1751,7 @@ public final class UnitDatabase {
* @param unitName name of unit
* @return prefixes
* @since 2020-08-26
+ * @since v0.3.0
*/
List<UnitPrefix> getPrefixesFromName(final String unitName) {
final List<UnitPrefix> prefixes = new ArrayList<>();
@@ -1800,6 +1817,7 @@ public final class UnitDatabase {
/**
* @return the prefixRepetitionRule
* @since 2020-08-26
+ * @since v0.3.0
*/
public final Predicate<List<UnitPrefix>> getPrefixRepetitionRule() {
return this.prefixRepetitionRule;
@@ -1904,6 +1922,7 @@ public final class UnitDatabase {
* @return unit set with that name
*
* @since 2024-08-16
+ * @since v1.0.0
*/
public List<LinearUnit> getUnitSet(String name) {
final List<LinearUnit> unitSet = this.unitSets.get(name);
@@ -1916,6 +1935,7 @@ public final class UnitDatabase {
* Parses a semicolon-separated expression to get the unit set being used.
*
* @since 2024-08-22
+ * @since v1.0.0
*/
List<LinearUnit> getUnitSetFromExpression(String expression) {
final String[] parts = expression.split(";");
@@ -1991,6 +2011,7 @@ public final class UnitDatabase {
* @param stream stream to load from
* @return list of all errors that happened loading the stream
* @since 2021-03-27
+ * @since v0.3.0
*/
public List<LoadingException> loadDimensionsFromStream(
final InputStream stream) {
@@ -2062,6 +2083,7 @@ public final class UnitDatabase {
* @param stream stream to load from
* @return list of all errors that happened loading the stream
* @since 2021-03-27
+ * @since v0.3.0
*/
public List<LoadingException> loadUnitsFromStream(InputStream stream) {
final List<LoadingException> errors = new ArrayList<>();
@@ -2098,6 +2120,7 @@ public final class UnitDatabase {
/**
* @param prefixRepetitionRule the prefixRepetitionRule to set
* @since 2020-08-26
+ * @since v0.3.0
*/
public final void setPrefixRepetitionRule(
Predicate<List<UnitPrefix>> prefixRepetitionRule) {
@@ -2169,6 +2192,7 @@ public final class UnitDatabase {
/**
* @return an unmodifiable map mapping names to unit sets
* @since 2024-08-16
+ * @since v1.0.0
*/
public Map<String, List<LinearUnit>> unitSetMap() {
return Collections.unmodifiableMap(this.unitSets);
diff --git a/src/main/java/sevenUnits/unit/UnitPrefix.java b/src/main/java/sevenUnits/unit/UnitPrefix.java
index 6ac9128..0fd3421 100644
--- a/src/main/java/sevenUnits/unit/UnitPrefix.java
+++ b/src/main/java/sevenUnits/unit/UnitPrefix.java
@@ -28,6 +28,7 @@ import sevenUnits.utils.Nameable;
*
* @author Adrien Hopkins
* @since 2019-10-16
+ * @since v0.3.0
*/
public final class UnitPrefix implements Nameable {
/**
@@ -36,6 +37,7 @@ public final class UnitPrefix implements Nameable {
* @param multiplier multiplier of prefix
* @return prefix
* @since 2019-10-16
+ * @since v0.3.0
*/
public static UnitPrefix valueOf(final double multiplier) {
return new UnitPrefix(multiplier, NameSymbol.EMPTY);
@@ -48,6 +50,7 @@ public final class UnitPrefix implements Nameable {
* @param ns name(s) and symbol of prefix
* @return prefix
* @since 2019-10-16
+ * @since v0.3.0
* @throws NullPointerException if ns is null
*/
public static UnitPrefix valueOf(final double multiplier,
@@ -60,6 +63,7 @@ public final class UnitPrefix implements Nameable {
* This prefix's name(s) and symbol.
*
* @since 2022-04-16
+ * @since v0.4.0
*/
private final NameSymbol nameSymbol;
@@ -67,6 +71,7 @@ public final class UnitPrefix implements Nameable {
* The number that this prefix multiplies units by
*
* @since 2019-10-16
+ * @since v0.3.0
*/
private final double multiplier;
@@ -88,6 +93,7 @@ public final class UnitPrefix implements Nameable {
* @param divisor number to divide by
* @return quotient of prefix and scalar
* @since 2019-10-16
+ * @since v0.3.0
*/
public UnitPrefix dividedBy(final double divisor) {
return valueOf(this.getMultiplier() / divisor);
@@ -143,6 +149,7 @@ public final class UnitPrefix implements Nameable {
/**
* @return prefix's multiplier
* @since 2019-11-26
+ * @since v0.3.0
*/
public double getMultiplier() {
return this.multiplier;
@@ -169,6 +176,7 @@ public final class UnitPrefix implements Nameable {
* @param multiplicand number to multiply by
* @return product of prefix and scalar
* @since 2019-10-16
+ * @since v0.3.0
*/
public UnitPrefix times(final double multiplicand) {
return valueOf(this.getMultiplier() * multiplicand);
@@ -180,6 +188,7 @@ public final class UnitPrefix implements Nameable {
* @return sum of prefixes
*
* @since 2024-03-03
+ * @since v0.5.0
*/
public UnitPrefix plus(final UnitPrefix other) {
return valueOf(this.getMultiplier() + other.getMultiplier());
@@ -191,6 +200,7 @@ public final class UnitPrefix implements Nameable {
* @return difference of prefixes
*
* @since 2024-03-03
+ * @since v0.5.0
*/
public UnitPrefix minus(final UnitPrefix other) {
return valueOf(this.getMultiplier() - other.getMultiplier());
@@ -239,6 +249,7 @@ public final class UnitPrefix implements Nameable {
* @param ns name(s) and symbol to use
* @return copy of this prefix with provided name(s) and symbol
* @since 2019-11-26
+ * @since v0.3.0
* @throws NullPointerException if ns is null
*/
public UnitPrefix withName(final NameSymbol ns) {
diff --git a/src/main/java/sevenUnits/unit/UnitType.java b/src/main/java/sevenUnits/unit/UnitType.java
index d445418..a331d3d 100644
--- a/src/main/java/sevenUnits/unit/UnitType.java
+++ b/src/main/java/sevenUnits/unit/UnitType.java
@@ -30,6 +30,7 @@ import java.util.function.Predicate;
* </ul>
*
* @since 2022-04-10
+ * @since v0.4.0
*/
public enum UnitType {
/** Units that pass {@link Unit#isMetric} */
@@ -51,6 +52,7 @@ public enum UnitType {
* @param isSemiMetric predicate to determine if a unit is semi-metric
* @return type of unit
* @since 2022-04-18
+ * @since v0.4.0
*/
public static final UnitType getType(Unit u, Predicate<Unit> isSemiMetric) {
if (isSemiMetric.test(u))
diff --git a/src/main/java/sevenUnits/unit/UnitValue.java b/src/main/java/sevenUnits/unit/UnitValue.java
index 97b7e54..4003c17 100644
--- a/src/main/java/sevenUnits/unit/UnitValue.java
+++ b/src/main/java/sevenUnits/unit/UnitValue.java
@@ -29,6 +29,7 @@ import sevenUnits.utils.NameSymbol;
*
* @author Adrien Hopkins
* @since 2020-07-26
+ * @since v0.3.0
*/
public final class UnitValue {
/**
@@ -59,6 +60,7 @@ public final class UnitValue {
* @param other unit to try to convert to
* @return true if this value can be converted to {@code other}.
* @since 2020-10-01
+ * @since v0.3.0
*/
public final boolean canConvertTo(Unit other) {
return this.unit.canConvertTo(other);
@@ -84,6 +86,7 @@ public final class UnitValue {
* needed.
* @return this unit as a {@link LinearUnitValue}
* @since 2020-09-29
+ * @since v0.3.0
*/
public final LinearUnitValue convertToBase(NameSymbol ns) {
final LinearUnit base = LinearUnit.getBase(this.unit).withName(ns);
@@ -95,6 +98,7 @@ public final class UnitValue {
* @return a {@code LinearUnitValue} that is equivalent to this value. It
* will have zero uncertainty.
* @since 2020-09-29
+ * @since v0.3.0
*/
public final LinearUnitValue convertToLinear(LinearUnit newUnit) {
return LinearUnitValue.getExact(newUnit,
@@ -121,6 +125,7 @@ public final class UnitValue {
/**
* @return the unit
* @since 2020-09-29
+ * @since v0.3.0
*/
public final Unit getUnit() {
return this.unit;
@@ -129,6 +134,7 @@ public final class UnitValue {
/**
* @return the value
* @since 2020-09-29
+ * @since v0.3.0
*/
public final double getValue() {
return this.value;