summaryrefslogtreecommitdiffstats
path: root/vespajlib
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2023-05-24 13:59:41 +0200
committerjonmv <venstad@gmail.com>2023-05-26 10:38:45 +0200
commitc0acd5dd6e3c560c6bd8ca0f2350e7021ec0f103 (patch)
tree59db73dca683d6b3109f2c1da5bb023abb1ec440 /vespajlib
parent5f0b4c0461d74738e4969e97563d4a7c962f2174 (diff)
SlimeUtils.isPresent
Diffstat (limited to 'vespajlib')
-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) {