OverrideValue { @SuppressWarnings("unchecked") public static <T> OverrideValue<T> unSet(final Class<T> type) { return (OverrideValue<T>) UNSET; } @JsonCreator  OverrideValue(final @JsonProperty("hasOverride") boolean hasOverride,
                  final @JsonProperty("value") T value); @SuppressWarnings("unchecked") static OverrideValue<T> unSet(final Class<T> type); @SuppressWarnings("unchecked") static OverrideValue<T> withNullValue(final Class<T> type); @SuppressWarnings("unchecked") static OverrideValue<T> with(final T value); boolean isHasOverride(); @JsonIgnore Optional<T> getValueAsOptional(); T getValueOrElse(final T other); T getValueOrElse(final T valueIfUnSet, final T valueIfNull); void ifOverridePresent(final Consumer<Optional<T>> consumer); @Override String toString(); @Override boolean equals(final Object o); @Override int hashCode();  }
@Test void testSerde_unset() throws IOException { doSerdeTest(OverrideValue.unSet(String.class), OverrideValue.class); }