public Builder mergeFrom(com.google.devtools.cloudtrace.v1.Trace other) {
      if (other == com.google.devtools.cloudtrace.v1.Trace.getDefaultInstance()) return this;
      if (!other.getProjectId().isEmpty()) {
        projectId_ = other.projectId_;
        bitField0_ |= 0x00000001;
        onChanged();
      }
      if (!other.getTraceId().isEmpty()) {
        traceId_ = other.traceId_;
        bitField0_ |= 0x00000002;
        onChanged();
      }
      if (spansBuilder_ == null) {
        if (!other.spans_.isEmpty()) {
          if (spans_.isEmpty()) {
            spans_ = other.spans_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureSpansIsMutable();
            spans_.addAll(other.spans_);
          }
          onChanged();
        }
      } else {
        if (!other.spans_.isEmpty()) {
          if (spansBuilder_.isEmpty()) {
            spansBuilder_.dispose();
            spansBuilder_ = null;
            spans_ = other.spans_;
            bitField0_ = (bitField0_ & ~0x00000004);
            spansBuilder_ =
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                    ? getSpansFieldBuilder()
                    : null;
          } else {
            spansBuilder_.addAllMessages(other.spans_);
          }
        }
      }
      this.mergeUnknownFields(other.getUnknownFields());
      onChanged();
      return this;
    }
<pre>
A trace describes how long it takes for an application to perform an
operation. It consists of a set of spans, each of which represent a single
timed event within the operation.
</pre>

Protobuf type {@code google.devtools.cloudtrace.v1.Trace}
java-trace/proto-google-cloud-trace-v1/src/main/java/com/google/devtools/cloudtrace/v1/Trace.java