diff options
author | Adrien Hopkins <adrien.p.hopkins@gmail.com> | 2024-03-24 13:25:22 -0500 |
---|---|---|
committer | Adrien Hopkins <adrien.p.hopkins@gmail.com> | 2024-03-24 13:25:22 -0500 |
commit | ed53492243ecad8d975401a97f5b634328ad2c71 (patch) | |
tree | 8a744f46320710355a02c9b2c371602ce69aefec /src/main/java/sevenUnits/unit/UnitPrefix.java | |
parent | c878761f737c90fc3fa1caedd48e2ee01637108f (diff) | |
parent | 91d51c3c49c4c0877483220ac0f12db4efab8f60 (diff) |
Release version 0.5.0 (merge into stable)
Diffstat (limited to 'src/main/java/sevenUnits/unit/UnitPrefix.java')
-rw-r--r-- | src/main/java/sevenUnits/unit/UnitPrefix.java | 48 |
1 files changed, 33 insertions, 15 deletions
diff --git a/src/main/java/sevenUnits/unit/UnitPrefix.java b/src/main/java/sevenUnits/unit/UnitPrefix.java index e1f7788..9035969 100644 --- a/src/main/java/sevenUnits/unit/UnitPrefix.java +++ b/src/main/java/sevenUnits/unit/UnitPrefix.java @@ -40,7 +40,7 @@ public final class UnitPrefix implements Nameable { public static UnitPrefix valueOf(final double multiplier) { return new UnitPrefix(multiplier, NameSymbol.EMPTY); } - + /** * Gets a {@code UnitPrefix} from a multiplier and a name * @@ -55,21 +55,21 @@ public final class UnitPrefix implements Nameable { return new UnitPrefix(multiplier, Objects.requireNonNull(ns, "ns must not be null.")); } - + /** * This prefix's name(s) and symbol. * * @since 2022-04-16 */ private final NameSymbol nameSymbol; - + /** * The number that this prefix multiplies units by * * @since 2019-10-16 */ private final double multiplier; - + /** * Creates the {@code DefaultUnitPrefix}. * @@ -81,7 +81,7 @@ public final class UnitPrefix implements Nameable { this.multiplier = multiplier; this.nameSymbol = ns; } - + /** * Divides this prefix by a scalar * @@ -92,7 +92,7 @@ public final class UnitPrefix implements Nameable { public UnitPrefix dividedBy(final double divisor) { return valueOf(this.getMultiplier() / divisor); } - + /** * Divides this prefix by {@code other}. * @@ -104,7 +104,7 @@ public final class UnitPrefix implements Nameable { public UnitPrefix dividedBy(final UnitPrefix other) { return valueOf(this.getMultiplier() / other.getMultiplier()); } - + /** * {@inheritDoc} * @@ -122,7 +122,7 @@ public final class UnitPrefix implements Nameable { return DecimalComparison.equals(this.getMultiplier(), other.getMultiplier()); } - + /** * @return prefix's multiplier * @since 2019-11-26 @@ -130,12 +130,12 @@ public final class UnitPrefix implements Nameable { public double getMultiplier() { return this.multiplier; } - + @Override public NameSymbol getNameSymbol() { return this.nameSymbol; } - + /** * {@inheritDoc} * @@ -145,7 +145,7 @@ public final class UnitPrefix implements Nameable { public int hashCode() { return DecimalComparison.hash(this.getMultiplier()); } - + /** * Multiplies this prefix by a scalar * @@ -156,7 +156,25 @@ public final class UnitPrefix implements Nameable { public UnitPrefix times(final double multiplicand) { return valueOf(this.getMultiplier() * multiplicand); } - + + /** + * Adds {@code other} to this prefix and returns the result. + * + * @since 2024-03-03 + */ + public UnitPrefix plus(final UnitPrefix other) { + return valueOf(this.getMultiplier() + other.getMultiplier()); + } + + /** + * Subtracts {@code other} from this prefix and returns the result. + * + * @since 2024-03-03 + */ + public UnitPrefix minus(final UnitPrefix other) { + return valueOf(this.getMultiplier() - other.getMultiplier()); + } + /** * Multiplies this prefix by {@code other}. * @@ -168,7 +186,7 @@ public final class UnitPrefix implements Nameable { public UnitPrefix times(final UnitPrefix other) { return valueOf(this.getMultiplier() * other.getMultiplier()); } - + /** * Raises this prefix to an exponent. * @@ -180,7 +198,7 @@ public final class UnitPrefix implements Nameable { public UnitPrefix toExponent(final double exponent) { return valueOf(Math.pow(this.getMultiplier(), exponent)); } - + /** * @return a string describing the prefix and its multiplier */ @@ -195,7 +213,7 @@ public final class UnitPrefix implements Nameable { else return String.format("Unit Prefix (\u00D7 %s)", this.multiplier); } - + /** * @param ns name(s) and symbol to use * @return copy of this prefix with provided name(s) and symbol |