aboutsummaryrefslogtreecommitdiff
path: root/api
diff options
context:
space:
mode:
authorYang Song <songy23@users.noreply.github.com>2018-09-18 16:25:14 -0700
committerGitHub <noreply@github.com>2018-09-18 16:25:14 -0700
commit7da904c4e75d68eaf77ecaca59e82fa932251e0c (patch)
treefacb0f32924df0ad6d60a0d1cc54dc101c22efd7 /api
parent0a3fb9761fbc0d31e06a60dcb650c9e9a8d5f5f3 (diff)
downloadopencensus-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.java18
-rw-r--r--api/src/test/java/io/opencensus/common/FunctionsTest.java8
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);