@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.Annotation)) {
          return super.equals(obj);
        }
        com.google.devtools.cloudtrace.v2.Span.TimeEvent.Annotation other =
            (com.google.devtools.cloudtrace.v2.Span.TimeEvent.Annotation) obj;

        if (hasDescription() != other.hasDescription()) return false;
        if (hasDescription()) {
          if (!getDescription().equals(other.getDescription())) return false;
        }
        if (hasAttributes() != other.hasAttributes()) return false;
        if (hasAttributes()) {
          if (!getAttributes().equals(other.getAttributes())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
<pre>
A set of attributes on the annotation. You can have up to 4 attributes
per Annotation.
</pre>

<code>.google.devtools.cloudtrace.v2.Span.Attributes attributes = 2;</code>
java-trace/proto-google-cloud-trace-v2/src/main/java/com/google/devtools/cloudtrace/v2/Span.java