All Downloads are FREE. Search and download functionalities are using the official Maven repository.

span.SpanOuterClass Maven / Gradle / Ivy

There is a newer version: 3.2.3
Show newest version
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: span.proto

package span;

public final class SpanOuterClass {
  private SpanOuterClass() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface SpanSetOrBuilder extends
      // @@protoc_insertion_point(interface_extends:span.SpanSet)
      com.google.protobuf.MessageOrBuilder {

    /**
     * uint64 start_time_ns = 1;
     */
    long getStartTimeNs();

    /**
     * uint64 cycles_per_sec = 2;
     */
    long getCyclesPerSec();

    /**
     * repeated .span.Span spans = 3;
     */
    java.util.List 
        getSpansList();
    /**
     * repeated .span.Span spans = 3;
     */
    span.SpanOuterClass.Span getSpans(int index);
    /**
     * repeated .span.Span spans = 3;
     */
    int getSpansCount();
    /**
     * repeated .span.Span spans = 3;
     */
    java.util.List 
        getSpansOrBuilderList();
    /**
     * repeated .span.Span spans = 3;
     */
    span.SpanOuterClass.SpanOrBuilder getSpansOrBuilder(
        int index);

    /**
     * uint64 create_time_ns = 4;
     */
    long getCreateTimeNs();
  }
  /**
   * Protobuf type {@code span.SpanSet}
   */
  public  static final class SpanSet extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:span.SpanSet)
      SpanSetOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SpanSet.newBuilder() to construct.
    private SpanSet(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private SpanSet() {
      startTimeNs_ = 0L;
      cyclesPerSec_ = 0L;
      spans_ = java.util.Collections.emptyList();
      createTimeNs_ = 0L;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private SpanSet(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {

              startTimeNs_ = input.readUInt64();
              break;
            }
            case 16: {

              cyclesPerSec_ = input.readUInt64();
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                spans_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000004;
              }
              spans_.add(
                  input.readMessage(span.SpanOuterClass.Span.parser(), extensionRegistry));
              break;
            }
            case 32: {

              createTimeNs_ = input.readUInt64();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          spans_ = java.util.Collections.unmodifiableList(spans_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return span.SpanOuterClass.internal_static_span_SpanSet_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return span.SpanOuterClass.internal_static_span_SpanSet_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              span.SpanOuterClass.SpanSet.class, span.SpanOuterClass.SpanSet.Builder.class);
    }

    private int bitField0_;
    public static final int START_TIME_NS_FIELD_NUMBER = 1;
    private long startTimeNs_;
    /**
     * uint64 start_time_ns = 1;
     */
    public long getStartTimeNs() {
      return startTimeNs_;
    }

    public static final int CYCLES_PER_SEC_FIELD_NUMBER = 2;
    private long cyclesPerSec_;
    /**
     * uint64 cycles_per_sec = 2;
     */
    public long getCyclesPerSec() {
      return cyclesPerSec_;
    }

    public static final int SPANS_FIELD_NUMBER = 3;
    private java.util.List spans_;
    /**
     * repeated .span.Span spans = 3;
     */
    public java.util.List getSpansList() {
      return spans_;
    }
    /**
     * repeated .span.Span spans = 3;
     */
    public java.util.List 
        getSpansOrBuilderList() {
      return spans_;
    }
    /**
     * repeated .span.Span spans = 3;
     */
    public int getSpansCount() {
      return spans_.size();
    }
    /**
     * repeated .span.Span spans = 3;
     */
    public span.SpanOuterClass.Span getSpans(int index) {
      return spans_.get(index);
    }
    /**
     * repeated .span.Span spans = 3;
     */
    public span.SpanOuterClass.SpanOrBuilder getSpansOrBuilder(
        int index) {
      return spans_.get(index);
    }

    public static final int CREATE_TIME_NS_FIELD_NUMBER = 4;
    private long createTimeNs_;
    /**
     * uint64 create_time_ns = 4;
     */
    public long getCreateTimeNs() {
      return createTimeNs_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (startTimeNs_ != 0L) {
        output.writeUInt64(1, startTimeNs_);
      }
      if (cyclesPerSec_ != 0L) {
        output.writeUInt64(2, cyclesPerSec_);
      }
      for (int i = 0; i < spans_.size(); i++) {
        output.writeMessage(3, spans_.get(i));
      }
      if (createTimeNs_ != 0L) {
        output.writeUInt64(4, createTimeNs_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (startTimeNs_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(1, startTimeNs_);
      }
      if (cyclesPerSec_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, cyclesPerSec_);
      }
      for (int i = 0; i < spans_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, spans_.get(i));
      }
      if (createTimeNs_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(4, createTimeNs_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof span.SpanOuterClass.SpanSet)) {
        return super.equals(obj);
      }
      span.SpanOuterClass.SpanSet other = (span.SpanOuterClass.SpanSet) obj;

      boolean result = true;
      result = result && (getStartTimeNs()
          == other.getStartTimeNs());
      result = result && (getCyclesPerSec()
          == other.getCyclesPerSec());
      result = result && getSpansList()
          .equals(other.getSpansList());
      result = result && (getCreateTimeNs()
          == other.getCreateTimeNs());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + START_TIME_NS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getStartTimeNs());
      hash = (37 * hash) + CYCLES_PER_SEC_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getCyclesPerSec());
      if (getSpansCount() > 0) {
        hash = (37 * hash) + SPANS_FIELD_NUMBER;
        hash = (53 * hash) + getSpansList().hashCode();
      }
      hash = (37 * hash) + CREATE_TIME_NS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getCreateTimeNs());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static span.SpanOuterClass.SpanSet parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static span.SpanOuterClass.SpanSet parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static span.SpanOuterClass.SpanSet parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static span.SpanOuterClass.SpanSet parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static span.SpanOuterClass.SpanSet parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static span.SpanOuterClass.SpanSet parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static span.SpanOuterClass.SpanSet parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static span.SpanOuterClass.SpanSet parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static span.SpanOuterClass.SpanSet parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static span.SpanOuterClass.SpanSet parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static span.SpanOuterClass.SpanSet parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static span.SpanOuterClass.SpanSet parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(span.SpanOuterClass.SpanSet prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code span.SpanSet}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:span.SpanSet)
        span.SpanOuterClass.SpanSetOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return span.SpanOuterClass.internal_static_span_SpanSet_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return span.SpanOuterClass.internal_static_span_SpanSet_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                span.SpanOuterClass.SpanSet.class, span.SpanOuterClass.SpanSet.Builder.class);
      }

      // Construct using span.SpanOuterClass.SpanSet.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getSpansFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        startTimeNs_ = 0L;

        cyclesPerSec_ = 0L;

        if (spansBuilder_ == null) {
          spans_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          spansBuilder_.clear();
        }
        createTimeNs_ = 0L;

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return span.SpanOuterClass.internal_static_span_SpanSet_descriptor;
      }

      public span.SpanOuterClass.SpanSet getDefaultInstanceForType() {
        return span.SpanOuterClass.SpanSet.getDefaultInstance();
      }

      public span.SpanOuterClass.SpanSet build() {
        span.SpanOuterClass.SpanSet result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public span.SpanOuterClass.SpanSet buildPartial() {
        span.SpanOuterClass.SpanSet result = new span.SpanOuterClass.SpanSet(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        result.startTimeNs_ = startTimeNs_;
        result.cyclesPerSec_ = cyclesPerSec_;
        if (spansBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            spans_ = java.util.Collections.unmodifiableList(spans_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.spans_ = spans_;
        } else {
          result.spans_ = spansBuilder_.build();
        }
        result.createTimeNs_ = createTimeNs_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof span.SpanOuterClass.SpanSet) {
          return mergeFrom((span.SpanOuterClass.SpanSet)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(span.SpanOuterClass.SpanSet other) {
        if (other == span.SpanOuterClass.SpanSet.getDefaultInstance()) return this;
        if (other.getStartTimeNs() != 0L) {
          setStartTimeNs(other.getStartTimeNs());
        }
        if (other.getCyclesPerSec() != 0L) {
          setCyclesPerSec(other.getCyclesPerSec());
        }
        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_);
            }
          }
        }
        if (other.getCreateTimeNs() != 0L) {
          setCreateTimeNs(other.getCreateTimeNs());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        span.SpanOuterClass.SpanSet parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (span.SpanOuterClass.SpanSet) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long startTimeNs_ ;
      /**
       * uint64 start_time_ns = 1;
       */
      public long getStartTimeNs() {
        return startTimeNs_;
      }
      /**
       * uint64 start_time_ns = 1;
       */
      public Builder setStartTimeNs(long value) {
        
        startTimeNs_ = value;
        onChanged();
        return this;
      }
      /**
       * uint64 start_time_ns = 1;
       */
      public Builder clearStartTimeNs() {
        
        startTimeNs_ = 0L;
        onChanged();
        return this;
      }

      private long cyclesPerSec_ ;
      /**
       * uint64 cycles_per_sec = 2;
       */
      public long getCyclesPerSec() {
        return cyclesPerSec_;
      }
      /**
       * uint64 cycles_per_sec = 2;
       */
      public Builder setCyclesPerSec(long value) {
        
        cyclesPerSec_ = value;
        onChanged();
        return this;
      }
      /**
       * uint64 cycles_per_sec = 2;
       */
      public Builder clearCyclesPerSec() {
        
        cyclesPerSec_ = 0L;
        onChanged();
        return this;
      }

      private java.util.List spans_ =
        java.util.Collections.emptyList();
      private void ensureSpansIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          spans_ = new java.util.ArrayList(spans_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          span.SpanOuterClass.Span, span.SpanOuterClass.Span.Builder, span.SpanOuterClass.SpanOrBuilder> spansBuilder_;

      /**
       * repeated .span.Span spans = 3;
       */
      public java.util.List getSpansList() {
        if (spansBuilder_ == null) {
          return java.util.Collections.unmodifiableList(spans_);
        } else {
          return spansBuilder_.getMessageList();
        }
      }
      /**
       * repeated .span.Span spans = 3;
       */
      public int getSpansCount() {
        if (spansBuilder_ == null) {
          return spans_.size();
        } else {
          return spansBuilder_.getCount();
        }
      }
      /**
       * repeated .span.Span spans = 3;
       */
      public span.SpanOuterClass.Span getSpans(int index) {
        if (spansBuilder_ == null) {
          return spans_.get(index);
        } else {
          return spansBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .span.Span spans = 3;
       */
      public Builder setSpans(
          int index, span.SpanOuterClass.Span value) {
        if (spansBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSpansIsMutable();
          spans_.set(index, value);
          onChanged();
        } else {
          spansBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .span.Span spans = 3;
       */
      public Builder setSpans(
          int index, span.SpanOuterClass.Span.Builder builderForValue) {
        if (spansBuilder_ == null) {
          ensureSpansIsMutable();
          spans_.set(index, builderForValue.build());
          onChanged();
        } else {
          spansBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .span.Span spans = 3;
       */
      public Builder addSpans(span.SpanOuterClass.Span value) {
        if (spansBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSpansIsMutable();
          spans_.add(value);
          onChanged();
        } else {
          spansBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .span.Span spans = 3;
       */
      public Builder addSpans(
          int index, span.SpanOuterClass.Span value) {
        if (spansBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSpansIsMutable();
          spans_.add(index, value);
          onChanged();
        } else {
          spansBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .span.Span spans = 3;
       */
      public Builder addSpans(
          span.SpanOuterClass.Span.Builder builderForValue) {
        if (spansBuilder_ == null) {
          ensureSpansIsMutable();
          spans_.add(builderForValue.build());
          onChanged();
        } else {
          spansBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .span.Span spans = 3;
       */
      public Builder addSpans(
          int index, span.SpanOuterClass.Span.Builder builderForValue) {
        if (spansBuilder_ == null) {
          ensureSpansIsMutable();
          spans_.add(index, builderForValue.build());
          onChanged();
        } else {
          spansBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .span.Span spans = 3;
       */
      public Builder addAllSpans(
          java.lang.Iterable values) {
        if (spansBuilder_ == null) {
          ensureSpansIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, spans_);
          onChanged();
        } else {
          spansBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .span.Span spans = 3;
       */
      public Builder clearSpans() {
        if (spansBuilder_ == null) {
          spans_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          spansBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .span.Span spans = 3;
       */
      public Builder removeSpans(int index) {
        if (spansBuilder_ == null) {
          ensureSpansIsMutable();
          spans_.remove(index);
          onChanged();
        } else {
          spansBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .span.Span spans = 3;
       */
      public span.SpanOuterClass.Span.Builder getSpansBuilder(
          int index) {
        return getSpansFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .span.Span spans = 3;
       */
      public span.SpanOuterClass.SpanOrBuilder getSpansOrBuilder(
          int index) {
        if (spansBuilder_ == null) {
          return spans_.get(index);  } else {
          return spansBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .span.Span spans = 3;
       */
      public java.util.List 
           getSpansOrBuilderList() {
        if (spansBuilder_ != null) {
          return spansBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(spans_);
        }
      }
      /**
       * repeated .span.Span spans = 3;
       */
      public span.SpanOuterClass.Span.Builder addSpansBuilder() {
        return getSpansFieldBuilder().addBuilder(
            span.SpanOuterClass.Span.getDefaultInstance());
      }
      /**
       * repeated .span.Span spans = 3;
       */
      public span.SpanOuterClass.Span.Builder addSpansBuilder(
          int index) {
        return getSpansFieldBuilder().addBuilder(
            index, span.SpanOuterClass.Span.getDefaultInstance());
      }
      /**
       * repeated .span.Span spans = 3;
       */
      public java.util.List 
           getSpansBuilderList() {
        return getSpansFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          span.SpanOuterClass.Span, span.SpanOuterClass.Span.Builder, span.SpanOuterClass.SpanOrBuilder> 
          getSpansFieldBuilder() {
        if (spansBuilder_ == null) {
          spansBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              span.SpanOuterClass.Span, span.SpanOuterClass.Span.Builder, span.SpanOuterClass.SpanOrBuilder>(
                  spans_,
                  ((bitField0_ & 0x00000004) == 0x00000004),
                  getParentForChildren(),
                  isClean());
          spans_ = null;
        }
        return spansBuilder_;
      }

      private long createTimeNs_ ;
      /**
       * uint64 create_time_ns = 4;
       */
      public long getCreateTimeNs() {
        return createTimeNs_;
      }
      /**
       * uint64 create_time_ns = 4;
       */
      public Builder setCreateTimeNs(long value) {
        
        createTimeNs_ = value;
        onChanged();
        return this;
      }
      /**
       * uint64 create_time_ns = 4;
       */
      public Builder clearCreateTimeNs() {
        
        createTimeNs_ = 0L;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:span.SpanSet)
    }

    // @@protoc_insertion_point(class_scope:span.SpanSet)
    private static final span.SpanOuterClass.SpanSet DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new span.SpanOuterClass.SpanSet();
    }

    public static span.SpanOuterClass.SpanSet getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public SpanSet parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new SpanSet(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public span.SpanOuterClass.SpanSet getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RootOrBuilder extends
      // @@protoc_insertion_point(interface_extends:span.Root)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code span.Root}
   */
  public  static final class Root extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:span.Root)
      RootOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Root.newBuilder() to construct.
    private Root(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private Root() {
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Root(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return span.SpanOuterClass.internal_static_span_Root_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return span.SpanOuterClass.internal_static_span_Root_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              span.SpanOuterClass.Root.class, span.SpanOuterClass.Root.Builder.class);
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof span.SpanOuterClass.Root)) {
        return super.equals(obj);
      }
      span.SpanOuterClass.Root other = (span.SpanOuterClass.Root) obj;

      boolean result = true;
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static span.SpanOuterClass.Root parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static span.SpanOuterClass.Root parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static span.SpanOuterClass.Root parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static span.SpanOuterClass.Root parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static span.SpanOuterClass.Root parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static span.SpanOuterClass.Root parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static span.SpanOuterClass.Root parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static span.SpanOuterClass.Root parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static span.SpanOuterClass.Root parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static span.SpanOuterClass.Root parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static span.SpanOuterClass.Root parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static span.SpanOuterClass.Root parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(span.SpanOuterClass.Root prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code span.Root}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:span.Root)
        span.SpanOuterClass.RootOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return span.SpanOuterClass.internal_static_span_Root_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return span.SpanOuterClass.internal_static_span_Root_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                span.SpanOuterClass.Root.class, span.SpanOuterClass.Root.Builder.class);
      }

      // Construct using span.SpanOuterClass.Root.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return span.SpanOuterClass.internal_static_span_Root_descriptor;
      }

      public span.SpanOuterClass.Root getDefaultInstanceForType() {
        return span.SpanOuterClass.Root.getDefaultInstance();
      }

      public span.SpanOuterClass.Root build() {
        span.SpanOuterClass.Root result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public span.SpanOuterClass.Root buildPartial() {
        span.SpanOuterClass.Root result = new span.SpanOuterClass.Root(this);
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof span.SpanOuterClass.Root) {
          return mergeFrom((span.SpanOuterClass.Root)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(span.SpanOuterClass.Root other) {
        if (other == span.SpanOuterClass.Root.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        span.SpanOuterClass.Root parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (span.SpanOuterClass.Root) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:span.Root)
    }

    // @@protoc_insertion_point(class_scope:span.Root)
    private static final span.SpanOuterClass.Root DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new span.SpanOuterClass.Root();
    }

    public static span.SpanOuterClass.Root getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public Root parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Root(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public span.SpanOuterClass.Root getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ParentOrBuilder extends
      // @@protoc_insertion_point(interface_extends:span.Parent)
      com.google.protobuf.MessageOrBuilder {

    /**
     * uint64 id = 1;
     */
    long getId();
  }
  /**
   * Protobuf type {@code span.Parent}
   */
  public  static final class Parent extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:span.Parent)
      ParentOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Parent.newBuilder() to construct.
    private Parent(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private Parent() {
      id_ = 0L;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Parent(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {

              id_ = input.readUInt64();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return span.SpanOuterClass.internal_static_span_Parent_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return span.SpanOuterClass.internal_static_span_Parent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              span.SpanOuterClass.Parent.class, span.SpanOuterClass.Parent.Builder.class);
    }

    public static final int ID_FIELD_NUMBER = 1;
    private long id_;
    /**
     * uint64 id = 1;
     */
    public long getId() {
      return id_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (id_ != 0L) {
        output.writeUInt64(1, id_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (id_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(1, id_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof span.SpanOuterClass.Parent)) {
        return super.equals(obj);
      }
      span.SpanOuterClass.Parent other = (span.SpanOuterClass.Parent) obj;

      boolean result = true;
      result = result && (getId()
          == other.getId());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ID_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getId());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static span.SpanOuterClass.Parent parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static span.SpanOuterClass.Parent parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static span.SpanOuterClass.Parent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static span.SpanOuterClass.Parent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static span.SpanOuterClass.Parent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static span.SpanOuterClass.Parent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static span.SpanOuterClass.Parent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static span.SpanOuterClass.Parent parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static span.SpanOuterClass.Parent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static span.SpanOuterClass.Parent parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static span.SpanOuterClass.Parent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static span.SpanOuterClass.Parent parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(span.SpanOuterClass.Parent prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code span.Parent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:span.Parent)
        span.SpanOuterClass.ParentOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return span.SpanOuterClass.internal_static_span_Parent_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return span.SpanOuterClass.internal_static_span_Parent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                span.SpanOuterClass.Parent.class, span.SpanOuterClass.Parent.Builder.class);
      }

      // Construct using span.SpanOuterClass.Parent.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        id_ = 0L;

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return span.SpanOuterClass.internal_static_span_Parent_descriptor;
      }

      public span.SpanOuterClass.Parent getDefaultInstanceForType() {
        return span.SpanOuterClass.Parent.getDefaultInstance();
      }

      public span.SpanOuterClass.Parent build() {
        span.SpanOuterClass.Parent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public span.SpanOuterClass.Parent buildPartial() {
        span.SpanOuterClass.Parent result = new span.SpanOuterClass.Parent(this);
        result.id_ = id_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof span.SpanOuterClass.Parent) {
          return mergeFrom((span.SpanOuterClass.Parent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(span.SpanOuterClass.Parent other) {
        if (other == span.SpanOuterClass.Parent.getDefaultInstance()) return this;
        if (other.getId() != 0L) {
          setId(other.getId());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        span.SpanOuterClass.Parent parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (span.SpanOuterClass.Parent) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private long id_ ;
      /**
       * uint64 id = 1;
       */
      public long getId() {
        return id_;
      }
      /**
       * uint64 id = 1;
       */
      public Builder setId(long value) {
        
        id_ = value;
        onChanged();
        return this;
      }
      /**
       * uint64 id = 1;
       */
      public Builder clearId() {
        
        id_ = 0L;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:span.Parent)
    }

    // @@protoc_insertion_point(class_scope:span.Parent)
    private static final span.SpanOuterClass.Parent DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new span.SpanOuterClass.Parent();
    }

    public static span.SpanOuterClass.Parent getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public Parent parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Parent(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public span.SpanOuterClass.Parent getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ContinueOrBuilder extends
      // @@protoc_insertion_point(interface_extends:span.Continue)
      com.google.protobuf.MessageOrBuilder {

    /**
     * uint64 id = 1;
     */
    long getId();
  }
  /**
   * Protobuf type {@code span.Continue}
   */
  public  static final class Continue extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:span.Continue)
      ContinueOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Continue.newBuilder() to construct.
    private Continue(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private Continue() {
      id_ = 0L;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Continue(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {

              id_ = input.readUInt64();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return span.SpanOuterClass.internal_static_span_Continue_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return span.SpanOuterClass.internal_static_span_Continue_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              span.SpanOuterClass.Continue.class, span.SpanOuterClass.Continue.Builder.class);
    }

    public static final int ID_FIELD_NUMBER = 1;
    private long id_;
    /**
     * uint64 id = 1;
     */
    public long getId() {
      return id_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (id_ != 0L) {
        output.writeUInt64(1, id_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (id_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(1, id_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof span.SpanOuterClass.Continue)) {
        return super.equals(obj);
      }
      span.SpanOuterClass.Continue other = (span.SpanOuterClass.Continue) obj;

      boolean result = true;
      result = result && (getId()
          == other.getId());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ID_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getId());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static span.SpanOuterClass.Continue parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static span.SpanOuterClass.Continue parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static span.SpanOuterClass.Continue parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static span.SpanOuterClass.Continue parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static span.SpanOuterClass.Continue parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static span.SpanOuterClass.Continue parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static span.SpanOuterClass.Continue parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static span.SpanOuterClass.Continue parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static span.SpanOuterClass.Continue parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static span.SpanOuterClass.Continue parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static span.SpanOuterClass.Continue parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static span.SpanOuterClass.Continue parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(span.SpanOuterClass.Continue prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code span.Continue}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:span.Continue)
        span.SpanOuterClass.ContinueOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return span.SpanOuterClass.internal_static_span_Continue_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return span.SpanOuterClass.internal_static_span_Continue_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                span.SpanOuterClass.Continue.class, span.SpanOuterClass.Continue.Builder.class);
      }

      // Construct using span.SpanOuterClass.Continue.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        id_ = 0L;

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return span.SpanOuterClass.internal_static_span_Continue_descriptor;
      }

      public span.SpanOuterClass.Continue getDefaultInstanceForType() {
        return span.SpanOuterClass.Continue.getDefaultInstance();
      }

      public span.SpanOuterClass.Continue build() {
        span.SpanOuterClass.Continue result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public span.SpanOuterClass.Continue buildPartial() {
        span.SpanOuterClass.Continue result = new span.SpanOuterClass.Continue(this);
        result.id_ = id_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof span.SpanOuterClass.Continue) {
          return mergeFrom((span.SpanOuterClass.Continue)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(span.SpanOuterClass.Continue other) {
        if (other == span.SpanOuterClass.Continue.getDefaultInstance()) return this;
        if (other.getId() != 0L) {
          setId(other.getId());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        span.SpanOuterClass.Continue parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (span.SpanOuterClass.Continue) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private long id_ ;
      /**
       * uint64 id = 1;
       */
      public long getId() {
        return id_;
      }
      /**
       * uint64 id = 1;
       */
      public Builder setId(long value) {
        
        id_ = value;
        onChanged();
        return this;
      }
      /**
       * uint64 id = 1;
       */
      public Builder clearId() {
        
        id_ = 0L;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:span.Continue)
    }

    // @@protoc_insertion_point(class_scope:span.Continue)
    private static final span.SpanOuterClass.Continue DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new span.SpanOuterClass.Continue();
    }

    public static span.SpanOuterClass.Continue getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public Continue parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Continue(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public span.SpanOuterClass.Continue getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface LinkOrBuilder extends
      // @@protoc_insertion_point(interface_extends:span.Link)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .span.Root root = 1;
     */
    boolean hasRoot();
    /**
     * .span.Root root = 1;
     */
    span.SpanOuterClass.Root getRoot();
    /**
     * .span.Root root = 1;
     */
    span.SpanOuterClass.RootOrBuilder getRootOrBuilder();

    /**
     * .span.Parent parent = 2;
     */
    boolean hasParent();
    /**
     * .span.Parent parent = 2;
     */
    span.SpanOuterClass.Parent getParent();
    /**
     * .span.Parent parent = 2;
     */
    span.SpanOuterClass.ParentOrBuilder getParentOrBuilder();

    /**
     * .span.Continue continue = 3;
     */
    boolean hasContinue();
    /**
     * .span.Continue continue = 3;
     */
    span.SpanOuterClass.Continue getContinue();
    /**
     * .span.Continue continue = 3;
     */
    span.SpanOuterClass.ContinueOrBuilder getContinueOrBuilder();

    public span.SpanOuterClass.Link.LinkCase getLinkCase();
  }
  /**
   * Protobuf type {@code span.Link}
   */
  public  static final class Link extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:span.Link)
      LinkOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Link.newBuilder() to construct.
    private Link(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private Link() {
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Link(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              span.SpanOuterClass.Root.Builder subBuilder = null;
              if (linkCase_ == 1) {
                subBuilder = ((span.SpanOuterClass.Root) link_).toBuilder();
              }
              link_ =
                  input.readMessage(span.SpanOuterClass.Root.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((span.SpanOuterClass.Root) link_);
                link_ = subBuilder.buildPartial();
              }
              linkCase_ = 1;
              break;
            }
            case 18: {
              span.SpanOuterClass.Parent.Builder subBuilder = null;
              if (linkCase_ == 2) {
                subBuilder = ((span.SpanOuterClass.Parent) link_).toBuilder();
              }
              link_ =
                  input.readMessage(span.SpanOuterClass.Parent.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((span.SpanOuterClass.Parent) link_);
                link_ = subBuilder.buildPartial();
              }
              linkCase_ = 2;
              break;
            }
            case 26: {
              span.SpanOuterClass.Continue.Builder subBuilder = null;
              if (linkCase_ == 3) {
                subBuilder = ((span.SpanOuterClass.Continue) link_).toBuilder();
              }
              link_ =
                  input.readMessage(span.SpanOuterClass.Continue.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((span.SpanOuterClass.Continue) link_);
                link_ = subBuilder.buildPartial();
              }
              linkCase_ = 3;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return span.SpanOuterClass.internal_static_span_Link_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return span.SpanOuterClass.internal_static_span_Link_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              span.SpanOuterClass.Link.class, span.SpanOuterClass.Link.Builder.class);
    }

    private int linkCase_ = 0;
    private java.lang.Object link_;
    public enum LinkCase
        implements com.google.protobuf.Internal.EnumLite {
      ROOT(1),
      PARENT(2),
      CONTINUE(3),
      LINK_NOT_SET(0);
      private final int value;
      private LinkCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static LinkCase valueOf(int value) {
        return forNumber(value);
      }

      public static LinkCase forNumber(int value) {
        switch (value) {
          case 1: return ROOT;
          case 2: return PARENT;
          case 3: return CONTINUE;
          case 0: return LINK_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public LinkCase
    getLinkCase() {
      return LinkCase.forNumber(
          linkCase_);
    }

    public static final int ROOT_FIELD_NUMBER = 1;
    /**
     * .span.Root root = 1;
     */
    public boolean hasRoot() {
      return linkCase_ == 1;
    }
    /**
     * .span.Root root = 1;
     */
    public span.SpanOuterClass.Root getRoot() {
      if (linkCase_ == 1) {
         return (span.SpanOuterClass.Root) link_;
      }
      return span.SpanOuterClass.Root.getDefaultInstance();
    }
    /**
     * .span.Root root = 1;
     */
    public span.SpanOuterClass.RootOrBuilder getRootOrBuilder() {
      if (linkCase_ == 1) {
         return (span.SpanOuterClass.Root) link_;
      }
      return span.SpanOuterClass.Root.getDefaultInstance();
    }

    public static final int PARENT_FIELD_NUMBER = 2;
    /**
     * .span.Parent parent = 2;
     */
    public boolean hasParent() {
      return linkCase_ == 2;
    }
    /**
     * .span.Parent parent = 2;
     */
    public span.SpanOuterClass.Parent getParent() {
      if (linkCase_ == 2) {
         return (span.SpanOuterClass.Parent) link_;
      }
      return span.SpanOuterClass.Parent.getDefaultInstance();
    }
    /**
     * .span.Parent parent = 2;
     */
    public span.SpanOuterClass.ParentOrBuilder getParentOrBuilder() {
      if (linkCase_ == 2) {
         return (span.SpanOuterClass.Parent) link_;
      }
      return span.SpanOuterClass.Parent.getDefaultInstance();
    }

    public static final int CONTINUE_FIELD_NUMBER = 3;
    /**
     * .span.Continue continue = 3;
     */
    public boolean hasContinue() {
      return linkCase_ == 3;
    }
    /**
     * .span.Continue continue = 3;
     */
    public span.SpanOuterClass.Continue getContinue() {
      if (linkCase_ == 3) {
         return (span.SpanOuterClass.Continue) link_;
      }
      return span.SpanOuterClass.Continue.getDefaultInstance();
    }
    /**
     * .span.Continue continue = 3;
     */
    public span.SpanOuterClass.ContinueOrBuilder getContinueOrBuilder() {
      if (linkCase_ == 3) {
         return (span.SpanOuterClass.Continue) link_;
      }
      return span.SpanOuterClass.Continue.getDefaultInstance();
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (linkCase_ == 1) {
        output.writeMessage(1, (span.SpanOuterClass.Root) link_);
      }
      if (linkCase_ == 2) {
        output.writeMessage(2, (span.SpanOuterClass.Parent) link_);
      }
      if (linkCase_ == 3) {
        output.writeMessage(3, (span.SpanOuterClass.Continue) link_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (linkCase_ == 1) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, (span.SpanOuterClass.Root) link_);
      }
      if (linkCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, (span.SpanOuterClass.Parent) link_);
      }
      if (linkCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, (span.SpanOuterClass.Continue) link_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof span.SpanOuterClass.Link)) {
        return super.equals(obj);
      }
      span.SpanOuterClass.Link other = (span.SpanOuterClass.Link) obj;

      boolean result = true;
      result = result && getLinkCase().equals(
          other.getLinkCase());
      if (!result) return false;
      switch (linkCase_) {
        case 1:
          result = result && getRoot()
              .equals(other.getRoot());
          break;
        case 2:
          result = result && getParent()
              .equals(other.getParent());
          break;
        case 3:
          result = result && getContinue()
              .equals(other.getContinue());
          break;
        case 0:
        default:
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      switch (linkCase_) {
        case 1:
          hash = (37 * hash) + ROOT_FIELD_NUMBER;
          hash = (53 * hash) + getRoot().hashCode();
          break;
        case 2:
          hash = (37 * hash) + PARENT_FIELD_NUMBER;
          hash = (53 * hash) + getParent().hashCode();
          break;
        case 3:
          hash = (37 * hash) + CONTINUE_FIELD_NUMBER;
          hash = (53 * hash) + getContinue().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static span.SpanOuterClass.Link parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static span.SpanOuterClass.Link parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static span.SpanOuterClass.Link parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static span.SpanOuterClass.Link parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static span.SpanOuterClass.Link parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static span.SpanOuterClass.Link parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static span.SpanOuterClass.Link parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static span.SpanOuterClass.Link parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static span.SpanOuterClass.Link parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static span.SpanOuterClass.Link parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static span.SpanOuterClass.Link parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static span.SpanOuterClass.Link parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(span.SpanOuterClass.Link prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code span.Link}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:span.Link)
        span.SpanOuterClass.LinkOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return span.SpanOuterClass.internal_static_span_Link_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return span.SpanOuterClass.internal_static_span_Link_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                span.SpanOuterClass.Link.class, span.SpanOuterClass.Link.Builder.class);
      }

      // Construct using span.SpanOuterClass.Link.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        linkCase_ = 0;
        link_ = null;
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return span.SpanOuterClass.internal_static_span_Link_descriptor;
      }

      public span.SpanOuterClass.Link getDefaultInstanceForType() {
        return span.SpanOuterClass.Link.getDefaultInstance();
      }

      public span.SpanOuterClass.Link build() {
        span.SpanOuterClass.Link result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public span.SpanOuterClass.Link buildPartial() {
        span.SpanOuterClass.Link result = new span.SpanOuterClass.Link(this);
        if (linkCase_ == 1) {
          if (rootBuilder_ == null) {
            result.link_ = link_;
          } else {
            result.link_ = rootBuilder_.build();
          }
        }
        if (linkCase_ == 2) {
          if (parentBuilder_ == null) {
            result.link_ = link_;
          } else {
            result.link_ = parentBuilder_.build();
          }
        }
        if (linkCase_ == 3) {
          if (continueBuilder_ == null) {
            result.link_ = link_;
          } else {
            result.link_ = continueBuilder_.build();
          }
        }
        result.linkCase_ = linkCase_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof span.SpanOuterClass.Link) {
          return mergeFrom((span.SpanOuterClass.Link)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(span.SpanOuterClass.Link other) {
        if (other == span.SpanOuterClass.Link.getDefaultInstance()) return this;
        switch (other.getLinkCase()) {
          case ROOT: {
            mergeRoot(other.getRoot());
            break;
          }
          case PARENT: {
            mergeParent(other.getParent());
            break;
          }
          case CONTINUE: {
            mergeContinue(other.getContinue());
            break;
          }
          case LINK_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        span.SpanOuterClass.Link parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (span.SpanOuterClass.Link) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int linkCase_ = 0;
      private java.lang.Object link_;
      public LinkCase
          getLinkCase() {
        return LinkCase.forNumber(
            linkCase_);
      }

      public Builder clearLink() {
        linkCase_ = 0;
        link_ = null;
        onChanged();
        return this;
      }


      private com.google.protobuf.SingleFieldBuilderV3<
          span.SpanOuterClass.Root, span.SpanOuterClass.Root.Builder, span.SpanOuterClass.RootOrBuilder> rootBuilder_;
      /**
       * .span.Root root = 1;
       */
      public boolean hasRoot() {
        return linkCase_ == 1;
      }
      /**
       * .span.Root root = 1;
       */
      public span.SpanOuterClass.Root getRoot() {
        if (rootBuilder_ == null) {
          if (linkCase_ == 1) {
            return (span.SpanOuterClass.Root) link_;
          }
          return span.SpanOuterClass.Root.getDefaultInstance();
        } else {
          if (linkCase_ == 1) {
            return rootBuilder_.getMessage();
          }
          return span.SpanOuterClass.Root.getDefaultInstance();
        }
      }
      /**
       * .span.Root root = 1;
       */
      public Builder setRoot(span.SpanOuterClass.Root value) {
        if (rootBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          link_ = value;
          onChanged();
        } else {
          rootBuilder_.setMessage(value);
        }
        linkCase_ = 1;
        return this;
      }
      /**
       * .span.Root root = 1;
       */
      public Builder setRoot(
          span.SpanOuterClass.Root.Builder builderForValue) {
        if (rootBuilder_ == null) {
          link_ = builderForValue.build();
          onChanged();
        } else {
          rootBuilder_.setMessage(builderForValue.build());
        }
        linkCase_ = 1;
        return this;
      }
      /**
       * .span.Root root = 1;
       */
      public Builder mergeRoot(span.SpanOuterClass.Root value) {
        if (rootBuilder_ == null) {
          if (linkCase_ == 1 &&
              link_ != span.SpanOuterClass.Root.getDefaultInstance()) {
            link_ = span.SpanOuterClass.Root.newBuilder((span.SpanOuterClass.Root) link_)
                .mergeFrom(value).buildPartial();
          } else {
            link_ = value;
          }
          onChanged();
        } else {
          if (linkCase_ == 1) {
            rootBuilder_.mergeFrom(value);
          }
          rootBuilder_.setMessage(value);
        }
        linkCase_ = 1;
        return this;
      }
      /**
       * .span.Root root = 1;
       */
      public Builder clearRoot() {
        if (rootBuilder_ == null) {
          if (linkCase_ == 1) {
            linkCase_ = 0;
            link_ = null;
            onChanged();
          }
        } else {
          if (linkCase_ == 1) {
            linkCase_ = 0;
            link_ = null;
          }
          rootBuilder_.clear();
        }
        return this;
      }
      /**
       * .span.Root root = 1;
       */
      public span.SpanOuterClass.Root.Builder getRootBuilder() {
        return getRootFieldBuilder().getBuilder();
      }
      /**
       * .span.Root root = 1;
       */
      public span.SpanOuterClass.RootOrBuilder getRootOrBuilder() {
        if ((linkCase_ == 1) && (rootBuilder_ != null)) {
          return rootBuilder_.getMessageOrBuilder();
        } else {
          if (linkCase_ == 1) {
            return (span.SpanOuterClass.Root) link_;
          }
          return span.SpanOuterClass.Root.getDefaultInstance();
        }
      }
      /**
       * .span.Root root = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          span.SpanOuterClass.Root, span.SpanOuterClass.Root.Builder, span.SpanOuterClass.RootOrBuilder> 
          getRootFieldBuilder() {
        if (rootBuilder_ == null) {
          if (!(linkCase_ == 1)) {
            link_ = span.SpanOuterClass.Root.getDefaultInstance();
          }
          rootBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              span.SpanOuterClass.Root, span.SpanOuterClass.Root.Builder, span.SpanOuterClass.RootOrBuilder>(
                  (span.SpanOuterClass.Root) link_,
                  getParentForChildren(),
                  isClean());
          link_ = null;
        }
        linkCase_ = 1;
        onChanged();;
        return rootBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          span.SpanOuterClass.Parent, span.SpanOuterClass.Parent.Builder, span.SpanOuterClass.ParentOrBuilder> parentBuilder_;
      /**
       * .span.Parent parent = 2;
       */
      public boolean hasParent() {
        return linkCase_ == 2;
      }
      /**
       * .span.Parent parent = 2;
       */
      public span.SpanOuterClass.Parent getParent() {
        if (parentBuilder_ == null) {
          if (linkCase_ == 2) {
            return (span.SpanOuterClass.Parent) link_;
          }
          return span.SpanOuterClass.Parent.getDefaultInstance();
        } else {
          if (linkCase_ == 2) {
            return parentBuilder_.getMessage();
          }
          return span.SpanOuterClass.Parent.getDefaultInstance();
        }
      }
      /**
       * .span.Parent parent = 2;
       */
      public Builder setParent(span.SpanOuterClass.Parent value) {
        if (parentBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          link_ = value;
          onChanged();
        } else {
          parentBuilder_.setMessage(value);
        }
        linkCase_ = 2;
        return this;
      }
      /**
       * .span.Parent parent = 2;
       */
      public Builder setParent(
          span.SpanOuterClass.Parent.Builder builderForValue) {
        if (parentBuilder_ == null) {
          link_ = builderForValue.build();
          onChanged();
        } else {
          parentBuilder_.setMessage(builderForValue.build());
        }
        linkCase_ = 2;
        return this;
      }
      /**
       * .span.Parent parent = 2;
       */
      public Builder mergeParent(span.SpanOuterClass.Parent value) {
        if (parentBuilder_ == null) {
          if (linkCase_ == 2 &&
              link_ != span.SpanOuterClass.Parent.getDefaultInstance()) {
            link_ = span.SpanOuterClass.Parent.newBuilder((span.SpanOuterClass.Parent) link_)
                .mergeFrom(value).buildPartial();
          } else {
            link_ = value;
          }
          onChanged();
        } else {
          if (linkCase_ == 2) {
            parentBuilder_.mergeFrom(value);
          }
          parentBuilder_.setMessage(value);
        }
        linkCase_ = 2;
        return this;
      }
      /**
       * .span.Parent parent = 2;
       */
      public Builder clearParent() {
        if (parentBuilder_ == null) {
          if (linkCase_ == 2) {
            linkCase_ = 0;
            link_ = null;
            onChanged();
          }
        } else {
          if (linkCase_ == 2) {
            linkCase_ = 0;
            link_ = null;
          }
          parentBuilder_.clear();
        }
        return this;
      }
      /**
       * .span.Parent parent = 2;
       */
      public span.SpanOuterClass.Parent.Builder getParentBuilder() {
        return getParentFieldBuilder().getBuilder();
      }
      /**
       * .span.Parent parent = 2;
       */
      public span.SpanOuterClass.ParentOrBuilder getParentOrBuilder() {
        if ((linkCase_ == 2) && (parentBuilder_ != null)) {
          return parentBuilder_.getMessageOrBuilder();
        } else {
          if (linkCase_ == 2) {
            return (span.SpanOuterClass.Parent) link_;
          }
          return span.SpanOuterClass.Parent.getDefaultInstance();
        }
      }
      /**
       * .span.Parent parent = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          span.SpanOuterClass.Parent, span.SpanOuterClass.Parent.Builder, span.SpanOuterClass.ParentOrBuilder> 
          getParentFieldBuilder() {
        if (parentBuilder_ == null) {
          if (!(linkCase_ == 2)) {
            link_ = span.SpanOuterClass.Parent.getDefaultInstance();
          }
          parentBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              span.SpanOuterClass.Parent, span.SpanOuterClass.Parent.Builder, span.SpanOuterClass.ParentOrBuilder>(
                  (span.SpanOuterClass.Parent) link_,
                  getParentForChildren(),
                  isClean());
          link_ = null;
        }
        linkCase_ = 2;
        onChanged();;
        return parentBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          span.SpanOuterClass.Continue, span.SpanOuterClass.Continue.Builder, span.SpanOuterClass.ContinueOrBuilder> continueBuilder_;
      /**
       * .span.Continue continue = 3;
       */
      public boolean hasContinue() {
        return linkCase_ == 3;
      }
      /**
       * .span.Continue continue = 3;
       */
      public span.SpanOuterClass.Continue getContinue() {
        if (continueBuilder_ == null) {
          if (linkCase_ == 3) {
            return (span.SpanOuterClass.Continue) link_;
          }
          return span.SpanOuterClass.Continue.getDefaultInstance();
        } else {
          if (linkCase_ == 3) {
            return continueBuilder_.getMessage();
          }
          return span.SpanOuterClass.Continue.getDefaultInstance();
        }
      }
      /**
       * .span.Continue continue = 3;
       */
      public Builder setContinue(span.SpanOuterClass.Continue value) {
        if (continueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          link_ = value;
          onChanged();
        } else {
          continueBuilder_.setMessage(value);
        }
        linkCase_ = 3;
        return this;
      }
      /**
       * .span.Continue continue = 3;
       */
      public Builder setContinue(
          span.SpanOuterClass.Continue.Builder builderForValue) {
        if (continueBuilder_ == null) {
          link_ = builderForValue.build();
          onChanged();
        } else {
          continueBuilder_.setMessage(builderForValue.build());
        }
        linkCase_ = 3;
        return this;
      }
      /**
       * .span.Continue continue = 3;
       */
      public Builder mergeContinue(span.SpanOuterClass.Continue value) {
        if (continueBuilder_ == null) {
          if (linkCase_ == 3 &&
              link_ != span.SpanOuterClass.Continue.getDefaultInstance()) {
            link_ = span.SpanOuterClass.Continue.newBuilder((span.SpanOuterClass.Continue) link_)
                .mergeFrom(value).buildPartial();
          } else {
            link_ = value;
          }
          onChanged();
        } else {
          if (linkCase_ == 3) {
            continueBuilder_.mergeFrom(value);
          }
          continueBuilder_.setMessage(value);
        }
        linkCase_ = 3;
        return this;
      }
      /**
       * .span.Continue continue = 3;
       */
      public Builder clearContinue() {
        if (continueBuilder_ == null) {
          if (linkCase_ == 3) {
            linkCase_ = 0;
            link_ = null;
            onChanged();
          }
        } else {
          if (linkCase_ == 3) {
            linkCase_ = 0;
            link_ = null;
          }
          continueBuilder_.clear();
        }
        return this;
      }
      /**
       * .span.Continue continue = 3;
       */
      public span.SpanOuterClass.Continue.Builder getContinueBuilder() {
        return getContinueFieldBuilder().getBuilder();
      }
      /**
       * .span.Continue continue = 3;
       */
      public span.SpanOuterClass.ContinueOrBuilder getContinueOrBuilder() {
        if ((linkCase_ == 3) && (continueBuilder_ != null)) {
          return continueBuilder_.getMessageOrBuilder();
        } else {
          if (linkCase_ == 3) {
            return (span.SpanOuterClass.Continue) link_;
          }
          return span.SpanOuterClass.Continue.getDefaultInstance();
        }
      }
      /**
       * .span.Continue continue = 3;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          span.SpanOuterClass.Continue, span.SpanOuterClass.Continue.Builder, span.SpanOuterClass.ContinueOrBuilder> 
          getContinueFieldBuilder() {
        if (continueBuilder_ == null) {
          if (!(linkCase_ == 3)) {
            link_ = span.SpanOuterClass.Continue.getDefaultInstance();
          }
          continueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              span.SpanOuterClass.Continue, span.SpanOuterClass.Continue.Builder, span.SpanOuterClass.ContinueOrBuilder>(
                  (span.SpanOuterClass.Continue) link_,
                  getParentForChildren(),
                  isClean());
          link_ = null;
        }
        linkCase_ = 3;
        onChanged();;
        return continueBuilder_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:span.Link)
    }

    // @@protoc_insertion_point(class_scope:span.Link)
    private static final span.SpanOuterClass.Link DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new span.SpanOuterClass.Link();
    }

    public static span.SpanOuterClass.Link getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public Link parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Link(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public span.SpanOuterClass.Link getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SpanOrBuilder extends
      // @@protoc_insertion_point(interface_extends:span.Span)
      com.google.protobuf.MessageOrBuilder {

    /**
     * uint64 id = 1;
     */
    long getId();

    /**
     * .span.Link link = 2;
     */
    boolean hasLink();
    /**
     * .span.Link link = 2;
     */
    span.SpanOuterClass.Link getLink();
    /**
     * .span.Link link = 2;
     */
    span.SpanOuterClass.LinkOrBuilder getLinkOrBuilder();

    /**
     * uint64 begin_cycles = 3;
     */
    long getBeginCycles();

    /**
     * uint64 end_cycles = 4;
     */
    long getEndCycles();

    /**
     * uint32 event = 5;
     */
    int getEvent();
  }
  /**
   * Protobuf type {@code span.Span}
   */
  public  static final class Span extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:span.Span)
      SpanOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Span.newBuilder() to construct.
    private Span(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private Span() {
      id_ = 0L;
      beginCycles_ = 0L;
      endCycles_ = 0L;
      event_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Span(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {

              id_ = input.readUInt64();
              break;
            }
            case 18: {
              span.SpanOuterClass.Link.Builder subBuilder = null;
              if (link_ != null) {
                subBuilder = link_.toBuilder();
              }
              link_ = input.readMessage(span.SpanOuterClass.Link.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(link_);
                link_ = subBuilder.buildPartial();
              }

              break;
            }
            case 24: {

              beginCycles_ = input.readUInt64();
              break;
            }
            case 32: {

              endCycles_ = input.readUInt64();
              break;
            }
            case 40: {

              event_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return span.SpanOuterClass.internal_static_span_Span_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return span.SpanOuterClass.internal_static_span_Span_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              span.SpanOuterClass.Span.class, span.SpanOuterClass.Span.Builder.class);
    }

    public static final int ID_FIELD_NUMBER = 1;
    private long id_;
    /**
     * uint64 id = 1;
     */
    public long getId() {
      return id_;
    }

    public static final int LINK_FIELD_NUMBER = 2;
    private span.SpanOuterClass.Link link_;
    /**
     * .span.Link link = 2;
     */
    public boolean hasLink() {
      return link_ != null;
    }
    /**
     * .span.Link link = 2;
     */
    public span.SpanOuterClass.Link getLink() {
      return link_ == null ? span.SpanOuterClass.Link.getDefaultInstance() : link_;
    }
    /**
     * .span.Link link = 2;
     */
    public span.SpanOuterClass.LinkOrBuilder getLinkOrBuilder() {
      return getLink();
    }

    public static final int BEGIN_CYCLES_FIELD_NUMBER = 3;
    private long beginCycles_;
    /**
     * uint64 begin_cycles = 3;
     */
    public long getBeginCycles() {
      return beginCycles_;
    }

    public static final int END_CYCLES_FIELD_NUMBER = 4;
    private long endCycles_;
    /**
     * uint64 end_cycles = 4;
     */
    public long getEndCycles() {
      return endCycles_;
    }

    public static final int EVENT_FIELD_NUMBER = 5;
    private int event_;
    /**
     * uint32 event = 5;
     */
    public int getEvent() {
      return event_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (id_ != 0L) {
        output.writeUInt64(1, id_);
      }
      if (link_ != null) {
        output.writeMessage(2, getLink());
      }
      if (beginCycles_ != 0L) {
        output.writeUInt64(3, beginCycles_);
      }
      if (endCycles_ != 0L) {
        output.writeUInt64(4, endCycles_);
      }
      if (event_ != 0) {
        output.writeUInt32(5, event_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (id_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(1, id_);
      }
      if (link_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getLink());
      }
      if (beginCycles_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(3, beginCycles_);
      }
      if (endCycles_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(4, endCycles_);
      }
      if (event_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, event_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof span.SpanOuterClass.Span)) {
        return super.equals(obj);
      }
      span.SpanOuterClass.Span other = (span.SpanOuterClass.Span) obj;

      boolean result = true;
      result = result && (getId()
          == other.getId());
      result = result && (hasLink() == other.hasLink());
      if (hasLink()) {
        result = result && getLink()
            .equals(other.getLink());
      }
      result = result && (getBeginCycles()
          == other.getBeginCycles());
      result = result && (getEndCycles()
          == other.getEndCycles());
      result = result && (getEvent()
          == other.getEvent());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ID_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getId());
      if (hasLink()) {
        hash = (37 * hash) + LINK_FIELD_NUMBER;
        hash = (53 * hash) + getLink().hashCode();
      }
      hash = (37 * hash) + BEGIN_CYCLES_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getBeginCycles());
      hash = (37 * hash) + END_CYCLES_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getEndCycles());
      hash = (37 * hash) + EVENT_FIELD_NUMBER;
      hash = (53 * hash) + getEvent();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static span.SpanOuterClass.Span parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static span.SpanOuterClass.Span parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static span.SpanOuterClass.Span parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static span.SpanOuterClass.Span parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static span.SpanOuterClass.Span parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static span.SpanOuterClass.Span parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static span.SpanOuterClass.Span parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static span.SpanOuterClass.Span parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static span.SpanOuterClass.Span parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static span.SpanOuterClass.Span parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static span.SpanOuterClass.Span parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static span.SpanOuterClass.Span parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(span.SpanOuterClass.Span prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code span.Span}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:span.Span)
        span.SpanOuterClass.SpanOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return span.SpanOuterClass.internal_static_span_Span_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return span.SpanOuterClass.internal_static_span_Span_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                span.SpanOuterClass.Span.class, span.SpanOuterClass.Span.Builder.class);
      }

      // Construct using span.SpanOuterClass.Span.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        id_ = 0L;

        if (linkBuilder_ == null) {
          link_ = null;
        } else {
          link_ = null;
          linkBuilder_ = null;
        }
        beginCycles_ = 0L;

        endCycles_ = 0L;

        event_ = 0;

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return span.SpanOuterClass.internal_static_span_Span_descriptor;
      }

      public span.SpanOuterClass.Span getDefaultInstanceForType() {
        return span.SpanOuterClass.Span.getDefaultInstance();
      }

      public span.SpanOuterClass.Span build() {
        span.SpanOuterClass.Span result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public span.SpanOuterClass.Span buildPartial() {
        span.SpanOuterClass.Span result = new span.SpanOuterClass.Span(this);
        result.id_ = id_;
        if (linkBuilder_ == null) {
          result.link_ = link_;
        } else {
          result.link_ = linkBuilder_.build();
        }
        result.beginCycles_ = beginCycles_;
        result.endCycles_ = endCycles_;
        result.event_ = event_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof span.SpanOuterClass.Span) {
          return mergeFrom((span.SpanOuterClass.Span)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(span.SpanOuterClass.Span other) {
        if (other == span.SpanOuterClass.Span.getDefaultInstance()) return this;
        if (other.getId() != 0L) {
          setId(other.getId());
        }
        if (other.hasLink()) {
          mergeLink(other.getLink());
        }
        if (other.getBeginCycles() != 0L) {
          setBeginCycles(other.getBeginCycles());
        }
        if (other.getEndCycles() != 0L) {
          setEndCycles(other.getEndCycles());
        }
        if (other.getEvent() != 0) {
          setEvent(other.getEvent());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        span.SpanOuterClass.Span parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (span.SpanOuterClass.Span) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private long id_ ;
      /**
       * uint64 id = 1;
       */
      public long getId() {
        return id_;
      }
      /**
       * uint64 id = 1;
       */
      public Builder setId(long value) {
        
        id_ = value;
        onChanged();
        return this;
      }
      /**
       * uint64 id = 1;
       */
      public Builder clearId() {
        
        id_ = 0L;
        onChanged();
        return this;
      }

      private span.SpanOuterClass.Link link_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          span.SpanOuterClass.Link, span.SpanOuterClass.Link.Builder, span.SpanOuterClass.LinkOrBuilder> linkBuilder_;
      /**
       * .span.Link link = 2;
       */
      public boolean hasLink() {
        return linkBuilder_ != null || link_ != null;
      }
      /**
       * .span.Link link = 2;
       */
      public span.SpanOuterClass.Link getLink() {
        if (linkBuilder_ == null) {
          return link_ == null ? span.SpanOuterClass.Link.getDefaultInstance() : link_;
        } else {
          return linkBuilder_.getMessage();
        }
      }
      /**
       * .span.Link link = 2;
       */
      public Builder setLink(span.SpanOuterClass.Link value) {
        if (linkBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          link_ = value;
          onChanged();
        } else {
          linkBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .span.Link link = 2;
       */
      public Builder setLink(
          span.SpanOuterClass.Link.Builder builderForValue) {
        if (linkBuilder_ == null) {
          link_ = builderForValue.build();
          onChanged();
        } else {
          linkBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .span.Link link = 2;
       */
      public Builder mergeLink(span.SpanOuterClass.Link value) {
        if (linkBuilder_ == null) {
          if (link_ != null) {
            link_ =
              span.SpanOuterClass.Link.newBuilder(link_).mergeFrom(value).buildPartial();
          } else {
            link_ = value;
          }
          onChanged();
        } else {
          linkBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .span.Link link = 2;
       */
      public Builder clearLink() {
        if (linkBuilder_ == null) {
          link_ = null;
          onChanged();
        } else {
          link_ = null;
          linkBuilder_ = null;
        }

        return this;
      }
      /**
       * .span.Link link = 2;
       */
      public span.SpanOuterClass.Link.Builder getLinkBuilder() {
        
        onChanged();
        return getLinkFieldBuilder().getBuilder();
      }
      /**
       * .span.Link link = 2;
       */
      public span.SpanOuterClass.LinkOrBuilder getLinkOrBuilder() {
        if (linkBuilder_ != null) {
          return linkBuilder_.getMessageOrBuilder();
        } else {
          return link_ == null ?
              span.SpanOuterClass.Link.getDefaultInstance() : link_;
        }
      }
      /**
       * .span.Link link = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          span.SpanOuterClass.Link, span.SpanOuterClass.Link.Builder, span.SpanOuterClass.LinkOrBuilder> 
          getLinkFieldBuilder() {
        if (linkBuilder_ == null) {
          linkBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              span.SpanOuterClass.Link, span.SpanOuterClass.Link.Builder, span.SpanOuterClass.LinkOrBuilder>(
                  getLink(),
                  getParentForChildren(),
                  isClean());
          link_ = null;
        }
        return linkBuilder_;
      }

      private long beginCycles_ ;
      /**
       * uint64 begin_cycles = 3;
       */
      public long getBeginCycles() {
        return beginCycles_;
      }
      /**
       * uint64 begin_cycles = 3;
       */
      public Builder setBeginCycles(long value) {
        
        beginCycles_ = value;
        onChanged();
        return this;
      }
      /**
       * uint64 begin_cycles = 3;
       */
      public Builder clearBeginCycles() {
        
        beginCycles_ = 0L;
        onChanged();
        return this;
      }

      private long endCycles_ ;
      /**
       * uint64 end_cycles = 4;
       */
      public long getEndCycles() {
        return endCycles_;
      }
      /**
       * uint64 end_cycles = 4;
       */
      public Builder setEndCycles(long value) {
        
        endCycles_ = value;
        onChanged();
        return this;
      }
      /**
       * uint64 end_cycles = 4;
       */
      public Builder clearEndCycles() {
        
        endCycles_ = 0L;
        onChanged();
        return this;
      }

      private int event_ ;
      /**
       * uint32 event = 5;
       */
      public int getEvent() {
        return event_;
      }
      /**
       * uint32 event = 5;
       */
      public Builder setEvent(int value) {
        
        event_ = value;
        onChanged();
        return this;
      }
      /**
       * uint32 event = 5;
       */
      public Builder clearEvent() {
        
        event_ = 0;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:span.Span)
    }

    // @@protoc_insertion_point(class_scope:span.Span)
    private static final span.SpanOuterClass.Span DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new span.SpanOuterClass.Span();
    }

    public static span.SpanOuterClass.Span getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public Span parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Span(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public span.SpanOuterClass.Span getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_span_SpanSet_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_span_SpanSet_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_span_Root_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_span_Root_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_span_Parent_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_span_Parent_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_span_Continue_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_span_Continue_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_span_Link_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_span_Link_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_span_Span_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_span_Span_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\nspan.proto\022\004span\"k\n\007SpanSet\022\025\n\rstart_t" +
      "ime_ns\030\001 \001(\004\022\026\n\016cycles_per_sec\030\002 \001(\004\022\031\n\005" +
      "spans\030\003 \003(\0132\n.span.Span\022\026\n\016create_time_n" +
      "s\030\004 \001(\004\"\006\n\004Root\"\024\n\006Parent\022\n\n\002id\030\001 \001(\004\"\026\n" +
      "\010Continue\022\n\n\002id\030\001 \001(\004\"n\n\004Link\022\032\n\004root\030\001 " +
      "\001(\0132\n.span.RootH\000\022\036\n\006parent\030\002 \001(\0132\014.span" +
      ".ParentH\000\022\"\n\010continue\030\003 \001(\0132\016.span.Conti" +
      "nueH\000B\006\n\004link\"e\n\004Span\022\n\n\002id\030\001 \001(\004\022\030\n\004lin" +
      "k\030\002 \001(\0132\n.span.Link\022\024\n\014begin_cycles\030\003 \001(" +
      "\004\022\022\n\nend_cycles\030\004 \001(\004\022\r\n\005event\030\005 \001(\rb\006pr" +
      "oto3"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            return null;
          }
        };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        }, assigner);
    internal_static_span_SpanSet_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_span_SpanSet_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_span_SpanSet_descriptor,
        new java.lang.String[] { "StartTimeNs", "CyclesPerSec", "Spans", "CreateTimeNs", });
    internal_static_span_Root_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_span_Root_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_span_Root_descriptor,
        new java.lang.String[] { });
    internal_static_span_Parent_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_span_Parent_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_span_Parent_descriptor,
        new java.lang.String[] { "Id", });
    internal_static_span_Continue_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_span_Continue_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_span_Continue_descriptor,
        new java.lang.String[] { "Id", });
    internal_static_span_Link_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_span_Link_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_span_Link_descriptor,
        new java.lang.String[] { "Root", "Parent", "Continue", "Link", });
    internal_static_span_Span_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_span_Span_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_span_Span_descriptor,
        new java.lang.String[] { "Id", "Link", "BeginCycles", "EndCycles", "Event", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy