summaryrefslogtreecommitdiff
path: root/src/main/java/sevenUnits/utils/NameSymbol.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/sevenUnits/utils/NameSymbol.java')
-rw-r--r--src/main/java/sevenUnits/utils/NameSymbol.java74
1 files changed, 35 insertions, 39 deletions
diff --git a/src/main/java/sevenUnits/utils/NameSymbol.java b/src/main/java/sevenUnits/utils/NameSymbol.java
index ebb1e8b..089978b 100644
--- a/src/main/java/sevenUnits/utils/NameSymbol.java
+++ b/src/main/java/sevenUnits/utils/NameSymbol.java
@@ -19,14 +19,13 @@ package sevenUnits.utils;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
/**
* A class that can be used to specify names and a symbol for a unit.
- *
+ *
* @author Adrien Hopkins
* @since 2019-10-21
* @since v0.3.0
@@ -39,16 +38,16 @@ public final class NameSymbol {
/**
* Creates a {@code NameSymbol}, ensuring that if primaryName is null and
* otherNames is not empty, one name is moved from otherNames to primaryName
- *
+ *
* Ensure that otherNames is not a copy of the inputted argument.
*/
- private static final NameSymbol create(final String name,
- final String symbol, final Set<String> otherNames) {
+ private static NameSymbol create(final String name, final String symbol,
+ final Set<String> otherNames) {
final Optional<String> primaryName;
if (name == null && !otherNames.isEmpty()) {
// get primary name and remove it from savedNames
- final Iterator<String> it = otherNames.iterator();
+ final var it = otherNames.iterator();
assert it.hasNext();
primaryName = Optional.of(it.next());
otherNames.remove(primaryName.get());
@@ -63,7 +62,7 @@ public final class NameSymbol {
/**
* Gets a {@code NameSymbol} with a primary name, a symbol and no other
* names.
- *
+ *
* @param name name to use
* @param symbol symbol to use
* @return NameSymbol instance
@@ -71,7 +70,7 @@ public final class NameSymbol {
* @since v0.3.0
* @throws NullPointerException if name or symbol is null
*/
- public static final NameSymbol of(final String name, final String symbol) {
+ public static NameSymbol of(final String name, final String symbol) {
return new NameSymbol(Optional.of(name), Optional.of(symbol),
new HashSet<>());
}
@@ -79,7 +78,7 @@ public final class NameSymbol {
/**
* Gets a {@code NameSymbol} with a primary name, a symbol and additional
* names.
- *
+ *
* @param name name to use
* @param symbol symbol to use
* @param otherNames other names to use
@@ -88,7 +87,7 @@ public final class NameSymbol {
* @since v0.3.0
* @throws NullPointerException if any argument is null
*/
- public static final NameSymbol of(final String name, final String symbol,
+ public static NameSymbol of(final String name, final String symbol,
final Set<String> otherNames) {
return new NameSymbol(Optional.of(name), Optional.of(symbol),
new HashSet<>(Objects.requireNonNull(otherNames,
@@ -98,7 +97,7 @@ public final class NameSymbol {
/**
* h * Gets a {@code NameSymbol} with a primary name, a symbol and additional
* names.
- *
+ *
* @param name name to use
* @param symbol symbol to use
* @param otherNames other names to use
@@ -117,14 +116,14 @@ public final class NameSymbol {
/**
* Gets a {@code NameSymbol} with a primary name, no symbol, and no other
* names.
- *
+ *
* @param name name to use
* @return NameSymbol instance
* @since 2019-10-21
* @since v0.3.0
* @throws NullPointerException if name is null
*/
- public static final NameSymbol ofName(final String name) {
+ public static NameSymbol ofName(final String name) {
return new NameSymbol(Optional.of(name), Optional.empty(),
new HashSet<>());
}
@@ -139,7 +138,7 @@ public final class NameSymbol {
* If {@code name} is null and {@code otherNames} is not empty, a primary
* name will be picked from {@code otherNames}. This name will not appear in
* getOtherNames().
- *
+ *
* @param name name to use
* @param symbol symbol to use
* @param otherNames other names to use
@@ -147,8 +146,8 @@ public final class NameSymbol {
* @since 2019-11-26
* @since v0.3.0
*/
- public static final NameSymbol ofNullable(final String name,
- final String symbol, final Set<String> otherNames) {
+ public static NameSymbol ofNullable(final String name, final String symbol,
+ final Set<String> otherNames) {
return NameSymbol.create(name, symbol,
otherNames == null ? new HashSet<>() : new HashSet<>(otherNames));
}
@@ -163,7 +162,7 @@ public final class NameSymbol {
* If {@code name} is null and {@code otherNames} is not empty, a primary
* name will be picked from {@code otherNames}. This name will not appear in
* getOtherNames().
- *
+ *
* @param name name to use
* @param symbol symbol to use
* @param otherNames other names to use
@@ -179,14 +178,14 @@ public final class NameSymbol {
/**
* Gets a {@code NameSymbol} with a symbol and no names.
- *
+ *
* @param symbol symbol to use
* @return NameSymbol instance
* @since 2019-10-21
* @since v0.3.0
* @throws NullPointerException if symbol is null
*/
- public static final NameSymbol ofSymbol(final String symbol) {
+ public static NameSymbol ofSymbol(final String symbol) {
return new NameSymbol(Optional.empty(), Optional.of(symbol),
new HashSet<>());
}
@@ -198,7 +197,7 @@ public final class NameSymbol {
/**
* Creates the {@code NameSymbol}.
- *
+ *
* @param primaryName primary name of unit
* @param symbol symbol used to represent unit
* @param otherNames other names and/or spellings, should be a mutable copy
@@ -206,8 +205,8 @@ public final class NameSymbol {
* @since 2019-10-21
* @since v0.3.0
*/
- NameSymbol(final Optional<String> primaryName,
- final Optional<String> symbol, final Set<String> otherNames) {
+ NameSymbol(final Optional<String> primaryName, final Optional<String> symbol,
+ final Set<String> otherNames) {
this.primaryName = primaryName;
this.symbol = symbol;
if (otherNames != null) {
@@ -228,7 +227,7 @@ public final class NameSymbol {
return true;
if (!(obj instanceof NameSymbol))
return false;
- final NameSymbol other = (NameSymbol) obj;
+ final var other = (NameSymbol) obj;
if (this.otherNames == null) {
if (other.otherNames != null)
return false;
@@ -252,7 +251,7 @@ public final class NameSymbol {
* @since 2019-10-21
* @since v0.3.0
*/
- public final Set<String> getOtherNames() {
+ public Set<String> getOtherNames() {
return this.otherNames;
}
@@ -261,7 +260,7 @@ public final class NameSymbol {
* @since 2019-10-21
* @since v0.3.0
*/
- public final Optional<String> getPrimaryName() {
+ public Optional<String> getPrimaryName() {
return this.primaryName;
}
@@ -270,14 +269,14 @@ public final class NameSymbol {
* @since 2019-10-21
* @since v0.3.0
*/
- public final Optional<String> getSymbol() {
+ public Optional<String> getSymbol() {
return this.symbol;
}
@Override
public int hashCode() {
- final int prime = 31;
- int result = 1;
+ final var prime = 31;
+ var result = 1;
result = prime * result
+ (this.otherNames == null ? 0 : this.otherNames.hashCode());
result = prime * result
@@ -287,10 +286,8 @@ public final class NameSymbol {
return result;
}
- /**
- * @return true iff this {@code NameSymbol} contains no names or symbols.
- */
- public final boolean isEmpty() {
+ /** @return true iff this {@code NameSymbol} contains no names or symbols. */
+ public boolean isEmpty() {
// if primaryName is empty, otherNames must also be empty
return this.primaryName.isEmpty() && this.symbol.isEmpty();
}
@@ -299,31 +296,30 @@ public final class NameSymbol {
public String toString() {
if (this.isEmpty())
return "NameSymbol.EMPTY";
- else if (this.primaryName.isPresent() && this.symbol.isPresent())
+ if (this.primaryName.isPresent() && this.symbol.isPresent())
return this.primaryName.orElseThrow() + " ("
+ this.symbol.orElseThrow() + ")";
- else
- return this.primaryName.orElseGet(this.symbol::orElseThrow);
+ return this.primaryName.orElseGet(this.symbol::orElseThrow);
}
/**
* Creates and returns a copy of this {@code NameSymbol} with the provided
* extra name. If this {@code NameSymbol} has a primary name, the provided
* name will become an other name, otherwise it will become the primary name.
- *
+ *
* @param name additional name to add
* @return copy of this NameSymbol with the additional name
*
* @since 2022-04-19
* @since v0.4.0
*/
- public final NameSymbol withExtraName(String name) {
+ public NameSymbol withExtraName(String name) {
if (this.primaryName.isPresent()) {
final var otherNames = new HashSet<>(this.otherNames);
otherNames.add(name);
return NameSymbol.ofNullable(this.primaryName.orElse(null),
this.symbol.orElse(null), otherNames);
- } else
- return NameSymbol.ofNullable(name, this.symbol.orElse(null));
+ }
+ return NameSymbol.ofNullable(name, this.symbol.orElse(null));
}
} \ No newline at end of file