diff options
author | Bogdan Drutu <bdrutu@google.com> | 2018-07-24 11:04:01 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-24 11:04:01 +0200 |
commit | b83ea423ea423af12478b2e0adb587125bd234e5 (patch) | |
tree | 65e7aa0298bdcc1758a1bac9ed18da4ba3ebd1d0 /contrib/zpages | |
parent | afea7a205f7d7e2edb63555d7a0b42a7fcaa2ccf (diff) | |
download | opencensus-java-b83ea423ea423af12478b2e0adb587125bd234e5.tar.gz |
Extract constant functions when used in match to reduce number of allocations. (#1336)
* Extract constant functions when used in match to reduce number of allocations.
* Fix names for non-constant functions. Fix deprecated warnings.
* Add more optimization and clean zipkin exporter.
* Use correct name format for RETURN_STRING.
* Fix formatting.
* Fix import for Nullable.
Diffstat (limited to 'contrib/zpages')
-rw-r--r-- | contrib/zpages/src/main/java/io/opencensus/contrib/zpages/TracezZPageHandler.java | 31 |
1 files changed, 13 insertions, 18 deletions
diff --git a/contrib/zpages/src/main/java/io/opencensus/contrib/zpages/TracezZPageHandler.java b/contrib/zpages/src/main/java/io/opencensus/contrib/zpages/TracezZPageHandler.java index b0cf579c..8c1aedae 100644 --- a/contrib/zpages/src/main/java/io/opencensus/contrib/zpages/TracezZPageHandler.java +++ b/contrib/zpages/src/main/java/io/opencensus/contrib/zpages/TracezZPageHandler.java @@ -672,27 +672,22 @@ final class TracezZPageHandler extends ZPageHandler { return stringBuilder.toString(); } + // The return type needs to be nullable when this function is used as an argument to 'match' in + // attributeValueToString, because 'match' doesn't allow covariant return types. + private static final Function<Object, /*@Nullable*/ String> returnToString = + new Function<Object, /*@Nullable*/ String>() { + @Override + public String apply(Object input) { + return input.toString(); + } + }; + @javax.annotation.Nullable private static String attributeValueToString(AttributeValue attributeValue) { return attributeValue.match( - new Function<String, /*@Nullable*/ String>() { - @Override - public String apply(String stringValue) { - return stringValue; - } - }, - new Function<Boolean, /*@Nullable*/ String>() { - @Override - public String apply(Boolean booleanValue) { - return booleanValue.toString(); - } - }, - new Function<Long, /*@Nullable*/ String>() { - @Override - public String apply(Long longValue) { - return longValue.toString(); - } - }, + returnToString, + returnToString, + returnToString, Functions.</*@Nullable*/ String>returnNull()); } |