summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorAdrien Hopkins <ahopk127@my.yorku.ca>2022-03-10 06:55:59 -0500
committerAdrien Hopkins <ahopk127@my.yorku.ca>2022-03-10 06:55:59 -0500
commitc5b209d48ef38b733e3fd8fd8ef86ae13a552821 (patch)
treeac3a3b2269a517fe4bae2db213460ff9ed7d4f73 /src/main/java
parent934213e08e85cc20bd994d0f39567426c21b89eb (diff)
Simplified toString of common unit classes
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/sevenUnits/unit/LinearUnit.java20
-rw-r--r--src/main/java/sevenUnits/unit/Unit.java36
-rw-r--r--src/main/java/sevenUnits/utils/NamedObjectProduct.java6
-rw-r--r--src/main/java/sevenUnitsGUI/TabbedView.java2
4 files changed, 40 insertions, 24 deletions
diff --git a/src/main/java/sevenUnits/unit/LinearUnit.java b/src/main/java/sevenUnits/unit/LinearUnit.java
index deefc9a..3a28261 100644
--- a/src/main/java/sevenUnits/unit/LinearUnit.java
+++ b/src/main/java/sevenUnits/unit/LinearUnit.java
@@ -370,6 +370,12 @@ public final class LinearUnit extends Unit {
this.getConversionFactor() * multiplier.getConversionFactor());
}
+ @Override
+ public String toDefinitionString() {
+ return Double.toString(this.conversionFactor) + " "
+ + this.getBase().toString(BaseUnit::getShortName);
+ }
+
/**
* Returns this unit but to an exponent.
*
@@ -383,20 +389,6 @@ public final class LinearUnit extends Unit {
Math.pow(this.conversionFactor, exponent));
}
- /**
- * @return a string providing a definition of this unit
- * @since 2019-10-21
- */
- @Override
- public String toString() {
- return this.getPrimaryName().orElse("Unnamed unit")
- + (this.getSymbol().isPresent()
- ? String.format(" (%s)", this.getSymbol().get())
- : "")
- + ", " + Double.toString(this.conversionFactor) + " * "
- + this.getBase().toString(u -> u.getSymbol().get());
- }
-
@Override
public LinearUnit withName(final NameSymbol ns) {
return valueOf(this.getBase(), this.getConversionFactor(), ns);
diff --git a/src/main/java/sevenUnits/unit/Unit.java b/src/main/java/sevenUnits/unit/Unit.java
index 9866e9c..b80ccbd 100644
--- a/src/main/java/sevenUnits/unit/Unit.java
+++ b/src/main/java/sevenUnits/unit/Unit.java
@@ -24,6 +24,7 @@ import java.util.function.DoubleUnaryOperator;
import sevenUnits.utils.DecimalComparison;
import sevenUnits.utils.NameSymbol;
import sevenUnits.utils.Nameable;
+import sevenUnits.utils.NamedObjectProduct;
import sevenUnits.utils.ObjectProduct;
/**
@@ -349,16 +350,35 @@ public abstract class Unit implements Nameable {
.equals(Math.log10(linear.getConversionFactor()) % 1.0, 0);
}
+ /**
+ * @return a string representing this unit's definition
+ * @since 2022-03-10
+ */
+ public String toDefinitionString() {
+ if (this.unitBase instanceof NamedObjectProduct)
+ return "derived from "
+ + ((NamedObjectProduct<?>) this.unitBase).getName();
+ else
+ return "derived from "
+ + this.getBase().toString(BaseUnit::getShortName);
+ }
+
+ /**
+ * @return a string containing both this unit's name and its definition
+ * @since 2022-03-10
+ */
+ public final String toFullString() {
+ return this.toString() + " (" + this.toDefinitionString() + ")";
+ }
+
@Override
public String toString() {
- return this.getPrimaryName().orElse("Unnamed unit")
- + (this.getSymbol().isPresent()
- ? String.format(" (%s)", this.getSymbol().get())
- : "")
- + ", derived from "
- + this.getBase().toString(u -> u.getSymbol().get())
- + (this.getOtherNames().isEmpty() ? ""
- : ", also called " + String.join(", ", this.getOtherNames()));
+ if (this.nameSymbol.getPrimaryName().isPresent()
+ && this.nameSymbol.getSymbol().isPresent())
+ return this.nameSymbol.getPrimaryName().orElseThrow() + " ("
+ + this.nameSymbol.getSymbol().orElseThrow() + ")";
+ else
+ return this.getName();
}
/**
diff --git a/src/main/java/sevenUnits/utils/NamedObjectProduct.java b/src/main/java/sevenUnits/utils/NamedObjectProduct.java
index 9c3079c..89b2fad 100644
--- a/src/main/java/sevenUnits/utils/NamedObjectProduct.java
+++ b/src/main/java/sevenUnits/utils/NamedObjectProduct.java
@@ -40,8 +40,12 @@ public class NamedObjectProduct<T> extends ObjectProduct<T>
return this.nameSymbol;
}
+ public final String toDefinitionString() {
+ return super.toString();
+ }
+
@Override
public String toString() {
- return this.nameSymbol.toString() + ", " + super.toString();
+ return this.nameSymbol.toString();
}
}
diff --git a/src/main/java/sevenUnitsGUI/TabbedView.java b/src/main/java/sevenUnitsGUI/TabbedView.java
index 1d40087..0461cb6 100644
--- a/src/main/java/sevenUnitsGUI/TabbedView.java
+++ b/src/main/java/sevenUnitsGUI/TabbedView.java
@@ -71,7 +71,7 @@ import sevenUnits.utils.ObjectProduct;
*/
final class TabbedView implements ExpressionConversionView, UnitConversionView {
/**
- * A List-like view of a JComboBox's items
+ * A Set-like view of a JComboBox's items
*
* @param <E> type of item in list
*