diff options
Diffstat (limited to 'vespajlib/src/main/java/com/yahoo/slime/SlimeUtils.java')
-rw-r--r-- | vespajlib/src/main/java/com/yahoo/slime/SlimeUtils.java | 12 |
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) { |