summaryrefslogtreecommitdiff
path: root/src/main/java/bjc/funcdata/FunctionalMap.java
diff options
context:
space:
mode:
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;
}