summaryrefslogtreecommitdiff
path: root/src/main/java/bjc/funcdata/FunctionalMap.java
diff options
context:
space:
mode:
authorBen Culkin <scorpress@gmail.com>2020-11-21 22:53:56 -0500
committerBen Culkin <scorpress@gmail.com>2020-11-21 22:53:56 -0500
commit86ad50b4df6166c6f99b08d91d49fe59ee754619 (patch)
tree75465a1fa0a99b9c83026953b6a2ed0d736c0a93 /src/main/java/bjc/funcdata/FunctionalMap.java
parentc3954bbe63378324762a6cdd5caf363405340973 (diff)
Change IMap to use Optional, not exceptions
IMap now returns optionals, instead of throwing an exception
Diffstat (limited to 'src/main/java/bjc/funcdata/FunctionalMap.java')
-rw-r--r--src/main/java/bjc/funcdata/FunctionalMap.java16
1 files changed, 7 insertions, 9 deletions
diff --git a/src/main/java/bjc/funcdata/FunctionalMap.java b/src/main/java/bjc/funcdata/FunctionalMap.java
index 9836c98..3ab2598 100644
--- a/src/main/java/bjc/funcdata/FunctionalMap.java
+++ b/src/main/java/bjc/funcdata/FunctionalMap.java
@@ -73,16 +73,14 @@ public class FunctionalMap<KeyType, ValueType> implements IMap<KeyType, ValueTyp
}
@Override
- public ValueType get(final KeyType key) {
+ public Optional<ValueType> get(final KeyType key) {
if (key == null) throw new NullPointerException("Key must not be null");
- if (!wrappedMap.containsKey(key)) {
- final String msg = String.format("Key %s is not present in the map", key);
-
- throw new IllegalArgumentException(msg);
+ if (wrappedMap.containsKey(key)) {
+ return Optional.of(wrappedMap.get(key));
+ } else {
+ return Optional.empty();
}
-
- return wrappedMap.get(key);
}
@Override
@@ -138,8 +136,8 @@ public class FunctionalMap<KeyType, ValueType> implements IMap<KeyType, ValueTyp
if (wrappedMap == null) {
if (other.wrappedMap != null) return false;
} else if (!wrappedMap.equals(other.wrappedMap)) {
- return false;
- }
+ return false;
+ }
return true;
}