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

org.jetbrains.bsp.bazel.info.BspTargetInfo Maven / Gradle / Ivy

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: server/src/main/kotlin/org/jetbrains/bsp/bazel/server/sync/proto/bsp_target_info.proto

package org.jetbrains.bsp.bazel.info;

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

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  /**
   * Protobuf enum {@code bazelbsp.RustCrateLocation}
   */
  public enum RustCrateLocation
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * WORKSPACE_DIR = 0;
     */
    WORKSPACE_DIR(0),
    /**
     * EXEC_ROOT = 1;
     */
    EXEC_ROOT(1),
    UNRECOGNIZED(-1),
    ;

    /**
     * WORKSPACE_DIR = 0;
     */
    public static final int WORKSPACE_DIR_VALUE = 0;
    /**
     * EXEC_ROOT = 1;
     */
    public static final int EXEC_ROOT_VALUE = 1;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static RustCrateLocation valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static RustCrateLocation forNumber(int value) {
      switch (value) {
        case 0: return WORKSPACE_DIR;
        case 1: return EXEC_ROOT;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        RustCrateLocation> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public RustCrateLocation findValueByNumber(int number) {
              return RustCrateLocation.forNumber(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return org.jetbrains.bsp.bazel.info.BspTargetInfo.getDescriptor().getEnumTypes().get(0);
    }

    private static final RustCrateLocation[] VALUES = values();

    public static RustCrateLocation valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private RustCrateLocation(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:bazelbsp.RustCrateLocation)
  }

  public interface FileLocationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:bazelbsp.FileLocation)
      com.google.protobuf.MessageOrBuilder {

    /**
     * string relative_path = 1;
     * @return The relativePath.
     */
    java.lang.String getRelativePath();
    /**
     * string relative_path = 1;
     * @return The bytes for relativePath.
     */
    com.google.protobuf.ByteString
        getRelativePathBytes();

    /**
     * bool is_source = 2;
     * @return The isSource.
     */
    boolean getIsSource();

    /**
     * bool is_external = 3;
     * @return The isExternal.
     */
    boolean getIsExternal();

    /**
     * string root_execution_path_fragment = 4;
     * @return The rootExecutionPathFragment.
     */
    java.lang.String getRootExecutionPathFragment();
    /**
     * string root_execution_path_fragment = 4;
     * @return The bytes for rootExecutionPathFragment.
     */
    com.google.protobuf.ByteString
        getRootExecutionPathFragmentBytes();
  }
  /**
   * Protobuf type {@code bazelbsp.FileLocation}
   */
  public static final class FileLocation extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:bazelbsp.FileLocation)
      FileLocationOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use FileLocation.newBuilder() to construct.
    private FileLocation(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private FileLocation() {
      relativePath_ = "";
      rootExecutionPathFragment_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new FileLocation();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_FileLocation_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_FileLocation_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.class, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder.class);
    }

    public static final int RELATIVE_PATH_FIELD_NUMBER = 1;
    private volatile java.lang.Object relativePath_;
    /**
     * string relative_path = 1;
     * @return The relativePath.
     */
    @java.lang.Override
    public java.lang.String getRelativePath() {
      java.lang.Object ref = relativePath_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        relativePath_ = s;
        return s;
      }
    }
    /**
     * string relative_path = 1;
     * @return The bytes for relativePath.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRelativePathBytes() {
      java.lang.Object ref = relativePath_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        relativePath_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int IS_SOURCE_FIELD_NUMBER = 2;
    private boolean isSource_;
    /**
     * bool is_source = 2;
     * @return The isSource.
     */
    @java.lang.Override
    public boolean getIsSource() {
      return isSource_;
    }

    public static final int IS_EXTERNAL_FIELD_NUMBER = 3;
    private boolean isExternal_;
    /**
     * bool is_external = 3;
     * @return The isExternal.
     */
    @java.lang.Override
    public boolean getIsExternal() {
      return isExternal_;
    }

    public static final int ROOT_EXECUTION_PATH_FRAGMENT_FIELD_NUMBER = 4;
    private volatile java.lang.Object rootExecutionPathFragment_;
    /**
     * string root_execution_path_fragment = 4;
     * @return The rootExecutionPathFragment.
     */
    @java.lang.Override
    public java.lang.String getRootExecutionPathFragment() {
      java.lang.Object ref = rootExecutionPathFragment_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        rootExecutionPathFragment_ = s;
        return s;
      }
    }
    /**
     * string root_execution_path_fragment = 4;
     * @return The bytes for rootExecutionPathFragment.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRootExecutionPathFragmentBytes() {
      java.lang.Object ref = rootExecutionPathFragment_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        rootExecutionPathFragment_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(relativePath_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, relativePath_);
      }
      if (isSource_ != false) {
        output.writeBool(2, isSource_);
      }
      if (isExternal_ != false) {
        output.writeBool(3, isExternal_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(rootExecutionPathFragment_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, rootExecutionPathFragment_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(relativePath_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, relativePath_);
      }
      if (isSource_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, isSource_);
      }
      if (isExternal_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, isExternal_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(rootExecutionPathFragment_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, rootExecutionPathFragment_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation)) {
        return super.equals(obj);
      }
      org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation other = (org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation) obj;

      if (!getRelativePath()
          .equals(other.getRelativePath())) return false;
      if (getIsSource()
          != other.getIsSource()) return false;
      if (getIsExternal()
          != other.getIsExternal()) return false;
      if (!getRootExecutionPathFragment()
          .equals(other.getRootExecutionPathFragment())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + RELATIVE_PATH_FIELD_NUMBER;
      hash = (53 * hash) + getRelativePath().hashCode();
      hash = (37 * hash) + IS_SOURCE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsSource());
      hash = (37 * hash) + IS_EXTERNAL_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsExternal());
      hash = (37 * hash) + ROOT_EXECUTION_PATH_FRAGMENT_FIELD_NUMBER;
      hash = (53 * hash) + getRootExecutionPathFragment().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation 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 org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation 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 org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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 bazelbsp.FileLocation}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:bazelbsp.FileLocation)
        org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_FileLocation_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_FileLocation_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.class, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder.class);
      }

      // Construct using org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        relativePath_ = "";

        isSource_ = false;

        isExternal_ = false;

        rootExecutionPathFragment_ = "";

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_FileLocation_descriptor;
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getDefaultInstanceForType() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance();
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation build() {
        org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation buildPartial() {
        org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation result = new org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation(this);
        result.relativePath_ = relativePath_;
        result.isSource_ = isSource_;
        result.isExternal_ = isExternal_;
        result.rootExecutionPathFragment_ = rootExecutionPathFragment_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation) {
          return mergeFrom((org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation other) {
        if (other == org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance()) return this;
        if (!other.getRelativePath().isEmpty()) {
          relativePath_ = other.relativePath_;
          onChanged();
        }
        if (other.getIsSource() != false) {
          setIsSource(other.getIsSource());
        }
        if (other.getIsExternal() != false) {
          setIsExternal(other.getIsExternal());
        }
        if (!other.getRootExecutionPathFragment().isEmpty()) {
          rootExecutionPathFragment_ = other.rootExecutionPathFragment_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                relativePath_ = input.readStringRequireUtf8();

                break;
              } // case 10
              case 16: {
                isSource_ = input.readBool();

                break;
              } // case 16
              case 24: {
                isExternal_ = input.readBool();

                break;
              } // case 24
              case 34: {
                rootExecutionPathFragment_ = input.readStringRequireUtf8();

                break;
              } // case 34
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }

      private java.lang.Object relativePath_ = "";
      /**
       * string relative_path = 1;
       * @return The relativePath.
       */
      public java.lang.String getRelativePath() {
        java.lang.Object ref = relativePath_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          relativePath_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string relative_path = 1;
       * @return The bytes for relativePath.
       */
      public com.google.protobuf.ByteString
          getRelativePathBytes() {
        java.lang.Object ref = relativePath_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          relativePath_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string relative_path = 1;
       * @param value The relativePath to set.
       * @return This builder for chaining.
       */
      public Builder setRelativePath(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        relativePath_ = value;
        onChanged();
        return this;
      }
      /**
       * string relative_path = 1;
       * @return This builder for chaining.
       */
      public Builder clearRelativePath() {
        
        relativePath_ = getDefaultInstance().getRelativePath();
        onChanged();
        return this;
      }
      /**
       * string relative_path = 1;
       * @param value The bytes for relativePath to set.
       * @return This builder for chaining.
       */
      public Builder setRelativePathBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        relativePath_ = value;
        onChanged();
        return this;
      }

      private boolean isSource_ ;
      /**
       * bool is_source = 2;
       * @return The isSource.
       */
      @java.lang.Override
      public boolean getIsSource() {
        return isSource_;
      }
      /**
       * bool is_source = 2;
       * @param value The isSource to set.
       * @return This builder for chaining.
       */
      public Builder setIsSource(boolean value) {
        
        isSource_ = value;
        onChanged();
        return this;
      }
      /**
       * bool is_source = 2;
       * @return This builder for chaining.
       */
      public Builder clearIsSource() {
        
        isSource_ = false;
        onChanged();
        return this;
      }

      private boolean isExternal_ ;
      /**
       * bool is_external = 3;
       * @return The isExternal.
       */
      @java.lang.Override
      public boolean getIsExternal() {
        return isExternal_;
      }
      /**
       * bool is_external = 3;
       * @param value The isExternal to set.
       * @return This builder for chaining.
       */
      public Builder setIsExternal(boolean value) {
        
        isExternal_ = value;
        onChanged();
        return this;
      }
      /**
       * bool is_external = 3;
       * @return This builder for chaining.
       */
      public Builder clearIsExternal() {
        
        isExternal_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object rootExecutionPathFragment_ = "";
      /**
       * string root_execution_path_fragment = 4;
       * @return The rootExecutionPathFragment.
       */
      public java.lang.String getRootExecutionPathFragment() {
        java.lang.Object ref = rootExecutionPathFragment_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          rootExecutionPathFragment_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string root_execution_path_fragment = 4;
       * @return The bytes for rootExecutionPathFragment.
       */
      public com.google.protobuf.ByteString
          getRootExecutionPathFragmentBytes() {
        java.lang.Object ref = rootExecutionPathFragment_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          rootExecutionPathFragment_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string root_execution_path_fragment = 4;
       * @param value The rootExecutionPathFragment to set.
       * @return This builder for chaining.
       */
      public Builder setRootExecutionPathFragment(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        rootExecutionPathFragment_ = value;
        onChanged();
        return this;
      }
      /**
       * string root_execution_path_fragment = 4;
       * @return This builder for chaining.
       */
      public Builder clearRootExecutionPathFragment() {
        
        rootExecutionPathFragment_ = getDefaultInstance().getRootExecutionPathFragment();
        onChanged();
        return this;
      }
      /**
       * string root_execution_path_fragment = 4;
       * @param value The bytes for rootExecutionPathFragment to set.
       * @return This builder for chaining.
       */
      public Builder setRootExecutionPathFragmentBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        rootExecutionPathFragment_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:bazelbsp.FileLocation)
    }

    // @@protoc_insertion_point(class_scope:bazelbsp.FileLocation)
    private static final org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation();
    }

    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public FileLocation parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DependencyOrBuilder extends
      // @@protoc_insertion_point(interface_extends:bazelbsp.Dependency)
      com.google.protobuf.MessageOrBuilder {

    /**
     * string id = 1;
     * @return The id.
     */
    java.lang.String getId();
    /**
     * string id = 1;
     * @return The bytes for id.
     */
    com.google.protobuf.ByteString
        getIdBytes();

    /**
     * .bazelbsp.Dependency.DependencyType dependency_type = 2;
     * @return The enum numeric value on the wire for dependencyType.
     */
    int getDependencyTypeValue();
    /**
     * .bazelbsp.Dependency.DependencyType dependency_type = 2;
     * @return The dependencyType.
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency.DependencyType getDependencyType();
  }
  /**
   * Protobuf type {@code bazelbsp.Dependency}
   */
  public static final class Dependency extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:bazelbsp.Dependency)
      DependencyOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Dependency.newBuilder() to construct.
    private Dependency(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private Dependency() {
      id_ = "";
      dependencyType_ = 0;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Dependency();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_Dependency_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_Dependency_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency.class, org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency.Builder.class);
    }

    /**
     * Protobuf enum {@code bazelbsp.Dependency.DependencyType}
     */
    public enum DependencyType
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * COMPILE = 0;
       */
      COMPILE(0),
      /**
       * RUNTIME = 1;
       */
      RUNTIME(1),
      UNRECOGNIZED(-1),
      ;

      /**
       * COMPILE = 0;
       */
      public static final int COMPILE_VALUE = 0;
      /**
       * RUNTIME = 1;
       */
      public static final int RUNTIME_VALUE = 1;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static DependencyType valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static DependencyType forNumber(int value) {
        switch (value) {
          case 0: return COMPILE;
          case 1: return RUNTIME;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          DependencyType> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap() {
              public DependencyType findValueByNumber(int number) {
                return DependencyType.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency.getDescriptor().getEnumTypes().get(0);
      }

      private static final DependencyType[] VALUES = values();

      public static DependencyType valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private DependencyType(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:bazelbsp.Dependency.DependencyType)
    }

    public static final int ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object id_;
    /**
     * string id = 1;
     * @return The id.
     */
    @java.lang.Override
    public java.lang.String getId() {
      java.lang.Object ref = id_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        id_ = s;
        return s;
      }
    }
    /**
     * string id = 1;
     * @return The bytes for id.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getIdBytes() {
      java.lang.Object ref = id_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        id_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEPENDENCY_TYPE_FIELD_NUMBER = 2;
    private int dependencyType_;
    /**
     * .bazelbsp.Dependency.DependencyType dependency_type = 2;
     * @return The enum numeric value on the wire for dependencyType.
     */
    @java.lang.Override public int getDependencyTypeValue() {
      return dependencyType_;
    }
    /**
     * .bazelbsp.Dependency.DependencyType dependency_type = 2;
     * @return The dependencyType.
     */
    @java.lang.Override public org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency.DependencyType getDependencyType() {
      @SuppressWarnings("deprecation")
      org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency.DependencyType result = org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency.DependencyType.valueOf(dependencyType_);
      return result == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency.DependencyType.UNRECOGNIZED : result;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_);
      }
      if (dependencyType_ != org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency.DependencyType.COMPILE.getNumber()) {
        output.writeEnum(2, dependencyType_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_);
      }
      if (dependencyType_ != org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency.DependencyType.COMPILE.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, dependencyType_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency)) {
        return super.equals(obj);
      }
      org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency other = (org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency) obj;

      if (!getId()
          .equals(other.getId())) return false;
      if (dependencyType_ != other.dependencyType_) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @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) + getId().hashCode();
      hash = (37 * hash) + DEPENDENCY_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + dependencyType_;
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency 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 org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency 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 org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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 bazelbsp.Dependency}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:bazelbsp.Dependency)
        org.jetbrains.bsp.bazel.info.BspTargetInfo.DependencyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_Dependency_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_Dependency_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency.class, org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency.Builder.class);
      }

      // Construct using org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        id_ = "";

        dependencyType_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_Dependency_descriptor;
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency getDefaultInstanceForType() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency.getDefaultInstance();
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency build() {
        org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency buildPartial() {
        org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency result = new org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency(this);
        result.id_ = id_;
        result.dependencyType_ = dependencyType_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency) {
          return mergeFrom((org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency other) {
        if (other == org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency.getDefaultInstance()) return this;
        if (!other.getId().isEmpty()) {
          id_ = other.id_;
          onChanged();
        }
        if (other.dependencyType_ != 0) {
          setDependencyTypeValue(other.getDependencyTypeValue());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                id_ = input.readStringRequireUtf8();

                break;
              } // case 10
              case 16: {
                dependencyType_ = input.readEnum();

                break;
              } // case 16
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }

      private java.lang.Object id_ = "";
      /**
       * string id = 1;
       * @return The id.
       */
      public java.lang.String getId() {
        java.lang.Object ref = id_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          id_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string id = 1;
       * @return The bytes for id.
       */
      public com.google.protobuf.ByteString
          getIdBytes() {
        java.lang.Object ref = id_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          id_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string id = 1;
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        id_ = value;
        onChanged();
        return this;
      }
      /**
       * string id = 1;
       * @return This builder for chaining.
       */
      public Builder clearId() {
        
        id_ = getDefaultInstance().getId();
        onChanged();
        return this;
      }
      /**
       * string id = 1;
       * @param value The bytes for id to set.
       * @return This builder for chaining.
       */
      public Builder setIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        id_ = value;
        onChanged();
        return this;
      }

      private int dependencyType_ = 0;
      /**
       * .bazelbsp.Dependency.DependencyType dependency_type = 2;
       * @return The enum numeric value on the wire for dependencyType.
       */
      @java.lang.Override public int getDependencyTypeValue() {
        return dependencyType_;
      }
      /**
       * .bazelbsp.Dependency.DependencyType dependency_type = 2;
       * @param value The enum numeric value on the wire for dependencyType to set.
       * @return This builder for chaining.
       */
      public Builder setDependencyTypeValue(int value) {
        
        dependencyType_ = value;
        onChanged();
        return this;
      }
      /**
       * .bazelbsp.Dependency.DependencyType dependency_type = 2;
       * @return The dependencyType.
       */
      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency.DependencyType getDependencyType() {
        @SuppressWarnings("deprecation")
        org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency.DependencyType result = org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency.DependencyType.valueOf(dependencyType_);
        return result == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency.DependencyType.UNRECOGNIZED : result;
      }
      /**
       * .bazelbsp.Dependency.DependencyType dependency_type = 2;
       * @param value The dependencyType to set.
       * @return This builder for chaining.
       */
      public Builder setDependencyType(org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency.DependencyType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        dependencyType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * .bazelbsp.Dependency.DependencyType dependency_type = 2;
       * @return This builder for chaining.
       */
      public Builder clearDependencyType() {
        
        dependencyType_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:bazelbsp.Dependency)
    }

    // @@protoc_insertion_point(class_scope:bazelbsp.Dependency)
    private static final org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency();
    }

    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public Dependency parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface JvmOutputsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:bazelbsp.JvmOutputs)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated .bazelbsp.FileLocation binary_jars = 1;
     */
    java.util.List 
        getBinaryJarsList();
    /**
     * repeated .bazelbsp.FileLocation binary_jars = 1;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getBinaryJars(int index);
    /**
     * repeated .bazelbsp.FileLocation binary_jars = 1;
     */
    int getBinaryJarsCount();
    /**
     * repeated .bazelbsp.FileLocation binary_jars = 1;
     */
    java.util.List 
        getBinaryJarsOrBuilderList();
    /**
     * repeated .bazelbsp.FileLocation binary_jars = 1;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getBinaryJarsOrBuilder(
        int index);

    /**
     * repeated .bazelbsp.FileLocation interface_jars = 2;
     */
    java.util.List 
        getInterfaceJarsList();
    /**
     * repeated .bazelbsp.FileLocation interface_jars = 2;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getInterfaceJars(int index);
    /**
     * repeated .bazelbsp.FileLocation interface_jars = 2;
     */
    int getInterfaceJarsCount();
    /**
     * repeated .bazelbsp.FileLocation interface_jars = 2;
     */
    java.util.List 
        getInterfaceJarsOrBuilderList();
    /**
     * repeated .bazelbsp.FileLocation interface_jars = 2;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getInterfaceJarsOrBuilder(
        int index);

    /**
     * repeated .bazelbsp.FileLocation source_jars = 3;
     */
    java.util.List 
        getSourceJarsList();
    /**
     * repeated .bazelbsp.FileLocation source_jars = 3;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getSourceJars(int index);
    /**
     * repeated .bazelbsp.FileLocation source_jars = 3;
     */
    int getSourceJarsCount();
    /**
     * repeated .bazelbsp.FileLocation source_jars = 3;
     */
    java.util.List 
        getSourceJarsOrBuilderList();
    /**
     * repeated .bazelbsp.FileLocation source_jars = 3;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getSourceJarsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code bazelbsp.JvmOutputs}
   */
  public static final class JvmOutputs extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:bazelbsp.JvmOutputs)
      JvmOutputsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use JvmOutputs.newBuilder() to construct.
    private JvmOutputs(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private JvmOutputs() {
      binaryJars_ = java.util.Collections.emptyList();
      interfaceJars_ = java.util.Collections.emptyList();
      sourceJars_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new JvmOutputs();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_JvmOutputs_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_JvmOutputs_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs.class, org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs.Builder.class);
    }

    public static final int BINARY_JARS_FIELD_NUMBER = 1;
    private java.util.List binaryJars_;
    /**
     * repeated .bazelbsp.FileLocation binary_jars = 1;
     */
    @java.lang.Override
    public java.util.List getBinaryJarsList() {
      return binaryJars_;
    }
    /**
     * repeated .bazelbsp.FileLocation binary_jars = 1;
     */
    @java.lang.Override
    public java.util.List 
        getBinaryJarsOrBuilderList() {
      return binaryJars_;
    }
    /**
     * repeated .bazelbsp.FileLocation binary_jars = 1;
     */
    @java.lang.Override
    public int getBinaryJarsCount() {
      return binaryJars_.size();
    }
    /**
     * repeated .bazelbsp.FileLocation binary_jars = 1;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getBinaryJars(int index) {
      return binaryJars_.get(index);
    }
    /**
     * repeated .bazelbsp.FileLocation binary_jars = 1;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getBinaryJarsOrBuilder(
        int index) {
      return binaryJars_.get(index);
    }

    public static final int INTERFACE_JARS_FIELD_NUMBER = 2;
    private java.util.List interfaceJars_;
    /**
     * repeated .bazelbsp.FileLocation interface_jars = 2;
     */
    @java.lang.Override
    public java.util.List getInterfaceJarsList() {
      return interfaceJars_;
    }
    /**
     * repeated .bazelbsp.FileLocation interface_jars = 2;
     */
    @java.lang.Override
    public java.util.List 
        getInterfaceJarsOrBuilderList() {
      return interfaceJars_;
    }
    /**
     * repeated .bazelbsp.FileLocation interface_jars = 2;
     */
    @java.lang.Override
    public int getInterfaceJarsCount() {
      return interfaceJars_.size();
    }
    /**
     * repeated .bazelbsp.FileLocation interface_jars = 2;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getInterfaceJars(int index) {
      return interfaceJars_.get(index);
    }
    /**
     * repeated .bazelbsp.FileLocation interface_jars = 2;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getInterfaceJarsOrBuilder(
        int index) {
      return interfaceJars_.get(index);
    }

    public static final int SOURCE_JARS_FIELD_NUMBER = 3;
    private java.util.List sourceJars_;
    /**
     * repeated .bazelbsp.FileLocation source_jars = 3;
     */
    @java.lang.Override
    public java.util.List getSourceJarsList() {
      return sourceJars_;
    }
    /**
     * repeated .bazelbsp.FileLocation source_jars = 3;
     */
    @java.lang.Override
    public java.util.List 
        getSourceJarsOrBuilderList() {
      return sourceJars_;
    }
    /**
     * repeated .bazelbsp.FileLocation source_jars = 3;
     */
    @java.lang.Override
    public int getSourceJarsCount() {
      return sourceJars_.size();
    }
    /**
     * repeated .bazelbsp.FileLocation source_jars = 3;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getSourceJars(int index) {
      return sourceJars_.get(index);
    }
    /**
     * repeated .bazelbsp.FileLocation source_jars = 3;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getSourceJarsOrBuilder(
        int index) {
      return sourceJars_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < binaryJars_.size(); i++) {
        output.writeMessage(1, binaryJars_.get(i));
      }
      for (int i = 0; i < interfaceJars_.size(); i++) {
        output.writeMessage(2, interfaceJars_.get(i));
      }
      for (int i = 0; i < sourceJars_.size(); i++) {
        output.writeMessage(3, sourceJars_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < binaryJars_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, binaryJars_.get(i));
      }
      for (int i = 0; i < interfaceJars_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, interfaceJars_.get(i));
      }
      for (int i = 0; i < sourceJars_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, sourceJars_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs)) {
        return super.equals(obj);
      }
      org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs other = (org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs) obj;

      if (!getBinaryJarsList()
          .equals(other.getBinaryJarsList())) return false;
      if (!getInterfaceJarsList()
          .equals(other.getInterfaceJarsList())) return false;
      if (!getSourceJarsList()
          .equals(other.getSourceJarsList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getBinaryJarsCount() > 0) {
        hash = (37 * hash) + BINARY_JARS_FIELD_NUMBER;
        hash = (53 * hash) + getBinaryJarsList().hashCode();
      }
      if (getInterfaceJarsCount() > 0) {
        hash = (37 * hash) + INTERFACE_JARS_FIELD_NUMBER;
        hash = (53 * hash) + getInterfaceJarsList().hashCode();
      }
      if (getSourceJarsCount() > 0) {
        hash = (37 * hash) + SOURCE_JARS_FIELD_NUMBER;
        hash = (53 * hash) + getSourceJarsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs 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 org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs 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 org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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 bazelbsp.JvmOutputs}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:bazelbsp.JvmOutputs)
        org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_JvmOutputs_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_JvmOutputs_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs.class, org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs.Builder.class);
      }

      // Construct using org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (binaryJarsBuilder_ == null) {
          binaryJars_ = java.util.Collections.emptyList();
        } else {
          binaryJars_ = null;
          binaryJarsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (interfaceJarsBuilder_ == null) {
          interfaceJars_ = java.util.Collections.emptyList();
        } else {
          interfaceJars_ = null;
          interfaceJarsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        if (sourceJarsBuilder_ == null) {
          sourceJars_ = java.util.Collections.emptyList();
        } else {
          sourceJars_ = null;
          sourceJarsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_JvmOutputs_descriptor;
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs getDefaultInstanceForType() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs.getDefaultInstance();
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs build() {
        org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs buildPartial() {
        org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs result = new org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs(this);
        int from_bitField0_ = bitField0_;
        if (binaryJarsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            binaryJars_ = java.util.Collections.unmodifiableList(binaryJars_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.binaryJars_ = binaryJars_;
        } else {
          result.binaryJars_ = binaryJarsBuilder_.build();
        }
        if (interfaceJarsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            interfaceJars_ = java.util.Collections.unmodifiableList(interfaceJars_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.interfaceJars_ = interfaceJars_;
        } else {
          result.interfaceJars_ = interfaceJarsBuilder_.build();
        }
        if (sourceJarsBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0)) {
            sourceJars_ = java.util.Collections.unmodifiableList(sourceJars_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.sourceJars_ = sourceJars_;
        } else {
          result.sourceJars_ = sourceJarsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs) {
          return mergeFrom((org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs other) {
        if (other == org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs.getDefaultInstance()) return this;
        if (binaryJarsBuilder_ == null) {
          if (!other.binaryJars_.isEmpty()) {
            if (binaryJars_.isEmpty()) {
              binaryJars_ = other.binaryJars_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureBinaryJarsIsMutable();
              binaryJars_.addAll(other.binaryJars_);
            }
            onChanged();
          }
        } else {
          if (!other.binaryJars_.isEmpty()) {
            if (binaryJarsBuilder_.isEmpty()) {
              binaryJarsBuilder_.dispose();
              binaryJarsBuilder_ = null;
              binaryJars_ = other.binaryJars_;
              bitField0_ = (bitField0_ & ~0x00000001);
              binaryJarsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getBinaryJarsFieldBuilder() : null;
            } else {
              binaryJarsBuilder_.addAllMessages(other.binaryJars_);
            }
          }
        }
        if (interfaceJarsBuilder_ == null) {
          if (!other.interfaceJars_.isEmpty()) {
            if (interfaceJars_.isEmpty()) {
              interfaceJars_ = other.interfaceJars_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureInterfaceJarsIsMutable();
              interfaceJars_.addAll(other.interfaceJars_);
            }
            onChanged();
          }
        } else {
          if (!other.interfaceJars_.isEmpty()) {
            if (interfaceJarsBuilder_.isEmpty()) {
              interfaceJarsBuilder_.dispose();
              interfaceJarsBuilder_ = null;
              interfaceJars_ = other.interfaceJars_;
              bitField0_ = (bitField0_ & ~0x00000002);
              interfaceJarsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getInterfaceJarsFieldBuilder() : null;
            } else {
              interfaceJarsBuilder_.addAllMessages(other.interfaceJars_);
            }
          }
        }
        if (sourceJarsBuilder_ == null) {
          if (!other.sourceJars_.isEmpty()) {
            if (sourceJars_.isEmpty()) {
              sourceJars_ = other.sourceJars_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureSourceJarsIsMutable();
              sourceJars_.addAll(other.sourceJars_);
            }
            onChanged();
          }
        } else {
          if (!other.sourceJars_.isEmpty()) {
            if (sourceJarsBuilder_.isEmpty()) {
              sourceJarsBuilder_.dispose();
              sourceJarsBuilder_ = null;
              sourceJars_ = other.sourceJars_;
              bitField0_ = (bitField0_ & ~0x00000004);
              sourceJarsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getSourceJarsFieldBuilder() : null;
            } else {
              sourceJarsBuilder_.addAllMessages(other.sourceJars_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation m =
                    input.readMessage(
                        org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.parser(),
                        extensionRegistry);
                if (binaryJarsBuilder_ == null) {
                  ensureBinaryJarsIsMutable();
                  binaryJars_.add(m);
                } else {
                  binaryJarsBuilder_.addMessage(m);
                }
                break;
              } // case 10
              case 18: {
                org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation m =
                    input.readMessage(
                        org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.parser(),
                        extensionRegistry);
                if (interfaceJarsBuilder_ == null) {
                  ensureInterfaceJarsIsMutable();
                  interfaceJars_.add(m);
                } else {
                  interfaceJarsBuilder_.addMessage(m);
                }
                break;
              } // case 18
              case 26: {
                org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation m =
                    input.readMessage(
                        org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.parser(),
                        extensionRegistry);
                if (sourceJarsBuilder_ == null) {
                  ensureSourceJarsIsMutable();
                  sourceJars_.add(m);
                } else {
                  sourceJarsBuilder_.addMessage(m);
                }
                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.util.List binaryJars_ =
        java.util.Collections.emptyList();
      private void ensureBinaryJarsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          binaryJars_ = new java.util.ArrayList(binaryJars_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> binaryJarsBuilder_;

      /**
       * repeated .bazelbsp.FileLocation binary_jars = 1;
       */
      public java.util.List getBinaryJarsList() {
        if (binaryJarsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(binaryJars_);
        } else {
          return binaryJarsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .bazelbsp.FileLocation binary_jars = 1;
       */
      public int getBinaryJarsCount() {
        if (binaryJarsBuilder_ == null) {
          return binaryJars_.size();
        } else {
          return binaryJarsBuilder_.getCount();
        }
      }
      /**
       * repeated .bazelbsp.FileLocation binary_jars = 1;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getBinaryJars(int index) {
        if (binaryJarsBuilder_ == null) {
          return binaryJars_.get(index);
        } else {
          return binaryJarsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .bazelbsp.FileLocation binary_jars = 1;
       */
      public Builder setBinaryJars(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (binaryJarsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureBinaryJarsIsMutable();
          binaryJars_.set(index, value);
          onChanged();
        } else {
          binaryJarsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation binary_jars = 1;
       */
      public Builder setBinaryJars(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (binaryJarsBuilder_ == null) {
          ensureBinaryJarsIsMutable();
          binaryJars_.set(index, builderForValue.build());
          onChanged();
        } else {
          binaryJarsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation binary_jars = 1;
       */
      public Builder addBinaryJars(org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (binaryJarsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureBinaryJarsIsMutable();
          binaryJars_.add(value);
          onChanged();
        } else {
          binaryJarsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation binary_jars = 1;
       */
      public Builder addBinaryJars(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (binaryJarsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureBinaryJarsIsMutable();
          binaryJars_.add(index, value);
          onChanged();
        } else {
          binaryJarsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation binary_jars = 1;
       */
      public Builder addBinaryJars(
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (binaryJarsBuilder_ == null) {
          ensureBinaryJarsIsMutable();
          binaryJars_.add(builderForValue.build());
          onChanged();
        } else {
          binaryJarsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation binary_jars = 1;
       */
      public Builder addBinaryJars(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (binaryJarsBuilder_ == null) {
          ensureBinaryJarsIsMutable();
          binaryJars_.add(index, builderForValue.build());
          onChanged();
        } else {
          binaryJarsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation binary_jars = 1;
       */
      public Builder addAllBinaryJars(
          java.lang.Iterable values) {
        if (binaryJarsBuilder_ == null) {
          ensureBinaryJarsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, binaryJars_);
          onChanged();
        } else {
          binaryJarsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation binary_jars = 1;
       */
      public Builder clearBinaryJars() {
        if (binaryJarsBuilder_ == null) {
          binaryJars_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          binaryJarsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation binary_jars = 1;
       */
      public Builder removeBinaryJars(int index) {
        if (binaryJarsBuilder_ == null) {
          ensureBinaryJarsIsMutable();
          binaryJars_.remove(index);
          onChanged();
        } else {
          binaryJarsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation binary_jars = 1;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder getBinaryJarsBuilder(
          int index) {
        return getBinaryJarsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .bazelbsp.FileLocation binary_jars = 1;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getBinaryJarsOrBuilder(
          int index) {
        if (binaryJarsBuilder_ == null) {
          return binaryJars_.get(index);  } else {
          return binaryJarsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .bazelbsp.FileLocation binary_jars = 1;
       */
      public java.util.List 
           getBinaryJarsOrBuilderList() {
        if (binaryJarsBuilder_ != null) {
          return binaryJarsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(binaryJars_);
        }
      }
      /**
       * repeated .bazelbsp.FileLocation binary_jars = 1;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder addBinaryJarsBuilder() {
        return getBinaryJarsFieldBuilder().addBuilder(
            org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance());
      }
      /**
       * repeated .bazelbsp.FileLocation binary_jars = 1;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder addBinaryJarsBuilder(
          int index) {
        return getBinaryJarsFieldBuilder().addBuilder(
            index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance());
      }
      /**
       * repeated .bazelbsp.FileLocation binary_jars = 1;
       */
      public java.util.List 
           getBinaryJarsBuilderList() {
        return getBinaryJarsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> 
          getBinaryJarsFieldBuilder() {
        if (binaryJarsBuilder_ == null) {
          binaryJarsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder>(
                  binaryJars_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          binaryJars_ = null;
        }
        return binaryJarsBuilder_;
      }

      private java.util.List interfaceJars_ =
        java.util.Collections.emptyList();
      private void ensureInterfaceJarsIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          interfaceJars_ = new java.util.ArrayList(interfaceJars_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> interfaceJarsBuilder_;

      /**
       * repeated .bazelbsp.FileLocation interface_jars = 2;
       */
      public java.util.List getInterfaceJarsList() {
        if (interfaceJarsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(interfaceJars_);
        } else {
          return interfaceJarsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .bazelbsp.FileLocation interface_jars = 2;
       */
      public int getInterfaceJarsCount() {
        if (interfaceJarsBuilder_ == null) {
          return interfaceJars_.size();
        } else {
          return interfaceJarsBuilder_.getCount();
        }
      }
      /**
       * repeated .bazelbsp.FileLocation interface_jars = 2;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getInterfaceJars(int index) {
        if (interfaceJarsBuilder_ == null) {
          return interfaceJars_.get(index);
        } else {
          return interfaceJarsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .bazelbsp.FileLocation interface_jars = 2;
       */
      public Builder setInterfaceJars(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (interfaceJarsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureInterfaceJarsIsMutable();
          interfaceJars_.set(index, value);
          onChanged();
        } else {
          interfaceJarsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation interface_jars = 2;
       */
      public Builder setInterfaceJars(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (interfaceJarsBuilder_ == null) {
          ensureInterfaceJarsIsMutable();
          interfaceJars_.set(index, builderForValue.build());
          onChanged();
        } else {
          interfaceJarsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation interface_jars = 2;
       */
      public Builder addInterfaceJars(org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (interfaceJarsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureInterfaceJarsIsMutable();
          interfaceJars_.add(value);
          onChanged();
        } else {
          interfaceJarsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation interface_jars = 2;
       */
      public Builder addInterfaceJars(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (interfaceJarsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureInterfaceJarsIsMutable();
          interfaceJars_.add(index, value);
          onChanged();
        } else {
          interfaceJarsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation interface_jars = 2;
       */
      public Builder addInterfaceJars(
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (interfaceJarsBuilder_ == null) {
          ensureInterfaceJarsIsMutable();
          interfaceJars_.add(builderForValue.build());
          onChanged();
        } else {
          interfaceJarsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation interface_jars = 2;
       */
      public Builder addInterfaceJars(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (interfaceJarsBuilder_ == null) {
          ensureInterfaceJarsIsMutable();
          interfaceJars_.add(index, builderForValue.build());
          onChanged();
        } else {
          interfaceJarsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation interface_jars = 2;
       */
      public Builder addAllInterfaceJars(
          java.lang.Iterable values) {
        if (interfaceJarsBuilder_ == null) {
          ensureInterfaceJarsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, interfaceJars_);
          onChanged();
        } else {
          interfaceJarsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation interface_jars = 2;
       */
      public Builder clearInterfaceJars() {
        if (interfaceJarsBuilder_ == null) {
          interfaceJars_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          interfaceJarsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation interface_jars = 2;
       */
      public Builder removeInterfaceJars(int index) {
        if (interfaceJarsBuilder_ == null) {
          ensureInterfaceJarsIsMutable();
          interfaceJars_.remove(index);
          onChanged();
        } else {
          interfaceJarsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation interface_jars = 2;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder getInterfaceJarsBuilder(
          int index) {
        return getInterfaceJarsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .bazelbsp.FileLocation interface_jars = 2;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getInterfaceJarsOrBuilder(
          int index) {
        if (interfaceJarsBuilder_ == null) {
          return interfaceJars_.get(index);  } else {
          return interfaceJarsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .bazelbsp.FileLocation interface_jars = 2;
       */
      public java.util.List 
           getInterfaceJarsOrBuilderList() {
        if (interfaceJarsBuilder_ != null) {
          return interfaceJarsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(interfaceJars_);
        }
      }
      /**
       * repeated .bazelbsp.FileLocation interface_jars = 2;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder addInterfaceJarsBuilder() {
        return getInterfaceJarsFieldBuilder().addBuilder(
            org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance());
      }
      /**
       * repeated .bazelbsp.FileLocation interface_jars = 2;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder addInterfaceJarsBuilder(
          int index) {
        return getInterfaceJarsFieldBuilder().addBuilder(
            index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance());
      }
      /**
       * repeated .bazelbsp.FileLocation interface_jars = 2;
       */
      public java.util.List 
           getInterfaceJarsBuilderList() {
        return getInterfaceJarsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> 
          getInterfaceJarsFieldBuilder() {
        if (interfaceJarsBuilder_ == null) {
          interfaceJarsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder>(
                  interfaceJars_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          interfaceJars_ = null;
        }
        return interfaceJarsBuilder_;
      }

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

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> sourceJarsBuilder_;

      /**
       * repeated .bazelbsp.FileLocation source_jars = 3;
       */
      public java.util.List getSourceJarsList() {
        if (sourceJarsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(sourceJars_);
        } else {
          return sourceJarsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .bazelbsp.FileLocation source_jars = 3;
       */
      public int getSourceJarsCount() {
        if (sourceJarsBuilder_ == null) {
          return sourceJars_.size();
        } else {
          return sourceJarsBuilder_.getCount();
        }
      }
      /**
       * repeated .bazelbsp.FileLocation source_jars = 3;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getSourceJars(int index) {
        if (sourceJarsBuilder_ == null) {
          return sourceJars_.get(index);
        } else {
          return sourceJarsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .bazelbsp.FileLocation source_jars = 3;
       */
      public Builder setSourceJars(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (sourceJarsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSourceJarsIsMutable();
          sourceJars_.set(index, value);
          onChanged();
        } else {
          sourceJarsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation source_jars = 3;
       */
      public Builder setSourceJars(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (sourceJarsBuilder_ == null) {
          ensureSourceJarsIsMutable();
          sourceJars_.set(index, builderForValue.build());
          onChanged();
        } else {
          sourceJarsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation source_jars = 3;
       */
      public Builder addSourceJars(org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (sourceJarsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSourceJarsIsMutable();
          sourceJars_.add(value);
          onChanged();
        } else {
          sourceJarsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation source_jars = 3;
       */
      public Builder addSourceJars(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (sourceJarsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSourceJarsIsMutable();
          sourceJars_.add(index, value);
          onChanged();
        } else {
          sourceJarsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation source_jars = 3;
       */
      public Builder addSourceJars(
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (sourceJarsBuilder_ == null) {
          ensureSourceJarsIsMutable();
          sourceJars_.add(builderForValue.build());
          onChanged();
        } else {
          sourceJarsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation source_jars = 3;
       */
      public Builder addSourceJars(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (sourceJarsBuilder_ == null) {
          ensureSourceJarsIsMutable();
          sourceJars_.add(index, builderForValue.build());
          onChanged();
        } else {
          sourceJarsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation source_jars = 3;
       */
      public Builder addAllSourceJars(
          java.lang.Iterable values) {
        if (sourceJarsBuilder_ == null) {
          ensureSourceJarsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, sourceJars_);
          onChanged();
        } else {
          sourceJarsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation source_jars = 3;
       */
      public Builder clearSourceJars() {
        if (sourceJarsBuilder_ == null) {
          sourceJars_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          sourceJarsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation source_jars = 3;
       */
      public Builder removeSourceJars(int index) {
        if (sourceJarsBuilder_ == null) {
          ensureSourceJarsIsMutable();
          sourceJars_.remove(index);
          onChanged();
        } else {
          sourceJarsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation source_jars = 3;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder getSourceJarsBuilder(
          int index) {
        return getSourceJarsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .bazelbsp.FileLocation source_jars = 3;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getSourceJarsOrBuilder(
          int index) {
        if (sourceJarsBuilder_ == null) {
          return sourceJars_.get(index);  } else {
          return sourceJarsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .bazelbsp.FileLocation source_jars = 3;
       */
      public java.util.List 
           getSourceJarsOrBuilderList() {
        if (sourceJarsBuilder_ != null) {
          return sourceJarsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(sourceJars_);
        }
      }
      /**
       * repeated .bazelbsp.FileLocation source_jars = 3;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder addSourceJarsBuilder() {
        return getSourceJarsFieldBuilder().addBuilder(
            org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance());
      }
      /**
       * repeated .bazelbsp.FileLocation source_jars = 3;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder addSourceJarsBuilder(
          int index) {
        return getSourceJarsFieldBuilder().addBuilder(
            index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance());
      }
      /**
       * repeated .bazelbsp.FileLocation source_jars = 3;
       */
      public java.util.List 
           getSourceJarsBuilderList() {
        return getSourceJarsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> 
          getSourceJarsFieldBuilder() {
        if (sourceJarsBuilder_ == null) {
          sourceJarsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder>(
                  sourceJars_,
                  ((bitField0_ & 0x00000004) != 0),
                  getParentForChildren(),
                  isClean());
          sourceJars_ = null;
        }
        return sourceJarsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:bazelbsp.JvmOutputs)
    }

    // @@protoc_insertion_point(class_scope:bazelbsp.JvmOutputs)
    private static final org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs();
    }

    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public JvmOutputs parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface JvmTargetInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:bazelbsp.JvmTargetInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated .bazelbsp.JvmOutputs jars = 1;
     */
    java.util.List 
        getJarsList();
    /**
     * repeated .bazelbsp.JvmOutputs jars = 1;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs getJars(int index);
    /**
     * repeated .bazelbsp.JvmOutputs jars = 1;
     */
    int getJarsCount();
    /**
     * repeated .bazelbsp.JvmOutputs jars = 1;
     */
    java.util.List 
        getJarsOrBuilderList();
    /**
     * repeated .bazelbsp.JvmOutputs jars = 1;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputsOrBuilder getJarsOrBuilder(
        int index);

    /**
     * repeated .bazelbsp.JvmOutputs generated_jars = 2;
     */
    java.util.List 
        getGeneratedJarsList();
    /**
     * repeated .bazelbsp.JvmOutputs generated_jars = 2;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs getGeneratedJars(int index);
    /**
     * repeated .bazelbsp.JvmOutputs generated_jars = 2;
     */
    int getGeneratedJarsCount();
    /**
     * repeated .bazelbsp.JvmOutputs generated_jars = 2;
     */
    java.util.List 
        getGeneratedJarsOrBuilderList();
    /**
     * repeated .bazelbsp.JvmOutputs generated_jars = 2;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputsOrBuilder getGeneratedJarsOrBuilder(
        int index);

    /**
     * repeated string javac_opts = 6;
     * @return A list containing the javacOpts.
     */
    java.util.List
        getJavacOptsList();
    /**
     * repeated string javac_opts = 6;
     * @return The count of javacOpts.
     */
    int getJavacOptsCount();
    /**
     * repeated string javac_opts = 6;
     * @param index The index of the element to return.
     * @return The javacOpts at the given index.
     */
    java.lang.String getJavacOpts(int index);
    /**
     * repeated string javac_opts = 6;
     * @param index The index of the value to return.
     * @return The bytes of the javacOpts at the given index.
     */
    com.google.protobuf.ByteString
        getJavacOptsBytes(int index);

    /**
     * repeated string jvm_flags = 7;
     * @return A list containing the jvmFlags.
     */
    java.util.List
        getJvmFlagsList();
    /**
     * repeated string jvm_flags = 7;
     * @return The count of jvmFlags.
     */
    int getJvmFlagsCount();
    /**
     * repeated string jvm_flags = 7;
     * @param index The index of the element to return.
     * @return The jvmFlags at the given index.
     */
    java.lang.String getJvmFlags(int index);
    /**
     * repeated string jvm_flags = 7;
     * @param index The index of the value to return.
     * @return The bytes of the jvmFlags at the given index.
     */
    com.google.protobuf.ByteString
        getJvmFlagsBytes(int index);

    /**
     * string main_class = 8;
     * @return The mainClass.
     */
    java.lang.String getMainClass();
    /**
     * string main_class = 8;
     * @return The bytes for mainClass.
     */
    com.google.protobuf.ByteString
        getMainClassBytes();

    /**
     * repeated string args = 9;
     * @return A list containing the args.
     */
    java.util.List
        getArgsList();
    /**
     * repeated string args = 9;
     * @return The count of args.
     */
    int getArgsCount();
    /**
     * repeated string args = 9;
     * @param index The index of the element to return.
     * @return The args at the given index.
     */
    java.lang.String getArgs(int index);
    /**
     * repeated string args = 9;
     * @param index The index of the value to return.
     * @return The bytes of the args at the given index.
     */
    com.google.protobuf.ByteString
        getArgsBytes(int index);

    /**
     * repeated .bazelbsp.FileLocation jdeps = 10;
     */
    java.util.List 
        getJdepsList();
    /**
     * repeated .bazelbsp.FileLocation jdeps = 10;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getJdeps(int index);
    /**
     * repeated .bazelbsp.FileLocation jdeps = 10;
     */
    int getJdepsCount();
    /**
     * repeated .bazelbsp.FileLocation jdeps = 10;
     */
    java.util.List 
        getJdepsOrBuilderList();
    /**
     * repeated .bazelbsp.FileLocation jdeps = 10;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getJdepsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code bazelbsp.JvmTargetInfo}
   */
  public static final class JvmTargetInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:bazelbsp.JvmTargetInfo)
      JvmTargetInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use JvmTargetInfo.newBuilder() to construct.
    private JvmTargetInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private JvmTargetInfo() {
      jars_ = java.util.Collections.emptyList();
      generatedJars_ = java.util.Collections.emptyList();
      javacOpts_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      jvmFlags_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      mainClass_ = "";
      args_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      jdeps_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new JvmTargetInfo();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_JvmTargetInfo_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_JvmTargetInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo.class, org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo.Builder.class);
    }

    public static final int JARS_FIELD_NUMBER = 1;
    private java.util.List jars_;
    /**
     * repeated .bazelbsp.JvmOutputs jars = 1;
     */
    @java.lang.Override
    public java.util.List getJarsList() {
      return jars_;
    }
    /**
     * repeated .bazelbsp.JvmOutputs jars = 1;
     */
    @java.lang.Override
    public java.util.List 
        getJarsOrBuilderList() {
      return jars_;
    }
    /**
     * repeated .bazelbsp.JvmOutputs jars = 1;
     */
    @java.lang.Override
    public int getJarsCount() {
      return jars_.size();
    }
    /**
     * repeated .bazelbsp.JvmOutputs jars = 1;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs getJars(int index) {
      return jars_.get(index);
    }
    /**
     * repeated .bazelbsp.JvmOutputs jars = 1;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputsOrBuilder getJarsOrBuilder(
        int index) {
      return jars_.get(index);
    }

    public static final int GENERATED_JARS_FIELD_NUMBER = 2;
    private java.util.List generatedJars_;
    /**
     * repeated .bazelbsp.JvmOutputs generated_jars = 2;
     */
    @java.lang.Override
    public java.util.List getGeneratedJarsList() {
      return generatedJars_;
    }
    /**
     * repeated .bazelbsp.JvmOutputs generated_jars = 2;
     */
    @java.lang.Override
    public java.util.List 
        getGeneratedJarsOrBuilderList() {
      return generatedJars_;
    }
    /**
     * repeated .bazelbsp.JvmOutputs generated_jars = 2;
     */
    @java.lang.Override
    public int getGeneratedJarsCount() {
      return generatedJars_.size();
    }
    /**
     * repeated .bazelbsp.JvmOutputs generated_jars = 2;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs getGeneratedJars(int index) {
      return generatedJars_.get(index);
    }
    /**
     * repeated .bazelbsp.JvmOutputs generated_jars = 2;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputsOrBuilder getGeneratedJarsOrBuilder(
        int index) {
      return generatedJars_.get(index);
    }

    public static final int JAVAC_OPTS_FIELD_NUMBER = 6;
    private com.google.protobuf.LazyStringList javacOpts_;
    /**
     * repeated string javac_opts = 6;
     * @return A list containing the javacOpts.
     */
    public com.google.protobuf.ProtocolStringList
        getJavacOptsList() {
      return javacOpts_;
    }
    /**
     * repeated string javac_opts = 6;
     * @return The count of javacOpts.
     */
    public int getJavacOptsCount() {
      return javacOpts_.size();
    }
    /**
     * repeated string javac_opts = 6;
     * @param index The index of the element to return.
     * @return The javacOpts at the given index.
     */
    public java.lang.String getJavacOpts(int index) {
      return javacOpts_.get(index);
    }
    /**
     * repeated string javac_opts = 6;
     * @param index The index of the value to return.
     * @return The bytes of the javacOpts at the given index.
     */
    public com.google.protobuf.ByteString
        getJavacOptsBytes(int index) {
      return javacOpts_.getByteString(index);
    }

    public static final int JVM_FLAGS_FIELD_NUMBER = 7;
    private com.google.protobuf.LazyStringList jvmFlags_;
    /**
     * repeated string jvm_flags = 7;
     * @return A list containing the jvmFlags.
     */
    public com.google.protobuf.ProtocolStringList
        getJvmFlagsList() {
      return jvmFlags_;
    }
    /**
     * repeated string jvm_flags = 7;
     * @return The count of jvmFlags.
     */
    public int getJvmFlagsCount() {
      return jvmFlags_.size();
    }
    /**
     * repeated string jvm_flags = 7;
     * @param index The index of the element to return.
     * @return The jvmFlags at the given index.
     */
    public java.lang.String getJvmFlags(int index) {
      return jvmFlags_.get(index);
    }
    /**
     * repeated string jvm_flags = 7;
     * @param index The index of the value to return.
     * @return The bytes of the jvmFlags at the given index.
     */
    public com.google.protobuf.ByteString
        getJvmFlagsBytes(int index) {
      return jvmFlags_.getByteString(index);
    }

    public static final int MAIN_CLASS_FIELD_NUMBER = 8;
    private volatile java.lang.Object mainClass_;
    /**
     * string main_class = 8;
     * @return The mainClass.
     */
    @java.lang.Override
    public java.lang.String getMainClass() {
      java.lang.Object ref = mainClass_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        mainClass_ = s;
        return s;
      }
    }
    /**
     * string main_class = 8;
     * @return The bytes for mainClass.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMainClassBytes() {
      java.lang.Object ref = mainClass_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        mainClass_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ARGS_FIELD_NUMBER = 9;
    private com.google.protobuf.LazyStringList args_;
    /**
     * repeated string args = 9;
     * @return A list containing the args.
     */
    public com.google.protobuf.ProtocolStringList
        getArgsList() {
      return args_;
    }
    /**
     * repeated string args = 9;
     * @return The count of args.
     */
    public int getArgsCount() {
      return args_.size();
    }
    /**
     * repeated string args = 9;
     * @param index The index of the element to return.
     * @return The args at the given index.
     */
    public java.lang.String getArgs(int index) {
      return args_.get(index);
    }
    /**
     * repeated string args = 9;
     * @param index The index of the value to return.
     * @return The bytes of the args at the given index.
     */
    public com.google.protobuf.ByteString
        getArgsBytes(int index) {
      return args_.getByteString(index);
    }

    public static final int JDEPS_FIELD_NUMBER = 10;
    private java.util.List jdeps_;
    /**
     * repeated .bazelbsp.FileLocation jdeps = 10;
     */
    @java.lang.Override
    public java.util.List getJdepsList() {
      return jdeps_;
    }
    /**
     * repeated .bazelbsp.FileLocation jdeps = 10;
     */
    @java.lang.Override
    public java.util.List 
        getJdepsOrBuilderList() {
      return jdeps_;
    }
    /**
     * repeated .bazelbsp.FileLocation jdeps = 10;
     */
    @java.lang.Override
    public int getJdepsCount() {
      return jdeps_.size();
    }
    /**
     * repeated .bazelbsp.FileLocation jdeps = 10;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getJdeps(int index) {
      return jdeps_.get(index);
    }
    /**
     * repeated .bazelbsp.FileLocation jdeps = 10;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getJdepsOrBuilder(
        int index) {
      return jdeps_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < jars_.size(); i++) {
        output.writeMessage(1, jars_.get(i));
      }
      for (int i = 0; i < generatedJars_.size(); i++) {
        output.writeMessage(2, generatedJars_.get(i));
      }
      for (int i = 0; i < javacOpts_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, javacOpts_.getRaw(i));
      }
      for (int i = 0; i < jvmFlags_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, jvmFlags_.getRaw(i));
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(mainClass_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, mainClass_);
      }
      for (int i = 0; i < args_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, args_.getRaw(i));
      }
      for (int i = 0; i < jdeps_.size(); i++) {
        output.writeMessage(10, jdeps_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < jars_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, jars_.get(i));
      }
      for (int i = 0; i < generatedJars_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, generatedJars_.get(i));
      }
      {
        int dataSize = 0;
        for (int i = 0; i < javacOpts_.size(); i++) {
          dataSize += computeStringSizeNoTag(javacOpts_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getJavacOptsList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < jvmFlags_.size(); i++) {
          dataSize += computeStringSizeNoTag(jvmFlags_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getJvmFlagsList().size();
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(mainClass_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, mainClass_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < args_.size(); i++) {
          dataSize += computeStringSizeNoTag(args_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getArgsList().size();
      }
      for (int i = 0; i < jdeps_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, jdeps_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo)) {
        return super.equals(obj);
      }
      org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo other = (org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo) obj;

      if (!getJarsList()
          .equals(other.getJarsList())) return false;
      if (!getGeneratedJarsList()
          .equals(other.getGeneratedJarsList())) return false;
      if (!getJavacOptsList()
          .equals(other.getJavacOptsList())) return false;
      if (!getJvmFlagsList()
          .equals(other.getJvmFlagsList())) return false;
      if (!getMainClass()
          .equals(other.getMainClass())) return false;
      if (!getArgsList()
          .equals(other.getArgsList())) return false;
      if (!getJdepsList()
          .equals(other.getJdepsList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getJarsCount() > 0) {
        hash = (37 * hash) + JARS_FIELD_NUMBER;
        hash = (53 * hash) + getJarsList().hashCode();
      }
      if (getGeneratedJarsCount() > 0) {
        hash = (37 * hash) + GENERATED_JARS_FIELD_NUMBER;
        hash = (53 * hash) + getGeneratedJarsList().hashCode();
      }
      if (getJavacOptsCount() > 0) {
        hash = (37 * hash) + JAVAC_OPTS_FIELD_NUMBER;
        hash = (53 * hash) + getJavacOptsList().hashCode();
      }
      if (getJvmFlagsCount() > 0) {
        hash = (37 * hash) + JVM_FLAGS_FIELD_NUMBER;
        hash = (53 * hash) + getJvmFlagsList().hashCode();
      }
      hash = (37 * hash) + MAIN_CLASS_FIELD_NUMBER;
      hash = (53 * hash) + getMainClass().hashCode();
      if (getArgsCount() > 0) {
        hash = (37 * hash) + ARGS_FIELD_NUMBER;
        hash = (53 * hash) + getArgsList().hashCode();
      }
      if (getJdepsCount() > 0) {
        hash = (37 * hash) + JDEPS_FIELD_NUMBER;
        hash = (53 * hash) + getJdepsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo 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 org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo 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 org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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 bazelbsp.JvmTargetInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:bazelbsp.JvmTargetInfo)
        org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_JvmTargetInfo_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_JvmTargetInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo.class, org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo.Builder.class);
      }

      // Construct using org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (jarsBuilder_ == null) {
          jars_ = java.util.Collections.emptyList();
        } else {
          jars_ = null;
          jarsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (generatedJarsBuilder_ == null) {
          generatedJars_ = java.util.Collections.emptyList();
        } else {
          generatedJars_ = null;
          generatedJarsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        javacOpts_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        jvmFlags_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        mainClass_ = "";

        args_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000010);
        if (jdepsBuilder_ == null) {
          jdeps_ = java.util.Collections.emptyList();
        } else {
          jdeps_ = null;
          jdepsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_JvmTargetInfo_descriptor;
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo getDefaultInstanceForType() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo.getDefaultInstance();
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo build() {
        org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo buildPartial() {
        org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo result = new org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo(this);
        int from_bitField0_ = bitField0_;
        if (jarsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            jars_ = java.util.Collections.unmodifiableList(jars_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.jars_ = jars_;
        } else {
          result.jars_ = jarsBuilder_.build();
        }
        if (generatedJarsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            generatedJars_ = java.util.Collections.unmodifiableList(generatedJars_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.generatedJars_ = generatedJars_;
        } else {
          result.generatedJars_ = generatedJarsBuilder_.build();
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          javacOpts_ = javacOpts_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.javacOpts_ = javacOpts_;
        if (((bitField0_ & 0x00000008) != 0)) {
          jvmFlags_ = jvmFlags_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000008);
        }
        result.jvmFlags_ = jvmFlags_;
        result.mainClass_ = mainClass_;
        if (((bitField0_ & 0x00000010) != 0)) {
          args_ = args_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000010);
        }
        result.args_ = args_;
        if (jdepsBuilder_ == null) {
          if (((bitField0_ & 0x00000020) != 0)) {
            jdeps_ = java.util.Collections.unmodifiableList(jdeps_);
            bitField0_ = (bitField0_ & ~0x00000020);
          }
          result.jdeps_ = jdeps_;
        } else {
          result.jdeps_ = jdepsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo) {
          return mergeFrom((org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo other) {
        if (other == org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo.getDefaultInstance()) return this;
        if (jarsBuilder_ == null) {
          if (!other.jars_.isEmpty()) {
            if (jars_.isEmpty()) {
              jars_ = other.jars_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureJarsIsMutable();
              jars_.addAll(other.jars_);
            }
            onChanged();
          }
        } else {
          if (!other.jars_.isEmpty()) {
            if (jarsBuilder_.isEmpty()) {
              jarsBuilder_.dispose();
              jarsBuilder_ = null;
              jars_ = other.jars_;
              bitField0_ = (bitField0_ & ~0x00000001);
              jarsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getJarsFieldBuilder() : null;
            } else {
              jarsBuilder_.addAllMessages(other.jars_);
            }
          }
        }
        if (generatedJarsBuilder_ == null) {
          if (!other.generatedJars_.isEmpty()) {
            if (generatedJars_.isEmpty()) {
              generatedJars_ = other.generatedJars_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureGeneratedJarsIsMutable();
              generatedJars_.addAll(other.generatedJars_);
            }
            onChanged();
          }
        } else {
          if (!other.generatedJars_.isEmpty()) {
            if (generatedJarsBuilder_.isEmpty()) {
              generatedJarsBuilder_.dispose();
              generatedJarsBuilder_ = null;
              generatedJars_ = other.generatedJars_;
              bitField0_ = (bitField0_ & ~0x00000002);
              generatedJarsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getGeneratedJarsFieldBuilder() : null;
            } else {
              generatedJarsBuilder_.addAllMessages(other.generatedJars_);
            }
          }
        }
        if (!other.javacOpts_.isEmpty()) {
          if (javacOpts_.isEmpty()) {
            javacOpts_ = other.javacOpts_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureJavacOptsIsMutable();
            javacOpts_.addAll(other.javacOpts_);
          }
          onChanged();
        }
        if (!other.jvmFlags_.isEmpty()) {
          if (jvmFlags_.isEmpty()) {
            jvmFlags_ = other.jvmFlags_;
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            ensureJvmFlagsIsMutable();
            jvmFlags_.addAll(other.jvmFlags_);
          }
          onChanged();
        }
        if (!other.getMainClass().isEmpty()) {
          mainClass_ = other.mainClass_;
          onChanged();
        }
        if (!other.args_.isEmpty()) {
          if (args_.isEmpty()) {
            args_ = other.args_;
            bitField0_ = (bitField0_ & ~0x00000010);
          } else {
            ensureArgsIsMutable();
            args_.addAll(other.args_);
          }
          onChanged();
        }
        if (jdepsBuilder_ == null) {
          if (!other.jdeps_.isEmpty()) {
            if (jdeps_.isEmpty()) {
              jdeps_ = other.jdeps_;
              bitField0_ = (bitField0_ & ~0x00000020);
            } else {
              ensureJdepsIsMutable();
              jdeps_.addAll(other.jdeps_);
            }
            onChanged();
          }
        } else {
          if (!other.jdeps_.isEmpty()) {
            if (jdepsBuilder_.isEmpty()) {
              jdepsBuilder_.dispose();
              jdepsBuilder_ = null;
              jdeps_ = other.jdeps_;
              bitField0_ = (bitField0_ & ~0x00000020);
              jdepsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getJdepsFieldBuilder() : null;
            } else {
              jdepsBuilder_.addAllMessages(other.jdeps_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs m =
                    input.readMessage(
                        org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs.parser(),
                        extensionRegistry);
                if (jarsBuilder_ == null) {
                  ensureJarsIsMutable();
                  jars_.add(m);
                } else {
                  jarsBuilder_.addMessage(m);
                }
                break;
              } // case 10
              case 18: {
                org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs m =
                    input.readMessage(
                        org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs.parser(),
                        extensionRegistry);
                if (generatedJarsBuilder_ == null) {
                  ensureGeneratedJarsIsMutable();
                  generatedJars_.add(m);
                } else {
                  generatedJarsBuilder_.addMessage(m);
                }
                break;
              } // case 18
              case 50: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureJavacOptsIsMutable();
                javacOpts_.add(s);
                break;
              } // case 50
              case 58: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureJvmFlagsIsMutable();
                jvmFlags_.add(s);
                break;
              } // case 58
              case 66: {
                mainClass_ = input.readStringRequireUtf8();

                break;
              } // case 66
              case 74: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureArgsIsMutable();
                args_.add(s);
                break;
              } // case 74
              case 82: {
                org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation m =
                    input.readMessage(
                        org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.parser(),
                        extensionRegistry);
                if (jdepsBuilder_ == null) {
                  ensureJdepsIsMutable();
                  jdeps_.add(m);
                } else {
                  jdepsBuilder_.addMessage(m);
                }
                break;
              } // case 82
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.util.List jars_ =
        java.util.Collections.emptyList();
      private void ensureJarsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          jars_ = new java.util.ArrayList(jars_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs, org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputsOrBuilder> jarsBuilder_;

      /**
       * repeated .bazelbsp.JvmOutputs jars = 1;
       */
      public java.util.List getJarsList() {
        if (jarsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(jars_);
        } else {
          return jarsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .bazelbsp.JvmOutputs jars = 1;
       */
      public int getJarsCount() {
        if (jarsBuilder_ == null) {
          return jars_.size();
        } else {
          return jarsBuilder_.getCount();
        }
      }
      /**
       * repeated .bazelbsp.JvmOutputs jars = 1;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs getJars(int index) {
        if (jarsBuilder_ == null) {
          return jars_.get(index);
        } else {
          return jarsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .bazelbsp.JvmOutputs jars = 1;
       */
      public Builder setJars(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs value) {
        if (jarsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureJarsIsMutable();
          jars_.set(index, value);
          onChanged();
        } else {
          jarsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.JvmOutputs jars = 1;
       */
      public Builder setJars(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs.Builder builderForValue) {
        if (jarsBuilder_ == null) {
          ensureJarsIsMutable();
          jars_.set(index, builderForValue.build());
          onChanged();
        } else {
          jarsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.JvmOutputs jars = 1;
       */
      public Builder addJars(org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs value) {
        if (jarsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureJarsIsMutable();
          jars_.add(value);
          onChanged();
        } else {
          jarsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.JvmOutputs jars = 1;
       */
      public Builder addJars(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs value) {
        if (jarsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureJarsIsMutable();
          jars_.add(index, value);
          onChanged();
        } else {
          jarsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.JvmOutputs jars = 1;
       */
      public Builder addJars(
          org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs.Builder builderForValue) {
        if (jarsBuilder_ == null) {
          ensureJarsIsMutable();
          jars_.add(builderForValue.build());
          onChanged();
        } else {
          jarsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.JvmOutputs jars = 1;
       */
      public Builder addJars(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs.Builder builderForValue) {
        if (jarsBuilder_ == null) {
          ensureJarsIsMutable();
          jars_.add(index, builderForValue.build());
          onChanged();
        } else {
          jarsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.JvmOutputs jars = 1;
       */
      public Builder addAllJars(
          java.lang.Iterable values) {
        if (jarsBuilder_ == null) {
          ensureJarsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, jars_);
          onChanged();
        } else {
          jarsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.JvmOutputs jars = 1;
       */
      public Builder clearJars() {
        if (jarsBuilder_ == null) {
          jars_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          jarsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .bazelbsp.JvmOutputs jars = 1;
       */
      public Builder removeJars(int index) {
        if (jarsBuilder_ == null) {
          ensureJarsIsMutable();
          jars_.remove(index);
          onChanged();
        } else {
          jarsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.JvmOutputs jars = 1;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs.Builder getJarsBuilder(
          int index) {
        return getJarsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .bazelbsp.JvmOutputs jars = 1;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputsOrBuilder getJarsOrBuilder(
          int index) {
        if (jarsBuilder_ == null) {
          return jars_.get(index);  } else {
          return jarsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .bazelbsp.JvmOutputs jars = 1;
       */
      public java.util.List 
           getJarsOrBuilderList() {
        if (jarsBuilder_ != null) {
          return jarsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(jars_);
        }
      }
      /**
       * repeated .bazelbsp.JvmOutputs jars = 1;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs.Builder addJarsBuilder() {
        return getJarsFieldBuilder().addBuilder(
            org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs.getDefaultInstance());
      }
      /**
       * repeated .bazelbsp.JvmOutputs jars = 1;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs.Builder addJarsBuilder(
          int index) {
        return getJarsFieldBuilder().addBuilder(
            index, org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs.getDefaultInstance());
      }
      /**
       * repeated .bazelbsp.JvmOutputs jars = 1;
       */
      public java.util.List 
           getJarsBuilderList() {
        return getJarsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs, org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputsOrBuilder> 
          getJarsFieldBuilder() {
        if (jarsBuilder_ == null) {
          jarsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs, org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputsOrBuilder>(
                  jars_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          jars_ = null;
        }
        return jarsBuilder_;
      }

      private java.util.List generatedJars_ =
        java.util.Collections.emptyList();
      private void ensureGeneratedJarsIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          generatedJars_ = new java.util.ArrayList(generatedJars_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs, org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputsOrBuilder> generatedJarsBuilder_;

      /**
       * repeated .bazelbsp.JvmOutputs generated_jars = 2;
       */
      public java.util.List getGeneratedJarsList() {
        if (generatedJarsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(generatedJars_);
        } else {
          return generatedJarsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .bazelbsp.JvmOutputs generated_jars = 2;
       */
      public int getGeneratedJarsCount() {
        if (generatedJarsBuilder_ == null) {
          return generatedJars_.size();
        } else {
          return generatedJarsBuilder_.getCount();
        }
      }
      /**
       * repeated .bazelbsp.JvmOutputs generated_jars = 2;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs getGeneratedJars(int index) {
        if (generatedJarsBuilder_ == null) {
          return generatedJars_.get(index);
        } else {
          return generatedJarsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .bazelbsp.JvmOutputs generated_jars = 2;
       */
      public Builder setGeneratedJars(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs value) {
        if (generatedJarsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureGeneratedJarsIsMutable();
          generatedJars_.set(index, value);
          onChanged();
        } else {
          generatedJarsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.JvmOutputs generated_jars = 2;
       */
      public Builder setGeneratedJars(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs.Builder builderForValue) {
        if (generatedJarsBuilder_ == null) {
          ensureGeneratedJarsIsMutable();
          generatedJars_.set(index, builderForValue.build());
          onChanged();
        } else {
          generatedJarsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.JvmOutputs generated_jars = 2;
       */
      public Builder addGeneratedJars(org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs value) {
        if (generatedJarsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureGeneratedJarsIsMutable();
          generatedJars_.add(value);
          onChanged();
        } else {
          generatedJarsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.JvmOutputs generated_jars = 2;
       */
      public Builder addGeneratedJars(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs value) {
        if (generatedJarsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureGeneratedJarsIsMutable();
          generatedJars_.add(index, value);
          onChanged();
        } else {
          generatedJarsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.JvmOutputs generated_jars = 2;
       */
      public Builder addGeneratedJars(
          org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs.Builder builderForValue) {
        if (generatedJarsBuilder_ == null) {
          ensureGeneratedJarsIsMutable();
          generatedJars_.add(builderForValue.build());
          onChanged();
        } else {
          generatedJarsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.JvmOutputs generated_jars = 2;
       */
      public Builder addGeneratedJars(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs.Builder builderForValue) {
        if (generatedJarsBuilder_ == null) {
          ensureGeneratedJarsIsMutable();
          generatedJars_.add(index, builderForValue.build());
          onChanged();
        } else {
          generatedJarsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.JvmOutputs generated_jars = 2;
       */
      public Builder addAllGeneratedJars(
          java.lang.Iterable values) {
        if (generatedJarsBuilder_ == null) {
          ensureGeneratedJarsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, generatedJars_);
          onChanged();
        } else {
          generatedJarsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.JvmOutputs generated_jars = 2;
       */
      public Builder clearGeneratedJars() {
        if (generatedJarsBuilder_ == null) {
          generatedJars_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          generatedJarsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .bazelbsp.JvmOutputs generated_jars = 2;
       */
      public Builder removeGeneratedJars(int index) {
        if (generatedJarsBuilder_ == null) {
          ensureGeneratedJarsIsMutable();
          generatedJars_.remove(index);
          onChanged();
        } else {
          generatedJarsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.JvmOutputs generated_jars = 2;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs.Builder getGeneratedJarsBuilder(
          int index) {
        return getGeneratedJarsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .bazelbsp.JvmOutputs generated_jars = 2;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputsOrBuilder getGeneratedJarsOrBuilder(
          int index) {
        if (generatedJarsBuilder_ == null) {
          return generatedJars_.get(index);  } else {
          return generatedJarsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .bazelbsp.JvmOutputs generated_jars = 2;
       */
      public java.util.List 
           getGeneratedJarsOrBuilderList() {
        if (generatedJarsBuilder_ != null) {
          return generatedJarsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(generatedJars_);
        }
      }
      /**
       * repeated .bazelbsp.JvmOutputs generated_jars = 2;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs.Builder addGeneratedJarsBuilder() {
        return getGeneratedJarsFieldBuilder().addBuilder(
            org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs.getDefaultInstance());
      }
      /**
       * repeated .bazelbsp.JvmOutputs generated_jars = 2;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs.Builder addGeneratedJarsBuilder(
          int index) {
        return getGeneratedJarsFieldBuilder().addBuilder(
            index, org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs.getDefaultInstance());
      }
      /**
       * repeated .bazelbsp.JvmOutputs generated_jars = 2;
       */
      public java.util.List 
           getGeneratedJarsBuilderList() {
        return getGeneratedJarsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs, org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputsOrBuilder> 
          getGeneratedJarsFieldBuilder() {
        if (generatedJarsBuilder_ == null) {
          generatedJarsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs, org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputs.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmOutputsOrBuilder>(
                  generatedJars_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          generatedJars_ = null;
        }
        return generatedJarsBuilder_;
      }

      private com.google.protobuf.LazyStringList javacOpts_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureJavacOptsIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          javacOpts_ = new com.google.protobuf.LazyStringArrayList(javacOpts_);
          bitField0_ |= 0x00000004;
         }
      }
      /**
       * repeated string javac_opts = 6;
       * @return A list containing the javacOpts.
       */
      public com.google.protobuf.ProtocolStringList
          getJavacOptsList() {
        return javacOpts_.getUnmodifiableView();
      }
      /**
       * repeated string javac_opts = 6;
       * @return The count of javacOpts.
       */
      public int getJavacOptsCount() {
        return javacOpts_.size();
      }
      /**
       * repeated string javac_opts = 6;
       * @param index The index of the element to return.
       * @return The javacOpts at the given index.
       */
      public java.lang.String getJavacOpts(int index) {
        return javacOpts_.get(index);
      }
      /**
       * repeated string javac_opts = 6;
       * @param index The index of the value to return.
       * @return The bytes of the javacOpts at the given index.
       */
      public com.google.protobuf.ByteString
          getJavacOptsBytes(int index) {
        return javacOpts_.getByteString(index);
      }
      /**
       * repeated string javac_opts = 6;
       * @param index The index to set the value at.
       * @param value The javacOpts to set.
       * @return This builder for chaining.
       */
      public Builder setJavacOpts(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureJavacOptsIsMutable();
        javacOpts_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated string javac_opts = 6;
       * @param value The javacOpts to add.
       * @return This builder for chaining.
       */
      public Builder addJavacOpts(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureJavacOptsIsMutable();
        javacOpts_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated string javac_opts = 6;
       * @param values The javacOpts to add.
       * @return This builder for chaining.
       */
      public Builder addAllJavacOpts(
          java.lang.Iterable values) {
        ensureJavacOptsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, javacOpts_);
        onChanged();
        return this;
      }
      /**
       * repeated string javac_opts = 6;
       * @return This builder for chaining.
       */
      public Builder clearJavacOpts() {
        javacOpts_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * repeated string javac_opts = 6;
       * @param value The bytes of the javacOpts to add.
       * @return This builder for chaining.
       */
      public Builder addJavacOptsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureJavacOptsIsMutable();
        javacOpts_.add(value);
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList jvmFlags_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureJvmFlagsIsMutable() {
        if (!((bitField0_ & 0x00000008) != 0)) {
          jvmFlags_ = new com.google.protobuf.LazyStringArrayList(jvmFlags_);
          bitField0_ |= 0x00000008;
         }
      }
      /**
       * repeated string jvm_flags = 7;
       * @return A list containing the jvmFlags.
       */
      public com.google.protobuf.ProtocolStringList
          getJvmFlagsList() {
        return jvmFlags_.getUnmodifiableView();
      }
      /**
       * repeated string jvm_flags = 7;
       * @return The count of jvmFlags.
       */
      public int getJvmFlagsCount() {
        return jvmFlags_.size();
      }
      /**
       * repeated string jvm_flags = 7;
       * @param index The index of the element to return.
       * @return The jvmFlags at the given index.
       */
      public java.lang.String getJvmFlags(int index) {
        return jvmFlags_.get(index);
      }
      /**
       * repeated string jvm_flags = 7;
       * @param index The index of the value to return.
       * @return The bytes of the jvmFlags at the given index.
       */
      public com.google.protobuf.ByteString
          getJvmFlagsBytes(int index) {
        return jvmFlags_.getByteString(index);
      }
      /**
       * repeated string jvm_flags = 7;
       * @param index The index to set the value at.
       * @param value The jvmFlags to set.
       * @return This builder for chaining.
       */
      public Builder setJvmFlags(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureJvmFlagsIsMutable();
        jvmFlags_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated string jvm_flags = 7;
       * @param value The jvmFlags to add.
       * @return This builder for chaining.
       */
      public Builder addJvmFlags(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureJvmFlagsIsMutable();
        jvmFlags_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated string jvm_flags = 7;
       * @param values The jvmFlags to add.
       * @return This builder for chaining.
       */
      public Builder addAllJvmFlags(
          java.lang.Iterable values) {
        ensureJvmFlagsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, jvmFlags_);
        onChanged();
        return this;
      }
      /**
       * repeated string jvm_flags = 7;
       * @return This builder for chaining.
       */
      public Builder clearJvmFlags() {
        jvmFlags_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * repeated string jvm_flags = 7;
       * @param value The bytes of the jvmFlags to add.
       * @return This builder for chaining.
       */
      public Builder addJvmFlagsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureJvmFlagsIsMutable();
        jvmFlags_.add(value);
        onChanged();
        return this;
      }

      private java.lang.Object mainClass_ = "";
      /**
       * string main_class = 8;
       * @return The mainClass.
       */
      public java.lang.String getMainClass() {
        java.lang.Object ref = mainClass_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          mainClass_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string main_class = 8;
       * @return The bytes for mainClass.
       */
      public com.google.protobuf.ByteString
          getMainClassBytes() {
        java.lang.Object ref = mainClass_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          mainClass_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string main_class = 8;
       * @param value The mainClass to set.
       * @return This builder for chaining.
       */
      public Builder setMainClass(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        mainClass_ = value;
        onChanged();
        return this;
      }
      /**
       * string main_class = 8;
       * @return This builder for chaining.
       */
      public Builder clearMainClass() {
        
        mainClass_ = getDefaultInstance().getMainClass();
        onChanged();
        return this;
      }
      /**
       * string main_class = 8;
       * @param value The bytes for mainClass to set.
       * @return This builder for chaining.
       */
      public Builder setMainClassBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        mainClass_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList args_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureArgsIsMutable() {
        if (!((bitField0_ & 0x00000010) != 0)) {
          args_ = new com.google.protobuf.LazyStringArrayList(args_);
          bitField0_ |= 0x00000010;
         }
      }
      /**
       * repeated string args = 9;
       * @return A list containing the args.
       */
      public com.google.protobuf.ProtocolStringList
          getArgsList() {
        return args_.getUnmodifiableView();
      }
      /**
       * repeated string args = 9;
       * @return The count of args.
       */
      public int getArgsCount() {
        return args_.size();
      }
      /**
       * repeated string args = 9;
       * @param index The index of the element to return.
       * @return The args at the given index.
       */
      public java.lang.String getArgs(int index) {
        return args_.get(index);
      }
      /**
       * repeated string args = 9;
       * @param index The index of the value to return.
       * @return The bytes of the args at the given index.
       */
      public com.google.protobuf.ByteString
          getArgsBytes(int index) {
        return args_.getByteString(index);
      }
      /**
       * repeated string args = 9;
       * @param index The index to set the value at.
       * @param value The args to set.
       * @return This builder for chaining.
       */
      public Builder setArgs(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureArgsIsMutable();
        args_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated string args = 9;
       * @param value The args to add.
       * @return This builder for chaining.
       */
      public Builder addArgs(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureArgsIsMutable();
        args_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated string args = 9;
       * @param values The args to add.
       * @return This builder for chaining.
       */
      public Builder addAllArgs(
          java.lang.Iterable values) {
        ensureArgsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, args_);
        onChanged();
        return this;
      }
      /**
       * repeated string args = 9;
       * @return This builder for chaining.
       */
      public Builder clearArgs() {
        args_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }
      /**
       * repeated string args = 9;
       * @param value The bytes of the args to add.
       * @return This builder for chaining.
       */
      public Builder addArgsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureArgsIsMutable();
        args_.add(value);
        onChanged();
        return this;
      }

      private java.util.List jdeps_ =
        java.util.Collections.emptyList();
      private void ensureJdepsIsMutable() {
        if (!((bitField0_ & 0x00000020) != 0)) {
          jdeps_ = new java.util.ArrayList(jdeps_);
          bitField0_ |= 0x00000020;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> jdepsBuilder_;

      /**
       * repeated .bazelbsp.FileLocation jdeps = 10;
       */
      public java.util.List getJdepsList() {
        if (jdepsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(jdeps_);
        } else {
          return jdepsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .bazelbsp.FileLocation jdeps = 10;
       */
      public int getJdepsCount() {
        if (jdepsBuilder_ == null) {
          return jdeps_.size();
        } else {
          return jdepsBuilder_.getCount();
        }
      }
      /**
       * repeated .bazelbsp.FileLocation jdeps = 10;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getJdeps(int index) {
        if (jdepsBuilder_ == null) {
          return jdeps_.get(index);
        } else {
          return jdepsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .bazelbsp.FileLocation jdeps = 10;
       */
      public Builder setJdeps(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (jdepsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureJdepsIsMutable();
          jdeps_.set(index, value);
          onChanged();
        } else {
          jdepsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation jdeps = 10;
       */
      public Builder setJdeps(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (jdepsBuilder_ == null) {
          ensureJdepsIsMutable();
          jdeps_.set(index, builderForValue.build());
          onChanged();
        } else {
          jdepsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation jdeps = 10;
       */
      public Builder addJdeps(org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (jdepsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureJdepsIsMutable();
          jdeps_.add(value);
          onChanged();
        } else {
          jdepsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation jdeps = 10;
       */
      public Builder addJdeps(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (jdepsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureJdepsIsMutable();
          jdeps_.add(index, value);
          onChanged();
        } else {
          jdepsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation jdeps = 10;
       */
      public Builder addJdeps(
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (jdepsBuilder_ == null) {
          ensureJdepsIsMutable();
          jdeps_.add(builderForValue.build());
          onChanged();
        } else {
          jdepsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation jdeps = 10;
       */
      public Builder addJdeps(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (jdepsBuilder_ == null) {
          ensureJdepsIsMutable();
          jdeps_.add(index, builderForValue.build());
          onChanged();
        } else {
          jdepsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation jdeps = 10;
       */
      public Builder addAllJdeps(
          java.lang.Iterable values) {
        if (jdepsBuilder_ == null) {
          ensureJdepsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, jdeps_);
          onChanged();
        } else {
          jdepsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation jdeps = 10;
       */
      public Builder clearJdeps() {
        if (jdepsBuilder_ == null) {
          jdeps_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
          onChanged();
        } else {
          jdepsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation jdeps = 10;
       */
      public Builder removeJdeps(int index) {
        if (jdepsBuilder_ == null) {
          ensureJdepsIsMutable();
          jdeps_.remove(index);
          onChanged();
        } else {
          jdepsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation jdeps = 10;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder getJdepsBuilder(
          int index) {
        return getJdepsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .bazelbsp.FileLocation jdeps = 10;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getJdepsOrBuilder(
          int index) {
        if (jdepsBuilder_ == null) {
          return jdeps_.get(index);  } else {
          return jdepsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .bazelbsp.FileLocation jdeps = 10;
       */
      public java.util.List 
           getJdepsOrBuilderList() {
        if (jdepsBuilder_ != null) {
          return jdepsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(jdeps_);
        }
      }
      /**
       * repeated .bazelbsp.FileLocation jdeps = 10;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder addJdepsBuilder() {
        return getJdepsFieldBuilder().addBuilder(
            org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance());
      }
      /**
       * repeated .bazelbsp.FileLocation jdeps = 10;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder addJdepsBuilder(
          int index) {
        return getJdepsFieldBuilder().addBuilder(
            index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance());
      }
      /**
       * repeated .bazelbsp.FileLocation jdeps = 10;
       */
      public java.util.List 
           getJdepsBuilderList() {
        return getJdepsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> 
          getJdepsFieldBuilder() {
        if (jdepsBuilder_ == null) {
          jdepsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder>(
                  jdeps_,
                  ((bitField0_ & 0x00000020) != 0),
                  getParentForChildren(),
                  isClean());
          jdeps_ = null;
        }
        return jdepsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:bazelbsp.JvmTargetInfo)
    }

    // @@protoc_insertion_point(class_scope:bazelbsp.JvmTargetInfo)
    private static final org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo();
    }

    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public JvmTargetInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface JavaToolchainInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:bazelbsp.JavaToolchainInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * string source_version = 1;
     * @return The sourceVersion.
     */
    java.lang.String getSourceVersion();
    /**
     * string source_version = 1;
     * @return The bytes for sourceVersion.
     */
    com.google.protobuf.ByteString
        getSourceVersionBytes();

    /**
     * string target_version = 2;
     * @return The targetVersion.
     */
    java.lang.String getTargetVersion();
    /**
     * string target_version = 2;
     * @return The bytes for targetVersion.
     */
    com.google.protobuf.ByteString
        getTargetVersionBytes();

    /**
     * .bazelbsp.FileLocation java_home = 3;
     * @return Whether the javaHome field is set.
     */
    boolean hasJavaHome();
    /**
     * .bazelbsp.FileLocation java_home = 3;
     * @return The javaHome.
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getJavaHome();
    /**
     * .bazelbsp.FileLocation java_home = 3;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getJavaHomeOrBuilder();
  }
  /**
   * Protobuf type {@code bazelbsp.JavaToolchainInfo}
   */
  public static final class JavaToolchainInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:bazelbsp.JavaToolchainInfo)
      JavaToolchainInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use JavaToolchainInfo.newBuilder() to construct.
    private JavaToolchainInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private JavaToolchainInfo() {
      sourceVersion_ = "";
      targetVersion_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new JavaToolchainInfo();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_JavaToolchainInfo_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_JavaToolchainInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo.class, org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo.Builder.class);
    }

    public static final int SOURCE_VERSION_FIELD_NUMBER = 1;
    private volatile java.lang.Object sourceVersion_;
    /**
     * string source_version = 1;
     * @return The sourceVersion.
     */
    @java.lang.Override
    public java.lang.String getSourceVersion() {
      java.lang.Object ref = sourceVersion_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        sourceVersion_ = s;
        return s;
      }
    }
    /**
     * string source_version = 1;
     * @return The bytes for sourceVersion.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSourceVersionBytes() {
      java.lang.Object ref = sourceVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        sourceVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TARGET_VERSION_FIELD_NUMBER = 2;
    private volatile java.lang.Object targetVersion_;
    /**
     * string target_version = 2;
     * @return The targetVersion.
     */
    @java.lang.Override
    public java.lang.String getTargetVersion() {
      java.lang.Object ref = targetVersion_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        targetVersion_ = s;
        return s;
      }
    }
    /**
     * string target_version = 2;
     * @return The bytes for targetVersion.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTargetVersionBytes() {
      java.lang.Object ref = targetVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        targetVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int JAVA_HOME_FIELD_NUMBER = 3;
    private org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation javaHome_;
    /**
     * .bazelbsp.FileLocation java_home = 3;
     * @return Whether the javaHome field is set.
     */
    @java.lang.Override
    public boolean hasJavaHome() {
      return javaHome_ != null;
    }
    /**
     * .bazelbsp.FileLocation java_home = 3;
     * @return The javaHome.
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getJavaHome() {
      return javaHome_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance() : javaHome_;
    }
    /**
     * .bazelbsp.FileLocation java_home = 3;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getJavaHomeOrBuilder() {
      return getJavaHome();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sourceVersion_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, sourceVersion_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(targetVersion_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, targetVersion_);
      }
      if (javaHome_ != null) {
        output.writeMessage(3, getJavaHome());
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sourceVersion_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, sourceVersion_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(targetVersion_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, targetVersion_);
      }
      if (javaHome_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getJavaHome());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo)) {
        return super.equals(obj);
      }
      org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo other = (org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo) obj;

      if (!getSourceVersion()
          .equals(other.getSourceVersion())) return false;
      if (!getTargetVersion()
          .equals(other.getTargetVersion())) return false;
      if (hasJavaHome() != other.hasJavaHome()) return false;
      if (hasJavaHome()) {
        if (!getJavaHome()
            .equals(other.getJavaHome())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SOURCE_VERSION_FIELD_NUMBER;
      hash = (53 * hash) + getSourceVersion().hashCode();
      hash = (37 * hash) + TARGET_VERSION_FIELD_NUMBER;
      hash = (53 * hash) + getTargetVersion().hashCode();
      if (hasJavaHome()) {
        hash = (37 * hash) + JAVA_HOME_FIELD_NUMBER;
        hash = (53 * hash) + getJavaHome().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo 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 org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo 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 org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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 bazelbsp.JavaToolchainInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:bazelbsp.JavaToolchainInfo)
        org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_JavaToolchainInfo_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_JavaToolchainInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo.class, org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo.Builder.class);
      }

      // Construct using org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        sourceVersion_ = "";

        targetVersion_ = "";

        if (javaHomeBuilder_ == null) {
          javaHome_ = null;
        } else {
          javaHome_ = null;
          javaHomeBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_JavaToolchainInfo_descriptor;
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo getDefaultInstanceForType() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo.getDefaultInstance();
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo build() {
        org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo buildPartial() {
        org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo result = new org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo(this);
        result.sourceVersion_ = sourceVersion_;
        result.targetVersion_ = targetVersion_;
        if (javaHomeBuilder_ == null) {
          result.javaHome_ = javaHome_;
        } else {
          result.javaHome_ = javaHomeBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo) {
          return mergeFrom((org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo other) {
        if (other == org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo.getDefaultInstance()) return this;
        if (!other.getSourceVersion().isEmpty()) {
          sourceVersion_ = other.sourceVersion_;
          onChanged();
        }
        if (!other.getTargetVersion().isEmpty()) {
          targetVersion_ = other.targetVersion_;
          onChanged();
        }
        if (other.hasJavaHome()) {
          mergeJavaHome(other.getJavaHome());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                sourceVersion_ = input.readStringRequireUtf8();

                break;
              } // case 10
              case 18: {
                targetVersion_ = input.readStringRequireUtf8();

                break;
              } // case 18
              case 26: {
                input.readMessage(
                    getJavaHomeFieldBuilder().getBuilder(),
                    extensionRegistry);

                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }

      private java.lang.Object sourceVersion_ = "";
      /**
       * string source_version = 1;
       * @return The sourceVersion.
       */
      public java.lang.String getSourceVersion() {
        java.lang.Object ref = sourceVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          sourceVersion_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string source_version = 1;
       * @return The bytes for sourceVersion.
       */
      public com.google.protobuf.ByteString
          getSourceVersionBytes() {
        java.lang.Object ref = sourceVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          sourceVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string source_version = 1;
       * @param value The sourceVersion to set.
       * @return This builder for chaining.
       */
      public Builder setSourceVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        sourceVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * string source_version = 1;
       * @return This builder for chaining.
       */
      public Builder clearSourceVersion() {
        
        sourceVersion_ = getDefaultInstance().getSourceVersion();
        onChanged();
        return this;
      }
      /**
       * string source_version = 1;
       * @param value The bytes for sourceVersion to set.
       * @return This builder for chaining.
       */
      public Builder setSourceVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        sourceVersion_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object targetVersion_ = "";
      /**
       * string target_version = 2;
       * @return The targetVersion.
       */
      public java.lang.String getTargetVersion() {
        java.lang.Object ref = targetVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          targetVersion_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string target_version = 2;
       * @return The bytes for targetVersion.
       */
      public com.google.protobuf.ByteString
          getTargetVersionBytes() {
        java.lang.Object ref = targetVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          targetVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string target_version = 2;
       * @param value The targetVersion to set.
       * @return This builder for chaining.
       */
      public Builder setTargetVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        targetVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * string target_version = 2;
       * @return This builder for chaining.
       */
      public Builder clearTargetVersion() {
        
        targetVersion_ = getDefaultInstance().getTargetVersion();
        onChanged();
        return this;
      }
      /**
       * string target_version = 2;
       * @param value The bytes for targetVersion to set.
       * @return This builder for chaining.
       */
      public Builder setTargetVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        targetVersion_ = value;
        onChanged();
        return this;
      }

      private org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation javaHome_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> javaHomeBuilder_;
      /**
       * .bazelbsp.FileLocation java_home = 3;
       * @return Whether the javaHome field is set.
       */
      public boolean hasJavaHome() {
        return javaHomeBuilder_ != null || javaHome_ != null;
      }
      /**
       * .bazelbsp.FileLocation java_home = 3;
       * @return The javaHome.
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getJavaHome() {
        if (javaHomeBuilder_ == null) {
          return javaHome_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance() : javaHome_;
        } else {
          return javaHomeBuilder_.getMessage();
        }
      }
      /**
       * .bazelbsp.FileLocation java_home = 3;
       */
      public Builder setJavaHome(org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (javaHomeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          javaHome_ = value;
          onChanged();
        } else {
          javaHomeBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .bazelbsp.FileLocation java_home = 3;
       */
      public Builder setJavaHome(
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (javaHomeBuilder_ == null) {
          javaHome_ = builderForValue.build();
          onChanged();
        } else {
          javaHomeBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .bazelbsp.FileLocation java_home = 3;
       */
      public Builder mergeJavaHome(org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (javaHomeBuilder_ == null) {
          if (javaHome_ != null) {
            javaHome_ =
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.newBuilder(javaHome_).mergeFrom(value).buildPartial();
          } else {
            javaHome_ = value;
          }
          onChanged();
        } else {
          javaHomeBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .bazelbsp.FileLocation java_home = 3;
       */
      public Builder clearJavaHome() {
        if (javaHomeBuilder_ == null) {
          javaHome_ = null;
          onChanged();
        } else {
          javaHome_ = null;
          javaHomeBuilder_ = null;
        }

        return this;
      }
      /**
       * .bazelbsp.FileLocation java_home = 3;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder getJavaHomeBuilder() {
        
        onChanged();
        return getJavaHomeFieldBuilder().getBuilder();
      }
      /**
       * .bazelbsp.FileLocation java_home = 3;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getJavaHomeOrBuilder() {
        if (javaHomeBuilder_ != null) {
          return javaHomeBuilder_.getMessageOrBuilder();
        } else {
          return javaHome_ == null ?
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance() : javaHome_;
        }
      }
      /**
       * .bazelbsp.FileLocation java_home = 3;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> 
          getJavaHomeFieldBuilder() {
        if (javaHomeBuilder_ == null) {
          javaHomeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder>(
                  getJavaHome(),
                  getParentForChildren(),
                  isClean());
          javaHome_ = null;
        }
        return javaHomeBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:bazelbsp.JavaToolchainInfo)
    }

    // @@protoc_insertion_point(class_scope:bazelbsp.JavaToolchainInfo)
    private static final org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo();
    }

    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public JavaToolchainInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface JavaRuntimeInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:bazelbsp.JavaRuntimeInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .bazelbsp.FileLocation java_home = 1;
     * @return Whether the javaHome field is set.
     */
    boolean hasJavaHome();
    /**
     * .bazelbsp.FileLocation java_home = 1;
     * @return The javaHome.
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getJavaHome();
    /**
     * .bazelbsp.FileLocation java_home = 1;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getJavaHomeOrBuilder();
  }
  /**
   * Protobuf type {@code bazelbsp.JavaRuntimeInfo}
   */
  public static final class JavaRuntimeInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:bazelbsp.JavaRuntimeInfo)
      JavaRuntimeInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use JavaRuntimeInfo.newBuilder() to construct.
    private JavaRuntimeInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private JavaRuntimeInfo() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new JavaRuntimeInfo();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_JavaRuntimeInfo_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_JavaRuntimeInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo.class, org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo.Builder.class);
    }

    public static final int JAVA_HOME_FIELD_NUMBER = 1;
    private org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation javaHome_;
    /**
     * .bazelbsp.FileLocation java_home = 1;
     * @return Whether the javaHome field is set.
     */
    @java.lang.Override
    public boolean hasJavaHome() {
      return javaHome_ != null;
    }
    /**
     * .bazelbsp.FileLocation java_home = 1;
     * @return The javaHome.
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getJavaHome() {
      return javaHome_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance() : javaHome_;
    }
    /**
     * .bazelbsp.FileLocation java_home = 1;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getJavaHomeOrBuilder() {
      return getJavaHome();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (javaHome_ != null) {
        output.writeMessage(1, getJavaHome());
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (javaHome_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getJavaHome());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo)) {
        return super.equals(obj);
      }
      org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo other = (org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo) obj;

      if (hasJavaHome() != other.hasJavaHome()) return false;
      if (hasJavaHome()) {
        if (!getJavaHome()
            .equals(other.getJavaHome())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasJavaHome()) {
        hash = (37 * hash) + JAVA_HOME_FIELD_NUMBER;
        hash = (53 * hash) + getJavaHome().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo 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 org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo 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 org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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 bazelbsp.JavaRuntimeInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:bazelbsp.JavaRuntimeInfo)
        org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_JavaRuntimeInfo_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_JavaRuntimeInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo.class, org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo.Builder.class);
      }

      // Construct using org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (javaHomeBuilder_ == null) {
          javaHome_ = null;
        } else {
          javaHome_ = null;
          javaHomeBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_JavaRuntimeInfo_descriptor;
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo getDefaultInstanceForType() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo.getDefaultInstance();
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo build() {
        org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo buildPartial() {
        org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo result = new org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo(this);
        if (javaHomeBuilder_ == null) {
          result.javaHome_ = javaHome_;
        } else {
          result.javaHome_ = javaHomeBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo) {
          return mergeFrom((org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo other) {
        if (other == org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo.getDefaultInstance()) return this;
        if (other.hasJavaHome()) {
          mergeJavaHome(other.getJavaHome());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    getJavaHomeFieldBuilder().getBuilder(),
                    extensionRegistry);

                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }

      private org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation javaHome_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> javaHomeBuilder_;
      /**
       * .bazelbsp.FileLocation java_home = 1;
       * @return Whether the javaHome field is set.
       */
      public boolean hasJavaHome() {
        return javaHomeBuilder_ != null || javaHome_ != null;
      }
      /**
       * .bazelbsp.FileLocation java_home = 1;
       * @return The javaHome.
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getJavaHome() {
        if (javaHomeBuilder_ == null) {
          return javaHome_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance() : javaHome_;
        } else {
          return javaHomeBuilder_.getMessage();
        }
      }
      /**
       * .bazelbsp.FileLocation java_home = 1;
       */
      public Builder setJavaHome(org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (javaHomeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          javaHome_ = value;
          onChanged();
        } else {
          javaHomeBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .bazelbsp.FileLocation java_home = 1;
       */
      public Builder setJavaHome(
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (javaHomeBuilder_ == null) {
          javaHome_ = builderForValue.build();
          onChanged();
        } else {
          javaHomeBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .bazelbsp.FileLocation java_home = 1;
       */
      public Builder mergeJavaHome(org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (javaHomeBuilder_ == null) {
          if (javaHome_ != null) {
            javaHome_ =
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.newBuilder(javaHome_).mergeFrom(value).buildPartial();
          } else {
            javaHome_ = value;
          }
          onChanged();
        } else {
          javaHomeBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .bazelbsp.FileLocation java_home = 1;
       */
      public Builder clearJavaHome() {
        if (javaHomeBuilder_ == null) {
          javaHome_ = null;
          onChanged();
        } else {
          javaHome_ = null;
          javaHomeBuilder_ = null;
        }

        return this;
      }
      /**
       * .bazelbsp.FileLocation java_home = 1;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder getJavaHomeBuilder() {
        
        onChanged();
        return getJavaHomeFieldBuilder().getBuilder();
      }
      /**
       * .bazelbsp.FileLocation java_home = 1;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getJavaHomeOrBuilder() {
        if (javaHomeBuilder_ != null) {
          return javaHomeBuilder_.getMessageOrBuilder();
        } else {
          return javaHome_ == null ?
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance() : javaHome_;
        }
      }
      /**
       * .bazelbsp.FileLocation java_home = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> 
          getJavaHomeFieldBuilder() {
        if (javaHomeBuilder_ == null) {
          javaHomeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder>(
                  getJavaHome(),
                  getParentForChildren(),
                  isClean());
          javaHome_ = null;
        }
        return javaHomeBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:bazelbsp.JavaRuntimeInfo)
    }

    // @@protoc_insertion_point(class_scope:bazelbsp.JavaRuntimeInfo)
    private static final org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo();
    }

    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public JavaRuntimeInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ScalaTargetInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:bazelbsp.ScalaTargetInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated string scalac_opts = 1;
     * @return A list containing the scalacOpts.
     */
    java.util.List
        getScalacOptsList();
    /**
     * repeated string scalac_opts = 1;
     * @return The count of scalacOpts.
     */
    int getScalacOptsCount();
    /**
     * repeated string scalac_opts = 1;
     * @param index The index of the element to return.
     * @return The scalacOpts at the given index.
     */
    java.lang.String getScalacOpts(int index);
    /**
     * repeated string scalac_opts = 1;
     * @param index The index of the value to return.
     * @return The bytes of the scalacOpts at the given index.
     */
    com.google.protobuf.ByteString
        getScalacOptsBytes(int index);
  }
  /**
   * Protobuf type {@code bazelbsp.ScalaTargetInfo}
   */
  public static final class ScalaTargetInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:bazelbsp.ScalaTargetInfo)
      ScalaTargetInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ScalaTargetInfo.newBuilder() to construct.
    private ScalaTargetInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private ScalaTargetInfo() {
      scalacOpts_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ScalaTargetInfo();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_ScalaTargetInfo_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_ScalaTargetInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo.class, org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo.Builder.class);
    }

    public static final int SCALAC_OPTS_FIELD_NUMBER = 1;
    private com.google.protobuf.LazyStringList scalacOpts_;
    /**
     * repeated string scalac_opts = 1;
     * @return A list containing the scalacOpts.
     */
    public com.google.protobuf.ProtocolStringList
        getScalacOptsList() {
      return scalacOpts_;
    }
    /**
     * repeated string scalac_opts = 1;
     * @return The count of scalacOpts.
     */
    public int getScalacOptsCount() {
      return scalacOpts_.size();
    }
    /**
     * repeated string scalac_opts = 1;
     * @param index The index of the element to return.
     * @return The scalacOpts at the given index.
     */
    public java.lang.String getScalacOpts(int index) {
      return scalacOpts_.get(index);
    }
    /**
     * repeated string scalac_opts = 1;
     * @param index The index of the value to return.
     * @return The bytes of the scalacOpts at the given index.
     */
    public com.google.protobuf.ByteString
        getScalacOptsBytes(int index) {
      return scalacOpts_.getByteString(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < scalacOpts_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, scalacOpts_.getRaw(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < scalacOpts_.size(); i++) {
          dataSize += computeStringSizeNoTag(scalacOpts_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getScalacOptsList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo)) {
        return super.equals(obj);
      }
      org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo other = (org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo) obj;

      if (!getScalacOptsList()
          .equals(other.getScalacOptsList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getScalacOptsCount() > 0) {
        hash = (37 * hash) + SCALAC_OPTS_FIELD_NUMBER;
        hash = (53 * hash) + getScalacOptsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo 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 org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo 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 org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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 bazelbsp.ScalaTargetInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:bazelbsp.ScalaTargetInfo)
        org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_ScalaTargetInfo_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_ScalaTargetInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo.class, org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo.Builder.class);
      }

      // Construct using org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        scalacOpts_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_ScalaTargetInfo_descriptor;
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo getDefaultInstanceForType() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo.getDefaultInstance();
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo build() {
        org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo buildPartial() {
        org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo result = new org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) != 0)) {
          scalacOpts_ = scalacOpts_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.scalacOpts_ = scalacOpts_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo) {
          return mergeFrom((org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo other) {
        if (other == org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo.getDefaultInstance()) return this;
        if (!other.scalacOpts_.isEmpty()) {
          if (scalacOpts_.isEmpty()) {
            scalacOpts_ = other.scalacOpts_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureScalacOptsIsMutable();
            scalacOpts_.addAll(other.scalacOpts_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureScalacOptsIsMutable();
                scalacOpts_.add(s);
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.LazyStringList scalacOpts_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureScalacOptsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          scalacOpts_ = new com.google.protobuf.LazyStringArrayList(scalacOpts_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * repeated string scalac_opts = 1;
       * @return A list containing the scalacOpts.
       */
      public com.google.protobuf.ProtocolStringList
          getScalacOptsList() {
        return scalacOpts_.getUnmodifiableView();
      }
      /**
       * repeated string scalac_opts = 1;
       * @return The count of scalacOpts.
       */
      public int getScalacOptsCount() {
        return scalacOpts_.size();
      }
      /**
       * repeated string scalac_opts = 1;
       * @param index The index of the element to return.
       * @return The scalacOpts at the given index.
       */
      public java.lang.String getScalacOpts(int index) {
        return scalacOpts_.get(index);
      }
      /**
       * repeated string scalac_opts = 1;
       * @param index The index of the value to return.
       * @return The bytes of the scalacOpts at the given index.
       */
      public com.google.protobuf.ByteString
          getScalacOptsBytes(int index) {
        return scalacOpts_.getByteString(index);
      }
      /**
       * repeated string scalac_opts = 1;
       * @param index The index to set the value at.
       * @param value The scalacOpts to set.
       * @return This builder for chaining.
       */
      public Builder setScalacOpts(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureScalacOptsIsMutable();
        scalacOpts_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated string scalac_opts = 1;
       * @param value The scalacOpts to add.
       * @return This builder for chaining.
       */
      public Builder addScalacOpts(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureScalacOptsIsMutable();
        scalacOpts_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated string scalac_opts = 1;
       * @param values The scalacOpts to add.
       * @return This builder for chaining.
       */
      public Builder addAllScalacOpts(
          java.lang.Iterable values) {
        ensureScalacOptsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, scalacOpts_);
        onChanged();
        return this;
      }
      /**
       * repeated string scalac_opts = 1;
       * @return This builder for chaining.
       */
      public Builder clearScalacOpts() {
        scalacOpts_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * repeated string scalac_opts = 1;
       * @param value The bytes of the scalacOpts to add.
       * @return This builder for chaining.
       */
      public Builder addScalacOptsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureScalacOptsIsMutable();
        scalacOpts_.add(value);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:bazelbsp.ScalaTargetInfo)
    }

    // @@protoc_insertion_point(class_scope:bazelbsp.ScalaTargetInfo)
    private static final org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo();
    }

    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public ScalaTargetInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ScalaToolchainInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:bazelbsp.ScalaToolchainInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated .bazelbsp.FileLocation compiler_classpath = 1;
     */
    java.util.List 
        getCompilerClasspathList();
    /**
     * repeated .bazelbsp.FileLocation compiler_classpath = 1;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getCompilerClasspath(int index);
    /**
     * repeated .bazelbsp.FileLocation compiler_classpath = 1;
     */
    int getCompilerClasspathCount();
    /**
     * repeated .bazelbsp.FileLocation compiler_classpath = 1;
     */
    java.util.List 
        getCompilerClasspathOrBuilderList();
    /**
     * repeated .bazelbsp.FileLocation compiler_classpath = 1;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getCompilerClasspathOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code bazelbsp.ScalaToolchainInfo}
   */
  public static final class ScalaToolchainInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:bazelbsp.ScalaToolchainInfo)
      ScalaToolchainInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ScalaToolchainInfo.newBuilder() to construct.
    private ScalaToolchainInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private ScalaToolchainInfo() {
      compilerClasspath_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ScalaToolchainInfo();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_ScalaToolchainInfo_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_ScalaToolchainInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo.class, org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo.Builder.class);
    }

    public static final int COMPILER_CLASSPATH_FIELD_NUMBER = 1;
    private java.util.List compilerClasspath_;
    /**
     * repeated .bazelbsp.FileLocation compiler_classpath = 1;
     */
    @java.lang.Override
    public java.util.List getCompilerClasspathList() {
      return compilerClasspath_;
    }
    /**
     * repeated .bazelbsp.FileLocation compiler_classpath = 1;
     */
    @java.lang.Override
    public java.util.List 
        getCompilerClasspathOrBuilderList() {
      return compilerClasspath_;
    }
    /**
     * repeated .bazelbsp.FileLocation compiler_classpath = 1;
     */
    @java.lang.Override
    public int getCompilerClasspathCount() {
      return compilerClasspath_.size();
    }
    /**
     * repeated .bazelbsp.FileLocation compiler_classpath = 1;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getCompilerClasspath(int index) {
      return compilerClasspath_.get(index);
    }
    /**
     * repeated .bazelbsp.FileLocation compiler_classpath = 1;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getCompilerClasspathOrBuilder(
        int index) {
      return compilerClasspath_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < compilerClasspath_.size(); i++) {
        output.writeMessage(1, compilerClasspath_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < compilerClasspath_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, compilerClasspath_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo)) {
        return super.equals(obj);
      }
      org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo other = (org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo) obj;

      if (!getCompilerClasspathList()
          .equals(other.getCompilerClasspathList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getCompilerClasspathCount() > 0) {
        hash = (37 * hash) + COMPILER_CLASSPATH_FIELD_NUMBER;
        hash = (53 * hash) + getCompilerClasspathList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo 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 org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo 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 org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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 bazelbsp.ScalaToolchainInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:bazelbsp.ScalaToolchainInfo)
        org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_ScalaToolchainInfo_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_ScalaToolchainInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo.class, org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo.Builder.class);
      }

      // Construct using org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (compilerClasspathBuilder_ == null) {
          compilerClasspath_ = java.util.Collections.emptyList();
        } else {
          compilerClasspath_ = null;
          compilerClasspathBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_ScalaToolchainInfo_descriptor;
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo getDefaultInstanceForType() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo.getDefaultInstance();
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo build() {
        org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo buildPartial() {
        org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo result = new org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo(this);
        int from_bitField0_ = bitField0_;
        if (compilerClasspathBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            compilerClasspath_ = java.util.Collections.unmodifiableList(compilerClasspath_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.compilerClasspath_ = compilerClasspath_;
        } else {
          result.compilerClasspath_ = compilerClasspathBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo) {
          return mergeFrom((org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo other) {
        if (other == org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo.getDefaultInstance()) return this;
        if (compilerClasspathBuilder_ == null) {
          if (!other.compilerClasspath_.isEmpty()) {
            if (compilerClasspath_.isEmpty()) {
              compilerClasspath_ = other.compilerClasspath_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureCompilerClasspathIsMutable();
              compilerClasspath_.addAll(other.compilerClasspath_);
            }
            onChanged();
          }
        } else {
          if (!other.compilerClasspath_.isEmpty()) {
            if (compilerClasspathBuilder_.isEmpty()) {
              compilerClasspathBuilder_.dispose();
              compilerClasspathBuilder_ = null;
              compilerClasspath_ = other.compilerClasspath_;
              bitField0_ = (bitField0_ & ~0x00000001);
              compilerClasspathBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getCompilerClasspathFieldBuilder() : null;
            } else {
              compilerClasspathBuilder_.addAllMessages(other.compilerClasspath_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation m =
                    input.readMessage(
                        org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.parser(),
                        extensionRegistry);
                if (compilerClasspathBuilder_ == null) {
                  ensureCompilerClasspathIsMutable();
                  compilerClasspath_.add(m);
                } else {
                  compilerClasspathBuilder_.addMessage(m);
                }
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.util.List compilerClasspath_ =
        java.util.Collections.emptyList();
      private void ensureCompilerClasspathIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          compilerClasspath_ = new java.util.ArrayList(compilerClasspath_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> compilerClasspathBuilder_;

      /**
       * repeated .bazelbsp.FileLocation compiler_classpath = 1;
       */
      public java.util.List getCompilerClasspathList() {
        if (compilerClasspathBuilder_ == null) {
          return java.util.Collections.unmodifiableList(compilerClasspath_);
        } else {
          return compilerClasspathBuilder_.getMessageList();
        }
      }
      /**
       * repeated .bazelbsp.FileLocation compiler_classpath = 1;
       */
      public int getCompilerClasspathCount() {
        if (compilerClasspathBuilder_ == null) {
          return compilerClasspath_.size();
        } else {
          return compilerClasspathBuilder_.getCount();
        }
      }
      /**
       * repeated .bazelbsp.FileLocation compiler_classpath = 1;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getCompilerClasspath(int index) {
        if (compilerClasspathBuilder_ == null) {
          return compilerClasspath_.get(index);
        } else {
          return compilerClasspathBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .bazelbsp.FileLocation compiler_classpath = 1;
       */
      public Builder setCompilerClasspath(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (compilerClasspathBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCompilerClasspathIsMutable();
          compilerClasspath_.set(index, value);
          onChanged();
        } else {
          compilerClasspathBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation compiler_classpath = 1;
       */
      public Builder setCompilerClasspath(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (compilerClasspathBuilder_ == null) {
          ensureCompilerClasspathIsMutable();
          compilerClasspath_.set(index, builderForValue.build());
          onChanged();
        } else {
          compilerClasspathBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation compiler_classpath = 1;
       */
      public Builder addCompilerClasspath(org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (compilerClasspathBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCompilerClasspathIsMutable();
          compilerClasspath_.add(value);
          onChanged();
        } else {
          compilerClasspathBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation compiler_classpath = 1;
       */
      public Builder addCompilerClasspath(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (compilerClasspathBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCompilerClasspathIsMutable();
          compilerClasspath_.add(index, value);
          onChanged();
        } else {
          compilerClasspathBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation compiler_classpath = 1;
       */
      public Builder addCompilerClasspath(
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (compilerClasspathBuilder_ == null) {
          ensureCompilerClasspathIsMutable();
          compilerClasspath_.add(builderForValue.build());
          onChanged();
        } else {
          compilerClasspathBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation compiler_classpath = 1;
       */
      public Builder addCompilerClasspath(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (compilerClasspathBuilder_ == null) {
          ensureCompilerClasspathIsMutable();
          compilerClasspath_.add(index, builderForValue.build());
          onChanged();
        } else {
          compilerClasspathBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation compiler_classpath = 1;
       */
      public Builder addAllCompilerClasspath(
          java.lang.Iterable values) {
        if (compilerClasspathBuilder_ == null) {
          ensureCompilerClasspathIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, compilerClasspath_);
          onChanged();
        } else {
          compilerClasspathBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation compiler_classpath = 1;
       */
      public Builder clearCompilerClasspath() {
        if (compilerClasspathBuilder_ == null) {
          compilerClasspath_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          compilerClasspathBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation compiler_classpath = 1;
       */
      public Builder removeCompilerClasspath(int index) {
        if (compilerClasspathBuilder_ == null) {
          ensureCompilerClasspathIsMutable();
          compilerClasspath_.remove(index);
          onChanged();
        } else {
          compilerClasspathBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation compiler_classpath = 1;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder getCompilerClasspathBuilder(
          int index) {
        return getCompilerClasspathFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .bazelbsp.FileLocation compiler_classpath = 1;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getCompilerClasspathOrBuilder(
          int index) {
        if (compilerClasspathBuilder_ == null) {
          return compilerClasspath_.get(index);  } else {
          return compilerClasspathBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .bazelbsp.FileLocation compiler_classpath = 1;
       */
      public java.util.List 
           getCompilerClasspathOrBuilderList() {
        if (compilerClasspathBuilder_ != null) {
          return compilerClasspathBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(compilerClasspath_);
        }
      }
      /**
       * repeated .bazelbsp.FileLocation compiler_classpath = 1;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder addCompilerClasspathBuilder() {
        return getCompilerClasspathFieldBuilder().addBuilder(
            org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance());
      }
      /**
       * repeated .bazelbsp.FileLocation compiler_classpath = 1;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder addCompilerClasspathBuilder(
          int index) {
        return getCompilerClasspathFieldBuilder().addBuilder(
            index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance());
      }
      /**
       * repeated .bazelbsp.FileLocation compiler_classpath = 1;
       */
      public java.util.List 
           getCompilerClasspathBuilderList() {
        return getCompilerClasspathFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> 
          getCompilerClasspathFieldBuilder() {
        if (compilerClasspathBuilder_ == null) {
          compilerClasspathBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder>(
                  compilerClasspath_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          compilerClasspath_ = null;
        }
        return compilerClasspathBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:bazelbsp.ScalaToolchainInfo)
    }

    // @@protoc_insertion_point(class_scope:bazelbsp.ScalaToolchainInfo)
    private static final org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo();
    }

    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public ScalaToolchainInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface CppTargetInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:bazelbsp.CppTargetInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated string copts = 1;
     * @return A list containing the copts.
     */
    java.util.List
        getCoptsList();
    /**
     * repeated string copts = 1;
     * @return The count of copts.
     */
    int getCoptsCount();
    /**
     * repeated string copts = 1;
     * @param index The index of the element to return.
     * @return The copts at the given index.
     */
    java.lang.String getCopts(int index);
    /**
     * repeated string copts = 1;
     * @param index The index of the value to return.
     * @return The bytes of the copts at the given index.
     */
    com.google.protobuf.ByteString
        getCoptsBytes(int index);

    /**
     * repeated string defines = 2;
     * @return A list containing the defines.
     */
    java.util.List
        getDefinesList();
    /**
     * repeated string defines = 2;
     * @return The count of defines.
     */
    int getDefinesCount();
    /**
     * repeated string defines = 2;
     * @param index The index of the element to return.
     * @return The defines at the given index.
     */
    java.lang.String getDefines(int index);
    /**
     * repeated string defines = 2;
     * @param index The index of the value to return.
     * @return The bytes of the defines at the given index.
     */
    com.google.protobuf.ByteString
        getDefinesBytes(int index);

    /**
     * repeated string link_opts = 3;
     * @return A list containing the linkOpts.
     */
    java.util.List
        getLinkOptsList();
    /**
     * repeated string link_opts = 3;
     * @return The count of linkOpts.
     */
    int getLinkOptsCount();
    /**
     * repeated string link_opts = 3;
     * @param index The index of the element to return.
     * @return The linkOpts at the given index.
     */
    java.lang.String getLinkOpts(int index);
    /**
     * repeated string link_opts = 3;
     * @param index The index of the value to return.
     * @return The bytes of the linkOpts at the given index.
     */
    com.google.protobuf.ByteString
        getLinkOptsBytes(int index);

    /**
     * bool link_shared = 4;
     * @return The linkShared.
     */
    boolean getLinkShared();
  }
  /**
   * Protobuf type {@code bazelbsp.CppTargetInfo}
   */
  public static final class CppTargetInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:bazelbsp.CppTargetInfo)
      CppTargetInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use CppTargetInfo.newBuilder() to construct.
    private CppTargetInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private CppTargetInfo() {
      copts_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      defines_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      linkOpts_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new CppTargetInfo();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_CppTargetInfo_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_CppTargetInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo.class, org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo.Builder.class);
    }

    public static final int COPTS_FIELD_NUMBER = 1;
    private com.google.protobuf.LazyStringList copts_;
    /**
     * repeated string copts = 1;
     * @return A list containing the copts.
     */
    public com.google.protobuf.ProtocolStringList
        getCoptsList() {
      return copts_;
    }
    /**
     * repeated string copts = 1;
     * @return The count of copts.
     */
    public int getCoptsCount() {
      return copts_.size();
    }
    /**
     * repeated string copts = 1;
     * @param index The index of the element to return.
     * @return The copts at the given index.
     */
    public java.lang.String getCopts(int index) {
      return copts_.get(index);
    }
    /**
     * repeated string copts = 1;
     * @param index The index of the value to return.
     * @return The bytes of the copts at the given index.
     */
    public com.google.protobuf.ByteString
        getCoptsBytes(int index) {
      return copts_.getByteString(index);
    }

    public static final int DEFINES_FIELD_NUMBER = 2;
    private com.google.protobuf.LazyStringList defines_;
    /**
     * repeated string defines = 2;
     * @return A list containing the defines.
     */
    public com.google.protobuf.ProtocolStringList
        getDefinesList() {
      return defines_;
    }
    /**
     * repeated string defines = 2;
     * @return The count of defines.
     */
    public int getDefinesCount() {
      return defines_.size();
    }
    /**
     * repeated string defines = 2;
     * @param index The index of the element to return.
     * @return The defines at the given index.
     */
    public java.lang.String getDefines(int index) {
      return defines_.get(index);
    }
    /**
     * repeated string defines = 2;
     * @param index The index of the value to return.
     * @return The bytes of the defines at the given index.
     */
    public com.google.protobuf.ByteString
        getDefinesBytes(int index) {
      return defines_.getByteString(index);
    }

    public static final int LINK_OPTS_FIELD_NUMBER = 3;
    private com.google.protobuf.LazyStringList linkOpts_;
    /**
     * repeated string link_opts = 3;
     * @return A list containing the linkOpts.
     */
    public com.google.protobuf.ProtocolStringList
        getLinkOptsList() {
      return linkOpts_;
    }
    /**
     * repeated string link_opts = 3;
     * @return The count of linkOpts.
     */
    public int getLinkOptsCount() {
      return linkOpts_.size();
    }
    /**
     * repeated string link_opts = 3;
     * @param index The index of the element to return.
     * @return The linkOpts at the given index.
     */
    public java.lang.String getLinkOpts(int index) {
      return linkOpts_.get(index);
    }
    /**
     * repeated string link_opts = 3;
     * @param index The index of the value to return.
     * @return The bytes of the linkOpts at the given index.
     */
    public com.google.protobuf.ByteString
        getLinkOptsBytes(int index) {
      return linkOpts_.getByteString(index);
    }

    public static final int LINK_SHARED_FIELD_NUMBER = 4;
    private boolean linkShared_;
    /**
     * bool link_shared = 4;
     * @return The linkShared.
     */
    @java.lang.Override
    public boolean getLinkShared() {
      return linkShared_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < copts_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, copts_.getRaw(i));
      }
      for (int i = 0; i < defines_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, defines_.getRaw(i));
      }
      for (int i = 0; i < linkOpts_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, linkOpts_.getRaw(i));
      }
      if (linkShared_ != false) {
        output.writeBool(4, linkShared_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < copts_.size(); i++) {
          dataSize += computeStringSizeNoTag(copts_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getCoptsList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < defines_.size(); i++) {
          dataSize += computeStringSizeNoTag(defines_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getDefinesList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < linkOpts_.size(); i++) {
          dataSize += computeStringSizeNoTag(linkOpts_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getLinkOptsList().size();
      }
      if (linkShared_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, linkShared_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo)) {
        return super.equals(obj);
      }
      org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo other = (org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo) obj;

      if (!getCoptsList()
          .equals(other.getCoptsList())) return false;
      if (!getDefinesList()
          .equals(other.getDefinesList())) return false;
      if (!getLinkOptsList()
          .equals(other.getLinkOptsList())) return false;
      if (getLinkShared()
          != other.getLinkShared()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getCoptsCount() > 0) {
        hash = (37 * hash) + COPTS_FIELD_NUMBER;
        hash = (53 * hash) + getCoptsList().hashCode();
      }
      if (getDefinesCount() > 0) {
        hash = (37 * hash) + DEFINES_FIELD_NUMBER;
        hash = (53 * hash) + getDefinesList().hashCode();
      }
      if (getLinkOptsCount() > 0) {
        hash = (37 * hash) + LINK_OPTS_FIELD_NUMBER;
        hash = (53 * hash) + getLinkOptsList().hashCode();
      }
      hash = (37 * hash) + LINK_SHARED_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getLinkShared());
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo 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 org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo 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 org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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 bazelbsp.CppTargetInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:bazelbsp.CppTargetInfo)
        org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_CppTargetInfo_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_CppTargetInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo.class, org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo.Builder.class);
      }

      // Construct using org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        copts_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        defines_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        linkOpts_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        linkShared_ = false;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_CppTargetInfo_descriptor;
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo getDefaultInstanceForType() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo.getDefaultInstance();
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo build() {
        org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo buildPartial() {
        org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo result = new org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) != 0)) {
          copts_ = copts_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.copts_ = copts_;
        if (((bitField0_ & 0x00000002) != 0)) {
          defines_ = defines_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.defines_ = defines_;
        if (((bitField0_ & 0x00000004) != 0)) {
          linkOpts_ = linkOpts_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.linkOpts_ = linkOpts_;
        result.linkShared_ = linkShared_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo) {
          return mergeFrom((org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo other) {
        if (other == org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo.getDefaultInstance()) return this;
        if (!other.copts_.isEmpty()) {
          if (copts_.isEmpty()) {
            copts_ = other.copts_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureCoptsIsMutable();
            copts_.addAll(other.copts_);
          }
          onChanged();
        }
        if (!other.defines_.isEmpty()) {
          if (defines_.isEmpty()) {
            defines_ = other.defines_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureDefinesIsMutable();
            defines_.addAll(other.defines_);
          }
          onChanged();
        }
        if (!other.linkOpts_.isEmpty()) {
          if (linkOpts_.isEmpty()) {
            linkOpts_ = other.linkOpts_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureLinkOptsIsMutable();
            linkOpts_.addAll(other.linkOpts_);
          }
          onChanged();
        }
        if (other.getLinkShared() != false) {
          setLinkShared(other.getLinkShared());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureCoptsIsMutable();
                copts_.add(s);
                break;
              } // case 10
              case 18: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureDefinesIsMutable();
                defines_.add(s);
                break;
              } // case 18
              case 26: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureLinkOptsIsMutable();
                linkOpts_.add(s);
                break;
              } // case 26
              case 32: {
                linkShared_ = input.readBool();

                break;
              } // case 32
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.LazyStringList copts_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureCoptsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          copts_ = new com.google.protobuf.LazyStringArrayList(copts_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * repeated string copts = 1;
       * @return A list containing the copts.
       */
      public com.google.protobuf.ProtocolStringList
          getCoptsList() {
        return copts_.getUnmodifiableView();
      }
      /**
       * repeated string copts = 1;
       * @return The count of copts.
       */
      public int getCoptsCount() {
        return copts_.size();
      }
      /**
       * repeated string copts = 1;
       * @param index The index of the element to return.
       * @return The copts at the given index.
       */
      public java.lang.String getCopts(int index) {
        return copts_.get(index);
      }
      /**
       * repeated string copts = 1;
       * @param index The index of the value to return.
       * @return The bytes of the copts at the given index.
       */
      public com.google.protobuf.ByteString
          getCoptsBytes(int index) {
        return copts_.getByteString(index);
      }
      /**
       * repeated string copts = 1;
       * @param index The index to set the value at.
       * @param value The copts to set.
       * @return This builder for chaining.
       */
      public Builder setCopts(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureCoptsIsMutable();
        copts_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated string copts = 1;
       * @param value The copts to add.
       * @return This builder for chaining.
       */
      public Builder addCopts(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureCoptsIsMutable();
        copts_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated string copts = 1;
       * @param values The copts to add.
       * @return This builder for chaining.
       */
      public Builder addAllCopts(
          java.lang.Iterable values) {
        ensureCoptsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, copts_);
        onChanged();
        return this;
      }
      /**
       * repeated string copts = 1;
       * @return This builder for chaining.
       */
      public Builder clearCopts() {
        copts_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * repeated string copts = 1;
       * @param value The bytes of the copts to add.
       * @return This builder for chaining.
       */
      public Builder addCoptsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureCoptsIsMutable();
        copts_.add(value);
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList defines_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureDefinesIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          defines_ = new com.google.protobuf.LazyStringArrayList(defines_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * repeated string defines = 2;
       * @return A list containing the defines.
       */
      public com.google.protobuf.ProtocolStringList
          getDefinesList() {
        return defines_.getUnmodifiableView();
      }
      /**
       * repeated string defines = 2;
       * @return The count of defines.
       */
      public int getDefinesCount() {
        return defines_.size();
      }
      /**
       * repeated string defines = 2;
       * @param index The index of the element to return.
       * @return The defines at the given index.
       */
      public java.lang.String getDefines(int index) {
        return defines_.get(index);
      }
      /**
       * repeated string defines = 2;
       * @param index The index of the value to return.
       * @return The bytes of the defines at the given index.
       */
      public com.google.protobuf.ByteString
          getDefinesBytes(int index) {
        return defines_.getByteString(index);
      }
      /**
       * repeated string defines = 2;
       * @param index The index to set the value at.
       * @param value The defines to set.
       * @return This builder for chaining.
       */
      public Builder setDefines(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureDefinesIsMutable();
        defines_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated string defines = 2;
       * @param value The defines to add.
       * @return This builder for chaining.
       */
      public Builder addDefines(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureDefinesIsMutable();
        defines_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated string defines = 2;
       * @param values The defines to add.
       * @return This builder for chaining.
       */
      public Builder addAllDefines(
          java.lang.Iterable values) {
        ensureDefinesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, defines_);
        onChanged();
        return this;
      }
      /**
       * repeated string defines = 2;
       * @return This builder for chaining.
       */
      public Builder clearDefines() {
        defines_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * repeated string defines = 2;
       * @param value The bytes of the defines to add.
       * @return This builder for chaining.
       */
      public Builder addDefinesBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureDefinesIsMutable();
        defines_.add(value);
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList linkOpts_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureLinkOptsIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          linkOpts_ = new com.google.protobuf.LazyStringArrayList(linkOpts_);
          bitField0_ |= 0x00000004;
         }
      }
      /**
       * repeated string link_opts = 3;
       * @return A list containing the linkOpts.
       */
      public com.google.protobuf.ProtocolStringList
          getLinkOptsList() {
        return linkOpts_.getUnmodifiableView();
      }
      /**
       * repeated string link_opts = 3;
       * @return The count of linkOpts.
       */
      public int getLinkOptsCount() {
        return linkOpts_.size();
      }
      /**
       * repeated string link_opts = 3;
       * @param index The index of the element to return.
       * @return The linkOpts at the given index.
       */
      public java.lang.String getLinkOpts(int index) {
        return linkOpts_.get(index);
      }
      /**
       * repeated string link_opts = 3;
       * @param index The index of the value to return.
       * @return The bytes of the linkOpts at the given index.
       */
      public com.google.protobuf.ByteString
          getLinkOptsBytes(int index) {
        return linkOpts_.getByteString(index);
      }
      /**
       * repeated string link_opts = 3;
       * @param index The index to set the value at.
       * @param value The linkOpts to set.
       * @return This builder for chaining.
       */
      public Builder setLinkOpts(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureLinkOptsIsMutable();
        linkOpts_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated string link_opts = 3;
       * @param value The linkOpts to add.
       * @return This builder for chaining.
       */
      public Builder addLinkOpts(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureLinkOptsIsMutable();
        linkOpts_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated string link_opts = 3;
       * @param values The linkOpts to add.
       * @return This builder for chaining.
       */
      public Builder addAllLinkOpts(
          java.lang.Iterable values) {
        ensureLinkOptsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, linkOpts_);
        onChanged();
        return this;
      }
      /**
       * repeated string link_opts = 3;
       * @return This builder for chaining.
       */
      public Builder clearLinkOpts() {
        linkOpts_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * repeated string link_opts = 3;
       * @param value The bytes of the linkOpts to add.
       * @return This builder for chaining.
       */
      public Builder addLinkOptsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureLinkOptsIsMutable();
        linkOpts_.add(value);
        onChanged();
        return this;
      }

      private boolean linkShared_ ;
      /**
       * bool link_shared = 4;
       * @return The linkShared.
       */
      @java.lang.Override
      public boolean getLinkShared() {
        return linkShared_;
      }
      /**
       * bool link_shared = 4;
       * @param value The linkShared to set.
       * @return This builder for chaining.
       */
      public Builder setLinkShared(boolean value) {
        
        linkShared_ = value;
        onChanged();
        return this;
      }
      /**
       * bool link_shared = 4;
       * @return This builder for chaining.
       */
      public Builder clearLinkShared() {
        
        linkShared_ = false;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:bazelbsp.CppTargetInfo)
    }

    // @@protoc_insertion_point(class_scope:bazelbsp.CppTargetInfo)
    private static final org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo();
    }

    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public CppTargetInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface KotlinTargetInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:bazelbsp.KotlinTargetInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * string language_version = 1;
     * @return The languageVersion.
     */
    java.lang.String getLanguageVersion();
    /**
     * string language_version = 1;
     * @return The bytes for languageVersion.
     */
    com.google.protobuf.ByteString
        getLanguageVersionBytes();

    /**
     * string api_version = 2;
     * @return The apiVersion.
     */
    java.lang.String getApiVersion();
    /**
     * string api_version = 2;
     * @return The bytes for apiVersion.
     */
    com.google.protobuf.ByteString
        getApiVersionBytes();

    /**
     * repeated string associates = 3;
     * @return A list containing the associates.
     */
    java.util.List
        getAssociatesList();
    /**
     * repeated string associates = 3;
     * @return The count of associates.
     */
    int getAssociatesCount();
    /**
     * repeated string associates = 3;
     * @param index The index of the element to return.
     * @return The associates at the given index.
     */
    java.lang.String getAssociates(int index);
    /**
     * repeated string associates = 3;
     * @param index The index of the value to return.
     * @return The bytes of the associates at the given index.
     */
    com.google.protobuf.ByteString
        getAssociatesBytes(int index);

    /**
     * repeated string kotlinc_opts = 4;
     * @return A list containing the kotlincOpts.
     */
    java.util.List
        getKotlincOptsList();
    /**
     * repeated string kotlinc_opts = 4;
     * @return The count of kotlincOpts.
     */
    int getKotlincOptsCount();
    /**
     * repeated string kotlinc_opts = 4;
     * @param index The index of the element to return.
     * @return The kotlincOpts at the given index.
     */
    java.lang.String getKotlincOpts(int index);
    /**
     * repeated string kotlinc_opts = 4;
     * @param index The index of the value to return.
     * @return The bytes of the kotlincOpts at the given index.
     */
    com.google.protobuf.ByteString
        getKotlincOptsBytes(int index);

    /**
     * repeated .bazelbsp.FileLocation stdlibs = 5;
     */
    java.util.List 
        getStdlibsList();
    /**
     * repeated .bazelbsp.FileLocation stdlibs = 5;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getStdlibs(int index);
    /**
     * repeated .bazelbsp.FileLocation stdlibs = 5;
     */
    int getStdlibsCount();
    /**
     * repeated .bazelbsp.FileLocation stdlibs = 5;
     */
    java.util.List 
        getStdlibsOrBuilderList();
    /**
     * repeated .bazelbsp.FileLocation stdlibs = 5;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getStdlibsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code bazelbsp.KotlinTargetInfo}
   */
  public static final class KotlinTargetInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:bazelbsp.KotlinTargetInfo)
      KotlinTargetInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use KotlinTargetInfo.newBuilder() to construct.
    private KotlinTargetInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private KotlinTargetInfo() {
      languageVersion_ = "";
      apiVersion_ = "";
      associates_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      kotlincOpts_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      stdlibs_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new KotlinTargetInfo();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_KotlinTargetInfo_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_KotlinTargetInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo.class, org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo.Builder.class);
    }

    public static final int LANGUAGE_VERSION_FIELD_NUMBER = 1;
    private volatile java.lang.Object languageVersion_;
    /**
     * string language_version = 1;
     * @return The languageVersion.
     */
    @java.lang.Override
    public java.lang.String getLanguageVersion() {
      java.lang.Object ref = languageVersion_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        languageVersion_ = s;
        return s;
      }
    }
    /**
     * string language_version = 1;
     * @return The bytes for languageVersion.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getLanguageVersionBytes() {
      java.lang.Object ref = languageVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        languageVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int API_VERSION_FIELD_NUMBER = 2;
    private volatile java.lang.Object apiVersion_;
    /**
     * string api_version = 2;
     * @return The apiVersion.
     */
    @java.lang.Override
    public java.lang.String getApiVersion() {
      java.lang.Object ref = apiVersion_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        apiVersion_ = s;
        return s;
      }
    }
    /**
     * string api_version = 2;
     * @return The bytes for apiVersion.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getApiVersionBytes() {
      java.lang.Object ref = apiVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        apiVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ASSOCIATES_FIELD_NUMBER = 3;
    private com.google.protobuf.LazyStringList associates_;
    /**
     * repeated string associates = 3;
     * @return A list containing the associates.
     */
    public com.google.protobuf.ProtocolStringList
        getAssociatesList() {
      return associates_;
    }
    /**
     * repeated string associates = 3;
     * @return The count of associates.
     */
    public int getAssociatesCount() {
      return associates_.size();
    }
    /**
     * repeated string associates = 3;
     * @param index The index of the element to return.
     * @return The associates at the given index.
     */
    public java.lang.String getAssociates(int index) {
      return associates_.get(index);
    }
    /**
     * repeated string associates = 3;
     * @param index The index of the value to return.
     * @return The bytes of the associates at the given index.
     */
    public com.google.protobuf.ByteString
        getAssociatesBytes(int index) {
      return associates_.getByteString(index);
    }

    public static final int KOTLINC_OPTS_FIELD_NUMBER = 4;
    private com.google.protobuf.LazyStringList kotlincOpts_;
    /**
     * repeated string kotlinc_opts = 4;
     * @return A list containing the kotlincOpts.
     */
    public com.google.protobuf.ProtocolStringList
        getKotlincOptsList() {
      return kotlincOpts_;
    }
    /**
     * repeated string kotlinc_opts = 4;
     * @return The count of kotlincOpts.
     */
    public int getKotlincOptsCount() {
      return kotlincOpts_.size();
    }
    /**
     * repeated string kotlinc_opts = 4;
     * @param index The index of the element to return.
     * @return The kotlincOpts at the given index.
     */
    public java.lang.String getKotlincOpts(int index) {
      return kotlincOpts_.get(index);
    }
    /**
     * repeated string kotlinc_opts = 4;
     * @param index The index of the value to return.
     * @return The bytes of the kotlincOpts at the given index.
     */
    public com.google.protobuf.ByteString
        getKotlincOptsBytes(int index) {
      return kotlincOpts_.getByteString(index);
    }

    public static final int STDLIBS_FIELD_NUMBER = 5;
    private java.util.List stdlibs_;
    /**
     * repeated .bazelbsp.FileLocation stdlibs = 5;
     */
    @java.lang.Override
    public java.util.List getStdlibsList() {
      return stdlibs_;
    }
    /**
     * repeated .bazelbsp.FileLocation stdlibs = 5;
     */
    @java.lang.Override
    public java.util.List 
        getStdlibsOrBuilderList() {
      return stdlibs_;
    }
    /**
     * repeated .bazelbsp.FileLocation stdlibs = 5;
     */
    @java.lang.Override
    public int getStdlibsCount() {
      return stdlibs_.size();
    }
    /**
     * repeated .bazelbsp.FileLocation stdlibs = 5;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getStdlibs(int index) {
      return stdlibs_.get(index);
    }
    /**
     * repeated .bazelbsp.FileLocation stdlibs = 5;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getStdlibsOrBuilder(
        int index) {
      return stdlibs_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(languageVersion_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, languageVersion_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(apiVersion_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, apiVersion_);
      }
      for (int i = 0; i < associates_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, associates_.getRaw(i));
      }
      for (int i = 0; i < kotlincOpts_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, kotlincOpts_.getRaw(i));
      }
      for (int i = 0; i < stdlibs_.size(); i++) {
        output.writeMessage(5, stdlibs_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(languageVersion_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, languageVersion_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(apiVersion_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, apiVersion_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < associates_.size(); i++) {
          dataSize += computeStringSizeNoTag(associates_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getAssociatesList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < kotlincOpts_.size(); i++) {
          dataSize += computeStringSizeNoTag(kotlincOpts_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getKotlincOptsList().size();
      }
      for (int i = 0; i < stdlibs_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, stdlibs_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo)) {
        return super.equals(obj);
      }
      org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo other = (org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo) obj;

      if (!getLanguageVersion()
          .equals(other.getLanguageVersion())) return false;
      if (!getApiVersion()
          .equals(other.getApiVersion())) return false;
      if (!getAssociatesList()
          .equals(other.getAssociatesList())) return false;
      if (!getKotlincOptsList()
          .equals(other.getKotlincOptsList())) return false;
      if (!getStdlibsList()
          .equals(other.getStdlibsList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + LANGUAGE_VERSION_FIELD_NUMBER;
      hash = (53 * hash) + getLanguageVersion().hashCode();
      hash = (37 * hash) + API_VERSION_FIELD_NUMBER;
      hash = (53 * hash) + getApiVersion().hashCode();
      if (getAssociatesCount() > 0) {
        hash = (37 * hash) + ASSOCIATES_FIELD_NUMBER;
        hash = (53 * hash) + getAssociatesList().hashCode();
      }
      if (getKotlincOptsCount() > 0) {
        hash = (37 * hash) + KOTLINC_OPTS_FIELD_NUMBER;
        hash = (53 * hash) + getKotlincOptsList().hashCode();
      }
      if (getStdlibsCount() > 0) {
        hash = (37 * hash) + STDLIBS_FIELD_NUMBER;
        hash = (53 * hash) + getStdlibsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo 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 org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo 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 org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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 bazelbsp.KotlinTargetInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:bazelbsp.KotlinTargetInfo)
        org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_KotlinTargetInfo_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_KotlinTargetInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo.class, org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo.Builder.class);
      }

      // Construct using org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        languageVersion_ = "";

        apiVersion_ = "";

        associates_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        kotlincOpts_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (stdlibsBuilder_ == null) {
          stdlibs_ = java.util.Collections.emptyList();
        } else {
          stdlibs_ = null;
          stdlibsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_KotlinTargetInfo_descriptor;
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo getDefaultInstanceForType() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo.getDefaultInstance();
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo build() {
        org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo buildPartial() {
        org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo result = new org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo(this);
        int from_bitField0_ = bitField0_;
        result.languageVersion_ = languageVersion_;
        result.apiVersion_ = apiVersion_;
        if (((bitField0_ & 0x00000001) != 0)) {
          associates_ = associates_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.associates_ = associates_;
        if (((bitField0_ & 0x00000002) != 0)) {
          kotlincOpts_ = kotlincOpts_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.kotlincOpts_ = kotlincOpts_;
        if (stdlibsBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0)) {
            stdlibs_ = java.util.Collections.unmodifiableList(stdlibs_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.stdlibs_ = stdlibs_;
        } else {
          result.stdlibs_ = stdlibsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo) {
          return mergeFrom((org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo other) {
        if (other == org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo.getDefaultInstance()) return this;
        if (!other.getLanguageVersion().isEmpty()) {
          languageVersion_ = other.languageVersion_;
          onChanged();
        }
        if (!other.getApiVersion().isEmpty()) {
          apiVersion_ = other.apiVersion_;
          onChanged();
        }
        if (!other.associates_.isEmpty()) {
          if (associates_.isEmpty()) {
            associates_ = other.associates_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureAssociatesIsMutable();
            associates_.addAll(other.associates_);
          }
          onChanged();
        }
        if (!other.kotlincOpts_.isEmpty()) {
          if (kotlincOpts_.isEmpty()) {
            kotlincOpts_ = other.kotlincOpts_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureKotlincOptsIsMutable();
            kotlincOpts_.addAll(other.kotlincOpts_);
          }
          onChanged();
        }
        if (stdlibsBuilder_ == null) {
          if (!other.stdlibs_.isEmpty()) {
            if (stdlibs_.isEmpty()) {
              stdlibs_ = other.stdlibs_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureStdlibsIsMutable();
              stdlibs_.addAll(other.stdlibs_);
            }
            onChanged();
          }
        } else {
          if (!other.stdlibs_.isEmpty()) {
            if (stdlibsBuilder_.isEmpty()) {
              stdlibsBuilder_.dispose();
              stdlibsBuilder_ = null;
              stdlibs_ = other.stdlibs_;
              bitField0_ = (bitField0_ & ~0x00000004);
              stdlibsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getStdlibsFieldBuilder() : null;
            } else {
              stdlibsBuilder_.addAllMessages(other.stdlibs_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                languageVersion_ = input.readStringRequireUtf8();

                break;
              } // case 10
              case 18: {
                apiVersion_ = input.readStringRequireUtf8();

                break;
              } // case 18
              case 26: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureAssociatesIsMutable();
                associates_.add(s);
                break;
              } // case 26
              case 34: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureKotlincOptsIsMutable();
                kotlincOpts_.add(s);
                break;
              } // case 34
              case 42: {
                org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation m =
                    input.readMessage(
                        org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.parser(),
                        extensionRegistry);
                if (stdlibsBuilder_ == null) {
                  ensureStdlibsIsMutable();
                  stdlibs_.add(m);
                } else {
                  stdlibsBuilder_.addMessage(m);
                }
                break;
              } // case 42
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object languageVersion_ = "";
      /**
       * string language_version = 1;
       * @return The languageVersion.
       */
      public java.lang.String getLanguageVersion() {
        java.lang.Object ref = languageVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          languageVersion_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string language_version = 1;
       * @return The bytes for languageVersion.
       */
      public com.google.protobuf.ByteString
          getLanguageVersionBytes() {
        java.lang.Object ref = languageVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          languageVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string language_version = 1;
       * @param value The languageVersion to set.
       * @return This builder for chaining.
       */
      public Builder setLanguageVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        languageVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * string language_version = 1;
       * @return This builder for chaining.
       */
      public Builder clearLanguageVersion() {
        
        languageVersion_ = getDefaultInstance().getLanguageVersion();
        onChanged();
        return this;
      }
      /**
       * string language_version = 1;
       * @param value The bytes for languageVersion to set.
       * @return This builder for chaining.
       */
      public Builder setLanguageVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        languageVersion_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object apiVersion_ = "";
      /**
       * string api_version = 2;
       * @return The apiVersion.
       */
      public java.lang.String getApiVersion() {
        java.lang.Object ref = apiVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          apiVersion_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string api_version = 2;
       * @return The bytes for apiVersion.
       */
      public com.google.protobuf.ByteString
          getApiVersionBytes() {
        java.lang.Object ref = apiVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          apiVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string api_version = 2;
       * @param value The apiVersion to set.
       * @return This builder for chaining.
       */
      public Builder setApiVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        apiVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * string api_version = 2;
       * @return This builder for chaining.
       */
      public Builder clearApiVersion() {
        
        apiVersion_ = getDefaultInstance().getApiVersion();
        onChanged();
        return this;
      }
      /**
       * string api_version = 2;
       * @param value The bytes for apiVersion to set.
       * @return This builder for chaining.
       */
      public Builder setApiVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        apiVersion_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList associates_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureAssociatesIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          associates_ = new com.google.protobuf.LazyStringArrayList(associates_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * repeated string associates = 3;
       * @return A list containing the associates.
       */
      public com.google.protobuf.ProtocolStringList
          getAssociatesList() {
        return associates_.getUnmodifiableView();
      }
      /**
       * repeated string associates = 3;
       * @return The count of associates.
       */
      public int getAssociatesCount() {
        return associates_.size();
      }
      /**
       * repeated string associates = 3;
       * @param index The index of the element to return.
       * @return The associates at the given index.
       */
      public java.lang.String getAssociates(int index) {
        return associates_.get(index);
      }
      /**
       * repeated string associates = 3;
       * @param index The index of the value to return.
       * @return The bytes of the associates at the given index.
       */
      public com.google.protobuf.ByteString
          getAssociatesBytes(int index) {
        return associates_.getByteString(index);
      }
      /**
       * repeated string associates = 3;
       * @param index The index to set the value at.
       * @param value The associates to set.
       * @return This builder for chaining.
       */
      public Builder setAssociates(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureAssociatesIsMutable();
        associates_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated string associates = 3;
       * @param value The associates to add.
       * @return This builder for chaining.
       */
      public Builder addAssociates(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureAssociatesIsMutable();
        associates_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated string associates = 3;
       * @param values The associates to add.
       * @return This builder for chaining.
       */
      public Builder addAllAssociates(
          java.lang.Iterable values) {
        ensureAssociatesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, associates_);
        onChanged();
        return this;
      }
      /**
       * repeated string associates = 3;
       * @return This builder for chaining.
       */
      public Builder clearAssociates() {
        associates_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * repeated string associates = 3;
       * @param value The bytes of the associates to add.
       * @return This builder for chaining.
       */
      public Builder addAssociatesBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureAssociatesIsMutable();
        associates_.add(value);
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList kotlincOpts_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureKotlincOptsIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          kotlincOpts_ = new com.google.protobuf.LazyStringArrayList(kotlincOpts_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * repeated string kotlinc_opts = 4;
       * @return A list containing the kotlincOpts.
       */
      public com.google.protobuf.ProtocolStringList
          getKotlincOptsList() {
        return kotlincOpts_.getUnmodifiableView();
      }
      /**
       * repeated string kotlinc_opts = 4;
       * @return The count of kotlincOpts.
       */
      public int getKotlincOptsCount() {
        return kotlincOpts_.size();
      }
      /**
       * repeated string kotlinc_opts = 4;
       * @param index The index of the element to return.
       * @return The kotlincOpts at the given index.
       */
      public java.lang.String getKotlincOpts(int index) {
        return kotlincOpts_.get(index);
      }
      /**
       * repeated string kotlinc_opts = 4;
       * @param index The index of the value to return.
       * @return The bytes of the kotlincOpts at the given index.
       */
      public com.google.protobuf.ByteString
          getKotlincOptsBytes(int index) {
        return kotlincOpts_.getByteString(index);
      }
      /**
       * repeated string kotlinc_opts = 4;
       * @param index The index to set the value at.
       * @param value The kotlincOpts to set.
       * @return This builder for chaining.
       */
      public Builder setKotlincOpts(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureKotlincOptsIsMutable();
        kotlincOpts_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated string kotlinc_opts = 4;
       * @param value The kotlincOpts to add.
       * @return This builder for chaining.
       */
      public Builder addKotlincOpts(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureKotlincOptsIsMutable();
        kotlincOpts_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated string kotlinc_opts = 4;
       * @param values The kotlincOpts to add.
       * @return This builder for chaining.
       */
      public Builder addAllKotlincOpts(
          java.lang.Iterable values) {
        ensureKotlincOptsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, kotlincOpts_);
        onChanged();
        return this;
      }
      /**
       * repeated string kotlinc_opts = 4;
       * @return This builder for chaining.
       */
      public Builder clearKotlincOpts() {
        kotlincOpts_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * repeated string kotlinc_opts = 4;
       * @param value The bytes of the kotlincOpts to add.
       * @return This builder for chaining.
       */
      public Builder addKotlincOptsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureKotlincOptsIsMutable();
        kotlincOpts_.add(value);
        onChanged();
        return this;
      }

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

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> stdlibsBuilder_;

      /**
       * repeated .bazelbsp.FileLocation stdlibs = 5;
       */
      public java.util.List getStdlibsList() {
        if (stdlibsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(stdlibs_);
        } else {
          return stdlibsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .bazelbsp.FileLocation stdlibs = 5;
       */
      public int getStdlibsCount() {
        if (stdlibsBuilder_ == null) {
          return stdlibs_.size();
        } else {
          return stdlibsBuilder_.getCount();
        }
      }
      /**
       * repeated .bazelbsp.FileLocation stdlibs = 5;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getStdlibs(int index) {
        if (stdlibsBuilder_ == null) {
          return stdlibs_.get(index);
        } else {
          return stdlibsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .bazelbsp.FileLocation stdlibs = 5;
       */
      public Builder setStdlibs(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (stdlibsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStdlibsIsMutable();
          stdlibs_.set(index, value);
          onChanged();
        } else {
          stdlibsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation stdlibs = 5;
       */
      public Builder setStdlibs(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (stdlibsBuilder_ == null) {
          ensureStdlibsIsMutable();
          stdlibs_.set(index, builderForValue.build());
          onChanged();
        } else {
          stdlibsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation stdlibs = 5;
       */
      public Builder addStdlibs(org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (stdlibsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStdlibsIsMutable();
          stdlibs_.add(value);
          onChanged();
        } else {
          stdlibsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation stdlibs = 5;
       */
      public Builder addStdlibs(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (stdlibsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureStdlibsIsMutable();
          stdlibs_.add(index, value);
          onChanged();
        } else {
          stdlibsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation stdlibs = 5;
       */
      public Builder addStdlibs(
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (stdlibsBuilder_ == null) {
          ensureStdlibsIsMutable();
          stdlibs_.add(builderForValue.build());
          onChanged();
        } else {
          stdlibsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation stdlibs = 5;
       */
      public Builder addStdlibs(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (stdlibsBuilder_ == null) {
          ensureStdlibsIsMutable();
          stdlibs_.add(index, builderForValue.build());
          onChanged();
        } else {
          stdlibsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation stdlibs = 5;
       */
      public Builder addAllStdlibs(
          java.lang.Iterable values) {
        if (stdlibsBuilder_ == null) {
          ensureStdlibsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, stdlibs_);
          onChanged();
        } else {
          stdlibsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation stdlibs = 5;
       */
      public Builder clearStdlibs() {
        if (stdlibsBuilder_ == null) {
          stdlibs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          stdlibsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation stdlibs = 5;
       */
      public Builder removeStdlibs(int index) {
        if (stdlibsBuilder_ == null) {
          ensureStdlibsIsMutable();
          stdlibs_.remove(index);
          onChanged();
        } else {
          stdlibsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation stdlibs = 5;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder getStdlibsBuilder(
          int index) {
        return getStdlibsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .bazelbsp.FileLocation stdlibs = 5;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getStdlibsOrBuilder(
          int index) {
        if (stdlibsBuilder_ == null) {
          return stdlibs_.get(index);  } else {
          return stdlibsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .bazelbsp.FileLocation stdlibs = 5;
       */
      public java.util.List 
           getStdlibsOrBuilderList() {
        if (stdlibsBuilder_ != null) {
          return stdlibsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(stdlibs_);
        }
      }
      /**
       * repeated .bazelbsp.FileLocation stdlibs = 5;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder addStdlibsBuilder() {
        return getStdlibsFieldBuilder().addBuilder(
            org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance());
      }
      /**
       * repeated .bazelbsp.FileLocation stdlibs = 5;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder addStdlibsBuilder(
          int index) {
        return getStdlibsFieldBuilder().addBuilder(
            index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance());
      }
      /**
       * repeated .bazelbsp.FileLocation stdlibs = 5;
       */
      public java.util.List 
           getStdlibsBuilderList() {
        return getStdlibsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> 
          getStdlibsFieldBuilder() {
        if (stdlibsBuilder_ == null) {
          stdlibsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder>(
                  stdlibs_,
                  ((bitField0_ & 0x00000004) != 0),
                  getParentForChildren(),
                  isClean());
          stdlibs_ = null;
        }
        return stdlibsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:bazelbsp.KotlinTargetInfo)
    }

    // @@protoc_insertion_point(class_scope:bazelbsp.KotlinTargetInfo)
    private static final org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo();
    }

    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public KotlinTargetInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PythonTargetInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:bazelbsp.PythonTargetInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .bazelbsp.FileLocation interpreter = 1;
     * @return Whether the interpreter field is set.
     */
    boolean hasInterpreter();
    /**
     * .bazelbsp.FileLocation interpreter = 1;
     * @return The interpreter.
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getInterpreter();
    /**
     * .bazelbsp.FileLocation interpreter = 1;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getInterpreterOrBuilder();

    /**
     * string version = 2;
     * @return The version.
     */
    java.lang.String getVersion();
    /**
     * string version = 2;
     * @return The bytes for version.
     */
    com.google.protobuf.ByteString
        getVersionBytes();
  }
  /**
   * Protobuf type {@code bazelbsp.PythonTargetInfo}
   */
  public static final class PythonTargetInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:bazelbsp.PythonTargetInfo)
      PythonTargetInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PythonTargetInfo.newBuilder() to construct.
    private PythonTargetInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private PythonTargetInfo() {
      version_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PythonTargetInfo();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_PythonTargetInfo_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_PythonTargetInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo.class, org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo.Builder.class);
    }

    public static final int INTERPRETER_FIELD_NUMBER = 1;
    private org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation interpreter_;
    /**
     * .bazelbsp.FileLocation interpreter = 1;
     * @return Whether the interpreter field is set.
     */
    @java.lang.Override
    public boolean hasInterpreter() {
      return interpreter_ != null;
    }
    /**
     * .bazelbsp.FileLocation interpreter = 1;
     * @return The interpreter.
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getInterpreter() {
      return interpreter_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance() : interpreter_;
    }
    /**
     * .bazelbsp.FileLocation interpreter = 1;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getInterpreterOrBuilder() {
      return getInterpreter();
    }

    public static final int VERSION_FIELD_NUMBER = 2;
    private volatile java.lang.Object version_;
    /**
     * string version = 2;
     * @return The version.
     */
    @java.lang.Override
    public java.lang.String getVersion() {
      java.lang.Object ref = version_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        version_ = s;
        return s;
      }
    }
    /**
     * string version = 2;
     * @return The bytes for version.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getVersionBytes() {
      java.lang.Object ref = version_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        version_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (interpreter_ != null) {
        output.writeMessage(1, getInterpreter());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(version_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, version_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (interpreter_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getInterpreter());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(version_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, version_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo)) {
        return super.equals(obj);
      }
      org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo other = (org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo) obj;

      if (hasInterpreter() != other.hasInterpreter()) return false;
      if (hasInterpreter()) {
        if (!getInterpreter()
            .equals(other.getInterpreter())) return false;
      }
      if (!getVersion()
          .equals(other.getVersion())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasInterpreter()) {
        hash = (37 * hash) + INTERPRETER_FIELD_NUMBER;
        hash = (53 * hash) + getInterpreter().hashCode();
      }
      hash = (37 * hash) + VERSION_FIELD_NUMBER;
      hash = (53 * hash) + getVersion().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo 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 org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo 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 org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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 bazelbsp.PythonTargetInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:bazelbsp.PythonTargetInfo)
        org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_PythonTargetInfo_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_PythonTargetInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo.class, org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo.Builder.class);
      }

      // Construct using org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (interpreterBuilder_ == null) {
          interpreter_ = null;
        } else {
          interpreter_ = null;
          interpreterBuilder_ = null;
        }
        version_ = "";

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_PythonTargetInfo_descriptor;
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo getDefaultInstanceForType() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo.getDefaultInstance();
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo build() {
        org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo buildPartial() {
        org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo result = new org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo(this);
        if (interpreterBuilder_ == null) {
          result.interpreter_ = interpreter_;
        } else {
          result.interpreter_ = interpreterBuilder_.build();
        }
        result.version_ = version_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo) {
          return mergeFrom((org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo other) {
        if (other == org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo.getDefaultInstance()) return this;
        if (other.hasInterpreter()) {
          mergeInterpreter(other.getInterpreter());
        }
        if (!other.getVersion().isEmpty()) {
          version_ = other.version_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    getInterpreterFieldBuilder().getBuilder(),
                    extensionRegistry);

                break;
              } // case 10
              case 18: {
                version_ = input.readStringRequireUtf8();

                break;
              } // case 18
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }

      private org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation interpreter_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> interpreterBuilder_;
      /**
       * .bazelbsp.FileLocation interpreter = 1;
       * @return Whether the interpreter field is set.
       */
      public boolean hasInterpreter() {
        return interpreterBuilder_ != null || interpreter_ != null;
      }
      /**
       * .bazelbsp.FileLocation interpreter = 1;
       * @return The interpreter.
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getInterpreter() {
        if (interpreterBuilder_ == null) {
          return interpreter_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance() : interpreter_;
        } else {
          return interpreterBuilder_.getMessage();
        }
      }
      /**
       * .bazelbsp.FileLocation interpreter = 1;
       */
      public Builder setInterpreter(org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (interpreterBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          interpreter_ = value;
          onChanged();
        } else {
          interpreterBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .bazelbsp.FileLocation interpreter = 1;
       */
      public Builder setInterpreter(
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (interpreterBuilder_ == null) {
          interpreter_ = builderForValue.build();
          onChanged();
        } else {
          interpreterBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .bazelbsp.FileLocation interpreter = 1;
       */
      public Builder mergeInterpreter(org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (interpreterBuilder_ == null) {
          if (interpreter_ != null) {
            interpreter_ =
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.newBuilder(interpreter_).mergeFrom(value).buildPartial();
          } else {
            interpreter_ = value;
          }
          onChanged();
        } else {
          interpreterBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .bazelbsp.FileLocation interpreter = 1;
       */
      public Builder clearInterpreter() {
        if (interpreterBuilder_ == null) {
          interpreter_ = null;
          onChanged();
        } else {
          interpreter_ = null;
          interpreterBuilder_ = null;
        }

        return this;
      }
      /**
       * .bazelbsp.FileLocation interpreter = 1;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder getInterpreterBuilder() {
        
        onChanged();
        return getInterpreterFieldBuilder().getBuilder();
      }
      /**
       * .bazelbsp.FileLocation interpreter = 1;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getInterpreterOrBuilder() {
        if (interpreterBuilder_ != null) {
          return interpreterBuilder_.getMessageOrBuilder();
        } else {
          return interpreter_ == null ?
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance() : interpreter_;
        }
      }
      /**
       * .bazelbsp.FileLocation interpreter = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> 
          getInterpreterFieldBuilder() {
        if (interpreterBuilder_ == null) {
          interpreterBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder>(
                  getInterpreter(),
                  getParentForChildren(),
                  isClean());
          interpreter_ = null;
        }
        return interpreterBuilder_;
      }

      private java.lang.Object version_ = "";
      /**
       * string version = 2;
       * @return The version.
       */
      public java.lang.String getVersion() {
        java.lang.Object ref = version_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          version_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string version = 2;
       * @return The bytes for version.
       */
      public com.google.protobuf.ByteString
          getVersionBytes() {
        java.lang.Object ref = version_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          version_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string version = 2;
       * @param value The version to set.
       * @return This builder for chaining.
       */
      public Builder setVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        version_ = value;
        onChanged();
        return this;
      }
      /**
       * string version = 2;
       * @return This builder for chaining.
       */
      public Builder clearVersion() {
        
        version_ = getDefaultInstance().getVersion();
        onChanged();
        return this;
      }
      /**
       * string version = 2;
       * @param value The bytes for version to set.
       * @return This builder for chaining.
       */
      public Builder setVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        version_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:bazelbsp.PythonTargetInfo)
    }

    // @@protoc_insertion_point(class_scope:bazelbsp.PythonTargetInfo)
    private static final org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo();
    }

    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public PythonTargetInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RustCrateInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:bazelbsp.RustCrateInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * string crate_id = 1;
     * @return The crateId.
     */
    java.lang.String getCrateId();
    /**
     * string crate_id = 1;
     * @return The bytes for crateId.
     */
    com.google.protobuf.ByteString
        getCrateIdBytes();

    /**
     * .bazelbsp.RustCrateLocation location = 2;
     * @return The enum numeric value on the wire for location.
     */
    int getLocationValue();
    /**
     * .bazelbsp.RustCrateLocation location = 2;
     * @return The location.
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateLocation getLocation();

    /**
     * bool from_workspace = 3;
     * @return The fromWorkspace.
     */
    boolean getFromWorkspace();

    /**
     * string name = 4;
     * @return The name.
     */
    java.lang.String getName();
    /**
     * string name = 4;
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * string kind = 5;
     * @return The kind.
     */
    java.lang.String getKind();
    /**
     * string kind = 5;
     * @return The bytes for kind.
     */
    com.google.protobuf.ByteString
        getKindBytes();

    /**
     * string edition = 6;
     * @return The edition.
     */
    java.lang.String getEdition();
    /**
     * string edition = 6;
     * @return The bytes for edition.
     */
    com.google.protobuf.ByteString
        getEditionBytes();

    /**
     * string out_dir = 7;
     * @return The outDir.
     */
    java.lang.String getOutDir();
    /**
     * string out_dir = 7;
     * @return The bytes for outDir.
     */
    com.google.protobuf.ByteString
        getOutDirBytes();

    /**
     * repeated string crate_features = 8;
     * @return A list containing the crateFeatures.
     */
    java.util.List
        getCrateFeaturesList();
    /**
     * repeated string crate_features = 8;
     * @return The count of crateFeatures.
     */
    int getCrateFeaturesCount();
    /**
     * repeated string crate_features = 8;
     * @param index The index of the element to return.
     * @return The crateFeatures at the given index.
     */
    java.lang.String getCrateFeatures(int index);
    /**
     * repeated string crate_features = 8;
     * @param index The index of the value to return.
     * @return The bytes of the crateFeatures at the given index.
     */
    com.google.protobuf.ByteString
        getCrateFeaturesBytes(int index);

    /**
     * repeated string dependencies_crate_ids = 9;
     * @return A list containing the dependenciesCrateIds.
     */
    java.util.List
        getDependenciesCrateIdsList();
    /**
     * repeated string dependencies_crate_ids = 9;
     * @return The count of dependenciesCrateIds.
     */
    int getDependenciesCrateIdsCount();
    /**
     * repeated string dependencies_crate_ids = 9;
     * @param index The index of the element to return.
     * @return The dependenciesCrateIds at the given index.
     */
    java.lang.String getDependenciesCrateIds(int index);
    /**
     * repeated string dependencies_crate_ids = 9;
     * @param index The index of the value to return.
     * @return The bytes of the dependenciesCrateIds at the given index.
     */
    com.google.protobuf.ByteString
        getDependenciesCrateIdsBytes(int index);

    /**
     * string crate_root = 10;
     * @return The crateRoot.
     */
    java.lang.String getCrateRoot();
    /**
     * string crate_root = 10;
     * @return The bytes for crateRoot.
     */
    com.google.protobuf.ByteString
        getCrateRootBytes();

    /**
     * string version = 11;
     * @return The version.
     */
    java.lang.String getVersion();
    /**
     * string version = 11;
     * @return The bytes for version.
     */
    com.google.protobuf.ByteString
        getVersionBytes();

    /**
     * repeated string proc_macro_artifacts = 12;
     * @return A list containing the procMacroArtifacts.
     */
    java.util.List
        getProcMacroArtifactsList();
    /**
     * repeated string proc_macro_artifacts = 12;
     * @return The count of procMacroArtifacts.
     */
    int getProcMacroArtifactsCount();
    /**
     * repeated string proc_macro_artifacts = 12;
     * @param index The index of the element to return.
     * @return The procMacroArtifacts at the given index.
     */
    java.lang.String getProcMacroArtifacts(int index);
    /**
     * repeated string proc_macro_artifacts = 12;
     * @param index The index of the value to return.
     * @return The bytes of the procMacroArtifacts at the given index.
     */
    com.google.protobuf.ByteString
        getProcMacroArtifactsBytes(int index);
  }
  /**
   * Protobuf type {@code bazelbsp.RustCrateInfo}
   */
  public static final class RustCrateInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:bazelbsp.RustCrateInfo)
      RustCrateInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RustCrateInfo.newBuilder() to construct.
    private RustCrateInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private RustCrateInfo() {
      crateId_ = "";
      location_ = 0;
      name_ = "";
      kind_ = "";
      edition_ = "";
      outDir_ = "";
      crateFeatures_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      dependenciesCrateIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      crateRoot_ = "";
      version_ = "";
      procMacroArtifacts_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new RustCrateInfo();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_RustCrateInfo_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_RustCrateInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo.class, org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo.Builder.class);
    }

    public static final int CRATE_ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object crateId_;
    /**
     * string crate_id = 1;
     * @return The crateId.
     */
    @java.lang.Override
    public java.lang.String getCrateId() {
      java.lang.Object ref = crateId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        crateId_ = s;
        return s;
      }
    }
    /**
     * string crate_id = 1;
     * @return The bytes for crateId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCrateIdBytes() {
      java.lang.Object ref = crateId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        crateId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LOCATION_FIELD_NUMBER = 2;
    private int location_;
    /**
     * .bazelbsp.RustCrateLocation location = 2;
     * @return The enum numeric value on the wire for location.
     */
    @java.lang.Override public int getLocationValue() {
      return location_;
    }
    /**
     * .bazelbsp.RustCrateLocation location = 2;
     * @return The location.
     */
    @java.lang.Override public org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateLocation getLocation() {
      @SuppressWarnings("deprecation")
      org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateLocation result = org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateLocation.valueOf(location_);
      return result == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateLocation.UNRECOGNIZED : result;
    }

    public static final int FROM_WORKSPACE_FIELD_NUMBER = 3;
    private boolean fromWorkspace_;
    /**
     * bool from_workspace = 3;
     * @return The fromWorkspace.
     */
    @java.lang.Override
    public boolean getFromWorkspace() {
      return fromWorkspace_;
    }

    public static final int NAME_FIELD_NUMBER = 4;
    private volatile java.lang.Object name_;
    /**
     * string name = 4;
     * @return The name.
     */
    @java.lang.Override
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        name_ = s;
        return s;
      }
    }
    /**
     * string name = 4;
     * @return The bytes for name.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int KIND_FIELD_NUMBER = 5;
    private volatile java.lang.Object kind_;
    /**
     * string kind = 5;
     * @return The kind.
     */
    @java.lang.Override
    public java.lang.String getKind() {
      java.lang.Object ref = kind_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        kind_ = s;
        return s;
      }
    }
    /**
     * string kind = 5;
     * @return The bytes for kind.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getKindBytes() {
      java.lang.Object ref = kind_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        kind_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EDITION_FIELD_NUMBER = 6;
    private volatile java.lang.Object edition_;
    /**
     * string edition = 6;
     * @return The edition.
     */
    @java.lang.Override
    public java.lang.String getEdition() {
      java.lang.Object ref = edition_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        edition_ = s;
        return s;
      }
    }
    /**
     * string edition = 6;
     * @return The bytes for edition.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getEditionBytes() {
      java.lang.Object ref = edition_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        edition_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int OUT_DIR_FIELD_NUMBER = 7;
    private volatile java.lang.Object outDir_;
    /**
     * string out_dir = 7;
     * @return The outDir.
     */
    @java.lang.Override
    public java.lang.String getOutDir() {
      java.lang.Object ref = outDir_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        outDir_ = s;
        return s;
      }
    }
    /**
     * string out_dir = 7;
     * @return The bytes for outDir.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getOutDirBytes() {
      java.lang.Object ref = outDir_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        outDir_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CRATE_FEATURES_FIELD_NUMBER = 8;
    private com.google.protobuf.LazyStringList crateFeatures_;
    /**
     * repeated string crate_features = 8;
     * @return A list containing the crateFeatures.
     */
    public com.google.protobuf.ProtocolStringList
        getCrateFeaturesList() {
      return crateFeatures_;
    }
    /**
     * repeated string crate_features = 8;
     * @return The count of crateFeatures.
     */
    public int getCrateFeaturesCount() {
      return crateFeatures_.size();
    }
    /**
     * repeated string crate_features = 8;
     * @param index The index of the element to return.
     * @return The crateFeatures at the given index.
     */
    public java.lang.String getCrateFeatures(int index) {
      return crateFeatures_.get(index);
    }
    /**
     * repeated string crate_features = 8;
     * @param index The index of the value to return.
     * @return The bytes of the crateFeatures at the given index.
     */
    public com.google.protobuf.ByteString
        getCrateFeaturesBytes(int index) {
      return crateFeatures_.getByteString(index);
    }

    public static final int DEPENDENCIES_CRATE_IDS_FIELD_NUMBER = 9;
    private com.google.protobuf.LazyStringList dependenciesCrateIds_;
    /**
     * repeated string dependencies_crate_ids = 9;
     * @return A list containing the dependenciesCrateIds.
     */
    public com.google.protobuf.ProtocolStringList
        getDependenciesCrateIdsList() {
      return dependenciesCrateIds_;
    }
    /**
     * repeated string dependencies_crate_ids = 9;
     * @return The count of dependenciesCrateIds.
     */
    public int getDependenciesCrateIdsCount() {
      return dependenciesCrateIds_.size();
    }
    /**
     * repeated string dependencies_crate_ids = 9;
     * @param index The index of the element to return.
     * @return The dependenciesCrateIds at the given index.
     */
    public java.lang.String getDependenciesCrateIds(int index) {
      return dependenciesCrateIds_.get(index);
    }
    /**
     * repeated string dependencies_crate_ids = 9;
     * @param index The index of the value to return.
     * @return The bytes of the dependenciesCrateIds at the given index.
     */
    public com.google.protobuf.ByteString
        getDependenciesCrateIdsBytes(int index) {
      return dependenciesCrateIds_.getByteString(index);
    }

    public static final int CRATE_ROOT_FIELD_NUMBER = 10;
    private volatile java.lang.Object crateRoot_;
    /**
     * string crate_root = 10;
     * @return The crateRoot.
     */
    @java.lang.Override
    public java.lang.String getCrateRoot() {
      java.lang.Object ref = crateRoot_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        crateRoot_ = s;
        return s;
      }
    }
    /**
     * string crate_root = 10;
     * @return The bytes for crateRoot.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCrateRootBytes() {
      java.lang.Object ref = crateRoot_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        crateRoot_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VERSION_FIELD_NUMBER = 11;
    private volatile java.lang.Object version_;
    /**
     * string version = 11;
     * @return The version.
     */
    @java.lang.Override
    public java.lang.String getVersion() {
      java.lang.Object ref = version_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        version_ = s;
        return s;
      }
    }
    /**
     * string version = 11;
     * @return The bytes for version.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getVersionBytes() {
      java.lang.Object ref = version_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        version_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PROC_MACRO_ARTIFACTS_FIELD_NUMBER = 12;
    private com.google.protobuf.LazyStringList procMacroArtifacts_;
    /**
     * repeated string proc_macro_artifacts = 12;
     * @return A list containing the procMacroArtifacts.
     */
    public com.google.protobuf.ProtocolStringList
        getProcMacroArtifactsList() {
      return procMacroArtifacts_;
    }
    /**
     * repeated string proc_macro_artifacts = 12;
     * @return The count of procMacroArtifacts.
     */
    public int getProcMacroArtifactsCount() {
      return procMacroArtifacts_.size();
    }
    /**
     * repeated string proc_macro_artifacts = 12;
     * @param index The index of the element to return.
     * @return The procMacroArtifacts at the given index.
     */
    public java.lang.String getProcMacroArtifacts(int index) {
      return procMacroArtifacts_.get(index);
    }
    /**
     * repeated string proc_macro_artifacts = 12;
     * @param index The index of the value to return.
     * @return The bytes of the procMacroArtifacts at the given index.
     */
    public com.google.protobuf.ByteString
        getProcMacroArtifactsBytes(int index) {
      return procMacroArtifacts_.getByteString(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(crateId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, crateId_);
      }
      if (location_ != org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateLocation.WORKSPACE_DIR.getNumber()) {
        output.writeEnum(2, location_);
      }
      if (fromWorkspace_ != false) {
        output.writeBool(3, fromWorkspace_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, name_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(kind_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, kind_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(edition_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, edition_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(outDir_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, outDir_);
      }
      for (int i = 0; i < crateFeatures_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, crateFeatures_.getRaw(i));
      }
      for (int i = 0; i < dependenciesCrateIds_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, dependenciesCrateIds_.getRaw(i));
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(crateRoot_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, crateRoot_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(version_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 11, version_);
      }
      for (int i = 0; i < procMacroArtifacts_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 12, procMacroArtifacts_.getRaw(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(crateId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, crateId_);
      }
      if (location_ != org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateLocation.WORKSPACE_DIR.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, location_);
      }
      if (fromWorkspace_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, fromWorkspace_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, name_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(kind_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, kind_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(edition_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, edition_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(outDir_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, outDir_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < crateFeatures_.size(); i++) {
          dataSize += computeStringSizeNoTag(crateFeatures_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getCrateFeaturesList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < dependenciesCrateIds_.size(); i++) {
          dataSize += computeStringSizeNoTag(dependenciesCrateIds_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getDependenciesCrateIdsList().size();
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(crateRoot_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, crateRoot_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(version_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, version_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < procMacroArtifacts_.size(); i++) {
          dataSize += computeStringSizeNoTag(procMacroArtifacts_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getProcMacroArtifactsList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo)) {
        return super.equals(obj);
      }
      org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo other = (org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo) obj;

      if (!getCrateId()
          .equals(other.getCrateId())) return false;
      if (location_ != other.location_) return false;
      if (getFromWorkspace()
          != other.getFromWorkspace()) return false;
      if (!getName()
          .equals(other.getName())) return false;
      if (!getKind()
          .equals(other.getKind())) return false;
      if (!getEdition()
          .equals(other.getEdition())) return false;
      if (!getOutDir()
          .equals(other.getOutDir())) return false;
      if (!getCrateFeaturesList()
          .equals(other.getCrateFeaturesList())) return false;
      if (!getDependenciesCrateIdsList()
          .equals(other.getDependenciesCrateIdsList())) return false;
      if (!getCrateRoot()
          .equals(other.getCrateRoot())) return false;
      if (!getVersion()
          .equals(other.getVersion())) return false;
      if (!getProcMacroArtifactsList()
          .equals(other.getProcMacroArtifactsList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + CRATE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getCrateId().hashCode();
      hash = (37 * hash) + LOCATION_FIELD_NUMBER;
      hash = (53 * hash) + location_;
      hash = (37 * hash) + FROM_WORKSPACE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getFromWorkspace());
      hash = (37 * hash) + NAME_FIELD_NUMBER;
      hash = (53 * hash) + getName().hashCode();
      hash = (37 * hash) + KIND_FIELD_NUMBER;
      hash = (53 * hash) + getKind().hashCode();
      hash = (37 * hash) + EDITION_FIELD_NUMBER;
      hash = (53 * hash) + getEdition().hashCode();
      hash = (37 * hash) + OUT_DIR_FIELD_NUMBER;
      hash = (53 * hash) + getOutDir().hashCode();
      if (getCrateFeaturesCount() > 0) {
        hash = (37 * hash) + CRATE_FEATURES_FIELD_NUMBER;
        hash = (53 * hash) + getCrateFeaturesList().hashCode();
      }
      if (getDependenciesCrateIdsCount() > 0) {
        hash = (37 * hash) + DEPENDENCIES_CRATE_IDS_FIELD_NUMBER;
        hash = (53 * hash) + getDependenciesCrateIdsList().hashCode();
      }
      hash = (37 * hash) + CRATE_ROOT_FIELD_NUMBER;
      hash = (53 * hash) + getCrateRoot().hashCode();
      hash = (37 * hash) + VERSION_FIELD_NUMBER;
      hash = (53 * hash) + getVersion().hashCode();
      if (getProcMacroArtifactsCount() > 0) {
        hash = (37 * hash) + PROC_MACRO_ARTIFACTS_FIELD_NUMBER;
        hash = (53 * hash) + getProcMacroArtifactsList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo 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 org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo 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 org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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 bazelbsp.RustCrateInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:bazelbsp.RustCrateInfo)
        org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_RustCrateInfo_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_RustCrateInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo.class, org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo.Builder.class);
      }

      // Construct using org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        crateId_ = "";

        location_ = 0;

        fromWorkspace_ = false;

        name_ = "";

        kind_ = "";

        edition_ = "";

        outDir_ = "";

        crateFeatures_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        dependenciesCrateIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        crateRoot_ = "";

        version_ = "";

        procMacroArtifacts_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_RustCrateInfo_descriptor;
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo getDefaultInstanceForType() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo.getDefaultInstance();
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo build() {
        org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo buildPartial() {
        org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo result = new org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo(this);
        int from_bitField0_ = bitField0_;
        result.crateId_ = crateId_;
        result.location_ = location_;
        result.fromWorkspace_ = fromWorkspace_;
        result.name_ = name_;
        result.kind_ = kind_;
        result.edition_ = edition_;
        result.outDir_ = outDir_;
        if (((bitField0_ & 0x00000001) != 0)) {
          crateFeatures_ = crateFeatures_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.crateFeatures_ = crateFeatures_;
        if (((bitField0_ & 0x00000002) != 0)) {
          dependenciesCrateIds_ = dependenciesCrateIds_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.dependenciesCrateIds_ = dependenciesCrateIds_;
        result.crateRoot_ = crateRoot_;
        result.version_ = version_;
        if (((bitField0_ & 0x00000004) != 0)) {
          procMacroArtifacts_ = procMacroArtifacts_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.procMacroArtifacts_ = procMacroArtifacts_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo) {
          return mergeFrom((org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo other) {
        if (other == org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo.getDefaultInstance()) return this;
        if (!other.getCrateId().isEmpty()) {
          crateId_ = other.crateId_;
          onChanged();
        }
        if (other.location_ != 0) {
          setLocationValue(other.getLocationValue());
        }
        if (other.getFromWorkspace() != false) {
          setFromWorkspace(other.getFromWorkspace());
        }
        if (!other.getName().isEmpty()) {
          name_ = other.name_;
          onChanged();
        }
        if (!other.getKind().isEmpty()) {
          kind_ = other.kind_;
          onChanged();
        }
        if (!other.getEdition().isEmpty()) {
          edition_ = other.edition_;
          onChanged();
        }
        if (!other.getOutDir().isEmpty()) {
          outDir_ = other.outDir_;
          onChanged();
        }
        if (!other.crateFeatures_.isEmpty()) {
          if (crateFeatures_.isEmpty()) {
            crateFeatures_ = other.crateFeatures_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureCrateFeaturesIsMutable();
            crateFeatures_.addAll(other.crateFeatures_);
          }
          onChanged();
        }
        if (!other.dependenciesCrateIds_.isEmpty()) {
          if (dependenciesCrateIds_.isEmpty()) {
            dependenciesCrateIds_ = other.dependenciesCrateIds_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureDependenciesCrateIdsIsMutable();
            dependenciesCrateIds_.addAll(other.dependenciesCrateIds_);
          }
          onChanged();
        }
        if (!other.getCrateRoot().isEmpty()) {
          crateRoot_ = other.crateRoot_;
          onChanged();
        }
        if (!other.getVersion().isEmpty()) {
          version_ = other.version_;
          onChanged();
        }
        if (!other.procMacroArtifacts_.isEmpty()) {
          if (procMacroArtifacts_.isEmpty()) {
            procMacroArtifacts_ = other.procMacroArtifacts_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureProcMacroArtifactsIsMutable();
            procMacroArtifacts_.addAll(other.procMacroArtifacts_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                crateId_ = input.readStringRequireUtf8();

                break;
              } // case 10
              case 16: {
                location_ = input.readEnum();

                break;
              } // case 16
              case 24: {
                fromWorkspace_ = input.readBool();

                break;
              } // case 24
              case 34: {
                name_ = input.readStringRequireUtf8();

                break;
              } // case 34
              case 42: {
                kind_ = input.readStringRequireUtf8();

                break;
              } // case 42
              case 50: {
                edition_ = input.readStringRequireUtf8();

                break;
              } // case 50
              case 58: {
                outDir_ = input.readStringRequireUtf8();

                break;
              } // case 58
              case 66: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureCrateFeaturesIsMutable();
                crateFeatures_.add(s);
                break;
              } // case 66
              case 74: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureDependenciesCrateIdsIsMutable();
                dependenciesCrateIds_.add(s);
                break;
              } // case 74
              case 82: {
                crateRoot_ = input.readStringRequireUtf8();

                break;
              } // case 82
              case 90: {
                version_ = input.readStringRequireUtf8();

                break;
              } // case 90
              case 98: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureProcMacroArtifactsIsMutable();
                procMacroArtifacts_.add(s);
                break;
              } // case 98
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object crateId_ = "";
      /**
       * string crate_id = 1;
       * @return The crateId.
       */
      public java.lang.String getCrateId() {
        java.lang.Object ref = crateId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          crateId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string crate_id = 1;
       * @return The bytes for crateId.
       */
      public com.google.protobuf.ByteString
          getCrateIdBytes() {
        java.lang.Object ref = crateId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          crateId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string crate_id = 1;
       * @param value The crateId to set.
       * @return This builder for chaining.
       */
      public Builder setCrateId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        crateId_ = value;
        onChanged();
        return this;
      }
      /**
       * string crate_id = 1;
       * @return This builder for chaining.
       */
      public Builder clearCrateId() {
        
        crateId_ = getDefaultInstance().getCrateId();
        onChanged();
        return this;
      }
      /**
       * string crate_id = 1;
       * @param value The bytes for crateId to set.
       * @return This builder for chaining.
       */
      public Builder setCrateIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        crateId_ = value;
        onChanged();
        return this;
      }

      private int location_ = 0;
      /**
       * .bazelbsp.RustCrateLocation location = 2;
       * @return The enum numeric value on the wire for location.
       */
      @java.lang.Override public int getLocationValue() {
        return location_;
      }
      /**
       * .bazelbsp.RustCrateLocation location = 2;
       * @param value The enum numeric value on the wire for location to set.
       * @return This builder for chaining.
       */
      public Builder setLocationValue(int value) {
        
        location_ = value;
        onChanged();
        return this;
      }
      /**
       * .bazelbsp.RustCrateLocation location = 2;
       * @return The location.
       */
      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateLocation getLocation() {
        @SuppressWarnings("deprecation")
        org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateLocation result = org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateLocation.valueOf(location_);
        return result == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateLocation.UNRECOGNIZED : result;
      }
      /**
       * .bazelbsp.RustCrateLocation location = 2;
       * @param value The location to set.
       * @return This builder for chaining.
       */
      public Builder setLocation(org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateLocation value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        location_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * .bazelbsp.RustCrateLocation location = 2;
       * @return This builder for chaining.
       */
      public Builder clearLocation() {
        
        location_ = 0;
        onChanged();
        return this;
      }

      private boolean fromWorkspace_ ;
      /**
       * bool from_workspace = 3;
       * @return The fromWorkspace.
       */
      @java.lang.Override
      public boolean getFromWorkspace() {
        return fromWorkspace_;
      }
      /**
       * bool from_workspace = 3;
       * @param value The fromWorkspace to set.
       * @return This builder for chaining.
       */
      public Builder setFromWorkspace(boolean value) {
        
        fromWorkspace_ = value;
        onChanged();
        return this;
      }
      /**
       * bool from_workspace = 3;
       * @return This builder for chaining.
       */
      public Builder clearFromWorkspace() {
        
        fromWorkspace_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object name_ = "";
      /**
       * string name = 4;
       * @return The name.
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          name_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string name = 4;
       * @return The bytes for name.
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string name = 4;
       * @param value The name to set.
       * @return This builder for chaining.
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * string name = 4;
       * @return This builder for chaining.
       */
      public Builder clearName() {
        
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * string name = 4;
       * @param value The bytes for name to set.
       * @return This builder for chaining.
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        name_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object kind_ = "";
      /**
       * string kind = 5;
       * @return The kind.
       */
      public java.lang.String getKind() {
        java.lang.Object ref = kind_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          kind_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string kind = 5;
       * @return The bytes for kind.
       */
      public com.google.protobuf.ByteString
          getKindBytes() {
        java.lang.Object ref = kind_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          kind_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string kind = 5;
       * @param value The kind to set.
       * @return This builder for chaining.
       */
      public Builder setKind(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        kind_ = value;
        onChanged();
        return this;
      }
      /**
       * string kind = 5;
       * @return This builder for chaining.
       */
      public Builder clearKind() {
        
        kind_ = getDefaultInstance().getKind();
        onChanged();
        return this;
      }
      /**
       * string kind = 5;
       * @param value The bytes for kind to set.
       * @return This builder for chaining.
       */
      public Builder setKindBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        kind_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object edition_ = "";
      /**
       * string edition = 6;
       * @return The edition.
       */
      public java.lang.String getEdition() {
        java.lang.Object ref = edition_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          edition_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string edition = 6;
       * @return The bytes for edition.
       */
      public com.google.protobuf.ByteString
          getEditionBytes() {
        java.lang.Object ref = edition_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          edition_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string edition = 6;
       * @param value The edition to set.
       * @return This builder for chaining.
       */
      public Builder setEdition(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        edition_ = value;
        onChanged();
        return this;
      }
      /**
       * string edition = 6;
       * @return This builder for chaining.
       */
      public Builder clearEdition() {
        
        edition_ = getDefaultInstance().getEdition();
        onChanged();
        return this;
      }
      /**
       * string edition = 6;
       * @param value The bytes for edition to set.
       * @return This builder for chaining.
       */
      public Builder setEditionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        edition_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object outDir_ = "";
      /**
       * string out_dir = 7;
       * @return The outDir.
       */
      public java.lang.String getOutDir() {
        java.lang.Object ref = outDir_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          outDir_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string out_dir = 7;
       * @return The bytes for outDir.
       */
      public com.google.protobuf.ByteString
          getOutDirBytes() {
        java.lang.Object ref = outDir_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          outDir_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string out_dir = 7;
       * @param value The outDir to set.
       * @return This builder for chaining.
       */
      public Builder setOutDir(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        outDir_ = value;
        onChanged();
        return this;
      }
      /**
       * string out_dir = 7;
       * @return This builder for chaining.
       */
      public Builder clearOutDir() {
        
        outDir_ = getDefaultInstance().getOutDir();
        onChanged();
        return this;
      }
      /**
       * string out_dir = 7;
       * @param value The bytes for outDir to set.
       * @return This builder for chaining.
       */
      public Builder setOutDirBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        outDir_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList crateFeatures_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureCrateFeaturesIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          crateFeatures_ = new com.google.protobuf.LazyStringArrayList(crateFeatures_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * repeated string crate_features = 8;
       * @return A list containing the crateFeatures.
       */
      public com.google.protobuf.ProtocolStringList
          getCrateFeaturesList() {
        return crateFeatures_.getUnmodifiableView();
      }
      /**
       * repeated string crate_features = 8;
       * @return The count of crateFeatures.
       */
      public int getCrateFeaturesCount() {
        return crateFeatures_.size();
      }
      /**
       * repeated string crate_features = 8;
       * @param index The index of the element to return.
       * @return The crateFeatures at the given index.
       */
      public java.lang.String getCrateFeatures(int index) {
        return crateFeatures_.get(index);
      }
      /**
       * repeated string crate_features = 8;
       * @param index The index of the value to return.
       * @return The bytes of the crateFeatures at the given index.
       */
      public com.google.protobuf.ByteString
          getCrateFeaturesBytes(int index) {
        return crateFeatures_.getByteString(index);
      }
      /**
       * repeated string crate_features = 8;
       * @param index The index to set the value at.
       * @param value The crateFeatures to set.
       * @return This builder for chaining.
       */
      public Builder setCrateFeatures(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureCrateFeaturesIsMutable();
        crateFeatures_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated string crate_features = 8;
       * @param value The crateFeatures to add.
       * @return This builder for chaining.
       */
      public Builder addCrateFeatures(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureCrateFeaturesIsMutable();
        crateFeatures_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated string crate_features = 8;
       * @param values The crateFeatures to add.
       * @return This builder for chaining.
       */
      public Builder addAllCrateFeatures(
          java.lang.Iterable values) {
        ensureCrateFeaturesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, crateFeatures_);
        onChanged();
        return this;
      }
      /**
       * repeated string crate_features = 8;
       * @return This builder for chaining.
       */
      public Builder clearCrateFeatures() {
        crateFeatures_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * repeated string crate_features = 8;
       * @param value The bytes of the crateFeatures to add.
       * @return This builder for chaining.
       */
      public Builder addCrateFeaturesBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureCrateFeaturesIsMutable();
        crateFeatures_.add(value);
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList dependenciesCrateIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureDependenciesCrateIdsIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          dependenciesCrateIds_ = new com.google.protobuf.LazyStringArrayList(dependenciesCrateIds_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * repeated string dependencies_crate_ids = 9;
       * @return A list containing the dependenciesCrateIds.
       */
      public com.google.protobuf.ProtocolStringList
          getDependenciesCrateIdsList() {
        return dependenciesCrateIds_.getUnmodifiableView();
      }
      /**
       * repeated string dependencies_crate_ids = 9;
       * @return The count of dependenciesCrateIds.
       */
      public int getDependenciesCrateIdsCount() {
        return dependenciesCrateIds_.size();
      }
      /**
       * repeated string dependencies_crate_ids = 9;
       * @param index The index of the element to return.
       * @return The dependenciesCrateIds at the given index.
       */
      public java.lang.String getDependenciesCrateIds(int index) {
        return dependenciesCrateIds_.get(index);
      }
      /**
       * repeated string dependencies_crate_ids = 9;
       * @param index The index of the value to return.
       * @return The bytes of the dependenciesCrateIds at the given index.
       */
      public com.google.protobuf.ByteString
          getDependenciesCrateIdsBytes(int index) {
        return dependenciesCrateIds_.getByteString(index);
      }
      /**
       * repeated string dependencies_crate_ids = 9;
       * @param index The index to set the value at.
       * @param value The dependenciesCrateIds to set.
       * @return This builder for chaining.
       */
      public Builder setDependenciesCrateIds(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureDependenciesCrateIdsIsMutable();
        dependenciesCrateIds_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated string dependencies_crate_ids = 9;
       * @param value The dependenciesCrateIds to add.
       * @return This builder for chaining.
       */
      public Builder addDependenciesCrateIds(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureDependenciesCrateIdsIsMutable();
        dependenciesCrateIds_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated string dependencies_crate_ids = 9;
       * @param values The dependenciesCrateIds to add.
       * @return This builder for chaining.
       */
      public Builder addAllDependenciesCrateIds(
          java.lang.Iterable values) {
        ensureDependenciesCrateIdsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, dependenciesCrateIds_);
        onChanged();
        return this;
      }
      /**
       * repeated string dependencies_crate_ids = 9;
       * @return This builder for chaining.
       */
      public Builder clearDependenciesCrateIds() {
        dependenciesCrateIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * repeated string dependencies_crate_ids = 9;
       * @param value The bytes of the dependenciesCrateIds to add.
       * @return This builder for chaining.
       */
      public Builder addDependenciesCrateIdsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureDependenciesCrateIdsIsMutable();
        dependenciesCrateIds_.add(value);
        onChanged();
        return this;
      }

      private java.lang.Object crateRoot_ = "";
      /**
       * string crate_root = 10;
       * @return The crateRoot.
       */
      public java.lang.String getCrateRoot() {
        java.lang.Object ref = crateRoot_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          crateRoot_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string crate_root = 10;
       * @return The bytes for crateRoot.
       */
      public com.google.protobuf.ByteString
          getCrateRootBytes() {
        java.lang.Object ref = crateRoot_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          crateRoot_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string crate_root = 10;
       * @param value The crateRoot to set.
       * @return This builder for chaining.
       */
      public Builder setCrateRoot(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        crateRoot_ = value;
        onChanged();
        return this;
      }
      /**
       * string crate_root = 10;
       * @return This builder for chaining.
       */
      public Builder clearCrateRoot() {
        
        crateRoot_ = getDefaultInstance().getCrateRoot();
        onChanged();
        return this;
      }
      /**
       * string crate_root = 10;
       * @param value The bytes for crateRoot to set.
       * @return This builder for chaining.
       */
      public Builder setCrateRootBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        crateRoot_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object version_ = "";
      /**
       * string version = 11;
       * @return The version.
       */
      public java.lang.String getVersion() {
        java.lang.Object ref = version_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          version_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string version = 11;
       * @return The bytes for version.
       */
      public com.google.protobuf.ByteString
          getVersionBytes() {
        java.lang.Object ref = version_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          version_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string version = 11;
       * @param value The version to set.
       * @return This builder for chaining.
       */
      public Builder setVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        version_ = value;
        onChanged();
        return this;
      }
      /**
       * string version = 11;
       * @return This builder for chaining.
       */
      public Builder clearVersion() {
        
        version_ = getDefaultInstance().getVersion();
        onChanged();
        return this;
      }
      /**
       * string version = 11;
       * @param value The bytes for version to set.
       * @return This builder for chaining.
       */
      public Builder setVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        version_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList procMacroArtifacts_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureProcMacroArtifactsIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          procMacroArtifacts_ = new com.google.protobuf.LazyStringArrayList(procMacroArtifacts_);
          bitField0_ |= 0x00000004;
         }
      }
      /**
       * repeated string proc_macro_artifacts = 12;
       * @return A list containing the procMacroArtifacts.
       */
      public com.google.protobuf.ProtocolStringList
          getProcMacroArtifactsList() {
        return procMacroArtifacts_.getUnmodifiableView();
      }
      /**
       * repeated string proc_macro_artifacts = 12;
       * @return The count of procMacroArtifacts.
       */
      public int getProcMacroArtifactsCount() {
        return procMacroArtifacts_.size();
      }
      /**
       * repeated string proc_macro_artifacts = 12;
       * @param index The index of the element to return.
       * @return The procMacroArtifacts at the given index.
       */
      public java.lang.String getProcMacroArtifacts(int index) {
        return procMacroArtifacts_.get(index);
      }
      /**
       * repeated string proc_macro_artifacts = 12;
       * @param index The index of the value to return.
       * @return The bytes of the procMacroArtifacts at the given index.
       */
      public com.google.protobuf.ByteString
          getProcMacroArtifactsBytes(int index) {
        return procMacroArtifacts_.getByteString(index);
      }
      /**
       * repeated string proc_macro_artifacts = 12;
       * @param index The index to set the value at.
       * @param value The procMacroArtifacts to set.
       * @return This builder for chaining.
       */
      public Builder setProcMacroArtifacts(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureProcMacroArtifactsIsMutable();
        procMacroArtifacts_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated string proc_macro_artifacts = 12;
       * @param value The procMacroArtifacts to add.
       * @return This builder for chaining.
       */
      public Builder addProcMacroArtifacts(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureProcMacroArtifactsIsMutable();
        procMacroArtifacts_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated string proc_macro_artifacts = 12;
       * @param values The procMacroArtifacts to add.
       * @return This builder for chaining.
       */
      public Builder addAllProcMacroArtifacts(
          java.lang.Iterable values) {
        ensureProcMacroArtifactsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, procMacroArtifacts_);
        onChanged();
        return this;
      }
      /**
       * repeated string proc_macro_artifacts = 12;
       * @return This builder for chaining.
       */
      public Builder clearProcMacroArtifacts() {
        procMacroArtifacts_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * repeated string proc_macro_artifacts = 12;
       * @param value The bytes of the procMacroArtifacts to add.
       * @return This builder for chaining.
       */
      public Builder addProcMacroArtifactsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureProcMacroArtifactsIsMutable();
        procMacroArtifacts_.add(value);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:bazelbsp.RustCrateInfo)
    }

    // @@protoc_insertion_point(class_scope:bazelbsp.RustCrateInfo)
    private static final org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo();
    }

    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public RustCrateInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AndroidTargetInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:bazelbsp.AndroidTargetInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .bazelbsp.FileLocation android_jar = 1;
     * @return Whether the androidJar field is set.
     */
    boolean hasAndroidJar();
    /**
     * .bazelbsp.FileLocation android_jar = 1;
     * @return The androidJar.
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getAndroidJar();
    /**
     * .bazelbsp.FileLocation android_jar = 1;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getAndroidJarOrBuilder();

    /**
     * .bazelbsp.FileLocation manifest = 2;
     * @return Whether the manifest field is set.
     */
    boolean hasManifest();
    /**
     * .bazelbsp.FileLocation manifest = 2;
     * @return The manifest.
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getManifest();
    /**
     * .bazelbsp.FileLocation manifest = 2;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getManifestOrBuilder();

    /**
     * repeated .bazelbsp.FileLocation resources = 3;
     */
    java.util.List 
        getResourcesList();
    /**
     * repeated .bazelbsp.FileLocation resources = 3;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getResources(int index);
    /**
     * repeated .bazelbsp.FileLocation resources = 3;
     */
    int getResourcesCount();
    /**
     * repeated .bazelbsp.FileLocation resources = 3;
     */
    java.util.List 
        getResourcesOrBuilderList();
    /**
     * repeated .bazelbsp.FileLocation resources = 3;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getResourcesOrBuilder(
        int index);

    /**
     * repeated .bazelbsp.FileLocation resource_folders = 4;
     */
    java.util.List 
        getResourceFoldersList();
    /**
     * repeated .bazelbsp.FileLocation resource_folders = 4;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getResourceFolders(int index);
    /**
     * repeated .bazelbsp.FileLocation resource_folders = 4;
     */
    int getResourceFoldersCount();
    /**
     * repeated .bazelbsp.FileLocation resource_folders = 4;
     */
    java.util.List 
        getResourceFoldersOrBuilderList();
    /**
     * repeated .bazelbsp.FileLocation resource_folders = 4;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getResourceFoldersOrBuilder(
        int index);

    /**
     * string kotlin_target_id = 5;
     * @return The kotlinTargetId.
     */
    java.lang.String getKotlinTargetId();
    /**
     * string kotlin_target_id = 5;
     * @return The bytes for kotlinTargetId.
     */
    com.google.protobuf.ByteString
        getKotlinTargetIdBytes();
  }
  /**
   * Protobuf type {@code bazelbsp.AndroidTargetInfo}
   */
  public static final class AndroidTargetInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:bazelbsp.AndroidTargetInfo)
      AndroidTargetInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AndroidTargetInfo.newBuilder() to construct.
    private AndroidTargetInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private AndroidTargetInfo() {
      resources_ = java.util.Collections.emptyList();
      resourceFolders_ = java.util.Collections.emptyList();
      kotlinTargetId_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new AndroidTargetInfo();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_AndroidTargetInfo_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_AndroidTargetInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo.class, org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo.Builder.class);
    }

    public static final int ANDROID_JAR_FIELD_NUMBER = 1;
    private org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation androidJar_;
    /**
     * .bazelbsp.FileLocation android_jar = 1;
     * @return Whether the androidJar field is set.
     */
    @java.lang.Override
    public boolean hasAndroidJar() {
      return androidJar_ != null;
    }
    /**
     * .bazelbsp.FileLocation android_jar = 1;
     * @return The androidJar.
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getAndroidJar() {
      return androidJar_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance() : androidJar_;
    }
    /**
     * .bazelbsp.FileLocation android_jar = 1;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getAndroidJarOrBuilder() {
      return getAndroidJar();
    }

    public static final int MANIFEST_FIELD_NUMBER = 2;
    private org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation manifest_;
    /**
     * .bazelbsp.FileLocation manifest = 2;
     * @return Whether the manifest field is set.
     */
    @java.lang.Override
    public boolean hasManifest() {
      return manifest_ != null;
    }
    /**
     * .bazelbsp.FileLocation manifest = 2;
     * @return The manifest.
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getManifest() {
      return manifest_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance() : manifest_;
    }
    /**
     * .bazelbsp.FileLocation manifest = 2;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getManifestOrBuilder() {
      return getManifest();
    }

    public static final int RESOURCES_FIELD_NUMBER = 3;
    private java.util.List resources_;
    /**
     * repeated .bazelbsp.FileLocation resources = 3;
     */
    @java.lang.Override
    public java.util.List getResourcesList() {
      return resources_;
    }
    /**
     * repeated .bazelbsp.FileLocation resources = 3;
     */
    @java.lang.Override
    public java.util.List 
        getResourcesOrBuilderList() {
      return resources_;
    }
    /**
     * repeated .bazelbsp.FileLocation resources = 3;
     */
    @java.lang.Override
    public int getResourcesCount() {
      return resources_.size();
    }
    /**
     * repeated .bazelbsp.FileLocation resources = 3;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getResources(int index) {
      return resources_.get(index);
    }
    /**
     * repeated .bazelbsp.FileLocation resources = 3;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getResourcesOrBuilder(
        int index) {
      return resources_.get(index);
    }

    public static final int RESOURCE_FOLDERS_FIELD_NUMBER = 4;
    private java.util.List resourceFolders_;
    /**
     * repeated .bazelbsp.FileLocation resource_folders = 4;
     */
    @java.lang.Override
    public java.util.List getResourceFoldersList() {
      return resourceFolders_;
    }
    /**
     * repeated .bazelbsp.FileLocation resource_folders = 4;
     */
    @java.lang.Override
    public java.util.List 
        getResourceFoldersOrBuilderList() {
      return resourceFolders_;
    }
    /**
     * repeated .bazelbsp.FileLocation resource_folders = 4;
     */
    @java.lang.Override
    public int getResourceFoldersCount() {
      return resourceFolders_.size();
    }
    /**
     * repeated .bazelbsp.FileLocation resource_folders = 4;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getResourceFolders(int index) {
      return resourceFolders_.get(index);
    }
    /**
     * repeated .bazelbsp.FileLocation resource_folders = 4;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getResourceFoldersOrBuilder(
        int index) {
      return resourceFolders_.get(index);
    }

    public static final int KOTLIN_TARGET_ID_FIELD_NUMBER = 5;
    private volatile java.lang.Object kotlinTargetId_;
    /**
     * string kotlin_target_id = 5;
     * @return The kotlinTargetId.
     */
    @java.lang.Override
    public java.lang.String getKotlinTargetId() {
      java.lang.Object ref = kotlinTargetId_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        kotlinTargetId_ = s;
        return s;
      }
    }
    /**
     * string kotlin_target_id = 5;
     * @return The bytes for kotlinTargetId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getKotlinTargetIdBytes() {
      java.lang.Object ref = kotlinTargetId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        kotlinTargetId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (androidJar_ != null) {
        output.writeMessage(1, getAndroidJar());
      }
      if (manifest_ != null) {
        output.writeMessage(2, getManifest());
      }
      for (int i = 0; i < resources_.size(); i++) {
        output.writeMessage(3, resources_.get(i));
      }
      for (int i = 0; i < resourceFolders_.size(); i++) {
        output.writeMessage(4, resourceFolders_.get(i));
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(kotlinTargetId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, kotlinTargetId_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (androidJar_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getAndroidJar());
      }
      if (manifest_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getManifest());
      }
      for (int i = 0; i < resources_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, resources_.get(i));
      }
      for (int i = 0; i < resourceFolders_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, resourceFolders_.get(i));
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(kotlinTargetId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, kotlinTargetId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo)) {
        return super.equals(obj);
      }
      org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo other = (org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo) obj;

      if (hasAndroidJar() != other.hasAndroidJar()) return false;
      if (hasAndroidJar()) {
        if (!getAndroidJar()
            .equals(other.getAndroidJar())) return false;
      }
      if (hasManifest() != other.hasManifest()) return false;
      if (hasManifest()) {
        if (!getManifest()
            .equals(other.getManifest())) return false;
      }
      if (!getResourcesList()
          .equals(other.getResourcesList())) return false;
      if (!getResourceFoldersList()
          .equals(other.getResourceFoldersList())) return false;
      if (!getKotlinTargetId()
          .equals(other.getKotlinTargetId())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasAndroidJar()) {
        hash = (37 * hash) + ANDROID_JAR_FIELD_NUMBER;
        hash = (53 * hash) + getAndroidJar().hashCode();
      }
      if (hasManifest()) {
        hash = (37 * hash) + MANIFEST_FIELD_NUMBER;
        hash = (53 * hash) + getManifest().hashCode();
      }
      if (getResourcesCount() > 0) {
        hash = (37 * hash) + RESOURCES_FIELD_NUMBER;
        hash = (53 * hash) + getResourcesList().hashCode();
      }
      if (getResourceFoldersCount() > 0) {
        hash = (37 * hash) + RESOURCE_FOLDERS_FIELD_NUMBER;
        hash = (53 * hash) + getResourceFoldersList().hashCode();
      }
      hash = (37 * hash) + KOTLIN_TARGET_ID_FIELD_NUMBER;
      hash = (53 * hash) + getKotlinTargetId().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo 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 org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo 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 org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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 bazelbsp.AndroidTargetInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:bazelbsp.AndroidTargetInfo)
        org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_AndroidTargetInfo_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_AndroidTargetInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo.class, org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo.Builder.class);
      }

      // Construct using org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (androidJarBuilder_ == null) {
          androidJar_ = null;
        } else {
          androidJar_ = null;
          androidJarBuilder_ = null;
        }
        if (manifestBuilder_ == null) {
          manifest_ = null;
        } else {
          manifest_ = null;
          manifestBuilder_ = null;
        }
        if (resourcesBuilder_ == null) {
          resources_ = java.util.Collections.emptyList();
        } else {
          resources_ = null;
          resourcesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (resourceFoldersBuilder_ == null) {
          resourceFolders_ = java.util.Collections.emptyList();
        } else {
          resourceFolders_ = null;
          resourceFoldersBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        kotlinTargetId_ = "";

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_AndroidTargetInfo_descriptor;
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo getDefaultInstanceForType() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo.getDefaultInstance();
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo build() {
        org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo buildPartial() {
        org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo result = new org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo(this);
        int from_bitField0_ = bitField0_;
        if (androidJarBuilder_ == null) {
          result.androidJar_ = androidJar_;
        } else {
          result.androidJar_ = androidJarBuilder_.build();
        }
        if (manifestBuilder_ == null) {
          result.manifest_ = manifest_;
        } else {
          result.manifest_ = manifestBuilder_.build();
        }
        if (resourcesBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            resources_ = java.util.Collections.unmodifiableList(resources_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.resources_ = resources_;
        } else {
          result.resources_ = resourcesBuilder_.build();
        }
        if (resourceFoldersBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            resourceFolders_ = java.util.Collections.unmodifiableList(resourceFolders_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.resourceFolders_ = resourceFolders_;
        } else {
          result.resourceFolders_ = resourceFoldersBuilder_.build();
        }
        result.kotlinTargetId_ = kotlinTargetId_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo) {
          return mergeFrom((org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo other) {
        if (other == org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo.getDefaultInstance()) return this;
        if (other.hasAndroidJar()) {
          mergeAndroidJar(other.getAndroidJar());
        }
        if (other.hasManifest()) {
          mergeManifest(other.getManifest());
        }
        if (resourcesBuilder_ == null) {
          if (!other.resources_.isEmpty()) {
            if (resources_.isEmpty()) {
              resources_ = other.resources_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureResourcesIsMutable();
              resources_.addAll(other.resources_);
            }
            onChanged();
          }
        } else {
          if (!other.resources_.isEmpty()) {
            if (resourcesBuilder_.isEmpty()) {
              resourcesBuilder_.dispose();
              resourcesBuilder_ = null;
              resources_ = other.resources_;
              bitField0_ = (bitField0_ & ~0x00000001);
              resourcesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getResourcesFieldBuilder() : null;
            } else {
              resourcesBuilder_.addAllMessages(other.resources_);
            }
          }
        }
        if (resourceFoldersBuilder_ == null) {
          if (!other.resourceFolders_.isEmpty()) {
            if (resourceFolders_.isEmpty()) {
              resourceFolders_ = other.resourceFolders_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureResourceFoldersIsMutable();
              resourceFolders_.addAll(other.resourceFolders_);
            }
            onChanged();
          }
        } else {
          if (!other.resourceFolders_.isEmpty()) {
            if (resourceFoldersBuilder_.isEmpty()) {
              resourceFoldersBuilder_.dispose();
              resourceFoldersBuilder_ = null;
              resourceFolders_ = other.resourceFolders_;
              bitField0_ = (bitField0_ & ~0x00000002);
              resourceFoldersBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getResourceFoldersFieldBuilder() : null;
            } else {
              resourceFoldersBuilder_.addAllMessages(other.resourceFolders_);
            }
          }
        }
        if (!other.getKotlinTargetId().isEmpty()) {
          kotlinTargetId_ = other.kotlinTargetId_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    getAndroidJarFieldBuilder().getBuilder(),
                    extensionRegistry);

                break;
              } // case 10
              case 18: {
                input.readMessage(
                    getManifestFieldBuilder().getBuilder(),
                    extensionRegistry);

                break;
              } // case 18
              case 26: {
                org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation m =
                    input.readMessage(
                        org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.parser(),
                        extensionRegistry);
                if (resourcesBuilder_ == null) {
                  ensureResourcesIsMutable();
                  resources_.add(m);
                } else {
                  resourcesBuilder_.addMessage(m);
                }
                break;
              } // case 26
              case 34: {
                org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation m =
                    input.readMessage(
                        org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.parser(),
                        extensionRegistry);
                if (resourceFoldersBuilder_ == null) {
                  ensureResourceFoldersIsMutable();
                  resourceFolders_.add(m);
                } else {
                  resourceFoldersBuilder_.addMessage(m);
                }
                break;
              } // case 34
              case 42: {
                kotlinTargetId_ = input.readStringRequireUtf8();

                break;
              } // case 42
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation androidJar_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> androidJarBuilder_;
      /**
       * .bazelbsp.FileLocation android_jar = 1;
       * @return Whether the androidJar field is set.
       */
      public boolean hasAndroidJar() {
        return androidJarBuilder_ != null || androidJar_ != null;
      }
      /**
       * .bazelbsp.FileLocation android_jar = 1;
       * @return The androidJar.
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getAndroidJar() {
        if (androidJarBuilder_ == null) {
          return androidJar_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance() : androidJar_;
        } else {
          return androidJarBuilder_.getMessage();
        }
      }
      /**
       * .bazelbsp.FileLocation android_jar = 1;
       */
      public Builder setAndroidJar(org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (androidJarBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          androidJar_ = value;
          onChanged();
        } else {
          androidJarBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .bazelbsp.FileLocation android_jar = 1;
       */
      public Builder setAndroidJar(
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (androidJarBuilder_ == null) {
          androidJar_ = builderForValue.build();
          onChanged();
        } else {
          androidJarBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .bazelbsp.FileLocation android_jar = 1;
       */
      public Builder mergeAndroidJar(org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (androidJarBuilder_ == null) {
          if (androidJar_ != null) {
            androidJar_ =
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.newBuilder(androidJar_).mergeFrom(value).buildPartial();
          } else {
            androidJar_ = value;
          }
          onChanged();
        } else {
          androidJarBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .bazelbsp.FileLocation android_jar = 1;
       */
      public Builder clearAndroidJar() {
        if (androidJarBuilder_ == null) {
          androidJar_ = null;
          onChanged();
        } else {
          androidJar_ = null;
          androidJarBuilder_ = null;
        }

        return this;
      }
      /**
       * .bazelbsp.FileLocation android_jar = 1;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder getAndroidJarBuilder() {
        
        onChanged();
        return getAndroidJarFieldBuilder().getBuilder();
      }
      /**
       * .bazelbsp.FileLocation android_jar = 1;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getAndroidJarOrBuilder() {
        if (androidJarBuilder_ != null) {
          return androidJarBuilder_.getMessageOrBuilder();
        } else {
          return androidJar_ == null ?
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance() : androidJar_;
        }
      }
      /**
       * .bazelbsp.FileLocation android_jar = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> 
          getAndroidJarFieldBuilder() {
        if (androidJarBuilder_ == null) {
          androidJarBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder>(
                  getAndroidJar(),
                  getParentForChildren(),
                  isClean());
          androidJar_ = null;
        }
        return androidJarBuilder_;
      }

      private org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation manifest_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> manifestBuilder_;
      /**
       * .bazelbsp.FileLocation manifest = 2;
       * @return Whether the manifest field is set.
       */
      public boolean hasManifest() {
        return manifestBuilder_ != null || manifest_ != null;
      }
      /**
       * .bazelbsp.FileLocation manifest = 2;
       * @return The manifest.
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getManifest() {
        if (manifestBuilder_ == null) {
          return manifest_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance() : manifest_;
        } else {
          return manifestBuilder_.getMessage();
        }
      }
      /**
       * .bazelbsp.FileLocation manifest = 2;
       */
      public Builder setManifest(org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (manifestBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          manifest_ = value;
          onChanged();
        } else {
          manifestBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .bazelbsp.FileLocation manifest = 2;
       */
      public Builder setManifest(
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (manifestBuilder_ == null) {
          manifest_ = builderForValue.build();
          onChanged();
        } else {
          manifestBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .bazelbsp.FileLocation manifest = 2;
       */
      public Builder mergeManifest(org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (manifestBuilder_ == null) {
          if (manifest_ != null) {
            manifest_ =
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.newBuilder(manifest_).mergeFrom(value).buildPartial();
          } else {
            manifest_ = value;
          }
          onChanged();
        } else {
          manifestBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .bazelbsp.FileLocation manifest = 2;
       */
      public Builder clearManifest() {
        if (manifestBuilder_ == null) {
          manifest_ = null;
          onChanged();
        } else {
          manifest_ = null;
          manifestBuilder_ = null;
        }

        return this;
      }
      /**
       * .bazelbsp.FileLocation manifest = 2;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder getManifestBuilder() {
        
        onChanged();
        return getManifestFieldBuilder().getBuilder();
      }
      /**
       * .bazelbsp.FileLocation manifest = 2;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getManifestOrBuilder() {
        if (manifestBuilder_ != null) {
          return manifestBuilder_.getMessageOrBuilder();
        } else {
          return manifest_ == null ?
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance() : manifest_;
        }
      }
      /**
       * .bazelbsp.FileLocation manifest = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> 
          getManifestFieldBuilder() {
        if (manifestBuilder_ == null) {
          manifestBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder>(
                  getManifest(),
                  getParentForChildren(),
                  isClean());
          manifest_ = null;
        }
        return manifestBuilder_;
      }

      private java.util.List resources_ =
        java.util.Collections.emptyList();
      private void ensureResourcesIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          resources_ = new java.util.ArrayList(resources_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> resourcesBuilder_;

      /**
       * repeated .bazelbsp.FileLocation resources = 3;
       */
      public java.util.List getResourcesList() {
        if (resourcesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(resources_);
        } else {
          return resourcesBuilder_.getMessageList();
        }
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 3;
       */
      public int getResourcesCount() {
        if (resourcesBuilder_ == null) {
          return resources_.size();
        } else {
          return resourcesBuilder_.getCount();
        }
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 3;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getResources(int index) {
        if (resourcesBuilder_ == null) {
          return resources_.get(index);
        } else {
          return resourcesBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 3;
       */
      public Builder setResources(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (resourcesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureResourcesIsMutable();
          resources_.set(index, value);
          onChanged();
        } else {
          resourcesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 3;
       */
      public Builder setResources(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (resourcesBuilder_ == null) {
          ensureResourcesIsMutable();
          resources_.set(index, builderForValue.build());
          onChanged();
        } else {
          resourcesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 3;
       */
      public Builder addResources(org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (resourcesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureResourcesIsMutable();
          resources_.add(value);
          onChanged();
        } else {
          resourcesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 3;
       */
      public Builder addResources(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (resourcesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureResourcesIsMutable();
          resources_.add(index, value);
          onChanged();
        } else {
          resourcesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 3;
       */
      public Builder addResources(
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (resourcesBuilder_ == null) {
          ensureResourcesIsMutable();
          resources_.add(builderForValue.build());
          onChanged();
        } else {
          resourcesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 3;
       */
      public Builder addResources(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (resourcesBuilder_ == null) {
          ensureResourcesIsMutable();
          resources_.add(index, builderForValue.build());
          onChanged();
        } else {
          resourcesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 3;
       */
      public Builder addAllResources(
          java.lang.Iterable values) {
        if (resourcesBuilder_ == null) {
          ensureResourcesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, resources_);
          onChanged();
        } else {
          resourcesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 3;
       */
      public Builder clearResources() {
        if (resourcesBuilder_ == null) {
          resources_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          resourcesBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 3;
       */
      public Builder removeResources(int index) {
        if (resourcesBuilder_ == null) {
          ensureResourcesIsMutable();
          resources_.remove(index);
          onChanged();
        } else {
          resourcesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 3;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder getResourcesBuilder(
          int index) {
        return getResourcesFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 3;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getResourcesOrBuilder(
          int index) {
        if (resourcesBuilder_ == null) {
          return resources_.get(index);  } else {
          return resourcesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 3;
       */
      public java.util.List 
           getResourcesOrBuilderList() {
        if (resourcesBuilder_ != null) {
          return resourcesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(resources_);
        }
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 3;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder addResourcesBuilder() {
        return getResourcesFieldBuilder().addBuilder(
            org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance());
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 3;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder addResourcesBuilder(
          int index) {
        return getResourcesFieldBuilder().addBuilder(
            index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance());
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 3;
       */
      public java.util.List 
           getResourcesBuilderList() {
        return getResourcesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> 
          getResourcesFieldBuilder() {
        if (resourcesBuilder_ == null) {
          resourcesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder>(
                  resources_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          resources_ = null;
        }
        return resourcesBuilder_;
      }

      private java.util.List resourceFolders_ =
        java.util.Collections.emptyList();
      private void ensureResourceFoldersIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          resourceFolders_ = new java.util.ArrayList(resourceFolders_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> resourceFoldersBuilder_;

      /**
       * repeated .bazelbsp.FileLocation resource_folders = 4;
       */
      public java.util.List getResourceFoldersList() {
        if (resourceFoldersBuilder_ == null) {
          return java.util.Collections.unmodifiableList(resourceFolders_);
        } else {
          return resourceFoldersBuilder_.getMessageList();
        }
      }
      /**
       * repeated .bazelbsp.FileLocation resource_folders = 4;
       */
      public int getResourceFoldersCount() {
        if (resourceFoldersBuilder_ == null) {
          return resourceFolders_.size();
        } else {
          return resourceFoldersBuilder_.getCount();
        }
      }
      /**
       * repeated .bazelbsp.FileLocation resource_folders = 4;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getResourceFolders(int index) {
        if (resourceFoldersBuilder_ == null) {
          return resourceFolders_.get(index);
        } else {
          return resourceFoldersBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .bazelbsp.FileLocation resource_folders = 4;
       */
      public Builder setResourceFolders(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (resourceFoldersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureResourceFoldersIsMutable();
          resourceFolders_.set(index, value);
          onChanged();
        } else {
          resourceFoldersBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation resource_folders = 4;
       */
      public Builder setResourceFolders(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (resourceFoldersBuilder_ == null) {
          ensureResourceFoldersIsMutable();
          resourceFolders_.set(index, builderForValue.build());
          onChanged();
        } else {
          resourceFoldersBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation resource_folders = 4;
       */
      public Builder addResourceFolders(org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (resourceFoldersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureResourceFoldersIsMutable();
          resourceFolders_.add(value);
          onChanged();
        } else {
          resourceFoldersBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation resource_folders = 4;
       */
      public Builder addResourceFolders(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (resourceFoldersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureResourceFoldersIsMutable();
          resourceFolders_.add(index, value);
          onChanged();
        } else {
          resourceFoldersBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation resource_folders = 4;
       */
      public Builder addResourceFolders(
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (resourceFoldersBuilder_ == null) {
          ensureResourceFoldersIsMutable();
          resourceFolders_.add(builderForValue.build());
          onChanged();
        } else {
          resourceFoldersBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation resource_folders = 4;
       */
      public Builder addResourceFolders(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (resourceFoldersBuilder_ == null) {
          ensureResourceFoldersIsMutable();
          resourceFolders_.add(index, builderForValue.build());
          onChanged();
        } else {
          resourceFoldersBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation resource_folders = 4;
       */
      public Builder addAllResourceFolders(
          java.lang.Iterable values) {
        if (resourceFoldersBuilder_ == null) {
          ensureResourceFoldersIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, resourceFolders_);
          onChanged();
        } else {
          resourceFoldersBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation resource_folders = 4;
       */
      public Builder clearResourceFolders() {
        if (resourceFoldersBuilder_ == null) {
          resourceFolders_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          resourceFoldersBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation resource_folders = 4;
       */
      public Builder removeResourceFolders(int index) {
        if (resourceFoldersBuilder_ == null) {
          ensureResourceFoldersIsMutable();
          resourceFolders_.remove(index);
          onChanged();
        } else {
          resourceFoldersBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation resource_folders = 4;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder getResourceFoldersBuilder(
          int index) {
        return getResourceFoldersFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .bazelbsp.FileLocation resource_folders = 4;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getResourceFoldersOrBuilder(
          int index) {
        if (resourceFoldersBuilder_ == null) {
          return resourceFolders_.get(index);  } else {
          return resourceFoldersBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .bazelbsp.FileLocation resource_folders = 4;
       */
      public java.util.List 
           getResourceFoldersOrBuilderList() {
        if (resourceFoldersBuilder_ != null) {
          return resourceFoldersBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(resourceFolders_);
        }
      }
      /**
       * repeated .bazelbsp.FileLocation resource_folders = 4;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder addResourceFoldersBuilder() {
        return getResourceFoldersFieldBuilder().addBuilder(
            org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance());
      }
      /**
       * repeated .bazelbsp.FileLocation resource_folders = 4;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder addResourceFoldersBuilder(
          int index) {
        return getResourceFoldersFieldBuilder().addBuilder(
            index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance());
      }
      /**
       * repeated .bazelbsp.FileLocation resource_folders = 4;
       */
      public java.util.List 
           getResourceFoldersBuilderList() {
        return getResourceFoldersFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> 
          getResourceFoldersFieldBuilder() {
        if (resourceFoldersBuilder_ == null) {
          resourceFoldersBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder>(
                  resourceFolders_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          resourceFolders_ = null;
        }
        return resourceFoldersBuilder_;
      }

      private java.lang.Object kotlinTargetId_ = "";
      /**
       * string kotlin_target_id = 5;
       * @return The kotlinTargetId.
       */
      public java.lang.String getKotlinTargetId() {
        java.lang.Object ref = kotlinTargetId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          kotlinTargetId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string kotlin_target_id = 5;
       * @return The bytes for kotlinTargetId.
       */
      public com.google.protobuf.ByteString
          getKotlinTargetIdBytes() {
        java.lang.Object ref = kotlinTargetId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          kotlinTargetId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string kotlin_target_id = 5;
       * @param value The kotlinTargetId to set.
       * @return This builder for chaining.
       */
      public Builder setKotlinTargetId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        kotlinTargetId_ = value;
        onChanged();
        return this;
      }
      /**
       * string kotlin_target_id = 5;
       * @return This builder for chaining.
       */
      public Builder clearKotlinTargetId() {
        
        kotlinTargetId_ = getDefaultInstance().getKotlinTargetId();
        onChanged();
        return this;
      }
      /**
       * string kotlin_target_id = 5;
       * @param value The bytes for kotlinTargetId to set.
       * @return This builder for chaining.
       */
      public Builder setKotlinTargetIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        kotlinTargetId_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:bazelbsp.AndroidTargetInfo)
    }

    // @@protoc_insertion_point(class_scope:bazelbsp.AndroidTargetInfo)
    private static final org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo();
    }

    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public AndroidTargetInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AndroidAarImportInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:bazelbsp.AndroidAarImportInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .bazelbsp.FileLocation manifest = 1;
     * @return Whether the manifest field is set.
     */
    boolean hasManifest();
    /**
     * .bazelbsp.FileLocation manifest = 1;
     * @return The manifest.
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getManifest();
    /**
     * .bazelbsp.FileLocation manifest = 1;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getManifestOrBuilder();

    /**
     * .bazelbsp.FileLocation resource_folder = 2;
     * @return Whether the resourceFolder field is set.
     */
    boolean hasResourceFolder();
    /**
     * .bazelbsp.FileLocation resource_folder = 2;
     * @return The resourceFolder.
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getResourceFolder();
    /**
     * .bazelbsp.FileLocation resource_folder = 2;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getResourceFolderOrBuilder();

    /**
     * .bazelbsp.FileLocation r_txt = 3;
     * @return Whether the rTxt field is set.
     */
    boolean hasRTxt();
    /**
     * .bazelbsp.FileLocation r_txt = 3;
     * @return The rTxt.
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getRTxt();
    /**
     * .bazelbsp.FileLocation r_txt = 3;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getRTxtOrBuilder();
  }
  /**
   * Protobuf type {@code bazelbsp.AndroidAarImportInfo}
   */
  public static final class AndroidAarImportInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:bazelbsp.AndroidAarImportInfo)
      AndroidAarImportInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AndroidAarImportInfo.newBuilder() to construct.
    private AndroidAarImportInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private AndroidAarImportInfo() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new AndroidAarImportInfo();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_AndroidAarImportInfo_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_AndroidAarImportInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo.class, org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo.Builder.class);
    }

    public static final int MANIFEST_FIELD_NUMBER = 1;
    private org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation manifest_;
    /**
     * .bazelbsp.FileLocation manifest = 1;
     * @return Whether the manifest field is set.
     */
    @java.lang.Override
    public boolean hasManifest() {
      return manifest_ != null;
    }
    /**
     * .bazelbsp.FileLocation manifest = 1;
     * @return The manifest.
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getManifest() {
      return manifest_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance() : manifest_;
    }
    /**
     * .bazelbsp.FileLocation manifest = 1;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getManifestOrBuilder() {
      return getManifest();
    }

    public static final int RESOURCE_FOLDER_FIELD_NUMBER = 2;
    private org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation resourceFolder_;
    /**
     * .bazelbsp.FileLocation resource_folder = 2;
     * @return Whether the resourceFolder field is set.
     */
    @java.lang.Override
    public boolean hasResourceFolder() {
      return resourceFolder_ != null;
    }
    /**
     * .bazelbsp.FileLocation resource_folder = 2;
     * @return The resourceFolder.
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getResourceFolder() {
      return resourceFolder_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance() : resourceFolder_;
    }
    /**
     * .bazelbsp.FileLocation resource_folder = 2;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getResourceFolderOrBuilder() {
      return getResourceFolder();
    }

    public static final int R_TXT_FIELD_NUMBER = 3;
    private org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation rTxt_;
    /**
     * .bazelbsp.FileLocation r_txt = 3;
     * @return Whether the rTxt field is set.
     */
    @java.lang.Override
    public boolean hasRTxt() {
      return rTxt_ != null;
    }
    /**
     * .bazelbsp.FileLocation r_txt = 3;
     * @return The rTxt.
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getRTxt() {
      return rTxt_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance() : rTxt_;
    }
    /**
     * .bazelbsp.FileLocation r_txt = 3;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getRTxtOrBuilder() {
      return getRTxt();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (manifest_ != null) {
        output.writeMessage(1, getManifest());
      }
      if (resourceFolder_ != null) {
        output.writeMessage(2, getResourceFolder());
      }
      if (rTxt_ != null) {
        output.writeMessage(3, getRTxt());
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (manifest_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getManifest());
      }
      if (resourceFolder_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getResourceFolder());
      }
      if (rTxt_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getRTxt());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo)) {
        return super.equals(obj);
      }
      org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo other = (org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo) obj;

      if (hasManifest() != other.hasManifest()) return false;
      if (hasManifest()) {
        if (!getManifest()
            .equals(other.getManifest())) return false;
      }
      if (hasResourceFolder() != other.hasResourceFolder()) return false;
      if (hasResourceFolder()) {
        if (!getResourceFolder()
            .equals(other.getResourceFolder())) return false;
      }
      if (hasRTxt() != other.hasRTxt()) return false;
      if (hasRTxt()) {
        if (!getRTxt()
            .equals(other.getRTxt())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasManifest()) {
        hash = (37 * hash) + MANIFEST_FIELD_NUMBER;
        hash = (53 * hash) + getManifest().hashCode();
      }
      if (hasResourceFolder()) {
        hash = (37 * hash) + RESOURCE_FOLDER_FIELD_NUMBER;
        hash = (53 * hash) + getResourceFolder().hashCode();
      }
      if (hasRTxt()) {
        hash = (37 * hash) + R_TXT_FIELD_NUMBER;
        hash = (53 * hash) + getRTxt().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo 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 org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo 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 org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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 bazelbsp.AndroidAarImportInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:bazelbsp.AndroidAarImportInfo)
        org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_AndroidAarImportInfo_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_AndroidAarImportInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo.class, org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo.Builder.class);
      }

      // Construct using org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (manifestBuilder_ == null) {
          manifest_ = null;
        } else {
          manifest_ = null;
          manifestBuilder_ = null;
        }
        if (resourceFolderBuilder_ == null) {
          resourceFolder_ = null;
        } else {
          resourceFolder_ = null;
          resourceFolderBuilder_ = null;
        }
        if (rTxtBuilder_ == null) {
          rTxt_ = null;
        } else {
          rTxt_ = null;
          rTxtBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_AndroidAarImportInfo_descriptor;
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo getDefaultInstanceForType() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo.getDefaultInstance();
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo build() {
        org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo buildPartial() {
        org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo result = new org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo(this);
        if (manifestBuilder_ == null) {
          result.manifest_ = manifest_;
        } else {
          result.manifest_ = manifestBuilder_.build();
        }
        if (resourceFolderBuilder_ == null) {
          result.resourceFolder_ = resourceFolder_;
        } else {
          result.resourceFolder_ = resourceFolderBuilder_.build();
        }
        if (rTxtBuilder_ == null) {
          result.rTxt_ = rTxt_;
        } else {
          result.rTxt_ = rTxtBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo) {
          return mergeFrom((org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo other) {
        if (other == org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo.getDefaultInstance()) return this;
        if (other.hasManifest()) {
          mergeManifest(other.getManifest());
        }
        if (other.hasResourceFolder()) {
          mergeResourceFolder(other.getResourceFolder());
        }
        if (other.hasRTxt()) {
          mergeRTxt(other.getRTxt());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    getManifestFieldBuilder().getBuilder(),
                    extensionRegistry);

                break;
              } // case 10
              case 18: {
                input.readMessage(
                    getResourceFolderFieldBuilder().getBuilder(),
                    extensionRegistry);

                break;
              } // case 18
              case 26: {
                input.readMessage(
                    getRTxtFieldBuilder().getBuilder(),
                    extensionRegistry);

                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }

      private org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation manifest_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> manifestBuilder_;
      /**
       * .bazelbsp.FileLocation manifest = 1;
       * @return Whether the manifest field is set.
       */
      public boolean hasManifest() {
        return manifestBuilder_ != null || manifest_ != null;
      }
      /**
       * .bazelbsp.FileLocation manifest = 1;
       * @return The manifest.
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getManifest() {
        if (manifestBuilder_ == null) {
          return manifest_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance() : manifest_;
        } else {
          return manifestBuilder_.getMessage();
        }
      }
      /**
       * .bazelbsp.FileLocation manifest = 1;
       */
      public Builder setManifest(org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (manifestBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          manifest_ = value;
          onChanged();
        } else {
          manifestBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .bazelbsp.FileLocation manifest = 1;
       */
      public Builder setManifest(
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (manifestBuilder_ == null) {
          manifest_ = builderForValue.build();
          onChanged();
        } else {
          manifestBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .bazelbsp.FileLocation manifest = 1;
       */
      public Builder mergeManifest(org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (manifestBuilder_ == null) {
          if (manifest_ != null) {
            manifest_ =
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.newBuilder(manifest_).mergeFrom(value).buildPartial();
          } else {
            manifest_ = value;
          }
          onChanged();
        } else {
          manifestBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .bazelbsp.FileLocation manifest = 1;
       */
      public Builder clearManifest() {
        if (manifestBuilder_ == null) {
          manifest_ = null;
          onChanged();
        } else {
          manifest_ = null;
          manifestBuilder_ = null;
        }

        return this;
      }
      /**
       * .bazelbsp.FileLocation manifest = 1;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder getManifestBuilder() {
        
        onChanged();
        return getManifestFieldBuilder().getBuilder();
      }
      /**
       * .bazelbsp.FileLocation manifest = 1;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getManifestOrBuilder() {
        if (manifestBuilder_ != null) {
          return manifestBuilder_.getMessageOrBuilder();
        } else {
          return manifest_ == null ?
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance() : manifest_;
        }
      }
      /**
       * .bazelbsp.FileLocation manifest = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> 
          getManifestFieldBuilder() {
        if (manifestBuilder_ == null) {
          manifestBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder>(
                  getManifest(),
                  getParentForChildren(),
                  isClean());
          manifest_ = null;
        }
        return manifestBuilder_;
      }

      private org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation resourceFolder_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> resourceFolderBuilder_;
      /**
       * .bazelbsp.FileLocation resource_folder = 2;
       * @return Whether the resourceFolder field is set.
       */
      public boolean hasResourceFolder() {
        return resourceFolderBuilder_ != null || resourceFolder_ != null;
      }
      /**
       * .bazelbsp.FileLocation resource_folder = 2;
       * @return The resourceFolder.
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getResourceFolder() {
        if (resourceFolderBuilder_ == null) {
          return resourceFolder_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance() : resourceFolder_;
        } else {
          return resourceFolderBuilder_.getMessage();
        }
      }
      /**
       * .bazelbsp.FileLocation resource_folder = 2;
       */
      public Builder setResourceFolder(org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (resourceFolderBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          resourceFolder_ = value;
          onChanged();
        } else {
          resourceFolderBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .bazelbsp.FileLocation resource_folder = 2;
       */
      public Builder setResourceFolder(
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (resourceFolderBuilder_ == null) {
          resourceFolder_ = builderForValue.build();
          onChanged();
        } else {
          resourceFolderBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .bazelbsp.FileLocation resource_folder = 2;
       */
      public Builder mergeResourceFolder(org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (resourceFolderBuilder_ == null) {
          if (resourceFolder_ != null) {
            resourceFolder_ =
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.newBuilder(resourceFolder_).mergeFrom(value).buildPartial();
          } else {
            resourceFolder_ = value;
          }
          onChanged();
        } else {
          resourceFolderBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .bazelbsp.FileLocation resource_folder = 2;
       */
      public Builder clearResourceFolder() {
        if (resourceFolderBuilder_ == null) {
          resourceFolder_ = null;
          onChanged();
        } else {
          resourceFolder_ = null;
          resourceFolderBuilder_ = null;
        }

        return this;
      }
      /**
       * .bazelbsp.FileLocation resource_folder = 2;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder getResourceFolderBuilder() {
        
        onChanged();
        return getResourceFolderFieldBuilder().getBuilder();
      }
      /**
       * .bazelbsp.FileLocation resource_folder = 2;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getResourceFolderOrBuilder() {
        if (resourceFolderBuilder_ != null) {
          return resourceFolderBuilder_.getMessageOrBuilder();
        } else {
          return resourceFolder_ == null ?
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance() : resourceFolder_;
        }
      }
      /**
       * .bazelbsp.FileLocation resource_folder = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> 
          getResourceFolderFieldBuilder() {
        if (resourceFolderBuilder_ == null) {
          resourceFolderBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder>(
                  getResourceFolder(),
                  getParentForChildren(),
                  isClean());
          resourceFolder_ = null;
        }
        return resourceFolderBuilder_;
      }

      private org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation rTxt_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> rTxtBuilder_;
      /**
       * .bazelbsp.FileLocation r_txt = 3;
       * @return Whether the rTxt field is set.
       */
      public boolean hasRTxt() {
        return rTxtBuilder_ != null || rTxt_ != null;
      }
      /**
       * .bazelbsp.FileLocation r_txt = 3;
       * @return The rTxt.
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getRTxt() {
        if (rTxtBuilder_ == null) {
          return rTxt_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance() : rTxt_;
        } else {
          return rTxtBuilder_.getMessage();
        }
      }
      /**
       * .bazelbsp.FileLocation r_txt = 3;
       */
      public Builder setRTxt(org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (rTxtBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          rTxt_ = value;
          onChanged();
        } else {
          rTxtBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .bazelbsp.FileLocation r_txt = 3;
       */
      public Builder setRTxt(
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (rTxtBuilder_ == null) {
          rTxt_ = builderForValue.build();
          onChanged();
        } else {
          rTxtBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .bazelbsp.FileLocation r_txt = 3;
       */
      public Builder mergeRTxt(org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (rTxtBuilder_ == null) {
          if (rTxt_ != null) {
            rTxt_ =
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.newBuilder(rTxt_).mergeFrom(value).buildPartial();
          } else {
            rTxt_ = value;
          }
          onChanged();
        } else {
          rTxtBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .bazelbsp.FileLocation r_txt = 3;
       */
      public Builder clearRTxt() {
        if (rTxtBuilder_ == null) {
          rTxt_ = null;
          onChanged();
        } else {
          rTxt_ = null;
          rTxtBuilder_ = null;
        }

        return this;
      }
      /**
       * .bazelbsp.FileLocation r_txt = 3;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder getRTxtBuilder() {
        
        onChanged();
        return getRTxtFieldBuilder().getBuilder();
      }
      /**
       * .bazelbsp.FileLocation r_txt = 3;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getRTxtOrBuilder() {
        if (rTxtBuilder_ != null) {
          return rTxtBuilder_.getMessageOrBuilder();
        } else {
          return rTxt_ == null ?
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance() : rTxt_;
        }
      }
      /**
       * .bazelbsp.FileLocation r_txt = 3;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> 
          getRTxtFieldBuilder() {
        if (rTxtBuilder_ == null) {
          rTxtBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder>(
                  getRTxt(),
                  getParentForChildren(),
                  isClean());
          rTxt_ = null;
        }
        return rTxtBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:bazelbsp.AndroidAarImportInfo)
    }

    // @@protoc_insertion_point(class_scope:bazelbsp.AndroidAarImportInfo)
    private static final org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo();
    }

    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public AndroidAarImportInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface TargetInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:bazelbsp.TargetInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * string id = 10;
     * @return The id.
     */
    java.lang.String getId();
    /**
     * string id = 10;
     * @return The bytes for id.
     */
    com.google.protobuf.ByteString
        getIdBytes();

    /**
     * string kind = 20;
     * @return The kind.
     */
    java.lang.String getKind();
    /**
     * string kind = 20;
     * @return The bytes for kind.
     */
    com.google.protobuf.ByteString
        getKindBytes();

    /**
     * repeated string tags = 30;
     * @return A list containing the tags.
     */
    java.util.List
        getTagsList();
    /**
     * repeated string tags = 30;
     * @return The count of tags.
     */
    int getTagsCount();
    /**
     * repeated string tags = 30;
     * @param index The index of the element to return.
     * @return The tags at the given index.
     */
    java.lang.String getTags(int index);
    /**
     * repeated string tags = 30;
     * @param index The index of the value to return.
     * @return The bytes of the tags at the given index.
     */
    com.google.protobuf.ByteString
        getTagsBytes(int index);

    /**
     * repeated .bazelbsp.Dependency dependencies = 40;
     */
    java.util.List 
        getDependenciesList();
    /**
     * repeated .bazelbsp.Dependency dependencies = 40;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency getDependencies(int index);
    /**
     * repeated .bazelbsp.Dependency dependencies = 40;
     */
    int getDependenciesCount();
    /**
     * repeated .bazelbsp.Dependency dependencies = 40;
     */
    java.util.List 
        getDependenciesOrBuilderList();
    /**
     * repeated .bazelbsp.Dependency dependencies = 40;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.DependencyOrBuilder getDependenciesOrBuilder(
        int index);

    /**
     * repeated .bazelbsp.FileLocation sources = 50;
     */
    java.util.List 
        getSourcesList();
    /**
     * repeated .bazelbsp.FileLocation sources = 50;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getSources(int index);
    /**
     * repeated .bazelbsp.FileLocation sources = 50;
     */
    int getSourcesCount();
    /**
     * repeated .bazelbsp.FileLocation sources = 50;
     */
    java.util.List 
        getSourcesOrBuilderList();
    /**
     * repeated .bazelbsp.FileLocation sources = 50;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getSourcesOrBuilder(
        int index);

    /**
     * repeated .bazelbsp.FileLocation resources = 60;
     */
    java.util.List 
        getResourcesList();
    /**
     * repeated .bazelbsp.FileLocation resources = 60;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getResources(int index);
    /**
     * repeated .bazelbsp.FileLocation resources = 60;
     */
    int getResourcesCount();
    /**
     * repeated .bazelbsp.FileLocation resources = 60;
     */
    java.util.List 
        getResourcesOrBuilderList();
    /**
     * repeated .bazelbsp.FileLocation resources = 60;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getResourcesOrBuilder(
        int index);

    /**
     * map<string, string> env = 70;
     */
    int getEnvCount();
    /**
     * map<string, string> env = 70;
     */
    boolean containsEnv(
        java.lang.String key);
    /**
     * Use {@link #getEnvMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map
    getEnv();
    /**
     * map<string, string> env = 70;
     */
    java.util.Map
    getEnvMap();
    /**
     * map<string, string> env = 70;
     */

    /* nullable */
java.lang.String getEnvOrDefault(
        java.lang.String key,
        /* nullable */
java.lang.String defaultValue);
    /**
     * map<string, string> env = 70;
     */

    java.lang.String getEnvOrThrow(
        java.lang.String key);

    /**
     * repeated string env_inherit = 80;
     * @return A list containing the envInherit.
     */
    java.util.List
        getEnvInheritList();
    /**
     * repeated string env_inherit = 80;
     * @return The count of envInherit.
     */
    int getEnvInheritCount();
    /**
     * repeated string env_inherit = 80;
     * @param index The index of the element to return.
     * @return The envInherit at the given index.
     */
    java.lang.String getEnvInherit(int index);
    /**
     * repeated string env_inherit = 80;
     * @param index The index of the value to return.
     * @return The bytes of the envInherit at the given index.
     */
    com.google.protobuf.ByteString
        getEnvInheritBytes(int index);

    /**
     * .bazelbsp.JvmTargetInfo jvm_target_info = 1000;
     * @return Whether the jvmTargetInfo field is set.
     */
    boolean hasJvmTargetInfo();
    /**
     * .bazelbsp.JvmTargetInfo jvm_target_info = 1000;
     * @return The jvmTargetInfo.
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo getJvmTargetInfo();
    /**
     * .bazelbsp.JvmTargetInfo jvm_target_info = 1000;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfoOrBuilder getJvmTargetInfoOrBuilder();

    /**
     * .bazelbsp.JavaToolchainInfo java_toolchain_info = 2000;
     * @return Whether the javaToolchainInfo field is set.
     */
    boolean hasJavaToolchainInfo();
    /**
     * .bazelbsp.JavaToolchainInfo java_toolchain_info = 2000;
     * @return The javaToolchainInfo.
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo getJavaToolchainInfo();
    /**
     * .bazelbsp.JavaToolchainInfo java_toolchain_info = 2000;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfoOrBuilder getJavaToolchainInfoOrBuilder();

    /**
     * .bazelbsp.JavaRuntimeInfo java_runtime_info = 3000;
     * @return Whether the javaRuntimeInfo field is set.
     */
    boolean hasJavaRuntimeInfo();
    /**
     * .bazelbsp.JavaRuntimeInfo java_runtime_info = 3000;
     * @return The javaRuntimeInfo.
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo getJavaRuntimeInfo();
    /**
     * .bazelbsp.JavaRuntimeInfo java_runtime_info = 3000;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfoOrBuilder getJavaRuntimeInfoOrBuilder();

    /**
     * .bazelbsp.ScalaTargetInfo scala_target_info = 4000;
     * @return Whether the scalaTargetInfo field is set.
     */
    boolean hasScalaTargetInfo();
    /**
     * .bazelbsp.ScalaTargetInfo scala_target_info = 4000;
     * @return The scalaTargetInfo.
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo getScalaTargetInfo();
    /**
     * .bazelbsp.ScalaTargetInfo scala_target_info = 4000;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfoOrBuilder getScalaTargetInfoOrBuilder();

    /**
     * .bazelbsp.ScalaToolchainInfo scala_toolchain_info = 5000;
     * @return Whether the scalaToolchainInfo field is set.
     */
    boolean hasScalaToolchainInfo();
    /**
     * .bazelbsp.ScalaToolchainInfo scala_toolchain_info = 5000;
     * @return The scalaToolchainInfo.
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo getScalaToolchainInfo();
    /**
     * .bazelbsp.ScalaToolchainInfo scala_toolchain_info = 5000;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfoOrBuilder getScalaToolchainInfoOrBuilder();

    /**
     * .bazelbsp.CppTargetInfo cpp_target_info = 6000;
     * @return Whether the cppTargetInfo field is set.
     */
    boolean hasCppTargetInfo();
    /**
     * .bazelbsp.CppTargetInfo cpp_target_info = 6000;
     * @return The cppTargetInfo.
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo getCppTargetInfo();
    /**
     * .bazelbsp.CppTargetInfo cpp_target_info = 6000;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfoOrBuilder getCppTargetInfoOrBuilder();

    /**
     * .bazelbsp.KotlinTargetInfo kotlin_target_info = 7000;
     * @return Whether the kotlinTargetInfo field is set.
     */
    boolean hasKotlinTargetInfo();
    /**
     * .bazelbsp.KotlinTargetInfo kotlin_target_info = 7000;
     * @return The kotlinTargetInfo.
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo getKotlinTargetInfo();
    /**
     * .bazelbsp.KotlinTargetInfo kotlin_target_info = 7000;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfoOrBuilder getKotlinTargetInfoOrBuilder();

    /**
     * .bazelbsp.PythonTargetInfo python_target_info = 8000;
     * @return Whether the pythonTargetInfo field is set.
     */
    boolean hasPythonTargetInfo();
    /**
     * .bazelbsp.PythonTargetInfo python_target_info = 8000;
     * @return The pythonTargetInfo.
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo getPythonTargetInfo();
    /**
     * .bazelbsp.PythonTargetInfo python_target_info = 8000;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfoOrBuilder getPythonTargetInfoOrBuilder();

    /**
     * .bazelbsp.RustCrateInfo rust_crate_info = 9000;
     * @return Whether the rustCrateInfo field is set.
     */
    boolean hasRustCrateInfo();
    /**
     * .bazelbsp.RustCrateInfo rust_crate_info = 9000;
     * @return The rustCrateInfo.
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo getRustCrateInfo();
    /**
     * .bazelbsp.RustCrateInfo rust_crate_info = 9000;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfoOrBuilder getRustCrateInfoOrBuilder();

    /**
     * .bazelbsp.AndroidTargetInfo android_target_info = 10000;
     * @return Whether the androidTargetInfo field is set.
     */
    boolean hasAndroidTargetInfo();
    /**
     * .bazelbsp.AndroidTargetInfo android_target_info = 10000;
     * @return The androidTargetInfo.
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo getAndroidTargetInfo();
    /**
     * .bazelbsp.AndroidTargetInfo android_target_info = 10000;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfoOrBuilder getAndroidTargetInfoOrBuilder();

    /**
     * .bazelbsp.AndroidAarImportInfo android_aar_import_info = 11000;
     * @return Whether the androidAarImportInfo field is set.
     */
    boolean hasAndroidAarImportInfo();
    /**
     * .bazelbsp.AndroidAarImportInfo android_aar_import_info = 11000;
     * @return The androidAarImportInfo.
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo getAndroidAarImportInfo();
    /**
     * .bazelbsp.AndroidAarImportInfo android_aar_import_info = 11000;
     */
    org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfoOrBuilder getAndroidAarImportInfoOrBuilder();
  }
  /**
   * Protobuf type {@code bazelbsp.TargetInfo}
   */
  public static final class TargetInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:bazelbsp.TargetInfo)
      TargetInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TargetInfo.newBuilder() to construct.
    private TargetInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private TargetInfo() {
      id_ = "";
      kind_ = "";
      tags_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      dependencies_ = java.util.Collections.emptyList();
      sources_ = java.util.Collections.emptyList();
      resources_ = java.util.Collections.emptyList();
      envInherit_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new TargetInfo();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_TargetInfo_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 70:
          return internalGetEnv();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_TargetInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo.class, org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo.Builder.class);
    }

    public static final int ID_FIELD_NUMBER = 10;
    private volatile java.lang.Object id_;
    /**
     * string id = 10;
     * @return The id.
     */
    @java.lang.Override
    public java.lang.String getId() {
      java.lang.Object ref = id_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        id_ = s;
        return s;
      }
    }
    /**
     * string id = 10;
     * @return The bytes for id.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getIdBytes() {
      java.lang.Object ref = id_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        id_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int KIND_FIELD_NUMBER = 20;
    private volatile java.lang.Object kind_;
    /**
     * string kind = 20;
     * @return The kind.
     */
    @java.lang.Override
    public java.lang.String getKind() {
      java.lang.Object ref = kind_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        kind_ = s;
        return s;
      }
    }
    /**
     * string kind = 20;
     * @return The bytes for kind.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getKindBytes() {
      java.lang.Object ref = kind_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        kind_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TAGS_FIELD_NUMBER = 30;
    private com.google.protobuf.LazyStringList tags_;
    /**
     * repeated string tags = 30;
     * @return A list containing the tags.
     */
    public com.google.protobuf.ProtocolStringList
        getTagsList() {
      return tags_;
    }
    /**
     * repeated string tags = 30;
     * @return The count of tags.
     */
    public int getTagsCount() {
      return tags_.size();
    }
    /**
     * repeated string tags = 30;
     * @param index The index of the element to return.
     * @return The tags at the given index.
     */
    public java.lang.String getTags(int index) {
      return tags_.get(index);
    }
    /**
     * repeated string tags = 30;
     * @param index The index of the value to return.
     * @return The bytes of the tags at the given index.
     */
    public com.google.protobuf.ByteString
        getTagsBytes(int index) {
      return tags_.getByteString(index);
    }

    public static final int DEPENDENCIES_FIELD_NUMBER = 40;
    private java.util.List dependencies_;
    /**
     * repeated .bazelbsp.Dependency dependencies = 40;
     */
    @java.lang.Override
    public java.util.List getDependenciesList() {
      return dependencies_;
    }
    /**
     * repeated .bazelbsp.Dependency dependencies = 40;
     */
    @java.lang.Override
    public java.util.List 
        getDependenciesOrBuilderList() {
      return dependencies_;
    }
    /**
     * repeated .bazelbsp.Dependency dependencies = 40;
     */
    @java.lang.Override
    public int getDependenciesCount() {
      return dependencies_.size();
    }
    /**
     * repeated .bazelbsp.Dependency dependencies = 40;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency getDependencies(int index) {
      return dependencies_.get(index);
    }
    /**
     * repeated .bazelbsp.Dependency dependencies = 40;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.DependencyOrBuilder getDependenciesOrBuilder(
        int index) {
      return dependencies_.get(index);
    }

    public static final int SOURCES_FIELD_NUMBER = 50;
    private java.util.List sources_;
    /**
     * repeated .bazelbsp.FileLocation sources = 50;
     */
    @java.lang.Override
    public java.util.List getSourcesList() {
      return sources_;
    }
    /**
     * repeated .bazelbsp.FileLocation sources = 50;
     */
    @java.lang.Override
    public java.util.List 
        getSourcesOrBuilderList() {
      return sources_;
    }
    /**
     * repeated .bazelbsp.FileLocation sources = 50;
     */
    @java.lang.Override
    public int getSourcesCount() {
      return sources_.size();
    }
    /**
     * repeated .bazelbsp.FileLocation sources = 50;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getSources(int index) {
      return sources_.get(index);
    }
    /**
     * repeated .bazelbsp.FileLocation sources = 50;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getSourcesOrBuilder(
        int index) {
      return sources_.get(index);
    }

    public static final int RESOURCES_FIELD_NUMBER = 60;
    private java.util.List resources_;
    /**
     * repeated .bazelbsp.FileLocation resources = 60;
     */
    @java.lang.Override
    public java.util.List getResourcesList() {
      return resources_;
    }
    /**
     * repeated .bazelbsp.FileLocation resources = 60;
     */
    @java.lang.Override
    public java.util.List 
        getResourcesOrBuilderList() {
      return resources_;
    }
    /**
     * repeated .bazelbsp.FileLocation resources = 60;
     */
    @java.lang.Override
    public int getResourcesCount() {
      return resources_.size();
    }
    /**
     * repeated .bazelbsp.FileLocation resources = 60;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getResources(int index) {
      return resources_.get(index);
    }
    /**
     * repeated .bazelbsp.FileLocation resources = 60;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getResourcesOrBuilder(
        int index) {
      return resources_.get(index);
    }

    public static final int ENV_FIELD_NUMBER = 70;
    private static final class EnvDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.String, java.lang.String> defaultEntry =
              com.google.protobuf.MapEntry
              .newDefaultInstance(
                  org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_TargetInfo_EnvEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    private com.google.protobuf.MapField<
        java.lang.String, java.lang.String> env_;
    private com.google.protobuf.MapField
    internalGetEnv() {
      if (env_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            EnvDefaultEntryHolder.defaultEntry);
      }
      return env_;
    }

    public int getEnvCount() {
      return internalGetEnv().getMap().size();
    }
    /**
     * map<string, string> env = 70;
     */

    @java.lang.Override
    public boolean containsEnv(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      return internalGetEnv().getMap().containsKey(key);
    }
    /**
     * Use {@link #getEnvMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map getEnv() {
      return getEnvMap();
    }
    /**
     * map<string, string> env = 70;
     */
    @java.lang.Override

    public java.util.Map getEnvMap() {
      return internalGetEnv().getMap();
    }
    /**
     * map<string, string> env = 70;
     */
    @java.lang.Override

    public java.lang.String getEnvOrDefault(
        java.lang.String key,
        java.lang.String defaultValue) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map map =
          internalGetEnv().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * map<string, string> env = 70;
     */
    @java.lang.Override

    public java.lang.String getEnvOrThrow(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map map =
          internalGetEnv().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int ENV_INHERIT_FIELD_NUMBER = 80;
    private com.google.protobuf.LazyStringList envInherit_;
    /**
     * repeated string env_inherit = 80;
     * @return A list containing the envInherit.
     */
    public com.google.protobuf.ProtocolStringList
        getEnvInheritList() {
      return envInherit_;
    }
    /**
     * repeated string env_inherit = 80;
     * @return The count of envInherit.
     */
    public int getEnvInheritCount() {
      return envInherit_.size();
    }
    /**
     * repeated string env_inherit = 80;
     * @param index The index of the element to return.
     * @return The envInherit at the given index.
     */
    public java.lang.String getEnvInherit(int index) {
      return envInherit_.get(index);
    }
    /**
     * repeated string env_inherit = 80;
     * @param index The index of the value to return.
     * @return The bytes of the envInherit at the given index.
     */
    public com.google.protobuf.ByteString
        getEnvInheritBytes(int index) {
      return envInherit_.getByteString(index);
    }

    public static final int JVM_TARGET_INFO_FIELD_NUMBER = 1000;
    private org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo jvmTargetInfo_;
    /**
     * .bazelbsp.JvmTargetInfo jvm_target_info = 1000;
     * @return Whether the jvmTargetInfo field is set.
     */
    @java.lang.Override
    public boolean hasJvmTargetInfo() {
      return jvmTargetInfo_ != null;
    }
    /**
     * .bazelbsp.JvmTargetInfo jvm_target_info = 1000;
     * @return The jvmTargetInfo.
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo getJvmTargetInfo() {
      return jvmTargetInfo_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo.getDefaultInstance() : jvmTargetInfo_;
    }
    /**
     * .bazelbsp.JvmTargetInfo jvm_target_info = 1000;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfoOrBuilder getJvmTargetInfoOrBuilder() {
      return getJvmTargetInfo();
    }

    public static final int JAVA_TOOLCHAIN_INFO_FIELD_NUMBER = 2000;
    private org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo javaToolchainInfo_;
    /**
     * .bazelbsp.JavaToolchainInfo java_toolchain_info = 2000;
     * @return Whether the javaToolchainInfo field is set.
     */
    @java.lang.Override
    public boolean hasJavaToolchainInfo() {
      return javaToolchainInfo_ != null;
    }
    /**
     * .bazelbsp.JavaToolchainInfo java_toolchain_info = 2000;
     * @return The javaToolchainInfo.
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo getJavaToolchainInfo() {
      return javaToolchainInfo_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo.getDefaultInstance() : javaToolchainInfo_;
    }
    /**
     * .bazelbsp.JavaToolchainInfo java_toolchain_info = 2000;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfoOrBuilder getJavaToolchainInfoOrBuilder() {
      return getJavaToolchainInfo();
    }

    public static final int JAVA_RUNTIME_INFO_FIELD_NUMBER = 3000;
    private org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo javaRuntimeInfo_;
    /**
     * .bazelbsp.JavaRuntimeInfo java_runtime_info = 3000;
     * @return Whether the javaRuntimeInfo field is set.
     */
    @java.lang.Override
    public boolean hasJavaRuntimeInfo() {
      return javaRuntimeInfo_ != null;
    }
    /**
     * .bazelbsp.JavaRuntimeInfo java_runtime_info = 3000;
     * @return The javaRuntimeInfo.
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo getJavaRuntimeInfo() {
      return javaRuntimeInfo_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo.getDefaultInstance() : javaRuntimeInfo_;
    }
    /**
     * .bazelbsp.JavaRuntimeInfo java_runtime_info = 3000;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfoOrBuilder getJavaRuntimeInfoOrBuilder() {
      return getJavaRuntimeInfo();
    }

    public static final int SCALA_TARGET_INFO_FIELD_NUMBER = 4000;
    private org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo scalaTargetInfo_;
    /**
     * .bazelbsp.ScalaTargetInfo scala_target_info = 4000;
     * @return Whether the scalaTargetInfo field is set.
     */
    @java.lang.Override
    public boolean hasScalaTargetInfo() {
      return scalaTargetInfo_ != null;
    }
    /**
     * .bazelbsp.ScalaTargetInfo scala_target_info = 4000;
     * @return The scalaTargetInfo.
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo getScalaTargetInfo() {
      return scalaTargetInfo_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo.getDefaultInstance() : scalaTargetInfo_;
    }
    /**
     * .bazelbsp.ScalaTargetInfo scala_target_info = 4000;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfoOrBuilder getScalaTargetInfoOrBuilder() {
      return getScalaTargetInfo();
    }

    public static final int SCALA_TOOLCHAIN_INFO_FIELD_NUMBER = 5000;
    private org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo scalaToolchainInfo_;
    /**
     * .bazelbsp.ScalaToolchainInfo scala_toolchain_info = 5000;
     * @return Whether the scalaToolchainInfo field is set.
     */
    @java.lang.Override
    public boolean hasScalaToolchainInfo() {
      return scalaToolchainInfo_ != null;
    }
    /**
     * .bazelbsp.ScalaToolchainInfo scala_toolchain_info = 5000;
     * @return The scalaToolchainInfo.
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo getScalaToolchainInfo() {
      return scalaToolchainInfo_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo.getDefaultInstance() : scalaToolchainInfo_;
    }
    /**
     * .bazelbsp.ScalaToolchainInfo scala_toolchain_info = 5000;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfoOrBuilder getScalaToolchainInfoOrBuilder() {
      return getScalaToolchainInfo();
    }

    public static final int CPP_TARGET_INFO_FIELD_NUMBER = 6000;
    private org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo cppTargetInfo_;
    /**
     * .bazelbsp.CppTargetInfo cpp_target_info = 6000;
     * @return Whether the cppTargetInfo field is set.
     */
    @java.lang.Override
    public boolean hasCppTargetInfo() {
      return cppTargetInfo_ != null;
    }
    /**
     * .bazelbsp.CppTargetInfo cpp_target_info = 6000;
     * @return The cppTargetInfo.
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo getCppTargetInfo() {
      return cppTargetInfo_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo.getDefaultInstance() : cppTargetInfo_;
    }
    /**
     * .bazelbsp.CppTargetInfo cpp_target_info = 6000;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfoOrBuilder getCppTargetInfoOrBuilder() {
      return getCppTargetInfo();
    }

    public static final int KOTLIN_TARGET_INFO_FIELD_NUMBER = 7000;
    private org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo kotlinTargetInfo_;
    /**
     * .bazelbsp.KotlinTargetInfo kotlin_target_info = 7000;
     * @return Whether the kotlinTargetInfo field is set.
     */
    @java.lang.Override
    public boolean hasKotlinTargetInfo() {
      return kotlinTargetInfo_ != null;
    }
    /**
     * .bazelbsp.KotlinTargetInfo kotlin_target_info = 7000;
     * @return The kotlinTargetInfo.
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo getKotlinTargetInfo() {
      return kotlinTargetInfo_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo.getDefaultInstance() : kotlinTargetInfo_;
    }
    /**
     * .bazelbsp.KotlinTargetInfo kotlin_target_info = 7000;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfoOrBuilder getKotlinTargetInfoOrBuilder() {
      return getKotlinTargetInfo();
    }

    public static final int PYTHON_TARGET_INFO_FIELD_NUMBER = 8000;
    private org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo pythonTargetInfo_;
    /**
     * .bazelbsp.PythonTargetInfo python_target_info = 8000;
     * @return Whether the pythonTargetInfo field is set.
     */
    @java.lang.Override
    public boolean hasPythonTargetInfo() {
      return pythonTargetInfo_ != null;
    }
    /**
     * .bazelbsp.PythonTargetInfo python_target_info = 8000;
     * @return The pythonTargetInfo.
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo getPythonTargetInfo() {
      return pythonTargetInfo_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo.getDefaultInstance() : pythonTargetInfo_;
    }
    /**
     * .bazelbsp.PythonTargetInfo python_target_info = 8000;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfoOrBuilder getPythonTargetInfoOrBuilder() {
      return getPythonTargetInfo();
    }

    public static final int RUST_CRATE_INFO_FIELD_NUMBER = 9000;
    private org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo rustCrateInfo_;
    /**
     * .bazelbsp.RustCrateInfo rust_crate_info = 9000;
     * @return Whether the rustCrateInfo field is set.
     */
    @java.lang.Override
    public boolean hasRustCrateInfo() {
      return rustCrateInfo_ != null;
    }
    /**
     * .bazelbsp.RustCrateInfo rust_crate_info = 9000;
     * @return The rustCrateInfo.
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo getRustCrateInfo() {
      return rustCrateInfo_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo.getDefaultInstance() : rustCrateInfo_;
    }
    /**
     * .bazelbsp.RustCrateInfo rust_crate_info = 9000;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfoOrBuilder getRustCrateInfoOrBuilder() {
      return getRustCrateInfo();
    }

    public static final int ANDROID_TARGET_INFO_FIELD_NUMBER = 10000;
    private org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo androidTargetInfo_;
    /**
     * .bazelbsp.AndroidTargetInfo android_target_info = 10000;
     * @return Whether the androidTargetInfo field is set.
     */
    @java.lang.Override
    public boolean hasAndroidTargetInfo() {
      return androidTargetInfo_ != null;
    }
    /**
     * .bazelbsp.AndroidTargetInfo android_target_info = 10000;
     * @return The androidTargetInfo.
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo getAndroidTargetInfo() {
      return androidTargetInfo_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo.getDefaultInstance() : androidTargetInfo_;
    }
    /**
     * .bazelbsp.AndroidTargetInfo android_target_info = 10000;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfoOrBuilder getAndroidTargetInfoOrBuilder() {
      return getAndroidTargetInfo();
    }

    public static final int ANDROID_AAR_IMPORT_INFO_FIELD_NUMBER = 11000;
    private org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo androidAarImportInfo_;
    /**
     * .bazelbsp.AndroidAarImportInfo android_aar_import_info = 11000;
     * @return Whether the androidAarImportInfo field is set.
     */
    @java.lang.Override
    public boolean hasAndroidAarImportInfo() {
      return androidAarImportInfo_ != null;
    }
    /**
     * .bazelbsp.AndroidAarImportInfo android_aar_import_info = 11000;
     * @return The androidAarImportInfo.
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo getAndroidAarImportInfo() {
      return androidAarImportInfo_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo.getDefaultInstance() : androidAarImportInfo_;
    }
    /**
     * .bazelbsp.AndroidAarImportInfo android_aar_import_info = 11000;
     */
    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfoOrBuilder getAndroidAarImportInfoOrBuilder() {
      return getAndroidAarImportInfo();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, id_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(kind_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 20, kind_);
      }
      for (int i = 0; i < tags_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 30, tags_.getRaw(i));
      }
      for (int i = 0; i < dependencies_.size(); i++) {
        output.writeMessage(40, dependencies_.get(i));
      }
      for (int i = 0; i < sources_.size(); i++) {
        output.writeMessage(50, sources_.get(i));
      }
      for (int i = 0; i < resources_.size(); i++) {
        output.writeMessage(60, resources_.get(i));
      }
      com.google.protobuf.GeneratedMessageV3
        .serializeStringMapTo(
          output,
          internalGetEnv(),
          EnvDefaultEntryHolder.defaultEntry,
          70);
      for (int i = 0; i < envInherit_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 80, envInherit_.getRaw(i));
      }
      if (jvmTargetInfo_ != null) {
        output.writeMessage(1000, getJvmTargetInfo());
      }
      if (javaToolchainInfo_ != null) {
        output.writeMessage(2000, getJavaToolchainInfo());
      }
      if (javaRuntimeInfo_ != null) {
        output.writeMessage(3000, getJavaRuntimeInfo());
      }
      if (scalaTargetInfo_ != null) {
        output.writeMessage(4000, getScalaTargetInfo());
      }
      if (scalaToolchainInfo_ != null) {
        output.writeMessage(5000, getScalaToolchainInfo());
      }
      if (cppTargetInfo_ != null) {
        output.writeMessage(6000, getCppTargetInfo());
      }
      if (kotlinTargetInfo_ != null) {
        output.writeMessage(7000, getKotlinTargetInfo());
      }
      if (pythonTargetInfo_ != null) {
        output.writeMessage(8000, getPythonTargetInfo());
      }
      if (rustCrateInfo_ != null) {
        output.writeMessage(9000, getRustCrateInfo());
      }
      if (androidTargetInfo_ != null) {
        output.writeMessage(10000, getAndroidTargetInfo());
      }
      if (androidAarImportInfo_ != null) {
        output.writeMessage(11000, getAndroidAarImportInfo());
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, id_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(kind_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(20, kind_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < tags_.size(); i++) {
          dataSize += computeStringSizeNoTag(tags_.getRaw(i));
        }
        size += dataSize;
        size += 2 * getTagsList().size();
      }
      for (int i = 0; i < dependencies_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(40, dependencies_.get(i));
      }
      for (int i = 0; i < sources_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(50, sources_.get(i));
      }
      for (int i = 0; i < resources_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(60, resources_.get(i));
      }
      for (java.util.Map.Entry entry
           : internalGetEnv().getMap().entrySet()) {
        com.google.protobuf.MapEntry
        env__ = EnvDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(70, env__);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < envInherit_.size(); i++) {
          dataSize += computeStringSizeNoTag(envInherit_.getRaw(i));
        }
        size += dataSize;
        size += 2 * getEnvInheritList().size();
      }
      if (jvmTargetInfo_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1000, getJvmTargetInfo());
      }
      if (javaToolchainInfo_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2000, getJavaToolchainInfo());
      }
      if (javaRuntimeInfo_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3000, getJavaRuntimeInfo());
      }
      if (scalaTargetInfo_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4000, getScalaTargetInfo());
      }
      if (scalaToolchainInfo_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5000, getScalaToolchainInfo());
      }
      if (cppTargetInfo_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6000, getCppTargetInfo());
      }
      if (kotlinTargetInfo_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7000, getKotlinTargetInfo());
      }
      if (pythonTargetInfo_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8000, getPythonTargetInfo());
      }
      if (rustCrateInfo_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9000, getRustCrateInfo());
      }
      if (androidTargetInfo_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10000, getAndroidTargetInfo());
      }
      if (androidAarImportInfo_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(11000, getAndroidAarImportInfo());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo)) {
        return super.equals(obj);
      }
      org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo other = (org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo) obj;

      if (!getId()
          .equals(other.getId())) return false;
      if (!getKind()
          .equals(other.getKind())) return false;
      if (!getTagsList()
          .equals(other.getTagsList())) return false;
      if (!getDependenciesList()
          .equals(other.getDependenciesList())) return false;
      if (!getSourcesList()
          .equals(other.getSourcesList())) return false;
      if (!getResourcesList()
          .equals(other.getResourcesList())) return false;
      if (!internalGetEnv().equals(
          other.internalGetEnv())) return false;
      if (!getEnvInheritList()
          .equals(other.getEnvInheritList())) return false;
      if (hasJvmTargetInfo() != other.hasJvmTargetInfo()) return false;
      if (hasJvmTargetInfo()) {
        if (!getJvmTargetInfo()
            .equals(other.getJvmTargetInfo())) return false;
      }
      if (hasJavaToolchainInfo() != other.hasJavaToolchainInfo()) return false;
      if (hasJavaToolchainInfo()) {
        if (!getJavaToolchainInfo()
            .equals(other.getJavaToolchainInfo())) return false;
      }
      if (hasJavaRuntimeInfo() != other.hasJavaRuntimeInfo()) return false;
      if (hasJavaRuntimeInfo()) {
        if (!getJavaRuntimeInfo()
            .equals(other.getJavaRuntimeInfo())) return false;
      }
      if (hasScalaTargetInfo() != other.hasScalaTargetInfo()) return false;
      if (hasScalaTargetInfo()) {
        if (!getScalaTargetInfo()
            .equals(other.getScalaTargetInfo())) return false;
      }
      if (hasScalaToolchainInfo() != other.hasScalaToolchainInfo()) return false;
      if (hasScalaToolchainInfo()) {
        if (!getScalaToolchainInfo()
            .equals(other.getScalaToolchainInfo())) return false;
      }
      if (hasCppTargetInfo() != other.hasCppTargetInfo()) return false;
      if (hasCppTargetInfo()) {
        if (!getCppTargetInfo()
            .equals(other.getCppTargetInfo())) return false;
      }
      if (hasKotlinTargetInfo() != other.hasKotlinTargetInfo()) return false;
      if (hasKotlinTargetInfo()) {
        if (!getKotlinTargetInfo()
            .equals(other.getKotlinTargetInfo())) return false;
      }
      if (hasPythonTargetInfo() != other.hasPythonTargetInfo()) return false;
      if (hasPythonTargetInfo()) {
        if (!getPythonTargetInfo()
            .equals(other.getPythonTargetInfo())) return false;
      }
      if (hasRustCrateInfo() != other.hasRustCrateInfo()) return false;
      if (hasRustCrateInfo()) {
        if (!getRustCrateInfo()
            .equals(other.getRustCrateInfo())) return false;
      }
      if (hasAndroidTargetInfo() != other.hasAndroidTargetInfo()) return false;
      if (hasAndroidTargetInfo()) {
        if (!getAndroidTargetInfo()
            .equals(other.getAndroidTargetInfo())) return false;
      }
      if (hasAndroidAarImportInfo() != other.hasAndroidAarImportInfo()) return false;
      if (hasAndroidAarImportInfo()) {
        if (!getAndroidAarImportInfo()
            .equals(other.getAndroidAarImportInfo())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @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) + getId().hashCode();
      hash = (37 * hash) + KIND_FIELD_NUMBER;
      hash = (53 * hash) + getKind().hashCode();
      if (getTagsCount() > 0) {
        hash = (37 * hash) + TAGS_FIELD_NUMBER;
        hash = (53 * hash) + getTagsList().hashCode();
      }
      if (getDependenciesCount() > 0) {
        hash = (37 * hash) + DEPENDENCIES_FIELD_NUMBER;
        hash = (53 * hash) + getDependenciesList().hashCode();
      }
      if (getSourcesCount() > 0) {
        hash = (37 * hash) + SOURCES_FIELD_NUMBER;
        hash = (53 * hash) + getSourcesList().hashCode();
      }
      if (getResourcesCount() > 0) {
        hash = (37 * hash) + RESOURCES_FIELD_NUMBER;
        hash = (53 * hash) + getResourcesList().hashCode();
      }
      if (!internalGetEnv().getMap().isEmpty()) {
        hash = (37 * hash) + ENV_FIELD_NUMBER;
        hash = (53 * hash) + internalGetEnv().hashCode();
      }
      if (getEnvInheritCount() > 0) {
        hash = (37 * hash) + ENV_INHERIT_FIELD_NUMBER;
        hash = (53 * hash) + getEnvInheritList().hashCode();
      }
      if (hasJvmTargetInfo()) {
        hash = (37 * hash) + JVM_TARGET_INFO_FIELD_NUMBER;
        hash = (53 * hash) + getJvmTargetInfo().hashCode();
      }
      if (hasJavaToolchainInfo()) {
        hash = (37 * hash) + JAVA_TOOLCHAIN_INFO_FIELD_NUMBER;
        hash = (53 * hash) + getJavaToolchainInfo().hashCode();
      }
      if (hasJavaRuntimeInfo()) {
        hash = (37 * hash) + JAVA_RUNTIME_INFO_FIELD_NUMBER;
        hash = (53 * hash) + getJavaRuntimeInfo().hashCode();
      }
      if (hasScalaTargetInfo()) {
        hash = (37 * hash) + SCALA_TARGET_INFO_FIELD_NUMBER;
        hash = (53 * hash) + getScalaTargetInfo().hashCode();
      }
      if (hasScalaToolchainInfo()) {
        hash = (37 * hash) + SCALA_TOOLCHAIN_INFO_FIELD_NUMBER;
        hash = (53 * hash) + getScalaToolchainInfo().hashCode();
      }
      if (hasCppTargetInfo()) {
        hash = (37 * hash) + CPP_TARGET_INFO_FIELD_NUMBER;
        hash = (53 * hash) + getCppTargetInfo().hashCode();
      }
      if (hasKotlinTargetInfo()) {
        hash = (37 * hash) + KOTLIN_TARGET_INFO_FIELD_NUMBER;
        hash = (53 * hash) + getKotlinTargetInfo().hashCode();
      }
      if (hasPythonTargetInfo()) {
        hash = (37 * hash) + PYTHON_TARGET_INFO_FIELD_NUMBER;
        hash = (53 * hash) + getPythonTargetInfo().hashCode();
      }
      if (hasRustCrateInfo()) {
        hash = (37 * hash) + RUST_CRATE_INFO_FIELD_NUMBER;
        hash = (53 * hash) + getRustCrateInfo().hashCode();
      }
      if (hasAndroidTargetInfo()) {
        hash = (37 * hash) + ANDROID_TARGET_INFO_FIELD_NUMBER;
        hash = (53 * hash) + getAndroidTargetInfo().hashCode();
      }
      if (hasAndroidAarImportInfo()) {
        hash = (37 * hash) + ANDROID_AAR_IMPORT_INFO_FIELD_NUMBER;
        hash = (53 * hash) + getAndroidAarImportInfo().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo 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 org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo 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 org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    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 bazelbsp.TargetInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:bazelbsp.TargetInfo)
        org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_TargetInfo_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 70:
            return internalGetEnv();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 70:
            return internalGetMutableEnv();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_TargetInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo.class, org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo.Builder.class);
      }

      // Construct using org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        id_ = "";

        kind_ = "";

        tags_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (dependenciesBuilder_ == null) {
          dependencies_ = java.util.Collections.emptyList();
        } else {
          dependencies_ = null;
          dependenciesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        if (sourcesBuilder_ == null) {
          sources_ = java.util.Collections.emptyList();
        } else {
          sources_ = null;
          sourcesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        if (resourcesBuilder_ == null) {
          resources_ = java.util.Collections.emptyList();
        } else {
          resources_ = null;
          resourcesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        internalGetMutableEnv().clear();
        envInherit_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000020);
        if (jvmTargetInfoBuilder_ == null) {
          jvmTargetInfo_ = null;
        } else {
          jvmTargetInfo_ = null;
          jvmTargetInfoBuilder_ = null;
        }
        if (javaToolchainInfoBuilder_ == null) {
          javaToolchainInfo_ = null;
        } else {
          javaToolchainInfo_ = null;
          javaToolchainInfoBuilder_ = null;
        }
        if (javaRuntimeInfoBuilder_ == null) {
          javaRuntimeInfo_ = null;
        } else {
          javaRuntimeInfo_ = null;
          javaRuntimeInfoBuilder_ = null;
        }
        if (scalaTargetInfoBuilder_ == null) {
          scalaTargetInfo_ = null;
        } else {
          scalaTargetInfo_ = null;
          scalaTargetInfoBuilder_ = null;
        }
        if (scalaToolchainInfoBuilder_ == null) {
          scalaToolchainInfo_ = null;
        } else {
          scalaToolchainInfo_ = null;
          scalaToolchainInfoBuilder_ = null;
        }
        if (cppTargetInfoBuilder_ == null) {
          cppTargetInfo_ = null;
        } else {
          cppTargetInfo_ = null;
          cppTargetInfoBuilder_ = null;
        }
        if (kotlinTargetInfoBuilder_ == null) {
          kotlinTargetInfo_ = null;
        } else {
          kotlinTargetInfo_ = null;
          kotlinTargetInfoBuilder_ = null;
        }
        if (pythonTargetInfoBuilder_ == null) {
          pythonTargetInfo_ = null;
        } else {
          pythonTargetInfo_ = null;
          pythonTargetInfoBuilder_ = null;
        }
        if (rustCrateInfoBuilder_ == null) {
          rustCrateInfo_ = null;
        } else {
          rustCrateInfo_ = null;
          rustCrateInfoBuilder_ = null;
        }
        if (androidTargetInfoBuilder_ == null) {
          androidTargetInfo_ = null;
        } else {
          androidTargetInfo_ = null;
          androidTargetInfoBuilder_ = null;
        }
        if (androidAarImportInfoBuilder_ == null) {
          androidAarImportInfo_ = null;
        } else {
          androidAarImportInfo_ = null;
          androidAarImportInfoBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.internal_static_bazelbsp_TargetInfo_descriptor;
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo getDefaultInstanceForType() {
        return org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo.getDefaultInstance();
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo build() {
        org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo buildPartial() {
        org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo result = new org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo(this);
        int from_bitField0_ = bitField0_;
        result.id_ = id_;
        result.kind_ = kind_;
        if (((bitField0_ & 0x00000001) != 0)) {
          tags_ = tags_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.tags_ = tags_;
        if (dependenciesBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            dependencies_ = java.util.Collections.unmodifiableList(dependencies_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.dependencies_ = dependencies_;
        } else {
          result.dependencies_ = dependenciesBuilder_.build();
        }
        if (sourcesBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0)) {
            sources_ = java.util.Collections.unmodifiableList(sources_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.sources_ = sources_;
        } else {
          result.sources_ = sourcesBuilder_.build();
        }
        if (resourcesBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0)) {
            resources_ = java.util.Collections.unmodifiableList(resources_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.resources_ = resources_;
        } else {
          result.resources_ = resourcesBuilder_.build();
        }
        result.env_ = internalGetEnv();
        result.env_.makeImmutable();
        if (((bitField0_ & 0x00000020) != 0)) {
          envInherit_ = envInherit_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000020);
        }
        result.envInherit_ = envInherit_;
        if (jvmTargetInfoBuilder_ == null) {
          result.jvmTargetInfo_ = jvmTargetInfo_;
        } else {
          result.jvmTargetInfo_ = jvmTargetInfoBuilder_.build();
        }
        if (javaToolchainInfoBuilder_ == null) {
          result.javaToolchainInfo_ = javaToolchainInfo_;
        } else {
          result.javaToolchainInfo_ = javaToolchainInfoBuilder_.build();
        }
        if (javaRuntimeInfoBuilder_ == null) {
          result.javaRuntimeInfo_ = javaRuntimeInfo_;
        } else {
          result.javaRuntimeInfo_ = javaRuntimeInfoBuilder_.build();
        }
        if (scalaTargetInfoBuilder_ == null) {
          result.scalaTargetInfo_ = scalaTargetInfo_;
        } else {
          result.scalaTargetInfo_ = scalaTargetInfoBuilder_.build();
        }
        if (scalaToolchainInfoBuilder_ == null) {
          result.scalaToolchainInfo_ = scalaToolchainInfo_;
        } else {
          result.scalaToolchainInfo_ = scalaToolchainInfoBuilder_.build();
        }
        if (cppTargetInfoBuilder_ == null) {
          result.cppTargetInfo_ = cppTargetInfo_;
        } else {
          result.cppTargetInfo_ = cppTargetInfoBuilder_.build();
        }
        if (kotlinTargetInfoBuilder_ == null) {
          result.kotlinTargetInfo_ = kotlinTargetInfo_;
        } else {
          result.kotlinTargetInfo_ = kotlinTargetInfoBuilder_.build();
        }
        if (pythonTargetInfoBuilder_ == null) {
          result.pythonTargetInfo_ = pythonTargetInfo_;
        } else {
          result.pythonTargetInfo_ = pythonTargetInfoBuilder_.build();
        }
        if (rustCrateInfoBuilder_ == null) {
          result.rustCrateInfo_ = rustCrateInfo_;
        } else {
          result.rustCrateInfo_ = rustCrateInfoBuilder_.build();
        }
        if (androidTargetInfoBuilder_ == null) {
          result.androidTargetInfo_ = androidTargetInfo_;
        } else {
          result.androidTargetInfo_ = androidTargetInfoBuilder_.build();
        }
        if (androidAarImportInfoBuilder_ == null) {
          result.androidAarImportInfo_ = androidAarImportInfo_;
        } else {
          result.androidAarImportInfo_ = androidAarImportInfoBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo) {
          return mergeFrom((org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo other) {
        if (other == org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo.getDefaultInstance()) return this;
        if (!other.getId().isEmpty()) {
          id_ = other.id_;
          onChanged();
        }
        if (!other.getKind().isEmpty()) {
          kind_ = other.kind_;
          onChanged();
        }
        if (!other.tags_.isEmpty()) {
          if (tags_.isEmpty()) {
            tags_ = other.tags_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureTagsIsMutable();
            tags_.addAll(other.tags_);
          }
          onChanged();
        }
        if (dependenciesBuilder_ == null) {
          if (!other.dependencies_.isEmpty()) {
            if (dependencies_.isEmpty()) {
              dependencies_ = other.dependencies_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureDependenciesIsMutable();
              dependencies_.addAll(other.dependencies_);
            }
            onChanged();
          }
        } else {
          if (!other.dependencies_.isEmpty()) {
            if (dependenciesBuilder_.isEmpty()) {
              dependenciesBuilder_.dispose();
              dependenciesBuilder_ = null;
              dependencies_ = other.dependencies_;
              bitField0_ = (bitField0_ & ~0x00000002);
              dependenciesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getDependenciesFieldBuilder() : null;
            } else {
              dependenciesBuilder_.addAllMessages(other.dependencies_);
            }
          }
        }
        if (sourcesBuilder_ == null) {
          if (!other.sources_.isEmpty()) {
            if (sources_.isEmpty()) {
              sources_ = other.sources_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureSourcesIsMutable();
              sources_.addAll(other.sources_);
            }
            onChanged();
          }
        } else {
          if (!other.sources_.isEmpty()) {
            if (sourcesBuilder_.isEmpty()) {
              sourcesBuilder_.dispose();
              sourcesBuilder_ = null;
              sources_ = other.sources_;
              bitField0_ = (bitField0_ & ~0x00000004);
              sourcesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getSourcesFieldBuilder() : null;
            } else {
              sourcesBuilder_.addAllMessages(other.sources_);
            }
          }
        }
        if (resourcesBuilder_ == null) {
          if (!other.resources_.isEmpty()) {
            if (resources_.isEmpty()) {
              resources_ = other.resources_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureResourcesIsMutable();
              resources_.addAll(other.resources_);
            }
            onChanged();
          }
        } else {
          if (!other.resources_.isEmpty()) {
            if (resourcesBuilder_.isEmpty()) {
              resourcesBuilder_.dispose();
              resourcesBuilder_ = null;
              resources_ = other.resources_;
              bitField0_ = (bitField0_ & ~0x00000008);
              resourcesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getResourcesFieldBuilder() : null;
            } else {
              resourcesBuilder_.addAllMessages(other.resources_);
            }
          }
        }
        internalGetMutableEnv().mergeFrom(
            other.internalGetEnv());
        if (!other.envInherit_.isEmpty()) {
          if (envInherit_.isEmpty()) {
            envInherit_ = other.envInherit_;
            bitField0_ = (bitField0_ & ~0x00000020);
          } else {
            ensureEnvInheritIsMutable();
            envInherit_.addAll(other.envInherit_);
          }
          onChanged();
        }
        if (other.hasJvmTargetInfo()) {
          mergeJvmTargetInfo(other.getJvmTargetInfo());
        }
        if (other.hasJavaToolchainInfo()) {
          mergeJavaToolchainInfo(other.getJavaToolchainInfo());
        }
        if (other.hasJavaRuntimeInfo()) {
          mergeJavaRuntimeInfo(other.getJavaRuntimeInfo());
        }
        if (other.hasScalaTargetInfo()) {
          mergeScalaTargetInfo(other.getScalaTargetInfo());
        }
        if (other.hasScalaToolchainInfo()) {
          mergeScalaToolchainInfo(other.getScalaToolchainInfo());
        }
        if (other.hasCppTargetInfo()) {
          mergeCppTargetInfo(other.getCppTargetInfo());
        }
        if (other.hasKotlinTargetInfo()) {
          mergeKotlinTargetInfo(other.getKotlinTargetInfo());
        }
        if (other.hasPythonTargetInfo()) {
          mergePythonTargetInfo(other.getPythonTargetInfo());
        }
        if (other.hasRustCrateInfo()) {
          mergeRustCrateInfo(other.getRustCrateInfo());
        }
        if (other.hasAndroidTargetInfo()) {
          mergeAndroidTargetInfo(other.getAndroidTargetInfo());
        }
        if (other.hasAndroidAarImportInfo()) {
          mergeAndroidAarImportInfo(other.getAndroidAarImportInfo());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 82: {
                id_ = input.readStringRequireUtf8();

                break;
              } // case 82
              case 162: {
                kind_ = input.readStringRequireUtf8();

                break;
              } // case 162
              case 242: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureTagsIsMutable();
                tags_.add(s);
                break;
              } // case 242
              case 322: {
                org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency m =
                    input.readMessage(
                        org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency.parser(),
                        extensionRegistry);
                if (dependenciesBuilder_ == null) {
                  ensureDependenciesIsMutable();
                  dependencies_.add(m);
                } else {
                  dependenciesBuilder_.addMessage(m);
                }
                break;
              } // case 322
              case 402: {
                org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation m =
                    input.readMessage(
                        org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.parser(),
                        extensionRegistry);
                if (sourcesBuilder_ == null) {
                  ensureSourcesIsMutable();
                  sources_.add(m);
                } else {
                  sourcesBuilder_.addMessage(m);
                }
                break;
              } // case 402
              case 482: {
                org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation m =
                    input.readMessage(
                        org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.parser(),
                        extensionRegistry);
                if (resourcesBuilder_ == null) {
                  ensureResourcesIsMutable();
                  resources_.add(m);
                } else {
                  resourcesBuilder_.addMessage(m);
                }
                break;
              } // case 482
              case 562: {
                com.google.protobuf.MapEntry
                env__ = input.readMessage(
                    EnvDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                internalGetMutableEnv().getMutableMap().put(
                    env__.getKey(), env__.getValue());
                break;
              } // case 562
              case 642: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureEnvInheritIsMutable();
                envInherit_.add(s);
                break;
              } // case 642
              case 8002: {
                input.readMessage(
                    getJvmTargetInfoFieldBuilder().getBuilder(),
                    extensionRegistry);

                break;
              } // case 8002
              case 16002: {
                input.readMessage(
                    getJavaToolchainInfoFieldBuilder().getBuilder(),
                    extensionRegistry);

                break;
              } // case 16002
              case 24002: {
                input.readMessage(
                    getJavaRuntimeInfoFieldBuilder().getBuilder(),
                    extensionRegistry);

                break;
              } // case 24002
              case 32002: {
                input.readMessage(
                    getScalaTargetInfoFieldBuilder().getBuilder(),
                    extensionRegistry);

                break;
              } // case 32002
              case 40002: {
                input.readMessage(
                    getScalaToolchainInfoFieldBuilder().getBuilder(),
                    extensionRegistry);

                break;
              } // case 40002
              case 48002: {
                input.readMessage(
                    getCppTargetInfoFieldBuilder().getBuilder(),
                    extensionRegistry);

                break;
              } // case 48002
              case 56002: {
                input.readMessage(
                    getKotlinTargetInfoFieldBuilder().getBuilder(),
                    extensionRegistry);

                break;
              } // case 56002
              case 64002: {
                input.readMessage(
                    getPythonTargetInfoFieldBuilder().getBuilder(),
                    extensionRegistry);

                break;
              } // case 64002
              case 72002: {
                input.readMessage(
                    getRustCrateInfoFieldBuilder().getBuilder(),
                    extensionRegistry);

                break;
              } // case 72002
              case 80002: {
                input.readMessage(
                    getAndroidTargetInfoFieldBuilder().getBuilder(),
                    extensionRegistry);

                break;
              } // case 80002
              case 88002: {
                input.readMessage(
                    getAndroidAarImportInfoFieldBuilder().getBuilder(),
                    extensionRegistry);

                break;
              } // case 88002
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object id_ = "";
      /**
       * string id = 10;
       * @return The id.
       */
      public java.lang.String getId() {
        java.lang.Object ref = id_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          id_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string id = 10;
       * @return The bytes for id.
       */
      public com.google.protobuf.ByteString
          getIdBytes() {
        java.lang.Object ref = id_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          id_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string id = 10;
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        id_ = value;
        onChanged();
        return this;
      }
      /**
       * string id = 10;
       * @return This builder for chaining.
       */
      public Builder clearId() {
        
        id_ = getDefaultInstance().getId();
        onChanged();
        return this;
      }
      /**
       * string id = 10;
       * @param value The bytes for id to set.
       * @return This builder for chaining.
       */
      public Builder setIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        id_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object kind_ = "";
      /**
       * string kind = 20;
       * @return The kind.
       */
      public java.lang.String getKind() {
        java.lang.Object ref = kind_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          kind_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string kind = 20;
       * @return The bytes for kind.
       */
      public com.google.protobuf.ByteString
          getKindBytes() {
        java.lang.Object ref = kind_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          kind_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string kind = 20;
       * @param value The kind to set.
       * @return This builder for chaining.
       */
      public Builder setKind(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        kind_ = value;
        onChanged();
        return this;
      }
      /**
       * string kind = 20;
       * @return This builder for chaining.
       */
      public Builder clearKind() {
        
        kind_ = getDefaultInstance().getKind();
        onChanged();
        return this;
      }
      /**
       * string kind = 20;
       * @param value The bytes for kind to set.
       * @return This builder for chaining.
       */
      public Builder setKindBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        kind_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList tags_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureTagsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          tags_ = new com.google.protobuf.LazyStringArrayList(tags_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * repeated string tags = 30;
       * @return A list containing the tags.
       */
      public com.google.protobuf.ProtocolStringList
          getTagsList() {
        return tags_.getUnmodifiableView();
      }
      /**
       * repeated string tags = 30;
       * @return The count of tags.
       */
      public int getTagsCount() {
        return tags_.size();
      }
      /**
       * repeated string tags = 30;
       * @param index The index of the element to return.
       * @return The tags at the given index.
       */
      public java.lang.String getTags(int index) {
        return tags_.get(index);
      }
      /**
       * repeated string tags = 30;
       * @param index The index of the value to return.
       * @return The bytes of the tags at the given index.
       */
      public com.google.protobuf.ByteString
          getTagsBytes(int index) {
        return tags_.getByteString(index);
      }
      /**
       * repeated string tags = 30;
       * @param index The index to set the value at.
       * @param value The tags to set.
       * @return This builder for chaining.
       */
      public Builder setTags(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureTagsIsMutable();
        tags_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated string tags = 30;
       * @param value The tags to add.
       * @return This builder for chaining.
       */
      public Builder addTags(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureTagsIsMutable();
        tags_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated string tags = 30;
       * @param values The tags to add.
       * @return This builder for chaining.
       */
      public Builder addAllTags(
          java.lang.Iterable values) {
        ensureTagsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, tags_);
        onChanged();
        return this;
      }
      /**
       * repeated string tags = 30;
       * @return This builder for chaining.
       */
      public Builder clearTags() {
        tags_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * repeated string tags = 30;
       * @param value The bytes of the tags to add.
       * @return This builder for chaining.
       */
      public Builder addTagsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureTagsIsMutable();
        tags_.add(value);
        onChanged();
        return this;
      }

      private java.util.List dependencies_ =
        java.util.Collections.emptyList();
      private void ensureDependenciesIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          dependencies_ = new java.util.ArrayList(dependencies_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency, org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.DependencyOrBuilder> dependenciesBuilder_;

      /**
       * repeated .bazelbsp.Dependency dependencies = 40;
       */
      public java.util.List getDependenciesList() {
        if (dependenciesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(dependencies_);
        } else {
          return dependenciesBuilder_.getMessageList();
        }
      }
      /**
       * repeated .bazelbsp.Dependency dependencies = 40;
       */
      public int getDependenciesCount() {
        if (dependenciesBuilder_ == null) {
          return dependencies_.size();
        } else {
          return dependenciesBuilder_.getCount();
        }
      }
      /**
       * repeated .bazelbsp.Dependency dependencies = 40;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency getDependencies(int index) {
        if (dependenciesBuilder_ == null) {
          return dependencies_.get(index);
        } else {
          return dependenciesBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .bazelbsp.Dependency dependencies = 40;
       */
      public Builder setDependencies(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency value) {
        if (dependenciesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDependenciesIsMutable();
          dependencies_.set(index, value);
          onChanged();
        } else {
          dependenciesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.Dependency dependencies = 40;
       */
      public Builder setDependencies(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency.Builder builderForValue) {
        if (dependenciesBuilder_ == null) {
          ensureDependenciesIsMutable();
          dependencies_.set(index, builderForValue.build());
          onChanged();
        } else {
          dependenciesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.Dependency dependencies = 40;
       */
      public Builder addDependencies(org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency value) {
        if (dependenciesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDependenciesIsMutable();
          dependencies_.add(value);
          onChanged();
        } else {
          dependenciesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.Dependency dependencies = 40;
       */
      public Builder addDependencies(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency value) {
        if (dependenciesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDependenciesIsMutable();
          dependencies_.add(index, value);
          onChanged();
        } else {
          dependenciesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.Dependency dependencies = 40;
       */
      public Builder addDependencies(
          org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency.Builder builderForValue) {
        if (dependenciesBuilder_ == null) {
          ensureDependenciesIsMutable();
          dependencies_.add(builderForValue.build());
          onChanged();
        } else {
          dependenciesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.Dependency dependencies = 40;
       */
      public Builder addDependencies(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency.Builder builderForValue) {
        if (dependenciesBuilder_ == null) {
          ensureDependenciesIsMutable();
          dependencies_.add(index, builderForValue.build());
          onChanged();
        } else {
          dependenciesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.Dependency dependencies = 40;
       */
      public Builder addAllDependencies(
          java.lang.Iterable values) {
        if (dependenciesBuilder_ == null) {
          ensureDependenciesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, dependencies_);
          onChanged();
        } else {
          dependenciesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.Dependency dependencies = 40;
       */
      public Builder clearDependencies() {
        if (dependenciesBuilder_ == null) {
          dependencies_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          dependenciesBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .bazelbsp.Dependency dependencies = 40;
       */
      public Builder removeDependencies(int index) {
        if (dependenciesBuilder_ == null) {
          ensureDependenciesIsMutable();
          dependencies_.remove(index);
          onChanged();
        } else {
          dependenciesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.Dependency dependencies = 40;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency.Builder getDependenciesBuilder(
          int index) {
        return getDependenciesFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .bazelbsp.Dependency dependencies = 40;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.DependencyOrBuilder getDependenciesOrBuilder(
          int index) {
        if (dependenciesBuilder_ == null) {
          return dependencies_.get(index);  } else {
          return dependenciesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .bazelbsp.Dependency dependencies = 40;
       */
      public java.util.List 
           getDependenciesOrBuilderList() {
        if (dependenciesBuilder_ != null) {
          return dependenciesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(dependencies_);
        }
      }
      /**
       * repeated .bazelbsp.Dependency dependencies = 40;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency.Builder addDependenciesBuilder() {
        return getDependenciesFieldBuilder().addBuilder(
            org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency.getDefaultInstance());
      }
      /**
       * repeated .bazelbsp.Dependency dependencies = 40;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency.Builder addDependenciesBuilder(
          int index) {
        return getDependenciesFieldBuilder().addBuilder(
            index, org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency.getDefaultInstance());
      }
      /**
       * repeated .bazelbsp.Dependency dependencies = 40;
       */
      public java.util.List 
           getDependenciesBuilderList() {
        return getDependenciesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency, org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.DependencyOrBuilder> 
          getDependenciesFieldBuilder() {
        if (dependenciesBuilder_ == null) {
          dependenciesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency, org.jetbrains.bsp.bazel.info.BspTargetInfo.Dependency.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.DependencyOrBuilder>(
                  dependencies_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          dependencies_ = null;
        }
        return dependenciesBuilder_;
      }

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

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> sourcesBuilder_;

      /**
       * repeated .bazelbsp.FileLocation sources = 50;
       */
      public java.util.List getSourcesList() {
        if (sourcesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(sources_);
        } else {
          return sourcesBuilder_.getMessageList();
        }
      }
      /**
       * repeated .bazelbsp.FileLocation sources = 50;
       */
      public int getSourcesCount() {
        if (sourcesBuilder_ == null) {
          return sources_.size();
        } else {
          return sourcesBuilder_.getCount();
        }
      }
      /**
       * repeated .bazelbsp.FileLocation sources = 50;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getSources(int index) {
        if (sourcesBuilder_ == null) {
          return sources_.get(index);
        } else {
          return sourcesBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .bazelbsp.FileLocation sources = 50;
       */
      public Builder setSources(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (sourcesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSourcesIsMutable();
          sources_.set(index, value);
          onChanged();
        } else {
          sourcesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation sources = 50;
       */
      public Builder setSources(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (sourcesBuilder_ == null) {
          ensureSourcesIsMutable();
          sources_.set(index, builderForValue.build());
          onChanged();
        } else {
          sourcesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation sources = 50;
       */
      public Builder addSources(org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (sourcesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSourcesIsMutable();
          sources_.add(value);
          onChanged();
        } else {
          sourcesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation sources = 50;
       */
      public Builder addSources(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (sourcesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSourcesIsMutable();
          sources_.add(index, value);
          onChanged();
        } else {
          sourcesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation sources = 50;
       */
      public Builder addSources(
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (sourcesBuilder_ == null) {
          ensureSourcesIsMutable();
          sources_.add(builderForValue.build());
          onChanged();
        } else {
          sourcesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation sources = 50;
       */
      public Builder addSources(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (sourcesBuilder_ == null) {
          ensureSourcesIsMutable();
          sources_.add(index, builderForValue.build());
          onChanged();
        } else {
          sourcesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation sources = 50;
       */
      public Builder addAllSources(
          java.lang.Iterable values) {
        if (sourcesBuilder_ == null) {
          ensureSourcesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, sources_);
          onChanged();
        } else {
          sourcesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation sources = 50;
       */
      public Builder clearSources() {
        if (sourcesBuilder_ == null) {
          sources_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          sourcesBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation sources = 50;
       */
      public Builder removeSources(int index) {
        if (sourcesBuilder_ == null) {
          ensureSourcesIsMutable();
          sources_.remove(index);
          onChanged();
        } else {
          sourcesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation sources = 50;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder getSourcesBuilder(
          int index) {
        return getSourcesFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .bazelbsp.FileLocation sources = 50;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getSourcesOrBuilder(
          int index) {
        if (sourcesBuilder_ == null) {
          return sources_.get(index);  } else {
          return sourcesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .bazelbsp.FileLocation sources = 50;
       */
      public java.util.List 
           getSourcesOrBuilderList() {
        if (sourcesBuilder_ != null) {
          return sourcesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(sources_);
        }
      }
      /**
       * repeated .bazelbsp.FileLocation sources = 50;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder addSourcesBuilder() {
        return getSourcesFieldBuilder().addBuilder(
            org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance());
      }
      /**
       * repeated .bazelbsp.FileLocation sources = 50;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder addSourcesBuilder(
          int index) {
        return getSourcesFieldBuilder().addBuilder(
            index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance());
      }
      /**
       * repeated .bazelbsp.FileLocation sources = 50;
       */
      public java.util.List 
           getSourcesBuilderList() {
        return getSourcesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> 
          getSourcesFieldBuilder() {
        if (sourcesBuilder_ == null) {
          sourcesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder>(
                  sources_,
                  ((bitField0_ & 0x00000004) != 0),
                  getParentForChildren(),
                  isClean());
          sources_ = null;
        }
        return sourcesBuilder_;
      }

      private java.util.List resources_ =
        java.util.Collections.emptyList();
      private void ensureResourcesIsMutable() {
        if (!((bitField0_ & 0x00000008) != 0)) {
          resources_ = new java.util.ArrayList(resources_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> resourcesBuilder_;

      /**
       * repeated .bazelbsp.FileLocation resources = 60;
       */
      public java.util.List getResourcesList() {
        if (resourcesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(resources_);
        } else {
          return resourcesBuilder_.getMessageList();
        }
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 60;
       */
      public int getResourcesCount() {
        if (resourcesBuilder_ == null) {
          return resources_.size();
        } else {
          return resourcesBuilder_.getCount();
        }
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 60;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation getResources(int index) {
        if (resourcesBuilder_ == null) {
          return resources_.get(index);
        } else {
          return resourcesBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 60;
       */
      public Builder setResources(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (resourcesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureResourcesIsMutable();
          resources_.set(index, value);
          onChanged();
        } else {
          resourcesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 60;
       */
      public Builder setResources(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (resourcesBuilder_ == null) {
          ensureResourcesIsMutable();
          resources_.set(index, builderForValue.build());
          onChanged();
        } else {
          resourcesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 60;
       */
      public Builder addResources(org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (resourcesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureResourcesIsMutable();
          resources_.add(value);
          onChanged();
        } else {
          resourcesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 60;
       */
      public Builder addResources(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation value) {
        if (resourcesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureResourcesIsMutable();
          resources_.add(index, value);
          onChanged();
        } else {
          resourcesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 60;
       */
      public Builder addResources(
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (resourcesBuilder_ == null) {
          ensureResourcesIsMutable();
          resources_.add(builderForValue.build());
          onChanged();
        } else {
          resourcesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 60;
       */
      public Builder addResources(
          int index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder builderForValue) {
        if (resourcesBuilder_ == null) {
          ensureResourcesIsMutable();
          resources_.add(index, builderForValue.build());
          onChanged();
        } else {
          resourcesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 60;
       */
      public Builder addAllResources(
          java.lang.Iterable values) {
        if (resourcesBuilder_ == null) {
          ensureResourcesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, resources_);
          onChanged();
        } else {
          resourcesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 60;
       */
      public Builder clearResources() {
        if (resourcesBuilder_ == null) {
          resources_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          resourcesBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 60;
       */
      public Builder removeResources(int index) {
        if (resourcesBuilder_ == null) {
          ensureResourcesIsMutable();
          resources_.remove(index);
          onChanged();
        } else {
          resourcesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 60;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder getResourcesBuilder(
          int index) {
        return getResourcesFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 60;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder getResourcesOrBuilder(
          int index) {
        if (resourcesBuilder_ == null) {
          return resources_.get(index);  } else {
          return resourcesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 60;
       */
      public java.util.List 
           getResourcesOrBuilderList() {
        if (resourcesBuilder_ != null) {
          return resourcesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(resources_);
        }
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 60;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder addResourcesBuilder() {
        return getResourcesFieldBuilder().addBuilder(
            org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance());
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 60;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder addResourcesBuilder(
          int index) {
        return getResourcesFieldBuilder().addBuilder(
            index, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.getDefaultInstance());
      }
      /**
       * repeated .bazelbsp.FileLocation resources = 60;
       */
      public java.util.List 
           getResourcesBuilderList() {
        return getResourcesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder> 
          getResourcesFieldBuilder() {
        if (resourcesBuilder_ == null) {
          resourcesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocation.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.FileLocationOrBuilder>(
                  resources_,
                  ((bitField0_ & 0x00000008) != 0),
                  getParentForChildren(),
                  isClean());
          resources_ = null;
        }
        return resourcesBuilder_;
      }

      private com.google.protobuf.MapField<
          java.lang.String, java.lang.String> env_;
      private com.google.protobuf.MapField
      internalGetEnv() {
        if (env_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              EnvDefaultEntryHolder.defaultEntry);
        }
        return env_;
      }
      private com.google.protobuf.MapField
      internalGetMutableEnv() {
        onChanged();;
        if (env_ == null) {
          env_ = com.google.protobuf.MapField.newMapField(
              EnvDefaultEntryHolder.defaultEntry);
        }
        if (!env_.isMutable()) {
          env_ = env_.copy();
        }
        return env_;
      }

      public int getEnvCount() {
        return internalGetEnv().getMap().size();
      }
      /**
       * map<string, string> env = 70;
       */

      @java.lang.Override
      public boolean containsEnv(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        return internalGetEnv().getMap().containsKey(key);
      }
      /**
       * Use {@link #getEnvMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map getEnv() {
        return getEnvMap();
      }
      /**
       * map<string, string> env = 70;
       */
      @java.lang.Override

      public java.util.Map getEnvMap() {
        return internalGetEnv().getMap();
      }
      /**
       * map<string, string> env = 70;
       */
      @java.lang.Override

      public java.lang.String getEnvOrDefault(
          java.lang.String key,
          java.lang.String defaultValue) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map map =
            internalGetEnv().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * map<string, string> env = 70;
       */
      @java.lang.Override

      public java.lang.String getEnvOrThrow(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map map =
            internalGetEnv().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearEnv() {
        internalGetMutableEnv().getMutableMap()
            .clear();
        return this;
      }
      /**
       * map<string, string> env = 70;
       */

      public Builder removeEnv(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        internalGetMutableEnv().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map
      getMutableEnv() {
        return internalGetMutableEnv().getMutableMap();
      }
      /**
       * map<string, string> env = 70;
       */
      public Builder putEnv(
          java.lang.String key,
          java.lang.String value) {
        if (key == null) { throw new NullPointerException("map key"); }
        if (value == null) {
  throw new NullPointerException("map value");
}

        internalGetMutableEnv().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * map<string, string> env = 70;
       */

      public Builder putAllEnv(
          java.util.Map values) {
        internalGetMutableEnv().getMutableMap()
            .putAll(values);
        return this;
      }

      private com.google.protobuf.LazyStringList envInherit_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureEnvInheritIsMutable() {
        if (!((bitField0_ & 0x00000020) != 0)) {
          envInherit_ = new com.google.protobuf.LazyStringArrayList(envInherit_);
          bitField0_ |= 0x00000020;
         }
      }
      /**
       * repeated string env_inherit = 80;
       * @return A list containing the envInherit.
       */
      public com.google.protobuf.ProtocolStringList
          getEnvInheritList() {
        return envInherit_.getUnmodifiableView();
      }
      /**
       * repeated string env_inherit = 80;
       * @return The count of envInherit.
       */
      public int getEnvInheritCount() {
        return envInherit_.size();
      }
      /**
       * repeated string env_inherit = 80;
       * @param index The index of the element to return.
       * @return The envInherit at the given index.
       */
      public java.lang.String getEnvInherit(int index) {
        return envInherit_.get(index);
      }
      /**
       * repeated string env_inherit = 80;
       * @param index The index of the value to return.
       * @return The bytes of the envInherit at the given index.
       */
      public com.google.protobuf.ByteString
          getEnvInheritBytes(int index) {
        return envInherit_.getByteString(index);
      }
      /**
       * repeated string env_inherit = 80;
       * @param index The index to set the value at.
       * @param value The envInherit to set.
       * @return This builder for chaining.
       */
      public Builder setEnvInherit(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureEnvInheritIsMutable();
        envInherit_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated string env_inherit = 80;
       * @param value The envInherit to add.
       * @return This builder for chaining.
       */
      public Builder addEnvInherit(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureEnvInheritIsMutable();
        envInherit_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated string env_inherit = 80;
       * @param values The envInherit to add.
       * @return This builder for chaining.
       */
      public Builder addAllEnvInherit(
          java.lang.Iterable values) {
        ensureEnvInheritIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, envInherit_);
        onChanged();
        return this;
      }
      /**
       * repeated string env_inherit = 80;
       * @return This builder for chaining.
       */
      public Builder clearEnvInherit() {
        envInherit_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000020);
        onChanged();
        return this;
      }
      /**
       * repeated string env_inherit = 80;
       * @param value The bytes of the envInherit to add.
       * @return This builder for chaining.
       */
      public Builder addEnvInheritBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureEnvInheritIsMutable();
        envInherit_.add(value);
        onChanged();
        return this;
      }

      private org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo jvmTargetInfo_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo, org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfoOrBuilder> jvmTargetInfoBuilder_;
      /**
       * .bazelbsp.JvmTargetInfo jvm_target_info = 1000;
       * @return Whether the jvmTargetInfo field is set.
       */
      public boolean hasJvmTargetInfo() {
        return jvmTargetInfoBuilder_ != null || jvmTargetInfo_ != null;
      }
      /**
       * .bazelbsp.JvmTargetInfo jvm_target_info = 1000;
       * @return The jvmTargetInfo.
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo getJvmTargetInfo() {
        if (jvmTargetInfoBuilder_ == null) {
          return jvmTargetInfo_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo.getDefaultInstance() : jvmTargetInfo_;
        } else {
          return jvmTargetInfoBuilder_.getMessage();
        }
      }
      /**
       * .bazelbsp.JvmTargetInfo jvm_target_info = 1000;
       */
      public Builder setJvmTargetInfo(org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo value) {
        if (jvmTargetInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          jvmTargetInfo_ = value;
          onChanged();
        } else {
          jvmTargetInfoBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .bazelbsp.JvmTargetInfo jvm_target_info = 1000;
       */
      public Builder setJvmTargetInfo(
          org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo.Builder builderForValue) {
        if (jvmTargetInfoBuilder_ == null) {
          jvmTargetInfo_ = builderForValue.build();
          onChanged();
        } else {
          jvmTargetInfoBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .bazelbsp.JvmTargetInfo jvm_target_info = 1000;
       */
      public Builder mergeJvmTargetInfo(org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo value) {
        if (jvmTargetInfoBuilder_ == null) {
          if (jvmTargetInfo_ != null) {
            jvmTargetInfo_ =
              org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo.newBuilder(jvmTargetInfo_).mergeFrom(value).buildPartial();
          } else {
            jvmTargetInfo_ = value;
          }
          onChanged();
        } else {
          jvmTargetInfoBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .bazelbsp.JvmTargetInfo jvm_target_info = 1000;
       */
      public Builder clearJvmTargetInfo() {
        if (jvmTargetInfoBuilder_ == null) {
          jvmTargetInfo_ = null;
          onChanged();
        } else {
          jvmTargetInfo_ = null;
          jvmTargetInfoBuilder_ = null;
        }

        return this;
      }
      /**
       * .bazelbsp.JvmTargetInfo jvm_target_info = 1000;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo.Builder getJvmTargetInfoBuilder() {
        
        onChanged();
        return getJvmTargetInfoFieldBuilder().getBuilder();
      }
      /**
       * .bazelbsp.JvmTargetInfo jvm_target_info = 1000;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfoOrBuilder getJvmTargetInfoOrBuilder() {
        if (jvmTargetInfoBuilder_ != null) {
          return jvmTargetInfoBuilder_.getMessageOrBuilder();
        } else {
          return jvmTargetInfo_ == null ?
              org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo.getDefaultInstance() : jvmTargetInfo_;
        }
      }
      /**
       * .bazelbsp.JvmTargetInfo jvm_target_info = 1000;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo, org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfoOrBuilder> 
          getJvmTargetInfoFieldBuilder() {
        if (jvmTargetInfoBuilder_ == null) {
          jvmTargetInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo, org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfo.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.JvmTargetInfoOrBuilder>(
                  getJvmTargetInfo(),
                  getParentForChildren(),
                  isClean());
          jvmTargetInfo_ = null;
        }
        return jvmTargetInfoBuilder_;
      }

      private org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo javaToolchainInfo_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo, org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfoOrBuilder> javaToolchainInfoBuilder_;
      /**
       * .bazelbsp.JavaToolchainInfo java_toolchain_info = 2000;
       * @return Whether the javaToolchainInfo field is set.
       */
      public boolean hasJavaToolchainInfo() {
        return javaToolchainInfoBuilder_ != null || javaToolchainInfo_ != null;
      }
      /**
       * .bazelbsp.JavaToolchainInfo java_toolchain_info = 2000;
       * @return The javaToolchainInfo.
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo getJavaToolchainInfo() {
        if (javaToolchainInfoBuilder_ == null) {
          return javaToolchainInfo_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo.getDefaultInstance() : javaToolchainInfo_;
        } else {
          return javaToolchainInfoBuilder_.getMessage();
        }
      }
      /**
       * .bazelbsp.JavaToolchainInfo java_toolchain_info = 2000;
       */
      public Builder setJavaToolchainInfo(org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo value) {
        if (javaToolchainInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          javaToolchainInfo_ = value;
          onChanged();
        } else {
          javaToolchainInfoBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .bazelbsp.JavaToolchainInfo java_toolchain_info = 2000;
       */
      public Builder setJavaToolchainInfo(
          org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo.Builder builderForValue) {
        if (javaToolchainInfoBuilder_ == null) {
          javaToolchainInfo_ = builderForValue.build();
          onChanged();
        } else {
          javaToolchainInfoBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .bazelbsp.JavaToolchainInfo java_toolchain_info = 2000;
       */
      public Builder mergeJavaToolchainInfo(org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo value) {
        if (javaToolchainInfoBuilder_ == null) {
          if (javaToolchainInfo_ != null) {
            javaToolchainInfo_ =
              org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo.newBuilder(javaToolchainInfo_).mergeFrom(value).buildPartial();
          } else {
            javaToolchainInfo_ = value;
          }
          onChanged();
        } else {
          javaToolchainInfoBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .bazelbsp.JavaToolchainInfo java_toolchain_info = 2000;
       */
      public Builder clearJavaToolchainInfo() {
        if (javaToolchainInfoBuilder_ == null) {
          javaToolchainInfo_ = null;
          onChanged();
        } else {
          javaToolchainInfo_ = null;
          javaToolchainInfoBuilder_ = null;
        }

        return this;
      }
      /**
       * .bazelbsp.JavaToolchainInfo java_toolchain_info = 2000;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo.Builder getJavaToolchainInfoBuilder() {
        
        onChanged();
        return getJavaToolchainInfoFieldBuilder().getBuilder();
      }
      /**
       * .bazelbsp.JavaToolchainInfo java_toolchain_info = 2000;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfoOrBuilder getJavaToolchainInfoOrBuilder() {
        if (javaToolchainInfoBuilder_ != null) {
          return javaToolchainInfoBuilder_.getMessageOrBuilder();
        } else {
          return javaToolchainInfo_ == null ?
              org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo.getDefaultInstance() : javaToolchainInfo_;
        }
      }
      /**
       * .bazelbsp.JavaToolchainInfo java_toolchain_info = 2000;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo, org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfoOrBuilder> 
          getJavaToolchainInfoFieldBuilder() {
        if (javaToolchainInfoBuilder_ == null) {
          javaToolchainInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo, org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfo.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaToolchainInfoOrBuilder>(
                  getJavaToolchainInfo(),
                  getParentForChildren(),
                  isClean());
          javaToolchainInfo_ = null;
        }
        return javaToolchainInfoBuilder_;
      }

      private org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo javaRuntimeInfo_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo, org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfoOrBuilder> javaRuntimeInfoBuilder_;
      /**
       * .bazelbsp.JavaRuntimeInfo java_runtime_info = 3000;
       * @return Whether the javaRuntimeInfo field is set.
       */
      public boolean hasJavaRuntimeInfo() {
        return javaRuntimeInfoBuilder_ != null || javaRuntimeInfo_ != null;
      }
      /**
       * .bazelbsp.JavaRuntimeInfo java_runtime_info = 3000;
       * @return The javaRuntimeInfo.
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo getJavaRuntimeInfo() {
        if (javaRuntimeInfoBuilder_ == null) {
          return javaRuntimeInfo_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo.getDefaultInstance() : javaRuntimeInfo_;
        } else {
          return javaRuntimeInfoBuilder_.getMessage();
        }
      }
      /**
       * .bazelbsp.JavaRuntimeInfo java_runtime_info = 3000;
       */
      public Builder setJavaRuntimeInfo(org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo value) {
        if (javaRuntimeInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          javaRuntimeInfo_ = value;
          onChanged();
        } else {
          javaRuntimeInfoBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .bazelbsp.JavaRuntimeInfo java_runtime_info = 3000;
       */
      public Builder setJavaRuntimeInfo(
          org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo.Builder builderForValue) {
        if (javaRuntimeInfoBuilder_ == null) {
          javaRuntimeInfo_ = builderForValue.build();
          onChanged();
        } else {
          javaRuntimeInfoBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .bazelbsp.JavaRuntimeInfo java_runtime_info = 3000;
       */
      public Builder mergeJavaRuntimeInfo(org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo value) {
        if (javaRuntimeInfoBuilder_ == null) {
          if (javaRuntimeInfo_ != null) {
            javaRuntimeInfo_ =
              org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo.newBuilder(javaRuntimeInfo_).mergeFrom(value).buildPartial();
          } else {
            javaRuntimeInfo_ = value;
          }
          onChanged();
        } else {
          javaRuntimeInfoBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .bazelbsp.JavaRuntimeInfo java_runtime_info = 3000;
       */
      public Builder clearJavaRuntimeInfo() {
        if (javaRuntimeInfoBuilder_ == null) {
          javaRuntimeInfo_ = null;
          onChanged();
        } else {
          javaRuntimeInfo_ = null;
          javaRuntimeInfoBuilder_ = null;
        }

        return this;
      }
      /**
       * .bazelbsp.JavaRuntimeInfo java_runtime_info = 3000;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo.Builder getJavaRuntimeInfoBuilder() {
        
        onChanged();
        return getJavaRuntimeInfoFieldBuilder().getBuilder();
      }
      /**
       * .bazelbsp.JavaRuntimeInfo java_runtime_info = 3000;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfoOrBuilder getJavaRuntimeInfoOrBuilder() {
        if (javaRuntimeInfoBuilder_ != null) {
          return javaRuntimeInfoBuilder_.getMessageOrBuilder();
        } else {
          return javaRuntimeInfo_ == null ?
              org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo.getDefaultInstance() : javaRuntimeInfo_;
        }
      }
      /**
       * .bazelbsp.JavaRuntimeInfo java_runtime_info = 3000;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo, org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfoOrBuilder> 
          getJavaRuntimeInfoFieldBuilder() {
        if (javaRuntimeInfoBuilder_ == null) {
          javaRuntimeInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo, org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfo.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.JavaRuntimeInfoOrBuilder>(
                  getJavaRuntimeInfo(),
                  getParentForChildren(),
                  isClean());
          javaRuntimeInfo_ = null;
        }
        return javaRuntimeInfoBuilder_;
      }

      private org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo scalaTargetInfo_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo, org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfoOrBuilder> scalaTargetInfoBuilder_;
      /**
       * .bazelbsp.ScalaTargetInfo scala_target_info = 4000;
       * @return Whether the scalaTargetInfo field is set.
       */
      public boolean hasScalaTargetInfo() {
        return scalaTargetInfoBuilder_ != null || scalaTargetInfo_ != null;
      }
      /**
       * .bazelbsp.ScalaTargetInfo scala_target_info = 4000;
       * @return The scalaTargetInfo.
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo getScalaTargetInfo() {
        if (scalaTargetInfoBuilder_ == null) {
          return scalaTargetInfo_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo.getDefaultInstance() : scalaTargetInfo_;
        } else {
          return scalaTargetInfoBuilder_.getMessage();
        }
      }
      /**
       * .bazelbsp.ScalaTargetInfo scala_target_info = 4000;
       */
      public Builder setScalaTargetInfo(org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo value) {
        if (scalaTargetInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          scalaTargetInfo_ = value;
          onChanged();
        } else {
          scalaTargetInfoBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .bazelbsp.ScalaTargetInfo scala_target_info = 4000;
       */
      public Builder setScalaTargetInfo(
          org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo.Builder builderForValue) {
        if (scalaTargetInfoBuilder_ == null) {
          scalaTargetInfo_ = builderForValue.build();
          onChanged();
        } else {
          scalaTargetInfoBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .bazelbsp.ScalaTargetInfo scala_target_info = 4000;
       */
      public Builder mergeScalaTargetInfo(org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo value) {
        if (scalaTargetInfoBuilder_ == null) {
          if (scalaTargetInfo_ != null) {
            scalaTargetInfo_ =
              org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo.newBuilder(scalaTargetInfo_).mergeFrom(value).buildPartial();
          } else {
            scalaTargetInfo_ = value;
          }
          onChanged();
        } else {
          scalaTargetInfoBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .bazelbsp.ScalaTargetInfo scala_target_info = 4000;
       */
      public Builder clearScalaTargetInfo() {
        if (scalaTargetInfoBuilder_ == null) {
          scalaTargetInfo_ = null;
          onChanged();
        } else {
          scalaTargetInfo_ = null;
          scalaTargetInfoBuilder_ = null;
        }

        return this;
      }
      /**
       * .bazelbsp.ScalaTargetInfo scala_target_info = 4000;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo.Builder getScalaTargetInfoBuilder() {
        
        onChanged();
        return getScalaTargetInfoFieldBuilder().getBuilder();
      }
      /**
       * .bazelbsp.ScalaTargetInfo scala_target_info = 4000;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfoOrBuilder getScalaTargetInfoOrBuilder() {
        if (scalaTargetInfoBuilder_ != null) {
          return scalaTargetInfoBuilder_.getMessageOrBuilder();
        } else {
          return scalaTargetInfo_ == null ?
              org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo.getDefaultInstance() : scalaTargetInfo_;
        }
      }
      /**
       * .bazelbsp.ScalaTargetInfo scala_target_info = 4000;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo, org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfoOrBuilder> 
          getScalaTargetInfoFieldBuilder() {
        if (scalaTargetInfoBuilder_ == null) {
          scalaTargetInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo, org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfo.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaTargetInfoOrBuilder>(
                  getScalaTargetInfo(),
                  getParentForChildren(),
                  isClean());
          scalaTargetInfo_ = null;
        }
        return scalaTargetInfoBuilder_;
      }

      private org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo scalaToolchainInfo_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo, org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfoOrBuilder> scalaToolchainInfoBuilder_;
      /**
       * .bazelbsp.ScalaToolchainInfo scala_toolchain_info = 5000;
       * @return Whether the scalaToolchainInfo field is set.
       */
      public boolean hasScalaToolchainInfo() {
        return scalaToolchainInfoBuilder_ != null || scalaToolchainInfo_ != null;
      }
      /**
       * .bazelbsp.ScalaToolchainInfo scala_toolchain_info = 5000;
       * @return The scalaToolchainInfo.
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo getScalaToolchainInfo() {
        if (scalaToolchainInfoBuilder_ == null) {
          return scalaToolchainInfo_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo.getDefaultInstance() : scalaToolchainInfo_;
        } else {
          return scalaToolchainInfoBuilder_.getMessage();
        }
      }
      /**
       * .bazelbsp.ScalaToolchainInfo scala_toolchain_info = 5000;
       */
      public Builder setScalaToolchainInfo(org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo value) {
        if (scalaToolchainInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          scalaToolchainInfo_ = value;
          onChanged();
        } else {
          scalaToolchainInfoBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .bazelbsp.ScalaToolchainInfo scala_toolchain_info = 5000;
       */
      public Builder setScalaToolchainInfo(
          org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo.Builder builderForValue) {
        if (scalaToolchainInfoBuilder_ == null) {
          scalaToolchainInfo_ = builderForValue.build();
          onChanged();
        } else {
          scalaToolchainInfoBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .bazelbsp.ScalaToolchainInfo scala_toolchain_info = 5000;
       */
      public Builder mergeScalaToolchainInfo(org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo value) {
        if (scalaToolchainInfoBuilder_ == null) {
          if (scalaToolchainInfo_ != null) {
            scalaToolchainInfo_ =
              org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo.newBuilder(scalaToolchainInfo_).mergeFrom(value).buildPartial();
          } else {
            scalaToolchainInfo_ = value;
          }
          onChanged();
        } else {
          scalaToolchainInfoBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .bazelbsp.ScalaToolchainInfo scala_toolchain_info = 5000;
       */
      public Builder clearScalaToolchainInfo() {
        if (scalaToolchainInfoBuilder_ == null) {
          scalaToolchainInfo_ = null;
          onChanged();
        } else {
          scalaToolchainInfo_ = null;
          scalaToolchainInfoBuilder_ = null;
        }

        return this;
      }
      /**
       * .bazelbsp.ScalaToolchainInfo scala_toolchain_info = 5000;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo.Builder getScalaToolchainInfoBuilder() {
        
        onChanged();
        return getScalaToolchainInfoFieldBuilder().getBuilder();
      }
      /**
       * .bazelbsp.ScalaToolchainInfo scala_toolchain_info = 5000;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfoOrBuilder getScalaToolchainInfoOrBuilder() {
        if (scalaToolchainInfoBuilder_ != null) {
          return scalaToolchainInfoBuilder_.getMessageOrBuilder();
        } else {
          return scalaToolchainInfo_ == null ?
              org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo.getDefaultInstance() : scalaToolchainInfo_;
        }
      }
      /**
       * .bazelbsp.ScalaToolchainInfo scala_toolchain_info = 5000;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo, org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfoOrBuilder> 
          getScalaToolchainInfoFieldBuilder() {
        if (scalaToolchainInfoBuilder_ == null) {
          scalaToolchainInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo, org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfo.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.ScalaToolchainInfoOrBuilder>(
                  getScalaToolchainInfo(),
                  getParentForChildren(),
                  isClean());
          scalaToolchainInfo_ = null;
        }
        return scalaToolchainInfoBuilder_;
      }

      private org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo cppTargetInfo_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo, org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfoOrBuilder> cppTargetInfoBuilder_;
      /**
       * .bazelbsp.CppTargetInfo cpp_target_info = 6000;
       * @return Whether the cppTargetInfo field is set.
       */
      public boolean hasCppTargetInfo() {
        return cppTargetInfoBuilder_ != null || cppTargetInfo_ != null;
      }
      /**
       * .bazelbsp.CppTargetInfo cpp_target_info = 6000;
       * @return The cppTargetInfo.
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo getCppTargetInfo() {
        if (cppTargetInfoBuilder_ == null) {
          return cppTargetInfo_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo.getDefaultInstance() : cppTargetInfo_;
        } else {
          return cppTargetInfoBuilder_.getMessage();
        }
      }
      /**
       * .bazelbsp.CppTargetInfo cpp_target_info = 6000;
       */
      public Builder setCppTargetInfo(org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo value) {
        if (cppTargetInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          cppTargetInfo_ = value;
          onChanged();
        } else {
          cppTargetInfoBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .bazelbsp.CppTargetInfo cpp_target_info = 6000;
       */
      public Builder setCppTargetInfo(
          org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo.Builder builderForValue) {
        if (cppTargetInfoBuilder_ == null) {
          cppTargetInfo_ = builderForValue.build();
          onChanged();
        } else {
          cppTargetInfoBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .bazelbsp.CppTargetInfo cpp_target_info = 6000;
       */
      public Builder mergeCppTargetInfo(org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo value) {
        if (cppTargetInfoBuilder_ == null) {
          if (cppTargetInfo_ != null) {
            cppTargetInfo_ =
              org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo.newBuilder(cppTargetInfo_).mergeFrom(value).buildPartial();
          } else {
            cppTargetInfo_ = value;
          }
          onChanged();
        } else {
          cppTargetInfoBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .bazelbsp.CppTargetInfo cpp_target_info = 6000;
       */
      public Builder clearCppTargetInfo() {
        if (cppTargetInfoBuilder_ == null) {
          cppTargetInfo_ = null;
          onChanged();
        } else {
          cppTargetInfo_ = null;
          cppTargetInfoBuilder_ = null;
        }

        return this;
      }
      /**
       * .bazelbsp.CppTargetInfo cpp_target_info = 6000;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo.Builder getCppTargetInfoBuilder() {
        
        onChanged();
        return getCppTargetInfoFieldBuilder().getBuilder();
      }
      /**
       * .bazelbsp.CppTargetInfo cpp_target_info = 6000;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfoOrBuilder getCppTargetInfoOrBuilder() {
        if (cppTargetInfoBuilder_ != null) {
          return cppTargetInfoBuilder_.getMessageOrBuilder();
        } else {
          return cppTargetInfo_ == null ?
              org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo.getDefaultInstance() : cppTargetInfo_;
        }
      }
      /**
       * .bazelbsp.CppTargetInfo cpp_target_info = 6000;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo, org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfoOrBuilder> 
          getCppTargetInfoFieldBuilder() {
        if (cppTargetInfoBuilder_ == null) {
          cppTargetInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo, org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfo.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.CppTargetInfoOrBuilder>(
                  getCppTargetInfo(),
                  getParentForChildren(),
                  isClean());
          cppTargetInfo_ = null;
        }
        return cppTargetInfoBuilder_;
      }

      private org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo kotlinTargetInfo_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo, org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfoOrBuilder> kotlinTargetInfoBuilder_;
      /**
       * .bazelbsp.KotlinTargetInfo kotlin_target_info = 7000;
       * @return Whether the kotlinTargetInfo field is set.
       */
      public boolean hasKotlinTargetInfo() {
        return kotlinTargetInfoBuilder_ != null || kotlinTargetInfo_ != null;
      }
      /**
       * .bazelbsp.KotlinTargetInfo kotlin_target_info = 7000;
       * @return The kotlinTargetInfo.
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo getKotlinTargetInfo() {
        if (kotlinTargetInfoBuilder_ == null) {
          return kotlinTargetInfo_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo.getDefaultInstance() : kotlinTargetInfo_;
        } else {
          return kotlinTargetInfoBuilder_.getMessage();
        }
      }
      /**
       * .bazelbsp.KotlinTargetInfo kotlin_target_info = 7000;
       */
      public Builder setKotlinTargetInfo(org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo value) {
        if (kotlinTargetInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kotlinTargetInfo_ = value;
          onChanged();
        } else {
          kotlinTargetInfoBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .bazelbsp.KotlinTargetInfo kotlin_target_info = 7000;
       */
      public Builder setKotlinTargetInfo(
          org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo.Builder builderForValue) {
        if (kotlinTargetInfoBuilder_ == null) {
          kotlinTargetInfo_ = builderForValue.build();
          onChanged();
        } else {
          kotlinTargetInfoBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .bazelbsp.KotlinTargetInfo kotlin_target_info = 7000;
       */
      public Builder mergeKotlinTargetInfo(org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo value) {
        if (kotlinTargetInfoBuilder_ == null) {
          if (kotlinTargetInfo_ != null) {
            kotlinTargetInfo_ =
              org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo.newBuilder(kotlinTargetInfo_).mergeFrom(value).buildPartial();
          } else {
            kotlinTargetInfo_ = value;
          }
          onChanged();
        } else {
          kotlinTargetInfoBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .bazelbsp.KotlinTargetInfo kotlin_target_info = 7000;
       */
      public Builder clearKotlinTargetInfo() {
        if (kotlinTargetInfoBuilder_ == null) {
          kotlinTargetInfo_ = null;
          onChanged();
        } else {
          kotlinTargetInfo_ = null;
          kotlinTargetInfoBuilder_ = null;
        }

        return this;
      }
      /**
       * .bazelbsp.KotlinTargetInfo kotlin_target_info = 7000;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo.Builder getKotlinTargetInfoBuilder() {
        
        onChanged();
        return getKotlinTargetInfoFieldBuilder().getBuilder();
      }
      /**
       * .bazelbsp.KotlinTargetInfo kotlin_target_info = 7000;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfoOrBuilder getKotlinTargetInfoOrBuilder() {
        if (kotlinTargetInfoBuilder_ != null) {
          return kotlinTargetInfoBuilder_.getMessageOrBuilder();
        } else {
          return kotlinTargetInfo_ == null ?
              org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo.getDefaultInstance() : kotlinTargetInfo_;
        }
      }
      /**
       * .bazelbsp.KotlinTargetInfo kotlin_target_info = 7000;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo, org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfoOrBuilder> 
          getKotlinTargetInfoFieldBuilder() {
        if (kotlinTargetInfoBuilder_ == null) {
          kotlinTargetInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo, org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfo.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.KotlinTargetInfoOrBuilder>(
                  getKotlinTargetInfo(),
                  getParentForChildren(),
                  isClean());
          kotlinTargetInfo_ = null;
        }
        return kotlinTargetInfoBuilder_;
      }

      private org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo pythonTargetInfo_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo, org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfoOrBuilder> pythonTargetInfoBuilder_;
      /**
       * .bazelbsp.PythonTargetInfo python_target_info = 8000;
       * @return Whether the pythonTargetInfo field is set.
       */
      public boolean hasPythonTargetInfo() {
        return pythonTargetInfoBuilder_ != null || pythonTargetInfo_ != null;
      }
      /**
       * .bazelbsp.PythonTargetInfo python_target_info = 8000;
       * @return The pythonTargetInfo.
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo getPythonTargetInfo() {
        if (pythonTargetInfoBuilder_ == null) {
          return pythonTargetInfo_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo.getDefaultInstance() : pythonTargetInfo_;
        } else {
          return pythonTargetInfoBuilder_.getMessage();
        }
      }
      /**
       * .bazelbsp.PythonTargetInfo python_target_info = 8000;
       */
      public Builder setPythonTargetInfo(org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo value) {
        if (pythonTargetInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          pythonTargetInfo_ = value;
          onChanged();
        } else {
          pythonTargetInfoBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .bazelbsp.PythonTargetInfo python_target_info = 8000;
       */
      public Builder setPythonTargetInfo(
          org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo.Builder builderForValue) {
        if (pythonTargetInfoBuilder_ == null) {
          pythonTargetInfo_ = builderForValue.build();
          onChanged();
        } else {
          pythonTargetInfoBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .bazelbsp.PythonTargetInfo python_target_info = 8000;
       */
      public Builder mergePythonTargetInfo(org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo value) {
        if (pythonTargetInfoBuilder_ == null) {
          if (pythonTargetInfo_ != null) {
            pythonTargetInfo_ =
              org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo.newBuilder(pythonTargetInfo_).mergeFrom(value).buildPartial();
          } else {
            pythonTargetInfo_ = value;
          }
          onChanged();
        } else {
          pythonTargetInfoBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .bazelbsp.PythonTargetInfo python_target_info = 8000;
       */
      public Builder clearPythonTargetInfo() {
        if (pythonTargetInfoBuilder_ == null) {
          pythonTargetInfo_ = null;
          onChanged();
        } else {
          pythonTargetInfo_ = null;
          pythonTargetInfoBuilder_ = null;
        }

        return this;
      }
      /**
       * .bazelbsp.PythonTargetInfo python_target_info = 8000;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo.Builder getPythonTargetInfoBuilder() {
        
        onChanged();
        return getPythonTargetInfoFieldBuilder().getBuilder();
      }
      /**
       * .bazelbsp.PythonTargetInfo python_target_info = 8000;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfoOrBuilder getPythonTargetInfoOrBuilder() {
        if (pythonTargetInfoBuilder_ != null) {
          return pythonTargetInfoBuilder_.getMessageOrBuilder();
        } else {
          return pythonTargetInfo_ == null ?
              org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo.getDefaultInstance() : pythonTargetInfo_;
        }
      }
      /**
       * .bazelbsp.PythonTargetInfo python_target_info = 8000;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo, org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfoOrBuilder> 
          getPythonTargetInfoFieldBuilder() {
        if (pythonTargetInfoBuilder_ == null) {
          pythonTargetInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo, org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfo.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.PythonTargetInfoOrBuilder>(
                  getPythonTargetInfo(),
                  getParentForChildren(),
                  isClean());
          pythonTargetInfo_ = null;
        }
        return pythonTargetInfoBuilder_;
      }

      private org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo rustCrateInfo_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo, org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfoOrBuilder> rustCrateInfoBuilder_;
      /**
       * .bazelbsp.RustCrateInfo rust_crate_info = 9000;
       * @return Whether the rustCrateInfo field is set.
       */
      public boolean hasRustCrateInfo() {
        return rustCrateInfoBuilder_ != null || rustCrateInfo_ != null;
      }
      /**
       * .bazelbsp.RustCrateInfo rust_crate_info = 9000;
       * @return The rustCrateInfo.
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo getRustCrateInfo() {
        if (rustCrateInfoBuilder_ == null) {
          return rustCrateInfo_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo.getDefaultInstance() : rustCrateInfo_;
        } else {
          return rustCrateInfoBuilder_.getMessage();
        }
      }
      /**
       * .bazelbsp.RustCrateInfo rust_crate_info = 9000;
       */
      public Builder setRustCrateInfo(org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo value) {
        if (rustCrateInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          rustCrateInfo_ = value;
          onChanged();
        } else {
          rustCrateInfoBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .bazelbsp.RustCrateInfo rust_crate_info = 9000;
       */
      public Builder setRustCrateInfo(
          org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo.Builder builderForValue) {
        if (rustCrateInfoBuilder_ == null) {
          rustCrateInfo_ = builderForValue.build();
          onChanged();
        } else {
          rustCrateInfoBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .bazelbsp.RustCrateInfo rust_crate_info = 9000;
       */
      public Builder mergeRustCrateInfo(org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo value) {
        if (rustCrateInfoBuilder_ == null) {
          if (rustCrateInfo_ != null) {
            rustCrateInfo_ =
              org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo.newBuilder(rustCrateInfo_).mergeFrom(value).buildPartial();
          } else {
            rustCrateInfo_ = value;
          }
          onChanged();
        } else {
          rustCrateInfoBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .bazelbsp.RustCrateInfo rust_crate_info = 9000;
       */
      public Builder clearRustCrateInfo() {
        if (rustCrateInfoBuilder_ == null) {
          rustCrateInfo_ = null;
          onChanged();
        } else {
          rustCrateInfo_ = null;
          rustCrateInfoBuilder_ = null;
        }

        return this;
      }
      /**
       * .bazelbsp.RustCrateInfo rust_crate_info = 9000;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo.Builder getRustCrateInfoBuilder() {
        
        onChanged();
        return getRustCrateInfoFieldBuilder().getBuilder();
      }
      /**
       * .bazelbsp.RustCrateInfo rust_crate_info = 9000;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfoOrBuilder getRustCrateInfoOrBuilder() {
        if (rustCrateInfoBuilder_ != null) {
          return rustCrateInfoBuilder_.getMessageOrBuilder();
        } else {
          return rustCrateInfo_ == null ?
              org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo.getDefaultInstance() : rustCrateInfo_;
        }
      }
      /**
       * .bazelbsp.RustCrateInfo rust_crate_info = 9000;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo, org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfoOrBuilder> 
          getRustCrateInfoFieldBuilder() {
        if (rustCrateInfoBuilder_ == null) {
          rustCrateInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo, org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfo.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.RustCrateInfoOrBuilder>(
                  getRustCrateInfo(),
                  getParentForChildren(),
                  isClean());
          rustCrateInfo_ = null;
        }
        return rustCrateInfoBuilder_;
      }

      private org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo androidTargetInfo_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo, org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfoOrBuilder> androidTargetInfoBuilder_;
      /**
       * .bazelbsp.AndroidTargetInfo android_target_info = 10000;
       * @return Whether the androidTargetInfo field is set.
       */
      public boolean hasAndroidTargetInfo() {
        return androidTargetInfoBuilder_ != null || androidTargetInfo_ != null;
      }
      /**
       * .bazelbsp.AndroidTargetInfo android_target_info = 10000;
       * @return The androidTargetInfo.
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo getAndroidTargetInfo() {
        if (androidTargetInfoBuilder_ == null) {
          return androidTargetInfo_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo.getDefaultInstance() : androidTargetInfo_;
        } else {
          return androidTargetInfoBuilder_.getMessage();
        }
      }
      /**
       * .bazelbsp.AndroidTargetInfo android_target_info = 10000;
       */
      public Builder setAndroidTargetInfo(org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo value) {
        if (androidTargetInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          androidTargetInfo_ = value;
          onChanged();
        } else {
          androidTargetInfoBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .bazelbsp.AndroidTargetInfo android_target_info = 10000;
       */
      public Builder setAndroidTargetInfo(
          org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo.Builder builderForValue) {
        if (androidTargetInfoBuilder_ == null) {
          androidTargetInfo_ = builderForValue.build();
          onChanged();
        } else {
          androidTargetInfoBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .bazelbsp.AndroidTargetInfo android_target_info = 10000;
       */
      public Builder mergeAndroidTargetInfo(org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo value) {
        if (androidTargetInfoBuilder_ == null) {
          if (androidTargetInfo_ != null) {
            androidTargetInfo_ =
              org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo.newBuilder(androidTargetInfo_).mergeFrom(value).buildPartial();
          } else {
            androidTargetInfo_ = value;
          }
          onChanged();
        } else {
          androidTargetInfoBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .bazelbsp.AndroidTargetInfo android_target_info = 10000;
       */
      public Builder clearAndroidTargetInfo() {
        if (androidTargetInfoBuilder_ == null) {
          androidTargetInfo_ = null;
          onChanged();
        } else {
          androidTargetInfo_ = null;
          androidTargetInfoBuilder_ = null;
        }

        return this;
      }
      /**
       * .bazelbsp.AndroidTargetInfo android_target_info = 10000;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo.Builder getAndroidTargetInfoBuilder() {
        
        onChanged();
        return getAndroidTargetInfoFieldBuilder().getBuilder();
      }
      /**
       * .bazelbsp.AndroidTargetInfo android_target_info = 10000;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfoOrBuilder getAndroidTargetInfoOrBuilder() {
        if (androidTargetInfoBuilder_ != null) {
          return androidTargetInfoBuilder_.getMessageOrBuilder();
        } else {
          return androidTargetInfo_ == null ?
              org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo.getDefaultInstance() : androidTargetInfo_;
        }
      }
      /**
       * .bazelbsp.AndroidTargetInfo android_target_info = 10000;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo, org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfoOrBuilder> 
          getAndroidTargetInfoFieldBuilder() {
        if (androidTargetInfoBuilder_ == null) {
          androidTargetInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo, org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfo.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidTargetInfoOrBuilder>(
                  getAndroidTargetInfo(),
                  getParentForChildren(),
                  isClean());
          androidTargetInfo_ = null;
        }
        return androidTargetInfoBuilder_;
      }

      private org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo androidAarImportInfo_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo, org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfoOrBuilder> androidAarImportInfoBuilder_;
      /**
       * .bazelbsp.AndroidAarImportInfo android_aar_import_info = 11000;
       * @return Whether the androidAarImportInfo field is set.
       */
      public boolean hasAndroidAarImportInfo() {
        return androidAarImportInfoBuilder_ != null || androidAarImportInfo_ != null;
      }
      /**
       * .bazelbsp.AndroidAarImportInfo android_aar_import_info = 11000;
       * @return The androidAarImportInfo.
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo getAndroidAarImportInfo() {
        if (androidAarImportInfoBuilder_ == null) {
          return androidAarImportInfo_ == null ? org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo.getDefaultInstance() : androidAarImportInfo_;
        } else {
          return androidAarImportInfoBuilder_.getMessage();
        }
      }
      /**
       * .bazelbsp.AndroidAarImportInfo android_aar_import_info = 11000;
       */
      public Builder setAndroidAarImportInfo(org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo value) {
        if (androidAarImportInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          androidAarImportInfo_ = value;
          onChanged();
        } else {
          androidAarImportInfoBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .bazelbsp.AndroidAarImportInfo android_aar_import_info = 11000;
       */
      public Builder setAndroidAarImportInfo(
          org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo.Builder builderForValue) {
        if (androidAarImportInfoBuilder_ == null) {
          androidAarImportInfo_ = builderForValue.build();
          onChanged();
        } else {
          androidAarImportInfoBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .bazelbsp.AndroidAarImportInfo android_aar_import_info = 11000;
       */
      public Builder mergeAndroidAarImportInfo(org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo value) {
        if (androidAarImportInfoBuilder_ == null) {
          if (androidAarImportInfo_ != null) {
            androidAarImportInfo_ =
              org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo.newBuilder(androidAarImportInfo_).mergeFrom(value).buildPartial();
          } else {
            androidAarImportInfo_ = value;
          }
          onChanged();
        } else {
          androidAarImportInfoBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .bazelbsp.AndroidAarImportInfo android_aar_import_info = 11000;
       */
      public Builder clearAndroidAarImportInfo() {
        if (androidAarImportInfoBuilder_ == null) {
          androidAarImportInfo_ = null;
          onChanged();
        } else {
          androidAarImportInfo_ = null;
          androidAarImportInfoBuilder_ = null;
        }

        return this;
      }
      /**
       * .bazelbsp.AndroidAarImportInfo android_aar_import_info = 11000;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo.Builder getAndroidAarImportInfoBuilder() {
        
        onChanged();
        return getAndroidAarImportInfoFieldBuilder().getBuilder();
      }
      /**
       * .bazelbsp.AndroidAarImportInfo android_aar_import_info = 11000;
       */
      public org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfoOrBuilder getAndroidAarImportInfoOrBuilder() {
        if (androidAarImportInfoBuilder_ != null) {
          return androidAarImportInfoBuilder_.getMessageOrBuilder();
        } else {
          return androidAarImportInfo_ == null ?
              org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo.getDefaultInstance() : androidAarImportInfo_;
        }
      }
      /**
       * .bazelbsp.AndroidAarImportInfo android_aar_import_info = 11000;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo, org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfoOrBuilder> 
          getAndroidAarImportInfoFieldBuilder() {
        if (androidAarImportInfoBuilder_ == null) {
          androidAarImportInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo, org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfo.Builder, org.jetbrains.bsp.bazel.info.BspTargetInfo.AndroidAarImportInfoOrBuilder>(
                  getAndroidAarImportInfo(),
                  getParentForChildren(),
                  isClean());
          androidAarImportInfo_ = null;
        }
        return androidAarImportInfoBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:bazelbsp.TargetInfo)
    }

    // @@protoc_insertion_point(class_scope:bazelbsp.TargetInfo)
    private static final org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo();
    }

    public static org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public TargetInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

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

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

    @java.lang.Override
    public org.jetbrains.bsp.bazel.info.BspTargetInfo.TargetInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_bazelbsp_FileLocation_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_bazelbsp_FileLocation_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_bazelbsp_Dependency_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_bazelbsp_Dependency_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_bazelbsp_JvmOutputs_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_bazelbsp_JvmOutputs_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_bazelbsp_JvmTargetInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_bazelbsp_JvmTargetInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_bazelbsp_JavaToolchainInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_bazelbsp_JavaToolchainInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_bazelbsp_JavaRuntimeInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_bazelbsp_JavaRuntimeInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_bazelbsp_ScalaTargetInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_bazelbsp_ScalaTargetInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_bazelbsp_ScalaToolchainInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_bazelbsp_ScalaToolchainInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_bazelbsp_CppTargetInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_bazelbsp_CppTargetInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_bazelbsp_KotlinTargetInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_bazelbsp_KotlinTargetInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_bazelbsp_PythonTargetInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_bazelbsp_PythonTargetInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_bazelbsp_RustCrateInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_bazelbsp_RustCrateInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_bazelbsp_AndroidTargetInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_bazelbsp_AndroidTargetInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_bazelbsp_AndroidAarImportInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_bazelbsp_AndroidAarImportInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_bazelbsp_TargetInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_bazelbsp_TargetInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_bazelbsp_TargetInfo_EnvEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_bazelbsp_TargetInfo_EnvEntry_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\nVserver/src/main/kotlin/org/jetbrains/b" +
      "sp/bazel/server/sync/proto/bsp_target_in" +
      "fo.proto\022\010bazelbsp\"s\n\014FileLocation\022\025\n\rre" +
      "lative_path\030\001 \001(\t\022\021\n\tis_source\030\002 \001(\010\022\023\n\013" +
      "is_external\030\003 \001(\010\022$\n\034root_execution_path" +
      "_fragment\030\004 \001(\t\"\202\001\n\nDependency\022\n\n\002id\030\001 \001" +
      "(\t\022<\n\017dependency_type\030\002 \001(\0162#.bazelbsp.D" +
      "ependency.DependencyType\"*\n\016DependencyTy" +
      "pe\022\013\n\007COMPILE\020\000\022\013\n\007RUNTIME\020\001\"\226\001\n\nJvmOutp" +
      "uts\022+\n\013binary_jars\030\001 \003(\0132\026.bazelbsp.File" +
      "Location\022.\n\016interface_jars\030\002 \003(\0132\026.bazel" +
      "bsp.FileLocation\022+\n\013source_jars\030\003 \003(\0132\026." +
      "bazelbsp.FileLocation\"\321\001\n\rJvmTargetInfo\022" +
      "\"\n\004jars\030\001 \003(\0132\024.bazelbsp.JvmOutputs\022,\n\016g" +
      "enerated_jars\030\002 \003(\0132\024.bazelbsp.JvmOutput" +
      "s\022\022\n\njavac_opts\030\006 \003(\t\022\021\n\tjvm_flags\030\007 \003(\t" +
      "\022\022\n\nmain_class\030\010 \001(\t\022\014\n\004args\030\t \003(\t\022%\n\005jd" +
      "eps\030\n \003(\0132\026.bazelbsp.FileLocation\"n\n\021Jav" +
      "aToolchainInfo\022\026\n\016source_version\030\001 \001(\t\022\026" +
      "\n\016target_version\030\002 \001(\t\022)\n\tjava_home\030\003 \001(" +
      "\0132\026.bazelbsp.FileLocation\"<\n\017JavaRuntime" +
      "Info\022)\n\tjava_home\030\001 \001(\0132\026.bazelbsp.FileL" +
      "ocation\"&\n\017ScalaTargetInfo\022\023\n\013scalac_opt" +
      "s\030\001 \003(\t\"H\n\022ScalaToolchainInfo\0222\n\022compile" +
      "r_classpath\030\001 \003(\0132\026.bazelbsp.FileLocatio" +
      "n\"W\n\rCppTargetInfo\022\r\n\005copts\030\001 \003(\t\022\017\n\007def" +
      "ines\030\002 \003(\t\022\021\n\tlink_opts\030\003 \003(\t\022\023\n\013link_sh" +
      "ared\030\004 \001(\010\"\224\001\n\020KotlinTargetInfo\022\030\n\020langu" +
      "age_version\030\001 \001(\t\022\023\n\013api_version\030\002 \001(\t\022\022" +
      "\n\nassociates\030\003 \003(\t\022\024\n\014kotlinc_opts\030\004 \003(\t" +
      "\022\'\n\007stdlibs\030\005 \003(\0132\026.bazelbsp.FileLocatio" +
      "n\"P\n\020PythonTargetInfo\022+\n\013interpreter\030\001 \001" +
      "(\0132\026.bazelbsp.FileLocation\022\017\n\007version\030\002 " +
      "\001(\t\"\241\002\n\rRustCrateInfo\022\020\n\010crate_id\030\001 \001(\t\022" +
      "-\n\010location\030\002 \001(\0162\033.bazelbsp.RustCrateLo" +
      "cation\022\026\n\016from_workspace\030\003 \001(\010\022\014\n\004name\030\004" +
      " \001(\t\022\014\n\004kind\030\005 \001(\t\022\017\n\007edition\030\006 \001(\t\022\017\n\007o" +
      "ut_dir\030\007 \001(\t\022\026\n\016crate_features\030\010 \003(\t\022\036\n\026" +
      "dependencies_crate_ids\030\t \003(\t\022\022\n\ncrate_ro" +
      "ot\030\n \001(\t\022\017\n\007version\030\013 \001(\t\022\034\n\024proc_macro_" +
      "artifacts\030\014 \003(\t\"\341\001\n\021AndroidTargetInfo\022+\n" +
      "\013android_jar\030\001 \001(\0132\026.bazelbsp.FileLocati" +
      "on\022(\n\010manifest\030\002 \001(\0132\026.bazelbsp.FileLoca" +
      "tion\022)\n\tresources\030\003 \003(\0132\026.bazelbsp.FileL" +
      "ocation\0220\n\020resource_folders\030\004 \003(\0132\026.baze" +
      "lbsp.FileLocation\022\030\n\020kotlin_target_id\030\005 " +
      "\001(\t\"\230\001\n\024AndroidAarImportInfo\022(\n\010manifest" +
      "\030\001 \001(\0132\026.bazelbsp.FileLocation\022/\n\017resour" +
      "ce_folder\030\002 \001(\0132\026.bazelbsp.FileLocation\022" +
      "%\n\005r_txt\030\003 \001(\0132\026.bazelbsp.FileLocation\"\217" +
      "\007\n\nTargetInfo\022\n\n\002id\030\n \001(\t\022\014\n\004kind\030\024 \001(\t\022" +
      "\014\n\004tags\030\036 \003(\t\022*\n\014dependencies\030( \003(\0132\024.ba" +
      "zelbsp.Dependency\022\'\n\007sources\0302 \003(\0132\026.baz" +
      "elbsp.FileLocation\022)\n\tresources\030< \003(\0132\026." +
      "bazelbsp.FileLocation\022*\n\003env\030F \003(\0132\035.baz" +
      "elbsp.TargetInfo.EnvEntry\022\023\n\013env_inherit" +
      "\030P \003(\t\0221\n\017jvm_target_info\030\350\007 \001(\0132\027.bazel" +
      "bsp.JvmTargetInfo\0229\n\023java_toolchain_info" +
      "\030\320\017 \001(\0132\033.bazelbsp.JavaToolchainInfo\0225\n\021" +
      "java_runtime_info\030\270\027 \001(\0132\031.bazelbsp.Java" +
      "RuntimeInfo\0225\n\021scala_target_info\030\240\037 \001(\0132" +
      "\031.bazelbsp.ScalaTargetInfo\022;\n\024scala_tool" +
      "chain_info\030\210\' \001(\0132\034.bazelbsp.ScalaToolch" +
      "ainInfo\0221\n\017cpp_target_info\030\360. \001(\0132\027.baze" +
      "lbsp.CppTargetInfo\0227\n\022kotlin_target_info" +
      "\030\3306 \001(\0132\032.bazelbsp.KotlinTargetInfo\0227\n\022p" +
      "ython_target_info\030\300> \001(\0132\032.bazelbsp.Pyth" +
      "onTargetInfo\0221\n\017rust_crate_info\030\250F \001(\0132\027" +
      ".bazelbsp.RustCrateInfo\0229\n\023android_targe" +
      "t_info\030\220N \001(\0132\033.bazelbsp.AndroidTargetIn" +
      "fo\022@\n\027android_aar_import_info\030\370U \001(\0132\036.b" +
      "azelbsp.AndroidAarImportInfo\032*\n\010EnvEntry" +
      "\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001*5\n\021Rust" +
      "CrateLocation\022\021\n\rWORKSPACE_DIR\020\000\022\r\n\tEXEC" +
      "_ROOT\020\001B\036\n\034org.jetbrains.bsp.bazel.infob" +
      "\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        });
    internal_static_bazelbsp_FileLocation_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_bazelbsp_FileLocation_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_bazelbsp_FileLocation_descriptor,
        new java.lang.String[] { "RelativePath", "IsSource", "IsExternal", "RootExecutionPathFragment", });
    internal_static_bazelbsp_Dependency_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_bazelbsp_Dependency_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_bazelbsp_Dependency_descriptor,
        new java.lang.String[] { "Id", "DependencyType", });
    internal_static_bazelbsp_JvmOutputs_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_bazelbsp_JvmOutputs_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_bazelbsp_JvmOutputs_descriptor,
        new java.lang.String[] { "BinaryJars", "InterfaceJars", "SourceJars", });
    internal_static_bazelbsp_JvmTargetInfo_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_bazelbsp_JvmTargetInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_bazelbsp_JvmTargetInfo_descriptor,
        new java.lang.String[] { "Jars", "GeneratedJars", "JavacOpts", "JvmFlags", "MainClass", "Args", "Jdeps", });
    internal_static_bazelbsp_JavaToolchainInfo_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_bazelbsp_JavaToolchainInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_bazelbsp_JavaToolchainInfo_descriptor,
        new java.lang.String[] { "SourceVersion", "TargetVersion", "JavaHome", });
    internal_static_bazelbsp_JavaRuntimeInfo_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_bazelbsp_JavaRuntimeInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_bazelbsp_JavaRuntimeInfo_descriptor,
        new java.lang.String[] { "JavaHome", });
    internal_static_bazelbsp_ScalaTargetInfo_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_bazelbsp_ScalaTargetInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_bazelbsp_ScalaTargetInfo_descriptor,
        new java.lang.String[] { "ScalacOpts", });
    internal_static_bazelbsp_ScalaToolchainInfo_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_bazelbsp_ScalaToolchainInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_bazelbsp_ScalaToolchainInfo_descriptor,
        new java.lang.String[] { "CompilerClasspath", });
    internal_static_bazelbsp_CppTargetInfo_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_bazelbsp_CppTargetInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_bazelbsp_CppTargetInfo_descriptor,
        new java.lang.String[] { "Copts", "Defines", "LinkOpts", "LinkShared", });
    internal_static_bazelbsp_KotlinTargetInfo_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_bazelbsp_KotlinTargetInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_bazelbsp_KotlinTargetInfo_descriptor,
        new java.lang.String[] { "LanguageVersion", "ApiVersion", "Associates", "KotlincOpts", "Stdlibs", });
    internal_static_bazelbsp_PythonTargetInfo_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_bazelbsp_PythonTargetInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_bazelbsp_PythonTargetInfo_descriptor,
        new java.lang.String[] { "Interpreter", "Version", });
    internal_static_bazelbsp_RustCrateInfo_descriptor =
      getDescriptor().getMessageTypes().get(11);
    internal_static_bazelbsp_RustCrateInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_bazelbsp_RustCrateInfo_descriptor,
        new java.lang.String[] { "CrateId", "Location", "FromWorkspace", "Name", "Kind", "Edition", "OutDir", "CrateFeatures", "DependenciesCrateIds", "CrateRoot", "Version", "ProcMacroArtifacts", });
    internal_static_bazelbsp_AndroidTargetInfo_descriptor =
      getDescriptor().getMessageTypes().get(12);
    internal_static_bazelbsp_AndroidTargetInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_bazelbsp_AndroidTargetInfo_descriptor,
        new java.lang.String[] { "AndroidJar", "Manifest", "Resources", "ResourceFolders", "KotlinTargetId", });
    internal_static_bazelbsp_AndroidAarImportInfo_descriptor =
      getDescriptor().getMessageTypes().get(13);
    internal_static_bazelbsp_AndroidAarImportInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_bazelbsp_AndroidAarImportInfo_descriptor,
        new java.lang.String[] { "Manifest", "ResourceFolder", "RTxt", });
    internal_static_bazelbsp_TargetInfo_descriptor =
      getDescriptor().getMessageTypes().get(14);
    internal_static_bazelbsp_TargetInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_bazelbsp_TargetInfo_descriptor,
        new java.lang.String[] { "Id", "Kind", "Tags", "Dependencies", "Sources", "Resources", "Env", "EnvInherit", "JvmTargetInfo", "JavaToolchainInfo", "JavaRuntimeInfo", "ScalaTargetInfo", "ScalaToolchainInfo", "CppTargetInfo", "KotlinTargetInfo", "PythonTargetInfo", "RustCrateInfo", "AndroidTargetInfo", "AndroidAarImportInfo", });
    internal_static_bazelbsp_TargetInfo_EnvEntry_descriptor =
      internal_static_bazelbsp_TargetInfo_descriptor.getNestedTypes().get(0);
    internal_static_bazelbsp_TargetInfo_EnvEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_bazelbsp_TargetInfo_EnvEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy