summaryrefslogtreecommitdiffstats
path: root/vespajlib/src/main/java/com/yahoo/slime/SlimeUtils.java
diff options
context:
space:
mode:
Diffstat (limited to 'vespajlib/src/main/java/com/yahoo/slime/SlimeUtils.java')
-rw-r--r--vespajlib/src/main/java/com/yahoo/slime/SlimeUtils.java12
1 files changed, 8 insertions, 4 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/slime/SlimeUtils.java b/vespajlib/src/main/java/com/yahoo/slime/SlimeUtils.java
index 6acd0679da2..b08346f7cec 100644
--- a/vespajlib/src/main/java/com/yahoo/slime/SlimeUtils.java
+++ b/vespajlib/src/main/java/com/yahoo/slime/SlimeUtils.java
@@ -126,20 +126,24 @@ public class SlimeUtils {
return Duration.ofMillis(field.asLong());
}
+ public static boolean isPresent(Inspector field) {
+ return field.valid() && field.type() != Type.NIX;
+ }
+
public static Optional<String> optionalString(Inspector inspector) {
- return Optional.of(inspector.asString()).filter(s -> !s.isEmpty());
+ return Optional.of(inspector).filter(SlimeUtils::isPresent).map(Inspector::asString);
}
public static OptionalLong optionalLong(Inspector field) {
- return field.valid() ? OptionalLong.of(field.asLong()) : OptionalLong.empty();
+ return isPresent(field) ? OptionalLong.of(field.asLong()) : OptionalLong.empty();
}
public static OptionalInt optionalInteger(Inspector field) {
- return field.valid() ? OptionalInt.of((int) field.asLong()) : OptionalInt.empty();
+ return isPresent(field) ? OptionalInt.of((int) field.asLong()) : OptionalInt.empty();
}
public static OptionalDouble optionalDouble(Inspector field) {
- return field.valid() ? OptionalDouble.of(field.asDouble()) : OptionalDouble.empty();
+ return isPresent(field) ? OptionalDouble.of(field.asDouble()) : OptionalDouble.empty();
}
public static Optional<Instant> optionalInstant(Inspector field) {