From be226aa99c20e15fc04142ece842dbe0f1eedc10 Mon Sep 17 00:00:00 2001 From: Chengyuan Zhang Date: Wed, 21 Aug 2019 09:55:48 -0700 Subject: [PATCH] cronet: add getter for retrieving grpc cronet annotations in calloptions. (#6086) --- .../io/grpc/cronet/InternalCronetCallOptions.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/cronet/src/main/java/io/grpc/cronet/InternalCronetCallOptions.java b/cronet/src/main/java/io/grpc/cronet/InternalCronetCallOptions.java index 321354f1a9..e7c4144e63 100644 --- a/cronet/src/main/java/io/grpc/cronet/InternalCronetCallOptions.java +++ b/cronet/src/main/java/io/grpc/cronet/InternalCronetCallOptions.java @@ -18,6 +18,8 @@ package io.grpc.cronet; import io.grpc.CallOptions; import io.grpc.Internal; +import java.util.Collection; +import java.util.Collections; /** * Internal accessor class for call options using with the Cronet transport. This is intended for @@ -33,4 +35,17 @@ public final class InternalCronetCallOptions { public static CallOptions withAnnotation(CallOptions callOptions, Object annotation) { return CronetClientStream.withAnnotation(callOptions, annotation); } + + /** + * Returns Cronet annotations for gRPC included in the given {@code callOptions}. Annotations + * are attached via {@link #withAnnotation(CallOptions, Object)}. + */ + public static Collection getAnnotations(CallOptions callOptions) { + Collection annotations = + callOptions.getOption(CronetClientStream.CRONET_ANNOTATIONS_KEY); + if (annotations == null) { + annotations = Collections.emptyList(); + } + return annotations; + } }