@java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof com.google.devtools.cloudtrace.v2.Span.TimeEvent)) {
        return super.equals(obj);
      }
      com.google.devtools.cloudtrace.v2.Span.TimeEvent other =
          (com.google.devtools.cloudtrace.v2.Span.TimeEvent) obj;

      if (hasTime() != other.hasTime()) return false;
      if (hasTime()) {
        if (!getTime().equals(other.getTime())) return false;
      }
      if (!getValueCase().equals(other.getValueCase())) return false;
      switch (valueCase_) {
        case 2:
          if (!getAnnotation().equals(other.getAnnotation())) return false;
          break;
        case 3:
          if (!getMessageEvent().equals(other.getMessageEvent())) return false;
          break;
        case 0:
        default:
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }
<pre>
An event describing a message sent/received between Spans.
</pre>

<code>.google.devtools.cloudtrace.v2.Span.TimeEvent.MessageEvent message_event = 3;</code>
java-trace/proto-google-cloud-trace-v2/src/main/java/com/google/devtools/cloudtrace/v2/Span.java