summaryrefslogtreecommitdiff
path: root/src/main/java/sevenUnits/utils/ObjectProduct.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/sevenUnits/utils/ObjectProduct.java')
-rw-r--r--src/main/java/sevenUnits/utils/ObjectProduct.java15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/main/java/sevenUnits/utils/ObjectProduct.java b/src/main/java/sevenUnits/utils/ObjectProduct.java
index 5b1b739..d4f88b9 100644
--- a/src/main/java/sevenUnits/utils/ObjectProduct.java
+++ b/src/main/java/sevenUnits/utils/ObjectProduct.java
@@ -26,6 +26,8 @@ import java.util.Objects;
import java.util.Set;
import java.util.function.Function;
+import sevenUnits.unit.NameSymbol;
+
/**
* An immutable product of multiple objects of a type, such as base units. The
* objects can be multiplied and exponentiated.
@@ -33,7 +35,7 @@ import java.util.function.Function;
* @author Adrien Hopkins
* @since 2019-10-16
*/
-public final class ObjectProduct<T> {
+public class ObjectProduct<T> {
/**
* Returns an empty ObjectProduct of a certain type
*
@@ -88,7 +90,7 @@ public final class ObjectProduct<T> {
* @param exponents objects that make up this product
* @since 2019-10-16
*/
- private ObjectProduct(final Map<T, Integer> exponents) {
+ ObjectProduct(final Map<T, Integer> exponents) {
this.exponents = Collections.unmodifiableMap(
ConditionalExistenceCollections.conditionalExistenceMap(exponents,
e -> !Integer.valueOf(0).equals(e.getValue())));
@@ -280,4 +282,13 @@ public final class ObjectProduct<T> {
return positiveString + negativeString;
}
+
+ /**
+ * @return named version of this {@code ObjectProduct}, using data from
+ * {@code nameSymbol}
+ * @since 2021-12-15
+ */
+ public NamedObjectProduct<T> withName(NameSymbol nameSymbol) {
+ return new NamedObjectProduct<>(this.exponents, nameSymbol);
+ }
}