diff options
author | Valerij Fredriksen <valerijf@verizonmedia.com> | 2019-09-04 11:14:18 +0200 |
---|---|---|
committer | Valerij Fredriksen <valerijf@verizonmedia.com> | 2019-09-05 14:01:04 +0200 |
commit | df7655fecc79c4ce19a57812063d534a38856f98 (patch) | |
tree | 26f41402e6767b23c21ab26a6ea7993948f105c2 /flags | |
parent | 1601854f90a31fae395ddd0bf0b01035aa219b96 (diff) |
Add defaultValue() to UnboundFlag
Diffstat (limited to 'flags')
3 files changed, 20 insertions, 15 deletions
diff --git a/flags/src/main/java/com/yahoo/vespa/flags/UnboundFlag.java b/flags/src/main/java/com/yahoo/vespa/flags/UnboundFlag.java index 28307536233..49335946a88 100644 --- a/flags/src/main/java/com/yahoo/vespa/flags/UnboundFlag.java +++ b/flags/src/main/java/com/yahoo/vespa/flags/UnboundFlag.java @@ -2,15 +2,13 @@ package com.yahoo.vespa.flags; /** - * @author hakonhall - */ - -/** * Interface of an unbound flag. * * @param <T> Type of boxed value, e.g. Integer * @param <F> Type of flag, e.g. IntFlag * @param <U> Type of unbound flag, e.g. UnboundIntFlag + * + * @author hakonhall */ public interface UnboundFlag<T, F extends Flag<T, F>, U extends UnboundFlag<T, F, U>> { /** The flag ID. */ @@ -24,4 +22,7 @@ public interface UnboundFlag<T, F extends Flag<T, F>, U extends UnboundFlag<T, F /** Binds to a flag source, returning a (bound) flag. */ F bindTo(FlagSource source); + + /** Returns the default value of the flag */ + T defaultValue(); } diff --git a/flags/src/main/java/com/yahoo/vespa/flags/UnboundFlagImpl.java b/flags/src/main/java/com/yahoo/vespa/flags/UnboundFlagImpl.java index 513712d8753..a2eb12b64b2 100644 --- a/flags/src/main/java/com/yahoo/vespa/flags/UnboundFlagImpl.java +++ b/flags/src/main/java/com/yahoo/vespa/flags/UnboundFlagImpl.java @@ -55,4 +55,9 @@ public abstract class UnboundFlagImpl<T, F extends Flag<T, F>, U extends Unbound public FlagSerializer<T> serializer() { return serializer; } + + @Override + public T defaultValue() { + return defaultValue; + } } diff --git a/flags/src/test/java/com/yahoo/vespa/flags/FlagsTest.java b/flags/src/test/java/com/yahoo/vespa/flags/FlagsTest.java index eccca6ccfde..284a4324a9e 100644 --- a/flags/src/test/java/com/yahoo/vespa/flags/FlagsTest.java +++ b/flags/src/test/java/com/yahoo/vespa/flags/FlagsTest.java @@ -7,8 +7,8 @@ import com.fasterxml.jackson.databind.node.BooleanNode; import org.junit.Test; import org.mockito.ArgumentCaptor; -import java.util.Arrays; -import java.util.Collections; +import java.util.List; +import java.util.Map; import java.util.Objects; import java.util.Optional; @@ -70,28 +70,27 @@ public class FlagsTest { public void testString() { testGeneric(Flags.defineStringFlag("string-id", "default value", "description", "modification effect", FetchVector.Dimension.ZONE_ID, FetchVector.Dimension.HOSTNAME), - "default value", "other value"); + "other value"); } @Test public void testInt() { - testGeneric(Flags.defineIntFlag("int-id", 2, "desc", "mod"), 2, 3); + testGeneric(Flags.defineIntFlag("int-id", 2, "desc", "mod"), 3); } @Test public void testLong() { - testGeneric(Flags.defineLongFlag("long-id", 1L, "desc", "mod"), 1L, 2L); + testGeneric(Flags.defineLongFlag("long-id", 1L, "desc", "mod"), 2L); } @Test public void testDouble() { - testGeneric(Flags.defineDoubleFlag("double-id", 3.142, "desc", "mod"), 3.142, 2.718); + testGeneric(Flags.defineDoubleFlag("double-id", 3.142, "desc", "mod"), 2.718); } @Test public void testList() { - testGeneric(Flags.defineListFlag("list-id", Collections.singletonList("a"), "desc", "mod"), - Collections.singletonList("a"), Arrays.asList("a", "b", "c")); + testGeneric(Flags.defineListFlag("list-id", List.of("a"), "desc", "mod"), List.of("a", "b", "c")); } @Test @@ -103,10 +102,10 @@ public class FlagsTest { testGeneric(Flags.defineJacksonFlag("jackson-id", defaultInstance, ExampleJacksonClass.class, "description", "modification effect", FetchVector.Dimension.HOSTNAME), - defaultInstance, instance); + instance); } - private <T> void testGeneric(UnboundFlag<T, ?, ?> unboundFlag, T defaultValue, T value) { + private <T> void testGeneric(UnboundFlag<T, ?, ?> unboundFlag, T value) { FlagSource source = mock(FlagSource.class); Flag<T, ?> flag = unboundFlag.bindTo(source); @@ -114,7 +113,7 @@ public class FlagsTest { .thenReturn(Optional.empty()) .thenReturn(Optional.of(flag.serializer().serialize(value))); - assertThat(flag.boxedValue(), equalTo(defaultValue)); + assertThat(flag.boxedValue(), equalTo(unboundFlag.defaultValue())); assertThat(flag.boxedValue(), equalTo(value)); assertTrue(Flags.getFlag(unboundFlag.id()).isPresent()); |