summaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/sevenUnits/converterGUI/DefaultPrefixRepetitionRule.java12
-rw-r--r--src/main/java/sevenUnits/converterGUI/SevenUnitsGUI.java36
-rw-r--r--src/main/java/sevenUnits/unit/BaseUnit.java2
-rw-r--r--src/main/java/sevenUnits/unit/BritishImperial.java22
-rw-r--r--src/main/java/sevenUnits/unit/FunctionalUnit.java2
-rw-r--r--src/main/java/sevenUnits/unit/FunctionalUnitlike.java2
-rw-r--r--src/main/java/sevenUnits/unit/LinearUnit.java6
-rw-r--r--src/main/java/sevenUnits/unit/LinearUnitValue.java6
-rw-r--r--src/main/java/sevenUnits/unit/Metric.java (renamed from src/main/java/sevenUnits/unit/SI.java)88
-rw-r--r--src/main/java/sevenUnits/unit/MultiUnit.java2
-rw-r--r--src/main/java/sevenUnits/unit/USCustomary.java8
-rw-r--r--src/main/java/sevenUnits/unit/Unit.java38
-rw-r--r--src/main/java/sevenUnits/unit/UnitDatabase.java18
-rw-r--r--src/main/java/sevenUnits/unit/UnitPrefix.java2
-rw-r--r--src/main/java/sevenUnits/unit/Unitlike.java2
-rw-r--r--src/main/java/sevenUnits/utils/ConditionalExistenceCollections.java (renamed from src/main/java/sevenUnits/math/ConditionalExistenceCollections.java)2
-rw-r--r--src/main/java/sevenUnits/utils/DecimalComparison.java (renamed from src/main/java/sevenUnits/math/DecimalComparison.java)2
-rw-r--r--src/main/java/sevenUnits/utils/ExpressionParser.java (renamed from src/main/java/sevenUnits/math/ExpressionParser.java)2
-rw-r--r--src/main/java/sevenUnits/utils/ObjectProduct.java (renamed from src/main/java/sevenUnits/math/ObjectProduct.java)2
-rw-r--r--src/main/java/sevenUnits/utils/UncertainDouble.java (renamed from src/main/java/sevenUnits/math/UncertainDouble.java)2
-rw-r--r--src/main/java/sevenUnits/utils/package-info.java (renamed from src/main/java/sevenUnits/math/package-info.java)7
21 files changed, 130 insertions, 133 deletions
diff --git a/src/main/java/sevenUnits/converterGUI/DefaultPrefixRepetitionRule.java b/src/main/java/sevenUnits/converterGUI/DefaultPrefixRepetitionRule.java
index 835651e..6b6abf0 100644
--- a/src/main/java/sevenUnits/converterGUI/DefaultPrefixRepetitionRule.java
+++ b/src/main/java/sevenUnits/converterGUI/DefaultPrefixRepetitionRule.java
@@ -6,7 +6,7 @@ package sevenUnits.converterGUI;
import java.util.List;
import java.util.function.Predicate;
-import sevenUnits.unit.SI;
+import sevenUnits.unit.Metric;
import sevenUnits.unit.UnitPrefix;
/**
@@ -49,7 +49,7 @@ enum DefaultPrefixRepetitionRule implements Predicate<List<UnitPrefix>> {
// if the first prefix is non-metric (including binary prefixes),
// assume we are using non-metric prefixes
// non-metric prefixes are allowed, but can't be repeated.
- if (!SI.DECIMAL_PREFIXES.contains(prefixes.get(0)))
+ if (!Metric.DECIMAL_PREFIXES.contains(prefixes.get(0)))
return NO_REPETITION.test(prefixes);
int part = 0; // 0=yotta/yoctos, 1=kilo-zetta/milli-zepto,
@@ -58,7 +58,7 @@ enum DefaultPrefixRepetitionRule implements Predicate<List<UnitPrefix>> {
for (final UnitPrefix prefix : prefixes) {
// check that the current prefix is metric and appropriately
// magnifying/reducing
- if (!SI.DECIMAL_PREFIXES.contains(prefix))
+ if (!Metric.DECIMAL_PREFIXES.contains(prefix))
return false;
if (magnifying != prefix.getMultiplier() > 1)
return false;
@@ -72,7 +72,7 @@ enum DefaultPrefixRepetitionRule implements Predicate<List<UnitPrefix>> {
break;
case 1:
// after a kilo-zetta, only deka/hecto are valid
- if (SI.THOUSAND_PREFIXES.contains(prefix))
+ if (Metric.THOUSAND_PREFIXES.contains(prefix))
return false;
break;
case 2:
@@ -81,9 +81,9 @@ enum DefaultPrefixRepetitionRule implements Predicate<List<UnitPrefix>> {
}
// set part
- if (SI.YOTTA.equals(prefix) || SI.YOCTO.equals(prefix)) {
+ if (Metric.YOTTA.equals(prefix) || Metric.YOCTO.equals(prefix)) {
part = 0;
- } else if (SI.THOUSAND_PREFIXES.contains(prefix)) {
+ } else if (Metric.THOUSAND_PREFIXES.contains(prefix)) {
part = 1;
} else {
part = 2;
diff --git a/src/main/java/sevenUnits/converterGUI/SevenUnitsGUI.java b/src/main/java/sevenUnits/converterGUI/SevenUnitsGUI.java
index fb498da..bfd5974 100644
--- a/src/main/java/sevenUnits/converterGUI/SevenUnitsGUI.java
+++ b/src/main/java/sevenUnits/converterGUI/SevenUnitsGUI.java
@@ -65,18 +65,18 @@ import javax.swing.WindowConstants;
import javax.swing.border.TitledBorder;
import sevenUnits.ProgramInfo;
-import sevenUnits.math.ConditionalExistenceCollections;
-import sevenUnits.math.ObjectProduct;
import sevenUnits.unit.BaseDimension;
import sevenUnits.unit.BritishImperial;
import sevenUnits.unit.LinearUnit;
import sevenUnits.unit.LinearUnitValue;
import sevenUnits.unit.NameSymbol;
-import sevenUnits.unit.SI;
+import sevenUnits.unit.Metric;
import sevenUnits.unit.Unit;
import sevenUnits.unit.UnitDatabase;
import sevenUnits.unit.UnitPrefix;
import sevenUnits.unit.UnitValue;
+import sevenUnits.utils.ConditionalExistenceCollections;
+import sevenUnits.utils.ObjectProduct;
/**
* @author Adrien Hopkins
@@ -110,25 +110,25 @@ final class SevenUnitsGUI {
* @since v0.2.0
*/
private static void addDefaults(final UnitDatabase database) {
- database.addUnit("metre", SI.METRE);
- database.addUnit("kilogram", SI.KILOGRAM);
- database.addUnit("gram", SI.KILOGRAM.dividedBy(1000));
- database.addUnit("second", SI.SECOND);
- database.addUnit("ampere", SI.AMPERE);
- database.addUnit("kelvin", SI.KELVIN);
- database.addUnit("mole", SI.MOLE);
- database.addUnit("candela", SI.CANDELA);
- database.addUnit("bit", SI.BIT);
- database.addUnit("unit", SI.ONE);
+ database.addUnit("metre", Metric.METRE);
+ database.addUnit("kilogram", Metric.KILOGRAM);
+ database.addUnit("gram", Metric.KILOGRAM.dividedBy(1000));
+ database.addUnit("second", Metric.SECOND);
+ database.addUnit("ampere", Metric.AMPERE);
+ database.addUnit("kelvin", Metric.KELVIN);
+ database.addUnit("mole", Metric.MOLE);
+ database.addUnit("candela", Metric.CANDELA);
+ database.addUnit("bit", Metric.BIT);
+ database.addUnit("unit", Metric.ONE);
// nonlinear units - must be loaded manually
- database.addUnit("tempCelsius", SI.CELSIUS);
+ database.addUnit("tempCelsius", Metric.CELSIUS);
database.addUnit("tempFahrenheit", BritishImperial.FAHRENHEIT);
// load initial dimensions
- database.addDimension("LENGTH", SI.Dimensions.LENGTH);
- database.addDimension("MASS", SI.Dimensions.MASS);
- database.addDimension("TIME", SI.Dimensions.TIME);
- database.addDimension("TEMPERATURE", SI.Dimensions.TEMPERATURE);
+ database.addDimension("LENGTH", Metric.Dimensions.LENGTH);
+ database.addDimension("MASS", Metric.Dimensions.MASS);
+ database.addDimension("TIME", Metric.Dimensions.TIME);
+ database.addDimension("TEMPERATURE", Metric.Dimensions.TEMPERATURE);
}
/**
diff --git a/src/main/java/sevenUnits/unit/BaseUnit.java b/src/main/java/sevenUnits/unit/BaseUnit.java
index b1e30fb..ee2c277 100644
--- a/src/main/java/sevenUnits/unit/BaseUnit.java
+++ b/src/main/java/sevenUnits/unit/BaseUnit.java
@@ -75,7 +75,7 @@ public final class BaseUnit extends Unit {
*/
private BaseUnit(final BaseDimension dimension, final String primaryName,
final String symbol, final Set<String> otherNames) {
- super(primaryName, symbol, otherNames);
+ super(NameSymbol.of(primaryName, symbol, otherNames));
this.dimension = Objects.requireNonNull(dimension,
"dimension must not be null.");
}
diff --git a/src/main/java/sevenUnits/unit/BritishImperial.java b/src/main/java/sevenUnits/unit/BritishImperial.java
index 63da7f0..81a3f2a 100644
--- a/src/main/java/sevenUnits/unit/BritishImperial.java
+++ b/src/main/java/sevenUnits/unit/BritishImperial.java
@@ -48,7 +48,7 @@ public final class BritishImperial {
/**
* According to the International Yard and Pound of 1959, a yard is defined as exactly 0.9144 metres.
*/
- public static final LinearUnit YARD = SI.METRE.times(0.9144);
+ public static final LinearUnit YARD = Metric.METRE.times(0.9144);
public static final LinearUnit FOOT = YARD.dividedBy(3);
public static final LinearUnit INCH = FOOT.dividedBy(12);
public static final LinearUnit THOU = INCH.dividedBy(1000);
@@ -57,7 +57,7 @@ public final class BritishImperial {
public static final LinearUnit MILE = FURLONG.times(8);
public static final LinearUnit LEAGUE = MILE.times(3);
- public static final LinearUnit NAUTICAL_MILE = SI.METRE.times(1852);
+ public static final LinearUnit NAUTICAL_MILE = Metric.METRE.times(1852);
public static final LinearUnit CABLE = NAUTICAL_MILE.dividedBy(10);
public static final LinearUnit FATHOM = CABLE.dividedBy(100);
@@ -72,7 +72,7 @@ public final class BritishImperial {
* @since 2019-11-08
*/
public static final class Mass {
- public static final LinearUnit POUND = SI.GRAM.times(453.59237);
+ public static final LinearUnit POUND = Metric.GRAM.times(453.59237);
public static final LinearUnit OUNCE = POUND.dividedBy(16);
public static final LinearUnit DRACHM = POUND.dividedBy(256);
public static final LinearUnit GRAIN = POUND.dividedBy(7000);
@@ -80,7 +80,7 @@ public final class BritishImperial {
public static final LinearUnit QUARTER = STONE.times(2);
public static final LinearUnit HUNDREDWEIGHT = QUARTER.times(4);
public static final LinearUnit LONG_TON = HUNDREDWEIGHT.times(20);
- public static final LinearUnit SLUG = SI.KILOGRAM.times(14.59390294);
+ public static final LinearUnit SLUG = Metric.KILOGRAM.times(14.59390294);
}
/**
@@ -90,7 +90,7 @@ public final class BritishImperial {
* @since 2019-11-08
*/
public static final class Volume {
- public static final LinearUnit FLUID_OUNCE = SI.LITRE.withPrefix(SI.MILLI).times(28.4130625);
+ public static final LinearUnit FLUID_OUNCE = Metric.LITRE.withPrefix(Metric.MILLI).times(28.4130625);
public static final LinearUnit GILL = FLUID_OUNCE.times(5);
public static final LinearUnit PINT = FLUID_OUNCE.times(20);
public static final LinearUnit QUART = PINT.times(2);
@@ -104,13 +104,13 @@ public final class BritishImperial {
public static final LinearUnit ACRE_FOOT = Area.ACRE.times(Length.FOOT);
}
- public static final LinearUnit OUNCE_FORCE = Mass.OUNCE.times(SI.Constants.EARTH_GRAVITY);
- public static final LinearUnit POUND_FORCE = Mass.POUND.times(SI.Constants.EARTH_GRAVITY);
+ public static final LinearUnit OUNCE_FORCE = Mass.OUNCE.times(Metric.Constants.EARTH_GRAVITY);
+ public static final LinearUnit POUND_FORCE = Mass.POUND.times(Metric.Constants.EARTH_GRAVITY);
- public static final LinearUnit BRITISH_THERMAL_UNIT = SI.JOULE.times(1055.06);
- public static final LinearUnit CALORIE = SI.JOULE.times(4.184);
- public static final LinearUnit KILOCALORIE = SI.JOULE.times(4184);
+ public static final LinearUnit BRITISH_THERMAL_UNIT = Metric.JOULE.times(1055.06);
+ public static final LinearUnit CALORIE = Metric.JOULE.times(4.184);
+ public static final LinearUnit KILOCALORIE = Metric.JOULE.times(4184);
- public static final Unit FAHRENHEIT = Unit.fromConversionFunctions(SI.KELVIN.getBase(),
+ public static final Unit FAHRENHEIT = Unit.fromConversionFunctions(Metric.KELVIN.getBase(),
tempK -> tempK * 1.8 - 459.67, tempF -> (tempF + 459.67) / 1.8);
}
diff --git a/src/main/java/sevenUnits/unit/FunctionalUnit.java b/src/main/java/sevenUnits/unit/FunctionalUnit.java
index 7bacc9d..df457e4 100644
--- a/src/main/java/sevenUnits/unit/FunctionalUnit.java
+++ b/src/main/java/sevenUnits/unit/FunctionalUnit.java
@@ -19,7 +19,7 @@ package sevenUnits.unit;
import java.util.Objects;
import java.util.function.DoubleUnaryOperator;
-import sevenUnits.math.ObjectProduct;
+import sevenUnits.utils.ObjectProduct;
/**
* A unit that uses functional objects to convert to and from its base.
diff --git a/src/main/java/sevenUnits/unit/FunctionalUnitlike.java b/src/main/java/sevenUnits/unit/FunctionalUnitlike.java
index 61503e8..2ee9e19 100644
--- a/src/main/java/sevenUnits/unit/FunctionalUnitlike.java
+++ b/src/main/java/sevenUnits/unit/FunctionalUnitlike.java
@@ -19,7 +19,7 @@ package sevenUnits.unit;
import java.util.function.DoubleFunction;
import java.util.function.ToDoubleFunction;
-import sevenUnits.math.ObjectProduct;
+import sevenUnits.utils.ObjectProduct;
/**
* A unitlike form that converts using two conversion functions.
diff --git a/src/main/java/sevenUnits/unit/LinearUnit.java b/src/main/java/sevenUnits/unit/LinearUnit.java
index 7c46443..25c2e2e 100644
--- a/src/main/java/sevenUnits/unit/LinearUnit.java
+++ b/src/main/java/sevenUnits/unit/LinearUnit.java
@@ -18,9 +18,9 @@ package sevenUnits.unit;
import java.util.Objects;
-import sevenUnits.math.DecimalComparison;
-import sevenUnits.math.ObjectProduct;
-import sevenUnits.math.UncertainDouble;
+import sevenUnits.utils.DecimalComparison;
+import sevenUnits.utils.ObjectProduct;
+import sevenUnits.utils.UncertainDouble;
/**
* A unit that can be expressed as a product of its base and a number. For
diff --git a/src/main/java/sevenUnits/unit/LinearUnitValue.java b/src/main/java/sevenUnits/unit/LinearUnitValue.java
index 687a8b4..a36d568 100644
--- a/src/main/java/sevenUnits/unit/LinearUnitValue.java
+++ b/src/main/java/sevenUnits/unit/LinearUnitValue.java
@@ -19,8 +19,8 @@ package sevenUnits.unit;
import java.util.Objects;
import java.util.Optional;
-import sevenUnits.math.DecimalComparison;
-import sevenUnits.math.UncertainDouble;
+import sevenUnits.utils.DecimalComparison;
+import sevenUnits.utils.UncertainDouble;
/**
* A possibly uncertain value expressed in a linear unit.
@@ -32,7 +32,7 @@ import sevenUnits.math.UncertainDouble;
* @since 2020-07-26
*/
public final class LinearUnitValue {
- public static final LinearUnitValue ONE = getExact(SI.ONE, 1);
+ public static final LinearUnitValue ONE = getExact(Metric.ONE, 1);
/**
* Gets an exact {@code LinearUnitValue}
diff --git a/src/main/java/sevenUnits/unit/SI.java b/src/main/java/sevenUnits/unit/Metric.java
index e0e5a54..3c4d291 100644
--- a/src/main/java/sevenUnits/unit/SI.java
+++ b/src/main/java/sevenUnits/unit/Metric.java
@@ -18,7 +18,7 @@ package sevenUnits.unit;
import java.util.Set;
-import sevenUnits.math.ObjectProduct;
+import sevenUnits.utils.ObjectProduct;
/**
* All of the units, prefixes and dimensions that are used by the SI, as well as
@@ -36,7 +36,7 @@ import sevenUnits.math.ObjectProduct;
* @author Adrien Hopkins
* @since 2019-10-16
*/
-public final class SI {
+public final class Metric {
/// dimensions used by SI units
// base dimensions, as BaseDimensions
public static final class BaseDimensions {
@@ -402,57 +402,57 @@ public final class SI {
.withName(NameSymbol.of("exbi", "Ei"));
// a few prefixed units
- public static final LinearUnit MICROMETRE = SI.METRE.withPrefix(SI.MICRO);
- public static final LinearUnit MILLIMETRE = SI.METRE.withPrefix(SI.MILLI);
- public static final LinearUnit KILOMETRE = SI.METRE.withPrefix(SI.KILO);
- public static final LinearUnit MEGAMETRE = SI.METRE.withPrefix(SI.MEGA);
+ public static final LinearUnit MICROMETRE = Metric.METRE.withPrefix(Metric.MICRO);
+ public static final LinearUnit MILLIMETRE = Metric.METRE.withPrefix(Metric.MILLI);
+ public static final LinearUnit KILOMETRE = Metric.METRE.withPrefix(Metric.KILO);
+ public static final LinearUnit MEGAMETRE = Metric.METRE.withPrefix(Metric.MEGA);
- public static final LinearUnit MICROLITRE = SI.LITRE.withPrefix(SI.MICRO);
- public static final LinearUnit MILLILITRE = SI.LITRE.withPrefix(SI.MILLI);
- public static final LinearUnit KILOLITRE = SI.LITRE.withPrefix(SI.KILO);
- public static final LinearUnit MEGALITRE = SI.LITRE.withPrefix(SI.MEGA);
+ public static final LinearUnit MICROLITRE = Metric.LITRE.withPrefix(Metric.MICRO);
+ public static final LinearUnit MILLILITRE = Metric.LITRE.withPrefix(Metric.MILLI);
+ public static final LinearUnit KILOLITRE = Metric.LITRE.withPrefix(Metric.KILO);
+ public static final LinearUnit MEGALITRE = Metric.LITRE.withPrefix(Metric.MEGA);
- public static final LinearUnit MICROSECOND = SI.SECOND.withPrefix(SI.MICRO);
- public static final LinearUnit MILLISECOND = SI.SECOND.withPrefix(SI.MILLI);
- public static final LinearUnit KILOSECOND = SI.SECOND.withPrefix(SI.KILO);
- public static final LinearUnit MEGASECOND = SI.SECOND.withPrefix(SI.MEGA);
+ public static final LinearUnit MICROSECOND = Metric.SECOND.withPrefix(Metric.MICRO);
+ public static final LinearUnit MILLISECOND = Metric.SECOND.withPrefix(Metric.MILLI);
+ public static final LinearUnit KILOSECOND = Metric.SECOND.withPrefix(Metric.KILO);
+ public static final LinearUnit MEGASECOND = Metric.SECOND.withPrefix(Metric.MEGA);
- public static final LinearUnit MICROGRAM = SI.GRAM.withPrefix(SI.MICRO);
- public static final LinearUnit MILLIGRAM = SI.GRAM.withPrefix(SI.MILLI);
- public static final LinearUnit MEGAGRAM = SI.GRAM.withPrefix(SI.MEGA);
+ public static final LinearUnit MICROGRAM = Metric.GRAM.withPrefix(Metric.MICRO);
+ public static final LinearUnit MILLIGRAM = Metric.GRAM.withPrefix(Metric.MILLI);
+ public static final LinearUnit MEGAGRAM = Metric.GRAM.withPrefix(Metric.MEGA);
- public static final LinearUnit MICRONEWTON = SI.NEWTON.withPrefix(SI.MICRO);
- public static final LinearUnit MILLINEWTON = SI.NEWTON.withPrefix(SI.MILLI);
- public static final LinearUnit KILONEWTON = SI.NEWTON.withPrefix(SI.KILO);
- public static final LinearUnit MEGANEWTON = SI.NEWTON.withPrefix(SI.MEGA);
+ public static final LinearUnit MICRONEWTON = Metric.NEWTON.withPrefix(Metric.MICRO);
+ public static final LinearUnit MILLINEWTON = Metric.NEWTON.withPrefix(Metric.MILLI);
+ public static final LinearUnit KILONEWTON = Metric.NEWTON.withPrefix(Metric.KILO);
+ public static final LinearUnit MEGANEWTON = Metric.NEWTON.withPrefix(Metric.MEGA);
- public static final LinearUnit MICROJOULE = SI.JOULE.withPrefix(SI.MICRO);
- public static final LinearUnit MILLIJOULE = SI.JOULE.withPrefix(SI.MILLI);
- public static final LinearUnit KILOJOULE = SI.JOULE.withPrefix(SI.KILO);
- public static final LinearUnit MEGAJOULE = SI.JOULE.withPrefix(SI.MEGA);
+ public static final LinearUnit MICROJOULE = Metric.JOULE.withPrefix(Metric.MICRO);
+ public static final LinearUnit MILLIJOULE = Metric.JOULE.withPrefix(Metric.MILLI);
+ public static final LinearUnit KILOJOULE = Metric.JOULE.withPrefix(Metric.KILO);
+ public static final LinearUnit MEGAJOULE = Metric.JOULE.withPrefix(Metric.MEGA);
- public static final LinearUnit MICROWATT = SI.WATT.withPrefix(SI.MICRO);
- public static final LinearUnit MILLIWATT = SI.WATT.withPrefix(SI.MILLI);
- public static final LinearUnit KILOWATT = SI.WATT.withPrefix(SI.KILO);
- public static final LinearUnit MEGAWATT = SI.WATT.withPrefix(SI.MEGA);
+ public static final LinearUnit MICROWATT = Metric.WATT.withPrefix(Metric.MICRO);
+ public static final LinearUnit MILLIWATT = Metric.WATT.withPrefix(Metric.MILLI);
+ public static final LinearUnit KILOWATT = Metric.WATT.withPrefix(Metric.KILO);
+ public static final LinearUnit MEGAWATT = Metric.WATT.withPrefix(Metric.MEGA);
- public static final LinearUnit MICROCOULOMB = SI.COULOMB
- .withPrefix(SI.MICRO);
- public static final LinearUnit MILLICOULOMB = SI.COULOMB
- .withPrefix(SI.MILLI);
- public static final LinearUnit KILOCOULOMB = SI.COULOMB.withPrefix(SI.KILO);
- public static final LinearUnit MEGACOULOMB = SI.COULOMB.withPrefix(SI.MEGA);
+ public static final LinearUnit MICROCOULOMB = Metric.COULOMB
+ .withPrefix(Metric.MICRO);
+ public static final LinearUnit MILLICOULOMB = Metric.COULOMB
+ .withPrefix(Metric.MILLI);
+ public static final LinearUnit KILOCOULOMB = Metric.COULOMB.withPrefix(Metric.KILO);
+ public static final LinearUnit MEGACOULOMB = Metric.COULOMB.withPrefix(Metric.MEGA);
- public static final LinearUnit MICROAMPERE = SI.AMPERE.withPrefix(SI.MICRO);
- public static final LinearUnit MILLIAMPERE = SI.AMPERE.withPrefix(SI.MILLI);
+ public static final LinearUnit MICROAMPERE = Metric.AMPERE.withPrefix(Metric.MICRO);
+ public static final LinearUnit MILLIAMPERE = Metric.AMPERE.withPrefix(Metric.MILLI);
- public static final LinearUnit MICROVOLT = SI.VOLT.withPrefix(SI.MICRO);
- public static final LinearUnit MILLIVOLT = SI.VOLT.withPrefix(SI.MILLI);
- public static final LinearUnit KILOVOLT = SI.VOLT.withPrefix(SI.KILO);
- public static final LinearUnit MEGAVOLT = SI.VOLT.withPrefix(SI.MEGA);
+ public static final LinearUnit MICROVOLT = Metric.VOLT.withPrefix(Metric.MICRO);
+ public static final LinearUnit MILLIVOLT = Metric.VOLT.withPrefix(Metric.MILLI);
+ public static final LinearUnit KILOVOLT = Metric.VOLT.withPrefix(Metric.KILO);
+ public static final LinearUnit MEGAVOLT = Metric.VOLT.withPrefix(Metric.MEGA);
- public static final LinearUnit KILOOHM = SI.OHM.withPrefix(SI.KILO);
- public static final LinearUnit MEGAOHM = SI.OHM.withPrefix(SI.MEGA);
+ public static final LinearUnit KILOOHM = Metric.OHM.withPrefix(Metric.KILO);
+ public static final LinearUnit MEGAOHM = Metric.OHM.withPrefix(Metric.MEGA);
// sets of prefixes
public static final Set<UnitPrefix> ALL_PREFIXES = Set.of(DEKA, HECTO, KILO,
@@ -473,7 +473,7 @@ public final class SI {
MILLI, MICRO, NANO, PICO, FEMTO, ATTO, ZEPTO, YOCTO);
// You may NOT get SI instances!
- private SI() {
+ private Metric() {
throw new AssertionError();
}
}
diff --git a/src/main/java/sevenUnits/unit/MultiUnit.java b/src/main/java/sevenUnits/unit/MultiUnit.java
index 014e055..83cdb03 100644
--- a/src/main/java/sevenUnits/unit/MultiUnit.java
+++ b/src/main/java/sevenUnits/unit/MultiUnit.java
@@ -20,7 +20,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import sevenUnits.math.ObjectProduct;
+import sevenUnits.utils.ObjectProduct;
/**
* A combination of units, like "5 foot + 7 inch". All but the last units should
diff --git a/src/main/java/sevenUnits/unit/USCustomary.java b/src/main/java/sevenUnits/unit/USCustomary.java
index 76356c0..459071f 100644
--- a/src/main/java/sevenUnits/unit/USCustomary.java
+++ b/src/main/java/sevenUnits/unit/USCustomary.java
@@ -52,7 +52,7 @@ public final class USCustomary {
public static final LinearUnit YARD = BritishImperial.Length.YARD;
public static final LinearUnit MILE = BritishImperial.Length.MILE;
- public static final LinearUnit SURVEY_FOOT = SI.METRE.times(1200.0 / 3937.0);
+ public static final LinearUnit SURVEY_FOOT = Metric.METRE.times(1200.0 / 3937.0);
public static final LinearUnit SURVEY_LINK = SURVEY_FOOT.times(33.0 / 50.0);
public static final LinearUnit SURVEY_ROD = SURVEY_FOOT.times(16.5);
public static final LinearUnit SURVEY_CHAIN = SURVEY_ROD.times(4);
@@ -97,7 +97,7 @@ public final class USCustomary {
public static final LinearUnit CUBIC_YARD = Length.YARD.toExponent(3);
public static final LinearUnit ACRE_FOOT = Area.ACRE.times(Length.FOOT);
- public static final LinearUnit MINIM = SI.LITRE.withPrefix(SI.MICRO).times(61.611519921875);
+ public static final LinearUnit MINIM = Metric.LITRE.withPrefix(Metric.MICRO).times(61.611519921875);
public static final LinearUnit FLUID_DRAM = MINIM.times(60);
public static final LinearUnit TEASPOON = MINIM.times(80);
public static final LinearUnit TABLESPOON = TEASPOON.times(3);
@@ -112,7 +112,7 @@ public final class USCustomary {
public static final LinearUnit OIL_BARREL = GALLON.times(42);
public static final LinearUnit HOGSHEAD = GALLON.times(63);
- public static final LinearUnit DRY_PINT = SI.LITRE.times(0.5506104713575);
+ public static final LinearUnit DRY_PINT = Metric.LITRE.times(0.5506104713575);
public static final LinearUnit DRY_QUART = DRY_PINT.times(2);
public static final LinearUnit DRY_GALLON = DRY_QUART.times(4);
public static final LinearUnit PECK = DRY_GALLON.times(2);
@@ -128,7 +128,7 @@ public final class USCustomary {
public static final LinearUnit KILOCALORIE = BritishImperial.KILOCALORIE;
public static final LinearUnit FOOT_POUND = POUND_FORCE.times(Length.FOOT);
- public static final LinearUnit HORSEPOWER = Length.FOOT.times(POUND_FORCE).dividedBy(SI.MINUTE).times(33000);
+ public static final LinearUnit HORSEPOWER = Length.FOOT.times(POUND_FORCE).dividedBy(Metric.MINUTE).times(33000);
public static final LinearUnit POUND_PER_SQUARE_INCH = POUND_FORCE.dividedBy(Length.INCH.toExponent(2));
public static final Unit FAHRENHEIT = BritishImperial.FAHRENHEIT;
diff --git a/src/main/java/sevenUnits/unit/Unit.java b/src/main/java/sevenUnits/unit/Unit.java
index 1e875af..005b6f7 100644
--- a/src/main/java/sevenUnits/unit/Unit.java
+++ b/src/main/java/sevenUnits/unit/Unit.java
@@ -17,14 +17,12 @@
package sevenUnits.unit;
import java.util.HashMap;
-import java.util.HashSet;
import java.util.Map;
import java.util.Objects;
-import java.util.Set;
import java.util.function.DoubleUnaryOperator;
-import sevenUnits.math.DecimalComparison;
-import sevenUnits.math.ObjectProduct;
+import sevenUnits.utils.DecimalComparison;
+import sevenUnits.utils.ObjectProduct;
/**
* A unit that is composed of base units.
@@ -110,6 +108,19 @@ public abstract class Unit implements Nameable {
private transient ObjectProduct<BaseDimension> dimension = null;
/**
+ * A constructor that constructs {@code BaseUnit} instances.
+ *
+ * @since 2019-10-16
+ */
+ Unit(final NameSymbol nameSymbol) {
+ if (this instanceof BaseUnit) {
+ this.unitBase = ObjectProduct.oneOf((BaseUnit) this);
+ } else
+ throw new AssertionError();
+ this.nameSymbol = nameSymbol;
+ }
+
+ /**
* Creates the {@code Unit}.
*
* @param unitBase base of unit
@@ -117,28 +128,13 @@ public abstract class Unit implements Nameable {
* @since 2019-10-16
* @throws NullPointerException if unitBase or ns is null
*/
- Unit(ObjectProduct<BaseUnit> unitBase, NameSymbol ns) {
+ protected Unit(ObjectProduct<BaseUnit> unitBase, NameSymbol ns) {
this.unitBase = Objects.requireNonNull(unitBase,
"unitBase may not be null");
this.nameSymbol = Objects.requireNonNull(ns, "ns may not be null");
}
/**
- * A constructor that constructs {@code BaseUnit} instances.
- *
- * @since 2019-10-16
- */
- Unit(final String primaryName, final String symbol,
- final Set<String> otherNames) {
- if (this instanceof BaseUnit) {
- this.unitBase = ObjectProduct.oneOf((BaseUnit) this);
- } else
- throw new AssertionError();
- this.nameSymbol = NameSymbol.of(primaryName, symbol,
- new HashSet<>(otherNames));
- }
-
- /**
* @return this unit as a {@link Unitlike}
* @since 2020-09-07
*/
@@ -342,7 +338,7 @@ public abstract class Unit implements Nameable {
// second condition - check that
for (final BaseUnit b : linear.getBase().getBaseSet()) {
- if (!SI.BaseUnits.BASE_UNITS.contains(b))
+ if (!Metric.BaseUnits.BASE_UNITS.contains(b))
return false;
}
diff --git a/src/main/java/sevenUnits/unit/UnitDatabase.java b/src/main/java/sevenUnits/unit/UnitDatabase.java
index 1960229..b45d9cf 100644
--- a/src/main/java/sevenUnits/unit/UnitDatabase.java
+++ b/src/main/java/sevenUnits/unit/UnitDatabase.java
@@ -44,11 +44,11 @@ import java.util.function.Predicate;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import sevenUnits.math.ConditionalExistenceCollections;
-import sevenUnits.math.DecimalComparison;
-import sevenUnits.math.ExpressionParser;
-import sevenUnits.math.ObjectProduct;
-import sevenUnits.math.UncertainDouble;
+import sevenUnits.utils.ConditionalExistenceCollections;
+import sevenUnits.utils.DecimalComparison;
+import sevenUnits.utils.ExpressionParser;
+import sevenUnits.utils.ObjectProduct;
+import sevenUnits.utils.UncertainDouble;
/**
* A database of units, prefixes and dimensions, and their names.
@@ -1116,7 +1116,7 @@ public final class UnitDatabase {
private static final LinearUnit exponentiateUnits(final LinearUnit base,
final LinearUnit exponentUnit) {
// exponent function - first check if o2 is a number,
- if (exponentUnit.getBase().equals(SI.ONE.getBase())) {
+ if (exponentUnit.getBase().equals(Metric.ONE.getBase())) {
// then check if it is an integer,
final double exponent = exponentUnit.getConversionFactor();
if (DecimalComparison.equals(exponent % 1, 0))
@@ -1142,7 +1142,7 @@ public final class UnitDatabase {
private static final LinearUnitValue exponentiateUnitValues(
final LinearUnitValue base, final LinearUnitValue exponentValue) {
// exponent function - first check if o2 is a number,
- if (exponentValue.canConvertTo(SI.ONE)) {
+ if (exponentValue.canConvertTo(Metric.ONE)) {
// then check if it is an integer,
final double exponent = exponentValue.getValueExact();
if (DecimalComparison.equals(exponent % 1, 0))
@@ -1676,7 +1676,7 @@ public final class UnitDatabase {
final BigDecimal number = new BigDecimal(name);
final double uncertainty = Math.pow(10, -number.scale());
- return LinearUnitValue.of(SI.ONE,
+ return LinearUnitValue.of(Metric.ONE,
UncertainDouble.of(number.doubleValue(), uncertainty));
} catch (final NumberFormatException e) {
return LinearUnitValue.getExact(this.getLinearUnit(name), 1);
@@ -1786,7 +1786,7 @@ public final class UnitDatabase {
public Unit getUnit(final String name) {
try {
final double value = Double.parseDouble(name);
- return SI.ONE.times(value);
+ return Metric.ONE.times(value);
} catch (final NumberFormatException e) {
final Unit unit = this.units.get(name);
if (unit == null)
diff --git a/src/main/java/sevenUnits/unit/UnitPrefix.java b/src/main/java/sevenUnits/unit/UnitPrefix.java
index e4a27bd..308f4b0 100644
--- a/src/main/java/sevenUnits/unit/UnitPrefix.java
+++ b/src/main/java/sevenUnits/unit/UnitPrefix.java
@@ -20,7 +20,7 @@ import java.util.Objects;
import java.util.Optional;
import java.util.Set;
-import sevenUnits.math.DecimalComparison;
+import sevenUnits.utils.DecimalComparison;
/**
* A prefix that can be applied to a {@code LinearUnit} to multiply it by some value
diff --git a/src/main/java/sevenUnits/unit/Unitlike.java b/src/main/java/sevenUnits/unit/Unitlike.java
index fd361b6..d2dcbbb 100644
--- a/src/main/java/sevenUnits/unit/Unitlike.java
+++ b/src/main/java/sevenUnits/unit/Unitlike.java
@@ -22,7 +22,7 @@ import java.util.Objects;
import java.util.function.DoubleFunction;
import java.util.function.ToDoubleFunction;
-import sevenUnits.math.ObjectProduct;
+import sevenUnits.utils.ObjectProduct;
/**
* An object that can convert a value between multiple forms (instances of the
diff --git a/src/main/java/sevenUnits/math/ConditionalExistenceCollections.java b/src/main/java/sevenUnits/utils/ConditionalExistenceCollections.java
index 5ce1bd7..2adb579 100644
--- a/src/main/java/sevenUnits/math/ConditionalExistenceCollections.java
+++ b/src/main/java/sevenUnits/utils/ConditionalExistenceCollections.java
@@ -14,7 +14,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-package sevenUnits.math;
+package sevenUnits.utils;
import java.util.AbstractCollection;
import java.util.AbstractMap;
diff --git a/src/main/java/sevenUnits/math/DecimalComparison.java b/src/main/java/sevenUnits/utils/DecimalComparison.java
index 24a9b2f..a5cbbaa 100644
--- a/src/main/java/sevenUnits/math/DecimalComparison.java
+++ b/src/main/java/sevenUnits/utils/DecimalComparison.java
@@ -14,7 +14,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-package sevenUnits.math;
+package sevenUnits.utils;
import java.math.BigDecimal;
diff --git a/src/main/java/sevenUnits/math/ExpressionParser.java b/src/main/java/sevenUnits/utils/ExpressionParser.java
index 5c8183b..1d3d44d 100644
--- a/src/main/java/sevenUnits/math/ExpressionParser.java
+++ b/src/main/java/sevenUnits/utils/ExpressionParser.java
@@ -14,7 +14,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-package sevenUnits.math;
+package sevenUnits.utils;
import java.util.ArrayDeque;
import java.util.ArrayList;
diff --git a/src/main/java/sevenUnits/math/ObjectProduct.java b/src/main/java/sevenUnits/utils/ObjectProduct.java
index db95fd4..1dacb7d 100644
--- a/src/main/java/sevenUnits/math/ObjectProduct.java
+++ b/src/main/java/sevenUnits/utils/ObjectProduct.java
@@ -14,7 +14,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-package sevenUnits.math;
+package sevenUnits.utils;
import java.util.ArrayList;
import java.util.Collections;
diff --git a/src/main/java/sevenUnits/math/UncertainDouble.java b/src/main/java/sevenUnits/utils/UncertainDouble.java
index b81bb79..8fe4b31 100644
--- a/src/main/java/sevenUnits/math/UncertainDouble.java
+++ b/src/main/java/sevenUnits/utils/UncertainDouble.java
@@ -14,7 +14,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-package sevenUnits.math;
+package sevenUnits.utils;
import java.math.BigDecimal;
import java.math.RoundingMode;
diff --git a/src/main/java/sevenUnits/math/package-info.java b/src/main/java/sevenUnits/utils/package-info.java
index 62f72cd..350c62d 100644
--- a/src/main/java/sevenUnits/math/package-info.java
+++ b/src/main/java/sevenUnits/utils/package-info.java
@@ -1,5 +1,5 @@
/**
- * Copyright (C) 2019 Adrien Hopkins
+ * Copyright (C) 2018-2020 Adrien Hopkins
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
@@ -15,10 +15,11 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
/**
- * Supplementary classes that are not related to units, but are necessary for their function.
+ * Supplementary classes that are not related to units, but are necessary for
+ * their function.
*
* @author Adrien Hopkins
* @since 2019-03-14
* @since v0.2.0
*/
-package sevenUnits.math; \ No newline at end of file
+package sevenUnits.utils; \ No newline at end of file