class GrpcClientRequest extends RpcClientRequest implements GrpcRequest {

  @Override protected void propagationField(String keyName, String value) {

    if (keyName == null) throw new NullPointerException("keyName == null");
    if (value == null) throw new NullPointerException("value == null");
    Key<String> key = nameToKey.get(keyName);
    if (key == null) {
      assert false : "We currently don't support setting headers except propagation fields";
      return;
    }
    headers.removeAll(key);
    headers.put(key, value);
  }

    GrpcClientRequest(Map<String, Key<String>> nameToKey, MethodDescriptor<?, ?> methodDescriptor,
      CallOptions callOptions, ClientCall<?, ?> call, Metadata headers);

}