diff options
author | Yang Song <songy23@users.noreply.github.com> | 2018-09-18 16:25:14 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-18 16:25:14 -0700 |
commit | 7da904c4e75d68eaf77ecaca59e82fa932251e0c (patch) | |
tree | facb0f32924df0ad6d60a0d1cc54dc101c22efd7 /api | |
parent | 0a3fb9761fbc0d31e06a60dcb650c9e9a8d5f5f3 (diff) | |
download | opencensus-java-7da904c4e75d68eaf77ecaca59e82fa932251e0c.tar.gz |
Common: Add an API Functions.returnToString(). (#1443)
* Common: Add an API Functions.returnToString().
* Fix comments and add tests.
Diffstat (limited to 'api')
-rw-r--r-- | api/src/main/java/io/opencensus/common/Functions.java | 18 | ||||
-rw-r--r-- | api/src/test/java/io/opencensus/common/FunctionsTest.java | 8 |
2 files changed, 26 insertions, 0 deletions
diff --git a/api/src/main/java/io/opencensus/common/Functions.java b/api/src/main/java/io/opencensus/common/Functions.java index eb5984af..ea3457ca 100644 --- a/api/src/main/java/io/opencensus/common/Functions.java +++ b/api/src/main/java/io/opencensus/common/Functions.java @@ -53,6 +53,14 @@ public final class Functions { } }; + private static final Function<Object, /*@Nullable*/ String> RETURN_TO_STRING = + new Function<Object, /*@Nullable*/ String>() { + @Override + public /*@Nullable*/ String apply(Object input) { + return input == null ? null : input.toString(); + } + }; + /** * A {@code Function} that always ignores its argument and returns {@code null}. * @@ -82,6 +90,16 @@ public final class Functions { } /** + * A {@code Function} that always returns the {@link #toString()} value of the input. + * + * @return a {@code Function} that always returns the {@link #toString()} value of the input. + * @since 0.17 + */ + public static Function<Object, /*@Nullable*/ String> returnToString() { + return RETURN_TO_STRING; + } + + /** * A {@code Function} that always ignores its argument and throws an {@link * IllegalArgumentException}. * diff --git a/api/src/test/java/io/opencensus/common/FunctionsTest.java b/api/src/test/java/io/opencensus/common/FunctionsTest.java index e4d37569..55d58d4d 100644 --- a/api/src/test/java/io/opencensus/common/FunctionsTest.java +++ b/api/src/test/java/io/opencensus/common/FunctionsTest.java @@ -40,6 +40,14 @@ public class FunctionsTest { } @Test + public void testReturnToString() { + assertThat(Functions.returnToString().apply("input")).isEqualTo("input"); + assertThat(Functions.returnToString().apply(Boolean.FALSE)).isEqualTo("false"); + assertThat(Functions.returnToString().apply(Double.valueOf(123.45))).isEqualTo("123.45"); + assertThat(Functions.returnToString().apply(null)).isEqualTo(null); + } + + @Test public void testThrowIllegalArgumentException() { Function<Object, Void> f = Functions.throwIllegalArgumentException(); thrown.expect(IllegalArgumentException.class); |