// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: bazel-out/local-fastbuild/bin/src/main/protobuf/libandroid_studio_ide_info_java_proto_srcjar.srcjar.preprocessed/android_studio_ide_info.proto

package com.google.devtools.build.lib.ideinfo.androidstudio;

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

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

    /**
     * <code>optional string relative_path = 2;</code>
     */
    java.lang.String getRelativePath();
    /**
     * <code>optional string relative_path = 2;</code>
     */
    com.google.protobuf.ByteString
        getRelativePathBytes();

    /**
     * <code>optional bool is_source = 3;</code>
     */
    boolean getIsSource();

    /**
     * <pre>
     * set for derived artifacts (is_source = false)
     * </pre>
     *
     * <code>optional string root_execution_path_fragment = 4;</code>
     */
    java.lang.String getRootExecutionPathFragment();
    /**
     * <pre>
     * set for derived artifacts (is_source = false)
     * </pre>
     *
     * <code>optional string root_execution_path_fragment = 4;</code>
     */
    com.google.protobuf.ByteString
        getRootExecutionPathFragmentBytes();
  }
  /**
   * Protobuf type {@code blaze.ArtifactLocation}
   */
  public  static final class ArtifactLocation extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:blaze.ArtifactLocation)
      ArtifactLocationOrBuilder {
    // Use ArtifactLocation.newBuilder() to construct.
    private ArtifactLocation(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ArtifactLocation() {
      relativePath_ = "";
      isSource_ = false;
      rootExecutionPathFragment_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private ArtifactLocation(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();

              relativePath_ = s;
              break;
            }
            case 24: {

              isSource_ = input.readBool();
              break;
            }
            case 34: {
              java.lang.String s = input.readStringRequireUtf8();

              rootExecutionPathFragment_ = s;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_ArtifactLocation_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_ArtifactLocation_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.class, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder.class);
    }

    public static final int RELATIVE_PATH_FIELD_NUMBER = 2;
    private volatile java.lang.Object relativePath_;
    /**
     * <code>optional string relative_path = 2;</code>
     */
    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;
      }
    }
    /**
     * <code>optional string relative_path = 2;</code>
     */
    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 = 3;
    private boolean isSource_;
    /**
     * <code>optional bool is_source = 3;</code>
     */
    public boolean getIsSource() {
      return isSource_;
    }

    public static final int ROOT_EXECUTION_PATH_FRAGMENT_FIELD_NUMBER = 4;
    private volatile java.lang.Object rootExecutionPathFragment_;
    /**
     * <pre>
     * set for derived artifacts (is_source = false)
     * </pre>
     *
     * <code>optional string root_execution_path_fragment = 4;</code>
     */
    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;
      }
    }
    /**
     * <pre>
     * set for derived artifacts (is_source = false)
     * </pre>
     *
     * <code>optional string root_execution_path_fragment = 4;</code>
     */
    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;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getRelativePathBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, relativePath_);
      }
      if (isSource_ != false) {
        output.writeBool(3, isSource_);
      }
      if (!getRootExecutionPathFragmentBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, rootExecutionPathFragment_);
      }
    }

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

      size = 0;
      if (!getRelativePathBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, relativePath_);
      }
      if (isSource_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, isSource_);
      }
      if (!getRootExecutionPathFragmentBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, rootExecutionPathFragment_);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation)) {
        return super.equals(obj);
      }
      com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation other = (com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation) obj;

      boolean result = true;
      result = result && getRelativePath()
          .equals(other.getRelativePath());
      result = result && (getIsSource()
          == other.getIsSource());
      result = result && getRootExecutionPathFragment()
          .equals(other.getRootExecutionPathFragment());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().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) + ROOT_EXECUTION_PATH_FRAGMENT_FIELD_NUMBER;
      hash = (53 * hash) + getRootExecutionPathFragment().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation 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 com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation 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 com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code blaze.ArtifactLocation}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:blaze.ArtifactLocation)
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_ArtifactLocation_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_ArtifactLocation_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.class, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder.class);
      }

      // Construct using com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

        isSource_ = false;

        rootExecutionPathFragment_ = "";

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_ArtifactLocation_descriptor;
      }

      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getDefaultInstanceForType() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance();
      }

      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation build() {
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation buildPartial() {
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation result = new com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation(this);
        result.relativePath_ = relativePath_;
        result.isSource_ = isSource_;
        result.rootExecutionPathFragment_ = rootExecutionPathFragment_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation) {
          return mergeFrom((com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation other) {
        if (other == com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance()) return this;
        if (!other.getRelativePath().isEmpty()) {
          relativePath_ = other.relativePath_;
          onChanged();
        }
        if (other.getIsSource() != false) {
          setIsSource(other.getIsSource());
        }
        if (!other.getRootExecutionPathFragment().isEmpty()) {
          rootExecutionPathFragment_ = other.rootExecutionPathFragment_;
          onChanged();
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object relativePath_ = "";
      /**
       * <code>optional string relative_path = 2;</code>
       */
      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;
        }
      }
      /**
       * <code>optional string relative_path = 2;</code>
       */
      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;
        }
      }
      /**
       * <code>optional string relative_path = 2;</code>
       */
      public Builder setRelativePath(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        relativePath_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string relative_path = 2;</code>
       */
      public Builder clearRelativePath() {
        
        relativePath_ = getDefaultInstance().getRelativePath();
        onChanged();
        return this;
      }
      /**
       * <code>optional string relative_path = 2;</code>
       */
      public Builder setRelativePathBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        relativePath_ = value;
        onChanged();
        return this;
      }

      private boolean isSource_ ;
      /**
       * <code>optional bool is_source = 3;</code>
       */
      public boolean getIsSource() {
        return isSource_;
      }
      /**
       * <code>optional bool is_source = 3;</code>
       */
      public Builder setIsSource(boolean value) {
        
        isSource_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool is_source = 3;</code>
       */
      public Builder clearIsSource() {
        
        isSource_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object rootExecutionPathFragment_ = "";
      /**
       * <pre>
       * set for derived artifacts (is_source = false)
       * </pre>
       *
       * <code>optional string root_execution_path_fragment = 4;</code>
       */
      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;
        }
      }
      /**
       * <pre>
       * set for derived artifacts (is_source = false)
       * </pre>
       *
       * <code>optional string root_execution_path_fragment = 4;</code>
       */
      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;
        }
      }
      /**
       * <pre>
       * set for derived artifacts (is_source = false)
       * </pre>
       *
       * <code>optional string root_execution_path_fragment = 4;</code>
       */
      public Builder setRootExecutionPathFragment(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        rootExecutionPathFragment_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * set for derived artifacts (is_source = false)
       * </pre>
       *
       * <code>optional string root_execution_path_fragment = 4;</code>
       */
      public Builder clearRootExecutionPathFragment() {
        
        rootExecutionPathFragment_ = getDefaultInstance().getRootExecutionPathFragment();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * set for derived artifacts (is_source = false)
       * </pre>
       *
       * <code>optional string root_execution_path_fragment = 4;</code>
       */
      public Builder setRootExecutionPathFragmentBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        rootExecutionPathFragment_ = value;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:blaze.ArtifactLocation)
    }

    // @@protoc_insertion_point(class_scope:blaze.ArtifactLocation)
    private static final com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation();
    }

    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface LibraryArtifactOrBuilder extends
      // @@protoc_insertion_point(interface_extends:blaze.LibraryArtifact)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional .blaze.ArtifactLocation jar = 1;</code>
     */
    boolean hasJar();
    /**
     * <code>optional .blaze.ArtifactLocation jar = 1;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getJar();
    /**
     * <code>optional .blaze.ArtifactLocation jar = 1;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getJarOrBuilder();

    /**
     * <code>optional .blaze.ArtifactLocation interface_jar = 2;</code>
     */
    boolean hasInterfaceJar();
    /**
     * <code>optional .blaze.ArtifactLocation interface_jar = 2;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getInterfaceJar();
    /**
     * <code>optional .blaze.ArtifactLocation interface_jar = 2;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getInterfaceJarOrBuilder();

    /**
     * <code>optional .blaze.ArtifactLocation source_jar = 3;</code>
     */
    boolean hasSourceJar();
    /**
     * <code>optional .blaze.ArtifactLocation source_jar = 3;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getSourceJar();
    /**
     * <code>optional .blaze.ArtifactLocation source_jar = 3;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getSourceJarOrBuilder();
  }
  /**
   * Protobuf type {@code blaze.LibraryArtifact}
   */
  public  static final class LibraryArtifact extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:blaze.LibraryArtifact)
      LibraryArtifactOrBuilder {
    // Use LibraryArtifact.newBuilder() to construct.
    private LibraryArtifact(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private LibraryArtifact() {
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private LibraryArtifact(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder subBuilder = null;
              if (jar_ != null) {
                subBuilder = jar_.toBuilder();
              }
              jar_ = input.readMessage(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(jar_);
                jar_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder subBuilder = null;
              if (interfaceJar_ != null) {
                subBuilder = interfaceJar_.toBuilder();
              }
              interfaceJar_ = input.readMessage(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(interfaceJar_);
                interfaceJar_ = subBuilder.buildPartial();
              }

              break;
            }
            case 26: {
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder subBuilder = null;
              if (sourceJar_ != null) {
                subBuilder = sourceJar_.toBuilder();
              }
              sourceJar_ = input.readMessage(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(sourceJar_);
                sourceJar_ = subBuilder.buildPartial();
              }

              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_LibraryArtifact_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_LibraryArtifact_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.class, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder.class);
    }

    public static final int JAR_FIELD_NUMBER = 1;
    private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation jar_;
    /**
     * <code>optional .blaze.ArtifactLocation jar = 1;</code>
     */
    public boolean hasJar() {
      return jar_ != null;
    }
    /**
     * <code>optional .blaze.ArtifactLocation jar = 1;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getJar() {
      return jar_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance() : jar_;
    }
    /**
     * <code>optional .blaze.ArtifactLocation jar = 1;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getJarOrBuilder() {
      return getJar();
    }

    public static final int INTERFACE_JAR_FIELD_NUMBER = 2;
    private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation interfaceJar_;
    /**
     * <code>optional .blaze.ArtifactLocation interface_jar = 2;</code>
     */
    public boolean hasInterfaceJar() {
      return interfaceJar_ != null;
    }
    /**
     * <code>optional .blaze.ArtifactLocation interface_jar = 2;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getInterfaceJar() {
      return interfaceJar_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance() : interfaceJar_;
    }
    /**
     * <code>optional .blaze.ArtifactLocation interface_jar = 2;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getInterfaceJarOrBuilder() {
      return getInterfaceJar();
    }

    public static final int SOURCE_JAR_FIELD_NUMBER = 3;
    private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation sourceJar_;
    /**
     * <code>optional .blaze.ArtifactLocation source_jar = 3;</code>
     */
    public boolean hasSourceJar() {
      return sourceJar_ != null;
    }
    /**
     * <code>optional .blaze.ArtifactLocation source_jar = 3;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getSourceJar() {
      return sourceJar_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance() : sourceJar_;
    }
    /**
     * <code>optional .blaze.ArtifactLocation source_jar = 3;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getSourceJarOrBuilder() {
      return getSourceJar();
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (jar_ != null) {
        output.writeMessage(1, getJar());
      }
      if (interfaceJar_ != null) {
        output.writeMessage(2, getInterfaceJar());
      }
      if (sourceJar_ != null) {
        output.writeMessage(3, getSourceJar());
      }
    }

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

      size = 0;
      if (jar_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getJar());
      }
      if (interfaceJar_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getInterfaceJar());
      }
      if (sourceJar_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getSourceJar());
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact)) {
        return super.equals(obj);
      }
      com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact other = (com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact) obj;

      boolean result = true;
      result = result && (hasJar() == other.hasJar());
      if (hasJar()) {
        result = result && getJar()
            .equals(other.getJar());
      }
      result = result && (hasInterfaceJar() == other.hasInterfaceJar());
      if (hasInterfaceJar()) {
        result = result && getInterfaceJar()
            .equals(other.getInterfaceJar());
      }
      result = result && (hasSourceJar() == other.hasSourceJar());
      if (hasSourceJar()) {
        result = result && getSourceJar()
            .equals(other.getSourceJar());
      }
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasJar()) {
        hash = (37 * hash) + JAR_FIELD_NUMBER;
        hash = (53 * hash) + getJar().hashCode();
      }
      if (hasInterfaceJar()) {
        hash = (37 * hash) + INTERFACE_JAR_FIELD_NUMBER;
        hash = (53 * hash) + getInterfaceJar().hashCode();
      }
      if (hasSourceJar()) {
        hash = (37 * hash) + SOURCE_JAR_FIELD_NUMBER;
        hash = (53 * hash) + getSourceJar().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact 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 com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact 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 com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code blaze.LibraryArtifact}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:blaze.LibraryArtifact)
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_LibraryArtifact_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_LibraryArtifact_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.class, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder.class);
      }

      // Construct using com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        if (jarBuilder_ == null) {
          jar_ = null;
        } else {
          jar_ = null;
          jarBuilder_ = null;
        }
        if (interfaceJarBuilder_ == null) {
          interfaceJar_ = null;
        } else {
          interfaceJar_ = null;
          interfaceJarBuilder_ = null;
        }
        if (sourceJarBuilder_ == null) {
          sourceJar_ = null;
        } else {
          sourceJar_ = null;
          sourceJarBuilder_ = null;
        }
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_LibraryArtifact_descriptor;
      }

      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact getDefaultInstanceForType() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.getDefaultInstance();
      }

      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact build() {
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact buildPartial() {
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact result = new com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact(this);
        if (jarBuilder_ == null) {
          result.jar_ = jar_;
        } else {
          result.jar_ = jarBuilder_.build();
        }
        if (interfaceJarBuilder_ == null) {
          result.interfaceJar_ = interfaceJar_;
        } else {
          result.interfaceJar_ = interfaceJarBuilder_.build();
        }
        if (sourceJarBuilder_ == null) {
          result.sourceJar_ = sourceJar_;
        } else {
          result.sourceJar_ = sourceJarBuilder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact) {
          return mergeFrom((com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact other) {
        if (other == com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.getDefaultInstance()) return this;
        if (other.hasJar()) {
          mergeJar(other.getJar());
        }
        if (other.hasInterfaceJar()) {
          mergeInterfaceJar(other.getInterfaceJar());
        }
        if (other.hasSourceJar()) {
          mergeSourceJar(other.getSourceJar());
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation jar_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> jarBuilder_;
      /**
       * <code>optional .blaze.ArtifactLocation jar = 1;</code>
       */
      public boolean hasJar() {
        return jarBuilder_ != null || jar_ != null;
      }
      /**
       * <code>optional .blaze.ArtifactLocation jar = 1;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getJar() {
        if (jarBuilder_ == null) {
          return jar_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance() : jar_;
        } else {
          return jarBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .blaze.ArtifactLocation jar = 1;</code>
       */
      public Builder setJar(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation value) {
        if (jarBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          jar_ = value;
          onChanged();
        } else {
          jarBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.ArtifactLocation jar = 1;</code>
       */
      public Builder setJar(
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder builderForValue) {
        if (jarBuilder_ == null) {
          jar_ = builderForValue.build();
          onChanged();
        } else {
          jarBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>optional .blaze.ArtifactLocation jar = 1;</code>
       */
      public Builder mergeJar(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation value) {
        if (jarBuilder_ == null) {
          if (jar_ != null) {
            jar_ =
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.newBuilder(jar_).mergeFrom(value).buildPartial();
          } else {
            jar_ = value;
          }
          onChanged();
        } else {
          jarBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.ArtifactLocation jar = 1;</code>
       */
      public Builder clearJar() {
        if (jarBuilder_ == null) {
          jar_ = null;
          onChanged();
        } else {
          jar_ = null;
          jarBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>optional .blaze.ArtifactLocation jar = 1;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder getJarBuilder() {
        
        onChanged();
        return getJarFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .blaze.ArtifactLocation jar = 1;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getJarOrBuilder() {
        if (jarBuilder_ != null) {
          return jarBuilder_.getMessageOrBuilder();
        } else {
          return jar_ == null ?
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance() : jar_;
        }
      }
      /**
       * <code>optional .blaze.ArtifactLocation jar = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> 
          getJarFieldBuilder() {
        if (jarBuilder_ == null) {
          jarBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder>(
                  getJar(),
                  getParentForChildren(),
                  isClean());
          jar_ = null;
        }
        return jarBuilder_;
      }

      private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation interfaceJar_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> interfaceJarBuilder_;
      /**
       * <code>optional .blaze.ArtifactLocation interface_jar = 2;</code>
       */
      public boolean hasInterfaceJar() {
        return interfaceJarBuilder_ != null || interfaceJar_ != null;
      }
      /**
       * <code>optional .blaze.ArtifactLocation interface_jar = 2;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getInterfaceJar() {
        if (interfaceJarBuilder_ == null) {
          return interfaceJar_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance() : interfaceJar_;
        } else {
          return interfaceJarBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .blaze.ArtifactLocation interface_jar = 2;</code>
       */
      public Builder setInterfaceJar(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation value) {
        if (interfaceJarBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          interfaceJar_ = value;
          onChanged();
        } else {
          interfaceJarBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.ArtifactLocation interface_jar = 2;</code>
       */
      public Builder setInterfaceJar(
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder builderForValue) {
        if (interfaceJarBuilder_ == null) {
          interfaceJar_ = builderForValue.build();
          onChanged();
        } else {
          interfaceJarBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>optional .blaze.ArtifactLocation interface_jar = 2;</code>
       */
      public Builder mergeInterfaceJar(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation value) {
        if (interfaceJarBuilder_ == null) {
          if (interfaceJar_ != null) {
            interfaceJar_ =
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.newBuilder(interfaceJar_).mergeFrom(value).buildPartial();
          } else {
            interfaceJar_ = value;
          }
          onChanged();
        } else {
          interfaceJarBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.ArtifactLocation interface_jar = 2;</code>
       */
      public Builder clearInterfaceJar() {
        if (interfaceJarBuilder_ == null) {
          interfaceJar_ = null;
          onChanged();
        } else {
          interfaceJar_ = null;
          interfaceJarBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>optional .blaze.ArtifactLocation interface_jar = 2;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder getInterfaceJarBuilder() {
        
        onChanged();
        return getInterfaceJarFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .blaze.ArtifactLocation interface_jar = 2;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getInterfaceJarOrBuilder() {
        if (interfaceJarBuilder_ != null) {
          return interfaceJarBuilder_.getMessageOrBuilder();
        } else {
          return interfaceJar_ == null ?
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance() : interfaceJar_;
        }
      }
      /**
       * <code>optional .blaze.ArtifactLocation interface_jar = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> 
          getInterfaceJarFieldBuilder() {
        if (interfaceJarBuilder_ == null) {
          interfaceJarBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder>(
                  getInterfaceJar(),
                  getParentForChildren(),
                  isClean());
          interfaceJar_ = null;
        }
        return interfaceJarBuilder_;
      }

      private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation sourceJar_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> sourceJarBuilder_;
      /**
       * <code>optional .blaze.ArtifactLocation source_jar = 3;</code>
       */
      public boolean hasSourceJar() {
        return sourceJarBuilder_ != null || sourceJar_ != null;
      }
      /**
       * <code>optional .blaze.ArtifactLocation source_jar = 3;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getSourceJar() {
        if (sourceJarBuilder_ == null) {
          return sourceJar_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance() : sourceJar_;
        } else {
          return sourceJarBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .blaze.ArtifactLocation source_jar = 3;</code>
       */
      public Builder setSourceJar(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation value) {
        if (sourceJarBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          sourceJar_ = value;
          onChanged();
        } else {
          sourceJarBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.ArtifactLocation source_jar = 3;</code>
       */
      public Builder setSourceJar(
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder builderForValue) {
        if (sourceJarBuilder_ == null) {
          sourceJar_ = builderForValue.build();
          onChanged();
        } else {
          sourceJarBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>optional .blaze.ArtifactLocation source_jar = 3;</code>
       */
      public Builder mergeSourceJar(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation value) {
        if (sourceJarBuilder_ == null) {
          if (sourceJar_ != null) {
            sourceJar_ =
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.newBuilder(sourceJar_).mergeFrom(value).buildPartial();
          } else {
            sourceJar_ = value;
          }
          onChanged();
        } else {
          sourceJarBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.ArtifactLocation source_jar = 3;</code>
       */
      public Builder clearSourceJar() {
        if (sourceJarBuilder_ == null) {
          sourceJar_ = null;
          onChanged();
        } else {
          sourceJar_ = null;
          sourceJarBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>optional .blaze.ArtifactLocation source_jar = 3;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder getSourceJarBuilder() {
        
        onChanged();
        return getSourceJarFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .blaze.ArtifactLocation source_jar = 3;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getSourceJarOrBuilder() {
        if (sourceJarBuilder_ != null) {
          return sourceJarBuilder_.getMessageOrBuilder();
        } else {
          return sourceJar_ == null ?
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance() : sourceJar_;
        }
      }
      /**
       * <code>optional .blaze.ArtifactLocation source_jar = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> 
          getSourceJarFieldBuilder() {
        if (sourceJarBuilder_ == null) {
          sourceJarBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder>(
                  getSourceJar(),
                  getParentForChildren(),
                  isClean());
          sourceJar_ = null;
        }
        return sourceJarBuilder_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:blaze.LibraryArtifact)
    }

    // @@protoc_insertion_point(class_scope:blaze.LibraryArtifact)
    private static final com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact();
    }

    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface JavaRuleIdeInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:blaze.JavaRuleIdeInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .blaze.LibraryArtifact jars = 1;</code>
     */
    java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact> 
        getJarsList();
    /**
     * <code>repeated .blaze.LibraryArtifact jars = 1;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact getJars(int index);
    /**
     * <code>repeated .blaze.LibraryArtifact jars = 1;</code>
     */
    int getJarsCount();
    /**
     * <code>repeated .blaze.LibraryArtifact jars = 1;</code>
     */
    java.util.List<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder> 
        getJarsOrBuilderList();
    /**
     * <code>repeated .blaze.LibraryArtifact jars = 1;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder getJarsOrBuilder(
        int index);

    /**
     * <code>repeated .blaze.LibraryArtifact generated_jars = 2;</code>
     */
    java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact> 
        getGeneratedJarsList();
    /**
     * <code>repeated .blaze.LibraryArtifact generated_jars = 2;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact getGeneratedJars(int index);
    /**
     * <code>repeated .blaze.LibraryArtifact generated_jars = 2;</code>
     */
    int getGeneratedJarsCount();
    /**
     * <code>repeated .blaze.LibraryArtifact generated_jars = 2;</code>
     */
    java.util.List<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder> 
        getGeneratedJarsOrBuilderList();
    /**
     * <code>repeated .blaze.LibraryArtifact generated_jars = 2;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder getGeneratedJarsOrBuilder(
        int index);

    /**
     * <code>optional .blaze.ArtifactLocation package_manifest = 3;</code>
     */
    boolean hasPackageManifest();
    /**
     * <code>optional .blaze.ArtifactLocation package_manifest = 3;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getPackageManifest();
    /**
     * <code>optional .blaze.ArtifactLocation package_manifest = 3;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getPackageManifestOrBuilder();

    /**
     * <code>repeated .blaze.ArtifactLocation sources = 4;</code>
     */
    java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation> 
        getSourcesList();
    /**
     * <code>repeated .blaze.ArtifactLocation sources = 4;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getSources(int index);
    /**
     * <code>repeated .blaze.ArtifactLocation sources = 4;</code>
     */
    int getSourcesCount();
    /**
     * <code>repeated .blaze.ArtifactLocation sources = 4;</code>
     */
    java.util.List<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> 
        getSourcesOrBuilderList();
    /**
     * <code>repeated .blaze.ArtifactLocation sources = 4;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getSourcesOrBuilder(
        int index);

    /**
     * <code>optional .blaze.ArtifactLocation jdeps = 5;</code>
     */
    boolean hasJdeps();
    /**
     * <code>optional .blaze.ArtifactLocation jdeps = 5;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getJdeps();
    /**
     * <code>optional .blaze.ArtifactLocation jdeps = 5;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getJdepsOrBuilder();

    /**
     * <code>optional .blaze.LibraryArtifact filtered_gen_jar = 6;</code>
     */
    boolean hasFilteredGenJar();
    /**
     * <code>optional .blaze.LibraryArtifact filtered_gen_jar = 6;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact getFilteredGenJar();
    /**
     * <code>optional .blaze.LibraryArtifact filtered_gen_jar = 6;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder getFilteredGenJarOrBuilder();
  }
  /**
   * Protobuf type {@code blaze.JavaRuleIdeInfo}
   */
  public  static final class JavaRuleIdeInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:blaze.JavaRuleIdeInfo)
      JavaRuleIdeInfoOrBuilder {
    // Use JavaRuleIdeInfo.newBuilder() to construct.
    private JavaRuleIdeInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private JavaRuleIdeInfo() {
      jars_ = java.util.Collections.emptyList();
      generatedJars_ = java.util.Collections.emptyList();
      sources_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private JavaRuleIdeInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                jars_ = new java.util.ArrayList<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact>();
                mutable_bitField0_ |= 0x00000001;
              }
              jars_.add(
                  input.readMessage(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.parser(), extensionRegistry));
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                generatedJars_ = new java.util.ArrayList<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact>();
                mutable_bitField0_ |= 0x00000002;
              }
              generatedJars_.add(
                  input.readMessage(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.parser(), extensionRegistry));
              break;
            }
            case 26: {
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder subBuilder = null;
              if (packageManifest_ != null) {
                subBuilder = packageManifest_.toBuilder();
              }
              packageManifest_ = input.readMessage(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(packageManifest_);
                packageManifest_ = subBuilder.buildPartial();
              }

              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                sources_ = new java.util.ArrayList<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation>();
                mutable_bitField0_ |= 0x00000008;
              }
              sources_.add(
                  input.readMessage(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.parser(), extensionRegistry));
              break;
            }
            case 42: {
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder subBuilder = null;
              if (jdeps_ != null) {
                subBuilder = jdeps_.toBuilder();
              }
              jdeps_ = input.readMessage(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(jdeps_);
                jdeps_ = subBuilder.buildPartial();
              }

              break;
            }
            case 50: {
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder subBuilder = null;
              if (filteredGenJar_ != null) {
                subBuilder = filteredGenJar_.toBuilder();
              }
              filteredGenJar_ = input.readMessage(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(filteredGenJar_);
                filteredGenJar_ = subBuilder.buildPartial();
              }

              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          jars_ = java.util.Collections.unmodifiableList(jars_);
        }
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          generatedJars_ = java.util.Collections.unmodifiableList(generatedJars_);
        }
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          sources_ = java.util.Collections.unmodifiableList(sources_);
        }
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_JavaRuleIdeInfo_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_JavaRuleIdeInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo.class, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo.Builder.class);
    }

    private int bitField0_;
    public static final int JARS_FIELD_NUMBER = 1;
    private java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact> jars_;
    /**
     * <code>repeated .blaze.LibraryArtifact jars = 1;</code>
     */
    public java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact> getJarsList() {
      return jars_;
    }
    /**
     * <code>repeated .blaze.LibraryArtifact jars = 1;</code>
     */
    public java.util.List<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder> 
        getJarsOrBuilderList() {
      return jars_;
    }
    /**
     * <code>repeated .blaze.LibraryArtifact jars = 1;</code>
     */
    public int getJarsCount() {
      return jars_.size();
    }
    /**
     * <code>repeated .blaze.LibraryArtifact jars = 1;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact getJars(int index) {
      return jars_.get(index);
    }
    /**
     * <code>repeated .blaze.LibraryArtifact jars = 1;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder getJarsOrBuilder(
        int index) {
      return jars_.get(index);
    }

    public static final int GENERATED_JARS_FIELD_NUMBER = 2;
    private java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact> generatedJars_;
    /**
     * <code>repeated .blaze.LibraryArtifact generated_jars = 2;</code>
     */
    public java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact> getGeneratedJarsList() {
      return generatedJars_;
    }
    /**
     * <code>repeated .blaze.LibraryArtifact generated_jars = 2;</code>
     */
    public java.util.List<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder> 
        getGeneratedJarsOrBuilderList() {
      return generatedJars_;
    }
    /**
     * <code>repeated .blaze.LibraryArtifact generated_jars = 2;</code>
     */
    public int getGeneratedJarsCount() {
      return generatedJars_.size();
    }
    /**
     * <code>repeated .blaze.LibraryArtifact generated_jars = 2;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact getGeneratedJars(int index) {
      return generatedJars_.get(index);
    }
    /**
     * <code>repeated .blaze.LibraryArtifact generated_jars = 2;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder getGeneratedJarsOrBuilder(
        int index) {
      return generatedJars_.get(index);
    }

    public static final int PACKAGE_MANIFEST_FIELD_NUMBER = 3;
    private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation packageManifest_;
    /**
     * <code>optional .blaze.ArtifactLocation package_manifest = 3;</code>
     */
    public boolean hasPackageManifest() {
      return packageManifest_ != null;
    }
    /**
     * <code>optional .blaze.ArtifactLocation package_manifest = 3;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getPackageManifest() {
      return packageManifest_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance() : packageManifest_;
    }
    /**
     * <code>optional .blaze.ArtifactLocation package_manifest = 3;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getPackageManifestOrBuilder() {
      return getPackageManifest();
    }

    public static final int SOURCES_FIELD_NUMBER = 4;
    private java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation> sources_;
    /**
     * <code>repeated .blaze.ArtifactLocation sources = 4;</code>
     */
    public java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation> getSourcesList() {
      return sources_;
    }
    /**
     * <code>repeated .blaze.ArtifactLocation sources = 4;</code>
     */
    public java.util.List<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> 
        getSourcesOrBuilderList() {
      return sources_;
    }
    /**
     * <code>repeated .blaze.ArtifactLocation sources = 4;</code>
     */
    public int getSourcesCount() {
      return sources_.size();
    }
    /**
     * <code>repeated .blaze.ArtifactLocation sources = 4;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getSources(int index) {
      return sources_.get(index);
    }
    /**
     * <code>repeated .blaze.ArtifactLocation sources = 4;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getSourcesOrBuilder(
        int index) {
      return sources_.get(index);
    }

    public static final int JDEPS_FIELD_NUMBER = 5;
    private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation jdeps_;
    /**
     * <code>optional .blaze.ArtifactLocation jdeps = 5;</code>
     */
    public boolean hasJdeps() {
      return jdeps_ != null;
    }
    /**
     * <code>optional .blaze.ArtifactLocation jdeps = 5;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getJdeps() {
      return jdeps_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance() : jdeps_;
    }
    /**
     * <code>optional .blaze.ArtifactLocation jdeps = 5;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getJdepsOrBuilder() {
      return getJdeps();
    }

    public static final int FILTERED_GEN_JAR_FIELD_NUMBER = 6;
    private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact filteredGenJar_;
    /**
     * <code>optional .blaze.LibraryArtifact filtered_gen_jar = 6;</code>
     */
    public boolean hasFilteredGenJar() {
      return filteredGenJar_ != null;
    }
    /**
     * <code>optional .blaze.LibraryArtifact filtered_gen_jar = 6;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact getFilteredGenJar() {
      return filteredGenJar_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.getDefaultInstance() : filteredGenJar_;
    }
    /**
     * <code>optional .blaze.LibraryArtifact filtered_gen_jar = 6;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder getFilteredGenJarOrBuilder() {
      return getFilteredGenJar();
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      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));
      }
      if (packageManifest_ != null) {
        output.writeMessage(3, getPackageManifest());
      }
      for (int i = 0; i < sources_.size(); i++) {
        output.writeMessage(4, sources_.get(i));
      }
      if (jdeps_ != null) {
        output.writeMessage(5, getJdeps());
      }
      if (filteredGenJar_ != null) {
        output.writeMessage(6, getFilteredGenJar());
      }
    }

    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));
      }
      if (packageManifest_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getPackageManifest());
      }
      for (int i = 0; i < sources_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, sources_.get(i));
      }
      if (jdeps_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getJdeps());
      }
      if (filteredGenJar_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, getFilteredGenJar());
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo)) {
        return super.equals(obj);
      }
      com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo other = (com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo) obj;

      boolean result = true;
      result = result && getJarsList()
          .equals(other.getJarsList());
      result = result && getGeneratedJarsList()
          .equals(other.getGeneratedJarsList());
      result = result && (hasPackageManifest() == other.hasPackageManifest());
      if (hasPackageManifest()) {
        result = result && getPackageManifest()
            .equals(other.getPackageManifest());
      }
      result = result && getSourcesList()
          .equals(other.getSourcesList());
      result = result && (hasJdeps() == other.hasJdeps());
      if (hasJdeps()) {
        result = result && getJdeps()
            .equals(other.getJdeps());
      }
      result = result && (hasFilteredGenJar() == other.hasFilteredGenJar());
      if (hasFilteredGenJar()) {
        result = result && getFilteredGenJar()
            .equals(other.getFilteredGenJar());
      }
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().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 (hasPackageManifest()) {
        hash = (37 * hash) + PACKAGE_MANIFEST_FIELD_NUMBER;
        hash = (53 * hash) + getPackageManifest().hashCode();
      }
      if (getSourcesCount() > 0) {
        hash = (37 * hash) + SOURCES_FIELD_NUMBER;
        hash = (53 * hash) + getSourcesList().hashCode();
      }
      if (hasJdeps()) {
        hash = (37 * hash) + JDEPS_FIELD_NUMBER;
        hash = (53 * hash) + getJdeps().hashCode();
      }
      if (hasFilteredGenJar()) {
        hash = (37 * hash) + FILTERED_GEN_JAR_FIELD_NUMBER;
        hash = (53 * hash) + getFilteredGenJar().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo 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 com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo 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 com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code blaze.JavaRuleIdeInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:blaze.JavaRuleIdeInfo)
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_JavaRuleIdeInfo_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_JavaRuleIdeInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo.class, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo.Builder.class);
      }

      // Construct using com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getJarsFieldBuilder();
          getGeneratedJarsFieldBuilder();
          getSourcesFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        if (jarsBuilder_ == null) {
          jars_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          jarsBuilder_.clear();
        }
        if (generatedJarsBuilder_ == null) {
          generatedJars_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          generatedJarsBuilder_.clear();
        }
        if (packageManifestBuilder_ == null) {
          packageManifest_ = null;
        } else {
          packageManifest_ = null;
          packageManifestBuilder_ = null;
        }
        if (sourcesBuilder_ == null) {
          sources_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
        } else {
          sourcesBuilder_.clear();
        }
        if (jdepsBuilder_ == null) {
          jdeps_ = null;
        } else {
          jdeps_ = null;
          jdepsBuilder_ = null;
        }
        if (filteredGenJarBuilder_ == null) {
          filteredGenJar_ = null;
        } else {
          filteredGenJar_ = null;
          filteredGenJarBuilder_ = null;
        }
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_JavaRuleIdeInfo_descriptor;
      }

      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo getDefaultInstanceForType() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo.getDefaultInstance();
      }

      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo build() {
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo buildPartial() {
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo result = new com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (jarsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            jars_ = java.util.Collections.unmodifiableList(jars_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.jars_ = jars_;
        } else {
          result.jars_ = jarsBuilder_.build();
        }
        if (generatedJarsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            generatedJars_ = java.util.Collections.unmodifiableList(generatedJars_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.generatedJars_ = generatedJars_;
        } else {
          result.generatedJars_ = generatedJarsBuilder_.build();
        }
        if (packageManifestBuilder_ == null) {
          result.packageManifest_ = packageManifest_;
        } else {
          result.packageManifest_ = packageManifestBuilder_.build();
        }
        if (sourcesBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            sources_ = java.util.Collections.unmodifiableList(sources_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.sources_ = sources_;
        } else {
          result.sources_ = sourcesBuilder_.build();
        }
        if (jdepsBuilder_ == null) {
          result.jdeps_ = jdeps_;
        } else {
          result.jdeps_ = jdepsBuilder_.build();
        }
        if (filteredGenJarBuilder_ == null) {
          result.filteredGenJar_ = filteredGenJar_;
        } else {
          result.filteredGenJar_ = filteredGenJarBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo) {
          return mergeFrom((com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo other) {
        if (other == com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo.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.hasPackageManifest()) {
          mergePackageManifest(other.getPackageManifest());
        }
        if (sourcesBuilder_ == null) {
          if (!other.sources_.isEmpty()) {
            if (sources_.isEmpty()) {
              sources_ = other.sources_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureSourcesIsMutable();
              sources_.addAll(other.sources_);
            }
            onChanged();
          }
        } else {
          if (!other.sources_.isEmpty()) {
            if (sourcesBuilder_.isEmpty()) {
              sourcesBuilder_.dispose();
              sourcesBuilder_ = null;
              sources_ = other.sources_;
              bitField0_ = (bitField0_ & ~0x00000008);
              sourcesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getSourcesFieldBuilder() : null;
            } else {
              sourcesBuilder_.addAllMessages(other.sources_);
            }
          }
        }
        if (other.hasJdeps()) {
          mergeJdeps(other.getJdeps());
        }
        if (other.hasFilteredGenJar()) {
          mergeFilteredGenJar(other.getFilteredGenJar());
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

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

      private java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact> jars_ =
        java.util.Collections.emptyList();
      private void ensureJarsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          jars_ = new java.util.ArrayList<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact>(jars_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder> jarsBuilder_;

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

      private java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact> generatedJars_ =
        java.util.Collections.emptyList();
      private void ensureGeneratedJarsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          generatedJars_ = new java.util.ArrayList<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact>(generatedJars_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder> generatedJarsBuilder_;

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

      private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation packageManifest_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> packageManifestBuilder_;
      /**
       * <code>optional .blaze.ArtifactLocation package_manifest = 3;</code>
       */
      public boolean hasPackageManifest() {
        return packageManifestBuilder_ != null || packageManifest_ != null;
      }
      /**
       * <code>optional .blaze.ArtifactLocation package_manifest = 3;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getPackageManifest() {
        if (packageManifestBuilder_ == null) {
          return packageManifest_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance() : packageManifest_;
        } else {
          return packageManifestBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .blaze.ArtifactLocation package_manifest = 3;</code>
       */
      public Builder setPackageManifest(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation value) {
        if (packageManifestBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          packageManifest_ = value;
          onChanged();
        } else {
          packageManifestBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.ArtifactLocation package_manifest = 3;</code>
       */
      public Builder setPackageManifest(
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder builderForValue) {
        if (packageManifestBuilder_ == null) {
          packageManifest_ = builderForValue.build();
          onChanged();
        } else {
          packageManifestBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>optional .blaze.ArtifactLocation package_manifest = 3;</code>
       */
      public Builder mergePackageManifest(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation value) {
        if (packageManifestBuilder_ == null) {
          if (packageManifest_ != null) {
            packageManifest_ =
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.newBuilder(packageManifest_).mergeFrom(value).buildPartial();
          } else {
            packageManifest_ = value;
          }
          onChanged();
        } else {
          packageManifestBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.ArtifactLocation package_manifest = 3;</code>
       */
      public Builder clearPackageManifest() {
        if (packageManifestBuilder_ == null) {
          packageManifest_ = null;
          onChanged();
        } else {
          packageManifest_ = null;
          packageManifestBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>optional .blaze.ArtifactLocation package_manifest = 3;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder getPackageManifestBuilder() {
        
        onChanged();
        return getPackageManifestFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .blaze.ArtifactLocation package_manifest = 3;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getPackageManifestOrBuilder() {
        if (packageManifestBuilder_ != null) {
          return packageManifestBuilder_.getMessageOrBuilder();
        } else {
          return packageManifest_ == null ?
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance() : packageManifest_;
        }
      }
      /**
       * <code>optional .blaze.ArtifactLocation package_manifest = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> 
          getPackageManifestFieldBuilder() {
        if (packageManifestBuilder_ == null) {
          packageManifestBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder>(
                  getPackageManifest(),
                  getParentForChildren(),
                  isClean());
          packageManifest_ = null;
        }
        return packageManifestBuilder_;
      }

      private java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation> sources_ =
        java.util.Collections.emptyList();
      private void ensureSourcesIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          sources_ = new java.util.ArrayList<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation>(sources_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> sourcesBuilder_;

      /**
       * <code>repeated .blaze.ArtifactLocation sources = 4;</code>
       */
      public java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation> getSourcesList() {
        if (sourcesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(sources_);
        } else {
          return sourcesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 4;</code>
       */
      public int getSourcesCount() {
        if (sourcesBuilder_ == null) {
          return sources_.size();
        } else {
          return sourcesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 4;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getSources(int index) {
        if (sourcesBuilder_ == null) {
          return sources_.get(index);
        } else {
          return sourcesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 4;</code>
       */
      public Builder setSources(
          int index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation value) {
        if (sourcesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSourcesIsMutable();
          sources_.set(index, value);
          onChanged();
        } else {
          sourcesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 4;</code>
       */
      public Builder setSources(
          int index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder builderForValue) {
        if (sourcesBuilder_ == null) {
          ensureSourcesIsMutable();
          sources_.set(index, builderForValue.build());
          onChanged();
        } else {
          sourcesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 4;</code>
       */
      public Builder addSources(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation value) {
        if (sourcesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSourcesIsMutable();
          sources_.add(value);
          onChanged();
        } else {
          sourcesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 4;</code>
       */
      public Builder addSources(
          int index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation value) {
        if (sourcesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSourcesIsMutable();
          sources_.add(index, value);
          onChanged();
        } else {
          sourcesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 4;</code>
       */
      public Builder addSources(
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder builderForValue) {
        if (sourcesBuilder_ == null) {
          ensureSourcesIsMutable();
          sources_.add(builderForValue.build());
          onChanged();
        } else {
          sourcesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 4;</code>
       */
      public Builder addSources(
          int index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder builderForValue) {
        if (sourcesBuilder_ == null) {
          ensureSourcesIsMutable();
          sources_.add(index, builderForValue.build());
          onChanged();
        } else {
          sourcesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 4;</code>
       */
      public Builder addAllSources(
          java.lang.Iterable<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation> values) {
        if (sourcesBuilder_ == null) {
          ensureSourcesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, sources_);
          onChanged();
        } else {
          sourcesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 4;</code>
       */
      public Builder clearSources() {
        if (sourcesBuilder_ == null) {
          sources_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          sourcesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 4;</code>
       */
      public Builder removeSources(int index) {
        if (sourcesBuilder_ == null) {
          ensureSourcesIsMutable();
          sources_.remove(index);
          onChanged();
        } else {
          sourcesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 4;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder getSourcesBuilder(
          int index) {
        return getSourcesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 4;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getSourcesOrBuilder(
          int index) {
        if (sourcesBuilder_ == null) {
          return sources_.get(index);  } else {
          return sourcesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 4;</code>
       */
      public java.util.List<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> 
           getSourcesOrBuilderList() {
        if (sourcesBuilder_ != null) {
          return sourcesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(sources_);
        }
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 4;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder addSourcesBuilder() {
        return getSourcesFieldBuilder().addBuilder(
            com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance());
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 4;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder addSourcesBuilder(
          int index) {
        return getSourcesFieldBuilder().addBuilder(
            index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance());
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 4;</code>
       */
      public java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder> 
           getSourcesBuilderList() {
        return getSourcesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> 
          getSourcesFieldBuilder() {
        if (sourcesBuilder_ == null) {
          sourcesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder>(
                  sources_,
                  ((bitField0_ & 0x00000008) == 0x00000008),
                  getParentForChildren(),
                  isClean());
          sources_ = null;
        }
        return sourcesBuilder_;
      }

      private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation jdeps_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> jdepsBuilder_;
      /**
       * <code>optional .blaze.ArtifactLocation jdeps = 5;</code>
       */
      public boolean hasJdeps() {
        return jdepsBuilder_ != null || jdeps_ != null;
      }
      /**
       * <code>optional .blaze.ArtifactLocation jdeps = 5;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getJdeps() {
        if (jdepsBuilder_ == null) {
          return jdeps_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance() : jdeps_;
        } else {
          return jdepsBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .blaze.ArtifactLocation jdeps = 5;</code>
       */
      public Builder setJdeps(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation value) {
        if (jdepsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          jdeps_ = value;
          onChanged();
        } else {
          jdepsBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.ArtifactLocation jdeps = 5;</code>
       */
      public Builder setJdeps(
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder builderForValue) {
        if (jdepsBuilder_ == null) {
          jdeps_ = builderForValue.build();
          onChanged();
        } else {
          jdepsBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>optional .blaze.ArtifactLocation jdeps = 5;</code>
       */
      public Builder mergeJdeps(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation value) {
        if (jdepsBuilder_ == null) {
          if (jdeps_ != null) {
            jdeps_ =
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.newBuilder(jdeps_).mergeFrom(value).buildPartial();
          } else {
            jdeps_ = value;
          }
          onChanged();
        } else {
          jdepsBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.ArtifactLocation jdeps = 5;</code>
       */
      public Builder clearJdeps() {
        if (jdepsBuilder_ == null) {
          jdeps_ = null;
          onChanged();
        } else {
          jdeps_ = null;
          jdepsBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>optional .blaze.ArtifactLocation jdeps = 5;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder getJdepsBuilder() {
        
        onChanged();
        return getJdepsFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .blaze.ArtifactLocation jdeps = 5;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getJdepsOrBuilder() {
        if (jdepsBuilder_ != null) {
          return jdepsBuilder_.getMessageOrBuilder();
        } else {
          return jdeps_ == null ?
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance() : jdeps_;
        }
      }
      /**
       * <code>optional .blaze.ArtifactLocation jdeps = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> 
          getJdepsFieldBuilder() {
        if (jdepsBuilder_ == null) {
          jdepsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder>(
                  getJdeps(),
                  getParentForChildren(),
                  isClean());
          jdeps_ = null;
        }
        return jdepsBuilder_;
      }

      private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact filteredGenJar_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder> filteredGenJarBuilder_;
      /**
       * <code>optional .blaze.LibraryArtifact filtered_gen_jar = 6;</code>
       */
      public boolean hasFilteredGenJar() {
        return filteredGenJarBuilder_ != null || filteredGenJar_ != null;
      }
      /**
       * <code>optional .blaze.LibraryArtifact filtered_gen_jar = 6;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact getFilteredGenJar() {
        if (filteredGenJarBuilder_ == null) {
          return filteredGenJar_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.getDefaultInstance() : filteredGenJar_;
        } else {
          return filteredGenJarBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .blaze.LibraryArtifact filtered_gen_jar = 6;</code>
       */
      public Builder setFilteredGenJar(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact value) {
        if (filteredGenJarBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          filteredGenJar_ = value;
          onChanged();
        } else {
          filteredGenJarBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.LibraryArtifact filtered_gen_jar = 6;</code>
       */
      public Builder setFilteredGenJar(
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder builderForValue) {
        if (filteredGenJarBuilder_ == null) {
          filteredGenJar_ = builderForValue.build();
          onChanged();
        } else {
          filteredGenJarBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>optional .blaze.LibraryArtifact filtered_gen_jar = 6;</code>
       */
      public Builder mergeFilteredGenJar(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact value) {
        if (filteredGenJarBuilder_ == null) {
          if (filteredGenJar_ != null) {
            filteredGenJar_ =
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.newBuilder(filteredGenJar_).mergeFrom(value).buildPartial();
          } else {
            filteredGenJar_ = value;
          }
          onChanged();
        } else {
          filteredGenJarBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.LibraryArtifact filtered_gen_jar = 6;</code>
       */
      public Builder clearFilteredGenJar() {
        if (filteredGenJarBuilder_ == null) {
          filteredGenJar_ = null;
          onChanged();
        } else {
          filteredGenJar_ = null;
          filteredGenJarBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>optional .blaze.LibraryArtifact filtered_gen_jar = 6;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder getFilteredGenJarBuilder() {
        
        onChanged();
        return getFilteredGenJarFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .blaze.LibraryArtifact filtered_gen_jar = 6;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder getFilteredGenJarOrBuilder() {
        if (filteredGenJarBuilder_ != null) {
          return filteredGenJarBuilder_.getMessageOrBuilder();
        } else {
          return filteredGenJar_ == null ?
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.getDefaultInstance() : filteredGenJar_;
        }
      }
      /**
       * <code>optional .blaze.LibraryArtifact filtered_gen_jar = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder> 
          getFilteredGenJarFieldBuilder() {
        if (filteredGenJarBuilder_ == null) {
          filteredGenJarBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder>(
                  getFilteredGenJar(),
                  getParentForChildren(),
                  isClean());
          filteredGenJar_ = null;
        }
        return filteredGenJarBuilder_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:blaze.JavaRuleIdeInfo)
    }

    // @@protoc_insertion_point(class_scope:blaze.JavaRuleIdeInfo)
    private static final com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo();
    }

    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface CRuleIdeInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:blaze.CRuleIdeInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .blaze.ArtifactLocation source = 1;</code>
     */
    java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation> 
        getSourceList();
    /**
     * <code>repeated .blaze.ArtifactLocation source = 1;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getSource(int index);
    /**
     * <code>repeated .blaze.ArtifactLocation source = 1;</code>
     */
    int getSourceCount();
    /**
     * <code>repeated .blaze.ArtifactLocation source = 1;</code>
     */
    java.util.List<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> 
        getSourceOrBuilderList();
    /**
     * <code>repeated .blaze.ArtifactLocation source = 1;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getSourceOrBuilder(
        int index);

    /**
     * <code>repeated string transitive_include_directory = 3;</code>
     */
    java.util.List<java.lang.String>
        getTransitiveIncludeDirectoryList();
    /**
     * <code>repeated string transitive_include_directory = 3;</code>
     */
    int getTransitiveIncludeDirectoryCount();
    /**
     * <code>repeated string transitive_include_directory = 3;</code>
     */
    java.lang.String getTransitiveIncludeDirectory(int index);
    /**
     * <code>repeated string transitive_include_directory = 3;</code>
     */
    com.google.protobuf.ByteString
        getTransitiveIncludeDirectoryBytes(int index);

    /**
     * <code>repeated string transitive_quote_include_directory = 4;</code>
     */
    java.util.List<java.lang.String>
        getTransitiveQuoteIncludeDirectoryList();
    /**
     * <code>repeated string transitive_quote_include_directory = 4;</code>
     */
    int getTransitiveQuoteIncludeDirectoryCount();
    /**
     * <code>repeated string transitive_quote_include_directory = 4;</code>
     */
    java.lang.String getTransitiveQuoteIncludeDirectory(int index);
    /**
     * <code>repeated string transitive_quote_include_directory = 4;</code>
     */
    com.google.protobuf.ByteString
        getTransitiveQuoteIncludeDirectoryBytes(int index);

    /**
     * <code>repeated string transitive_define = 5;</code>
     */
    java.util.List<java.lang.String>
        getTransitiveDefineList();
    /**
     * <code>repeated string transitive_define = 5;</code>
     */
    int getTransitiveDefineCount();
    /**
     * <code>repeated string transitive_define = 5;</code>
     */
    java.lang.String getTransitiveDefine(int index);
    /**
     * <code>repeated string transitive_define = 5;</code>
     */
    com.google.protobuf.ByteString
        getTransitiveDefineBytes(int index);

    /**
     * <code>repeated string transitive_system_include_directory = 6;</code>
     */
    java.util.List<java.lang.String>
        getTransitiveSystemIncludeDirectoryList();
    /**
     * <code>repeated string transitive_system_include_directory = 6;</code>
     */
    int getTransitiveSystemIncludeDirectoryCount();
    /**
     * <code>repeated string transitive_system_include_directory = 6;</code>
     */
    java.lang.String getTransitiveSystemIncludeDirectory(int index);
    /**
     * <code>repeated string transitive_system_include_directory = 6;</code>
     */
    com.google.protobuf.ByteString
        getTransitiveSystemIncludeDirectoryBytes(int index);

    /**
     * <code>repeated string rule_copt = 7;</code>
     */
    java.util.List<java.lang.String>
        getRuleCoptList();
    /**
     * <code>repeated string rule_copt = 7;</code>
     */
    int getRuleCoptCount();
    /**
     * <code>repeated string rule_copt = 7;</code>
     */
    java.lang.String getRuleCopt(int index);
    /**
     * <code>repeated string rule_copt = 7;</code>
     */
    com.google.protobuf.ByteString
        getRuleCoptBytes(int index);

    /**
     * <code>repeated string rule_define = 8;</code>
     */
    java.util.List<java.lang.String>
        getRuleDefineList();
    /**
     * <code>repeated string rule_define = 8;</code>
     */
    int getRuleDefineCount();
    /**
     * <code>repeated string rule_define = 8;</code>
     */
    java.lang.String getRuleDefine(int index);
    /**
     * <code>repeated string rule_define = 8;</code>
     */
    com.google.protobuf.ByteString
        getRuleDefineBytes(int index);

    /**
     * <code>repeated string rule_include = 9;</code>
     */
    java.util.List<java.lang.String>
        getRuleIncludeList();
    /**
     * <code>repeated string rule_include = 9;</code>
     */
    int getRuleIncludeCount();
    /**
     * <code>repeated string rule_include = 9;</code>
     */
    java.lang.String getRuleInclude(int index);
    /**
     * <code>repeated string rule_include = 9;</code>
     */
    com.google.protobuf.ByteString
        getRuleIncludeBytes(int index);
  }
  /**
   * Protobuf type {@code blaze.CRuleIdeInfo}
   */
  public  static final class CRuleIdeInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:blaze.CRuleIdeInfo)
      CRuleIdeInfoOrBuilder {
    // Use CRuleIdeInfo.newBuilder() to construct.
    private CRuleIdeInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private CRuleIdeInfo() {
      source_ = java.util.Collections.emptyList();
      transitiveIncludeDirectory_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      transitiveQuoteIncludeDirectory_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      transitiveDefine_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      transitiveSystemIncludeDirectory_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      ruleCopt_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      ruleDefine_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      ruleInclude_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private CRuleIdeInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                source_ = new java.util.ArrayList<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation>();
                mutable_bitField0_ |= 0x00000001;
              }
              source_.add(
                  input.readMessage(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.parser(), extensionRegistry));
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                transitiveIncludeDirectory_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              transitiveIncludeDirectory_.add(s);
              break;
            }
            case 34: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                transitiveQuoteIncludeDirectory_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000004;
              }
              transitiveQuoteIncludeDirectory_.add(s);
              break;
            }
            case 42: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                transitiveDefine_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000008;
              }
              transitiveDefine_.add(s);
              break;
            }
            case 50: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                transitiveSystemIncludeDirectory_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000010;
              }
              transitiveSystemIncludeDirectory_.add(s);
              break;
            }
            case 58: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
                ruleCopt_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000020;
              }
              ruleCopt_.add(s);
              break;
            }
            case 66: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
                ruleDefine_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000040;
              }
              ruleDefine_.add(s);
              break;
            }
            case 74: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
                ruleInclude_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000080;
              }
              ruleInclude_.add(s);
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          source_ = java.util.Collections.unmodifiableList(source_);
        }
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          transitiveIncludeDirectory_ = transitiveIncludeDirectory_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          transitiveQuoteIncludeDirectory_ = transitiveQuoteIncludeDirectory_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          transitiveDefine_ = transitiveDefine_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
          transitiveSystemIncludeDirectory_ = transitiveSystemIncludeDirectory_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
          ruleCopt_ = ruleCopt_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
          ruleDefine_ = ruleDefine_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
          ruleInclude_ = ruleInclude_.getUnmodifiableView();
        }
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_CRuleIdeInfo_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_CRuleIdeInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo.class, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo.Builder.class);
    }

    public static final int SOURCE_FIELD_NUMBER = 1;
    private java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation> source_;
    /**
     * <code>repeated .blaze.ArtifactLocation source = 1;</code>
     */
    public java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation> getSourceList() {
      return source_;
    }
    /**
     * <code>repeated .blaze.ArtifactLocation source = 1;</code>
     */
    public java.util.List<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> 
        getSourceOrBuilderList() {
      return source_;
    }
    /**
     * <code>repeated .blaze.ArtifactLocation source = 1;</code>
     */
    public int getSourceCount() {
      return source_.size();
    }
    /**
     * <code>repeated .blaze.ArtifactLocation source = 1;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getSource(int index) {
      return source_.get(index);
    }
    /**
     * <code>repeated .blaze.ArtifactLocation source = 1;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getSourceOrBuilder(
        int index) {
      return source_.get(index);
    }

    public static final int TRANSITIVE_INCLUDE_DIRECTORY_FIELD_NUMBER = 3;
    private com.google.protobuf.LazyStringList transitiveIncludeDirectory_;
    /**
     * <code>repeated string transitive_include_directory = 3;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getTransitiveIncludeDirectoryList() {
      return transitiveIncludeDirectory_;
    }
    /**
     * <code>repeated string transitive_include_directory = 3;</code>
     */
    public int getTransitiveIncludeDirectoryCount() {
      return transitiveIncludeDirectory_.size();
    }
    /**
     * <code>repeated string transitive_include_directory = 3;</code>
     */
    public java.lang.String getTransitiveIncludeDirectory(int index) {
      return transitiveIncludeDirectory_.get(index);
    }
    /**
     * <code>repeated string transitive_include_directory = 3;</code>
     */
    public com.google.protobuf.ByteString
        getTransitiveIncludeDirectoryBytes(int index) {
      return transitiveIncludeDirectory_.getByteString(index);
    }

    public static final int TRANSITIVE_QUOTE_INCLUDE_DIRECTORY_FIELD_NUMBER = 4;
    private com.google.protobuf.LazyStringList transitiveQuoteIncludeDirectory_;
    /**
     * <code>repeated string transitive_quote_include_directory = 4;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getTransitiveQuoteIncludeDirectoryList() {
      return transitiveQuoteIncludeDirectory_;
    }
    /**
     * <code>repeated string transitive_quote_include_directory = 4;</code>
     */
    public int getTransitiveQuoteIncludeDirectoryCount() {
      return transitiveQuoteIncludeDirectory_.size();
    }
    /**
     * <code>repeated string transitive_quote_include_directory = 4;</code>
     */
    public java.lang.String getTransitiveQuoteIncludeDirectory(int index) {
      return transitiveQuoteIncludeDirectory_.get(index);
    }
    /**
     * <code>repeated string transitive_quote_include_directory = 4;</code>
     */
    public com.google.protobuf.ByteString
        getTransitiveQuoteIncludeDirectoryBytes(int index) {
      return transitiveQuoteIncludeDirectory_.getByteString(index);
    }

    public static final int TRANSITIVE_DEFINE_FIELD_NUMBER = 5;
    private com.google.protobuf.LazyStringList transitiveDefine_;
    /**
     * <code>repeated string transitive_define = 5;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getTransitiveDefineList() {
      return transitiveDefine_;
    }
    /**
     * <code>repeated string transitive_define = 5;</code>
     */
    public int getTransitiveDefineCount() {
      return transitiveDefine_.size();
    }
    /**
     * <code>repeated string transitive_define = 5;</code>
     */
    public java.lang.String getTransitiveDefine(int index) {
      return transitiveDefine_.get(index);
    }
    /**
     * <code>repeated string transitive_define = 5;</code>
     */
    public com.google.protobuf.ByteString
        getTransitiveDefineBytes(int index) {
      return transitiveDefine_.getByteString(index);
    }

    public static final int TRANSITIVE_SYSTEM_INCLUDE_DIRECTORY_FIELD_NUMBER = 6;
    private com.google.protobuf.LazyStringList transitiveSystemIncludeDirectory_;
    /**
     * <code>repeated string transitive_system_include_directory = 6;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getTransitiveSystemIncludeDirectoryList() {
      return transitiveSystemIncludeDirectory_;
    }
    /**
     * <code>repeated string transitive_system_include_directory = 6;</code>
     */
    public int getTransitiveSystemIncludeDirectoryCount() {
      return transitiveSystemIncludeDirectory_.size();
    }
    /**
     * <code>repeated string transitive_system_include_directory = 6;</code>
     */
    public java.lang.String getTransitiveSystemIncludeDirectory(int index) {
      return transitiveSystemIncludeDirectory_.get(index);
    }
    /**
     * <code>repeated string transitive_system_include_directory = 6;</code>
     */
    public com.google.protobuf.ByteString
        getTransitiveSystemIncludeDirectoryBytes(int index) {
      return transitiveSystemIncludeDirectory_.getByteString(index);
    }

    public static final int RULE_COPT_FIELD_NUMBER = 7;
    private com.google.protobuf.LazyStringList ruleCopt_;
    /**
     * <code>repeated string rule_copt = 7;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getRuleCoptList() {
      return ruleCopt_;
    }
    /**
     * <code>repeated string rule_copt = 7;</code>
     */
    public int getRuleCoptCount() {
      return ruleCopt_.size();
    }
    /**
     * <code>repeated string rule_copt = 7;</code>
     */
    public java.lang.String getRuleCopt(int index) {
      return ruleCopt_.get(index);
    }
    /**
     * <code>repeated string rule_copt = 7;</code>
     */
    public com.google.protobuf.ByteString
        getRuleCoptBytes(int index) {
      return ruleCopt_.getByteString(index);
    }

    public static final int RULE_DEFINE_FIELD_NUMBER = 8;
    private com.google.protobuf.LazyStringList ruleDefine_;
    /**
     * <code>repeated string rule_define = 8;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getRuleDefineList() {
      return ruleDefine_;
    }
    /**
     * <code>repeated string rule_define = 8;</code>
     */
    public int getRuleDefineCount() {
      return ruleDefine_.size();
    }
    /**
     * <code>repeated string rule_define = 8;</code>
     */
    public java.lang.String getRuleDefine(int index) {
      return ruleDefine_.get(index);
    }
    /**
     * <code>repeated string rule_define = 8;</code>
     */
    public com.google.protobuf.ByteString
        getRuleDefineBytes(int index) {
      return ruleDefine_.getByteString(index);
    }

    public static final int RULE_INCLUDE_FIELD_NUMBER = 9;
    private com.google.protobuf.LazyStringList ruleInclude_;
    /**
     * <code>repeated string rule_include = 9;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getRuleIncludeList() {
      return ruleInclude_;
    }
    /**
     * <code>repeated string rule_include = 9;</code>
     */
    public int getRuleIncludeCount() {
      return ruleInclude_.size();
    }
    /**
     * <code>repeated string rule_include = 9;</code>
     */
    public java.lang.String getRuleInclude(int index) {
      return ruleInclude_.get(index);
    }
    /**
     * <code>repeated string rule_include = 9;</code>
     */
    public com.google.protobuf.ByteString
        getRuleIncludeBytes(int index) {
      return ruleInclude_.getByteString(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < source_.size(); i++) {
        output.writeMessage(1, source_.get(i));
      }
      for (int i = 0; i < transitiveIncludeDirectory_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, transitiveIncludeDirectory_.getRaw(i));
      }
      for (int i = 0; i < transitiveQuoteIncludeDirectory_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, transitiveQuoteIncludeDirectory_.getRaw(i));
      }
      for (int i = 0; i < transitiveDefine_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, transitiveDefine_.getRaw(i));
      }
      for (int i = 0; i < transitiveSystemIncludeDirectory_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, transitiveSystemIncludeDirectory_.getRaw(i));
      }
      for (int i = 0; i < ruleCopt_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, ruleCopt_.getRaw(i));
      }
      for (int i = 0; i < ruleDefine_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, ruleDefine_.getRaw(i));
      }
      for (int i = 0; i < ruleInclude_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, ruleInclude_.getRaw(i));
      }
    }

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

      size = 0;
      for (int i = 0; i < source_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, source_.get(i));
      }
      {
        int dataSize = 0;
        for (int i = 0; i < transitiveIncludeDirectory_.size(); i++) {
          dataSize += computeStringSizeNoTag(transitiveIncludeDirectory_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getTransitiveIncludeDirectoryList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < transitiveQuoteIncludeDirectory_.size(); i++) {
          dataSize += computeStringSizeNoTag(transitiveQuoteIncludeDirectory_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getTransitiveQuoteIncludeDirectoryList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < transitiveDefine_.size(); i++) {
          dataSize += computeStringSizeNoTag(transitiveDefine_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getTransitiveDefineList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < transitiveSystemIncludeDirectory_.size(); i++) {
          dataSize += computeStringSizeNoTag(transitiveSystemIncludeDirectory_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getTransitiveSystemIncludeDirectoryList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < ruleCopt_.size(); i++) {
          dataSize += computeStringSizeNoTag(ruleCopt_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getRuleCoptList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < ruleDefine_.size(); i++) {
          dataSize += computeStringSizeNoTag(ruleDefine_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getRuleDefineList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < ruleInclude_.size(); i++) {
          dataSize += computeStringSizeNoTag(ruleInclude_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getRuleIncludeList().size();
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo)) {
        return super.equals(obj);
      }
      com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo other = (com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo) obj;

      boolean result = true;
      result = result && getSourceList()
          .equals(other.getSourceList());
      result = result && getTransitiveIncludeDirectoryList()
          .equals(other.getTransitiveIncludeDirectoryList());
      result = result && getTransitiveQuoteIncludeDirectoryList()
          .equals(other.getTransitiveQuoteIncludeDirectoryList());
      result = result && getTransitiveDefineList()
          .equals(other.getTransitiveDefineList());
      result = result && getTransitiveSystemIncludeDirectoryList()
          .equals(other.getTransitiveSystemIncludeDirectoryList());
      result = result && getRuleCoptList()
          .equals(other.getRuleCoptList());
      result = result && getRuleDefineList()
          .equals(other.getRuleDefineList());
      result = result && getRuleIncludeList()
          .equals(other.getRuleIncludeList());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (getSourceCount() > 0) {
        hash = (37 * hash) + SOURCE_FIELD_NUMBER;
        hash = (53 * hash) + getSourceList().hashCode();
      }
      if (getTransitiveIncludeDirectoryCount() > 0) {
        hash = (37 * hash) + TRANSITIVE_INCLUDE_DIRECTORY_FIELD_NUMBER;
        hash = (53 * hash) + getTransitiveIncludeDirectoryList().hashCode();
      }
      if (getTransitiveQuoteIncludeDirectoryCount() > 0) {
        hash = (37 * hash) + TRANSITIVE_QUOTE_INCLUDE_DIRECTORY_FIELD_NUMBER;
        hash = (53 * hash) + getTransitiveQuoteIncludeDirectoryList().hashCode();
      }
      if (getTransitiveDefineCount() > 0) {
        hash = (37 * hash) + TRANSITIVE_DEFINE_FIELD_NUMBER;
        hash = (53 * hash) + getTransitiveDefineList().hashCode();
      }
      if (getTransitiveSystemIncludeDirectoryCount() > 0) {
        hash = (37 * hash) + TRANSITIVE_SYSTEM_INCLUDE_DIRECTORY_FIELD_NUMBER;
        hash = (53 * hash) + getTransitiveSystemIncludeDirectoryList().hashCode();
      }
      if (getRuleCoptCount() > 0) {
        hash = (37 * hash) + RULE_COPT_FIELD_NUMBER;
        hash = (53 * hash) + getRuleCoptList().hashCode();
      }
      if (getRuleDefineCount() > 0) {
        hash = (37 * hash) + RULE_DEFINE_FIELD_NUMBER;
        hash = (53 * hash) + getRuleDefineList().hashCode();
      }
      if (getRuleIncludeCount() > 0) {
        hash = (37 * hash) + RULE_INCLUDE_FIELD_NUMBER;
        hash = (53 * hash) + getRuleIncludeList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo 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 com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo 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 com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code blaze.CRuleIdeInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:blaze.CRuleIdeInfo)
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_CRuleIdeInfo_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_CRuleIdeInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo.class, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo.Builder.class);
      }

      // Construct using com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getSourceFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        if (sourceBuilder_ == null) {
          source_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          sourceBuilder_.clear();
        }
        transitiveIncludeDirectory_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        transitiveQuoteIncludeDirectory_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        transitiveDefine_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        transitiveSystemIncludeDirectory_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000010);
        ruleCopt_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000020);
        ruleDefine_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000040);
        ruleInclude_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_CRuleIdeInfo_descriptor;
      }

      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo getDefaultInstanceForType() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo.getDefaultInstance();
      }

      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo build() {
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo buildPartial() {
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo result = new com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo(this);
        int from_bitField0_ = bitField0_;
        if (sourceBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            source_ = java.util.Collections.unmodifiableList(source_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.source_ = source_;
        } else {
          result.source_ = sourceBuilder_.build();
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          transitiveIncludeDirectory_ = transitiveIncludeDirectory_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.transitiveIncludeDirectory_ = transitiveIncludeDirectory_;
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          transitiveQuoteIncludeDirectory_ = transitiveQuoteIncludeDirectory_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.transitiveQuoteIncludeDirectory_ = transitiveQuoteIncludeDirectory_;
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          transitiveDefine_ = transitiveDefine_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000008);
        }
        result.transitiveDefine_ = transitiveDefine_;
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          transitiveSystemIncludeDirectory_ = transitiveSystemIncludeDirectory_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000010);
        }
        result.transitiveSystemIncludeDirectory_ = transitiveSystemIncludeDirectory_;
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          ruleCopt_ = ruleCopt_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000020);
        }
        result.ruleCopt_ = ruleCopt_;
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          ruleDefine_ = ruleDefine_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000040);
        }
        result.ruleDefine_ = ruleDefine_;
        if (((bitField0_ & 0x00000080) == 0x00000080)) {
          ruleInclude_ = ruleInclude_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000080);
        }
        result.ruleInclude_ = ruleInclude_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo) {
          return mergeFrom((com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo other) {
        if (other == com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo.getDefaultInstance()) return this;
        if (sourceBuilder_ == null) {
          if (!other.source_.isEmpty()) {
            if (source_.isEmpty()) {
              source_ = other.source_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureSourceIsMutable();
              source_.addAll(other.source_);
            }
            onChanged();
          }
        } else {
          if (!other.source_.isEmpty()) {
            if (sourceBuilder_.isEmpty()) {
              sourceBuilder_.dispose();
              sourceBuilder_ = null;
              source_ = other.source_;
              bitField0_ = (bitField0_ & ~0x00000001);
              sourceBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getSourceFieldBuilder() : null;
            } else {
              sourceBuilder_.addAllMessages(other.source_);
            }
          }
        }
        if (!other.transitiveIncludeDirectory_.isEmpty()) {
          if (transitiveIncludeDirectory_.isEmpty()) {
            transitiveIncludeDirectory_ = other.transitiveIncludeDirectory_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureTransitiveIncludeDirectoryIsMutable();
            transitiveIncludeDirectory_.addAll(other.transitiveIncludeDirectory_);
          }
          onChanged();
        }
        if (!other.transitiveQuoteIncludeDirectory_.isEmpty()) {
          if (transitiveQuoteIncludeDirectory_.isEmpty()) {
            transitiveQuoteIncludeDirectory_ = other.transitiveQuoteIncludeDirectory_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureTransitiveQuoteIncludeDirectoryIsMutable();
            transitiveQuoteIncludeDirectory_.addAll(other.transitiveQuoteIncludeDirectory_);
          }
          onChanged();
        }
        if (!other.transitiveDefine_.isEmpty()) {
          if (transitiveDefine_.isEmpty()) {
            transitiveDefine_ = other.transitiveDefine_;
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            ensureTransitiveDefineIsMutable();
            transitiveDefine_.addAll(other.transitiveDefine_);
          }
          onChanged();
        }
        if (!other.transitiveSystemIncludeDirectory_.isEmpty()) {
          if (transitiveSystemIncludeDirectory_.isEmpty()) {
            transitiveSystemIncludeDirectory_ = other.transitiveSystemIncludeDirectory_;
            bitField0_ = (bitField0_ & ~0x00000010);
          } else {
            ensureTransitiveSystemIncludeDirectoryIsMutable();
            transitiveSystemIncludeDirectory_.addAll(other.transitiveSystemIncludeDirectory_);
          }
          onChanged();
        }
        if (!other.ruleCopt_.isEmpty()) {
          if (ruleCopt_.isEmpty()) {
            ruleCopt_ = other.ruleCopt_;
            bitField0_ = (bitField0_ & ~0x00000020);
          } else {
            ensureRuleCoptIsMutable();
            ruleCopt_.addAll(other.ruleCopt_);
          }
          onChanged();
        }
        if (!other.ruleDefine_.isEmpty()) {
          if (ruleDefine_.isEmpty()) {
            ruleDefine_ = other.ruleDefine_;
            bitField0_ = (bitField0_ & ~0x00000040);
          } else {
            ensureRuleDefineIsMutable();
            ruleDefine_.addAll(other.ruleDefine_);
          }
          onChanged();
        }
        if (!other.ruleInclude_.isEmpty()) {
          if (ruleInclude_.isEmpty()) {
            ruleInclude_ = other.ruleInclude_;
            bitField0_ = (bitField0_ & ~0x00000080);
          } else {
            ensureRuleIncludeIsMutable();
            ruleInclude_.addAll(other.ruleInclude_);
          }
          onChanged();
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

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

      private java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation> source_ =
        java.util.Collections.emptyList();
      private void ensureSourceIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          source_ = new java.util.ArrayList<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation>(source_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> sourceBuilder_;

      /**
       * <code>repeated .blaze.ArtifactLocation source = 1;</code>
       */
      public java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation> getSourceList() {
        if (sourceBuilder_ == null) {
          return java.util.Collections.unmodifiableList(source_);
        } else {
          return sourceBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .blaze.ArtifactLocation source = 1;</code>
       */
      public int getSourceCount() {
        if (sourceBuilder_ == null) {
          return source_.size();
        } else {
          return sourceBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .blaze.ArtifactLocation source = 1;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getSource(int index) {
        if (sourceBuilder_ == null) {
          return source_.get(index);
        } else {
          return sourceBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .blaze.ArtifactLocation source = 1;</code>
       */
      public Builder setSource(
          int index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation value) {
        if (sourceBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSourceIsMutable();
          source_.set(index, value);
          onChanged();
        } else {
          sourceBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation source = 1;</code>
       */
      public Builder setSource(
          int index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder builderForValue) {
        if (sourceBuilder_ == null) {
          ensureSourceIsMutable();
          source_.set(index, builderForValue.build());
          onChanged();
        } else {
          sourceBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation source = 1;</code>
       */
      public Builder addSource(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation value) {
        if (sourceBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSourceIsMutable();
          source_.add(value);
          onChanged();
        } else {
          sourceBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation source = 1;</code>
       */
      public Builder addSource(
          int index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation value) {
        if (sourceBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSourceIsMutable();
          source_.add(index, value);
          onChanged();
        } else {
          sourceBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation source = 1;</code>
       */
      public Builder addSource(
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder builderForValue) {
        if (sourceBuilder_ == null) {
          ensureSourceIsMutable();
          source_.add(builderForValue.build());
          onChanged();
        } else {
          sourceBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation source = 1;</code>
       */
      public Builder addSource(
          int index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder builderForValue) {
        if (sourceBuilder_ == null) {
          ensureSourceIsMutable();
          source_.add(index, builderForValue.build());
          onChanged();
        } else {
          sourceBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation source = 1;</code>
       */
      public Builder addAllSource(
          java.lang.Iterable<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation> values) {
        if (sourceBuilder_ == null) {
          ensureSourceIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, source_);
          onChanged();
        } else {
          sourceBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation source = 1;</code>
       */
      public Builder clearSource() {
        if (sourceBuilder_ == null) {
          source_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          sourceBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation source = 1;</code>
       */
      public Builder removeSource(int index) {
        if (sourceBuilder_ == null) {
          ensureSourceIsMutable();
          source_.remove(index);
          onChanged();
        } else {
          sourceBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation source = 1;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder getSourceBuilder(
          int index) {
        return getSourceFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .blaze.ArtifactLocation source = 1;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getSourceOrBuilder(
          int index) {
        if (sourceBuilder_ == null) {
          return source_.get(index);  } else {
          return sourceBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .blaze.ArtifactLocation source = 1;</code>
       */
      public java.util.List<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> 
           getSourceOrBuilderList() {
        if (sourceBuilder_ != null) {
          return sourceBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(source_);
        }
      }
      /**
       * <code>repeated .blaze.ArtifactLocation source = 1;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder addSourceBuilder() {
        return getSourceFieldBuilder().addBuilder(
            com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance());
      }
      /**
       * <code>repeated .blaze.ArtifactLocation source = 1;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder addSourceBuilder(
          int index) {
        return getSourceFieldBuilder().addBuilder(
            index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance());
      }
      /**
       * <code>repeated .blaze.ArtifactLocation source = 1;</code>
       */
      public java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder> 
           getSourceBuilderList() {
        return getSourceFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> 
          getSourceFieldBuilder() {
        if (sourceBuilder_ == null) {
          sourceBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder>(
                  source_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          source_ = null;
        }
        return sourceBuilder_;
      }

      private com.google.protobuf.LazyStringList transitiveIncludeDirectory_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureTransitiveIncludeDirectoryIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          transitiveIncludeDirectory_ = new com.google.protobuf.LazyStringArrayList(transitiveIncludeDirectory_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * <code>repeated string transitive_include_directory = 3;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getTransitiveIncludeDirectoryList() {
        return transitiveIncludeDirectory_.getUnmodifiableView();
      }
      /**
       * <code>repeated string transitive_include_directory = 3;</code>
       */
      public int getTransitiveIncludeDirectoryCount() {
        return transitiveIncludeDirectory_.size();
      }
      /**
       * <code>repeated string transitive_include_directory = 3;</code>
       */
      public java.lang.String getTransitiveIncludeDirectory(int index) {
        return transitiveIncludeDirectory_.get(index);
      }
      /**
       * <code>repeated string transitive_include_directory = 3;</code>
       */
      public com.google.protobuf.ByteString
          getTransitiveIncludeDirectoryBytes(int index) {
        return transitiveIncludeDirectory_.getByteString(index);
      }
      /**
       * <code>repeated string transitive_include_directory = 3;</code>
       */
      public Builder setTransitiveIncludeDirectory(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureTransitiveIncludeDirectoryIsMutable();
        transitiveIncludeDirectory_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string transitive_include_directory = 3;</code>
       */
      public Builder addTransitiveIncludeDirectory(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureTransitiveIncludeDirectoryIsMutable();
        transitiveIncludeDirectory_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string transitive_include_directory = 3;</code>
       */
      public Builder addAllTransitiveIncludeDirectory(
          java.lang.Iterable<java.lang.String> values) {
        ensureTransitiveIncludeDirectoryIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, transitiveIncludeDirectory_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string transitive_include_directory = 3;</code>
       */
      public Builder clearTransitiveIncludeDirectory() {
        transitiveIncludeDirectory_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string transitive_include_directory = 3;</code>
       */
      public Builder addTransitiveIncludeDirectoryBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureTransitiveIncludeDirectoryIsMutable();
        transitiveIncludeDirectory_.add(value);
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList transitiveQuoteIncludeDirectory_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureTransitiveQuoteIncludeDirectoryIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          transitiveQuoteIncludeDirectory_ = new com.google.protobuf.LazyStringArrayList(transitiveQuoteIncludeDirectory_);
          bitField0_ |= 0x00000004;
         }
      }
      /**
       * <code>repeated string transitive_quote_include_directory = 4;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getTransitiveQuoteIncludeDirectoryList() {
        return transitiveQuoteIncludeDirectory_.getUnmodifiableView();
      }
      /**
       * <code>repeated string transitive_quote_include_directory = 4;</code>
       */
      public int getTransitiveQuoteIncludeDirectoryCount() {
        return transitiveQuoteIncludeDirectory_.size();
      }
      /**
       * <code>repeated string transitive_quote_include_directory = 4;</code>
       */
      public java.lang.String getTransitiveQuoteIncludeDirectory(int index) {
        return transitiveQuoteIncludeDirectory_.get(index);
      }
      /**
       * <code>repeated string transitive_quote_include_directory = 4;</code>
       */
      public com.google.protobuf.ByteString
          getTransitiveQuoteIncludeDirectoryBytes(int index) {
        return transitiveQuoteIncludeDirectory_.getByteString(index);
      }
      /**
       * <code>repeated string transitive_quote_include_directory = 4;</code>
       */
      public Builder setTransitiveQuoteIncludeDirectory(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureTransitiveQuoteIncludeDirectoryIsMutable();
        transitiveQuoteIncludeDirectory_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string transitive_quote_include_directory = 4;</code>
       */
      public Builder addTransitiveQuoteIncludeDirectory(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureTransitiveQuoteIncludeDirectoryIsMutable();
        transitiveQuoteIncludeDirectory_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string transitive_quote_include_directory = 4;</code>
       */
      public Builder addAllTransitiveQuoteIncludeDirectory(
          java.lang.Iterable<java.lang.String> values) {
        ensureTransitiveQuoteIncludeDirectoryIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, transitiveQuoteIncludeDirectory_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string transitive_quote_include_directory = 4;</code>
       */
      public Builder clearTransitiveQuoteIncludeDirectory() {
        transitiveQuoteIncludeDirectory_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string transitive_quote_include_directory = 4;</code>
       */
      public Builder addTransitiveQuoteIncludeDirectoryBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureTransitiveQuoteIncludeDirectoryIsMutable();
        transitiveQuoteIncludeDirectory_.add(value);
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList transitiveDefine_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureTransitiveDefineIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          transitiveDefine_ = new com.google.protobuf.LazyStringArrayList(transitiveDefine_);
          bitField0_ |= 0x00000008;
         }
      }
      /**
       * <code>repeated string transitive_define = 5;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getTransitiveDefineList() {
        return transitiveDefine_.getUnmodifiableView();
      }
      /**
       * <code>repeated string transitive_define = 5;</code>
       */
      public int getTransitiveDefineCount() {
        return transitiveDefine_.size();
      }
      /**
       * <code>repeated string transitive_define = 5;</code>
       */
      public java.lang.String getTransitiveDefine(int index) {
        return transitiveDefine_.get(index);
      }
      /**
       * <code>repeated string transitive_define = 5;</code>
       */
      public com.google.protobuf.ByteString
          getTransitiveDefineBytes(int index) {
        return transitiveDefine_.getByteString(index);
      }
      /**
       * <code>repeated string transitive_define = 5;</code>
       */
      public Builder setTransitiveDefine(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureTransitiveDefineIsMutable();
        transitiveDefine_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string transitive_define = 5;</code>
       */
      public Builder addTransitiveDefine(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureTransitiveDefineIsMutable();
        transitiveDefine_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string transitive_define = 5;</code>
       */
      public Builder addAllTransitiveDefine(
          java.lang.Iterable<java.lang.String> values) {
        ensureTransitiveDefineIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, transitiveDefine_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string transitive_define = 5;</code>
       */
      public Builder clearTransitiveDefine() {
        transitiveDefine_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string transitive_define = 5;</code>
       */
      public Builder addTransitiveDefineBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureTransitiveDefineIsMutable();
        transitiveDefine_.add(value);
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList transitiveSystemIncludeDirectory_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureTransitiveSystemIncludeDirectoryIsMutable() {
        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
          transitiveSystemIncludeDirectory_ = new com.google.protobuf.LazyStringArrayList(transitiveSystemIncludeDirectory_);
          bitField0_ |= 0x00000010;
         }
      }
      /**
       * <code>repeated string transitive_system_include_directory = 6;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getTransitiveSystemIncludeDirectoryList() {
        return transitiveSystemIncludeDirectory_.getUnmodifiableView();
      }
      /**
       * <code>repeated string transitive_system_include_directory = 6;</code>
       */
      public int getTransitiveSystemIncludeDirectoryCount() {
        return transitiveSystemIncludeDirectory_.size();
      }
      /**
       * <code>repeated string transitive_system_include_directory = 6;</code>
       */
      public java.lang.String getTransitiveSystemIncludeDirectory(int index) {
        return transitiveSystemIncludeDirectory_.get(index);
      }
      /**
       * <code>repeated string transitive_system_include_directory = 6;</code>
       */
      public com.google.protobuf.ByteString
          getTransitiveSystemIncludeDirectoryBytes(int index) {
        return transitiveSystemIncludeDirectory_.getByteString(index);
      }
      /**
       * <code>repeated string transitive_system_include_directory = 6;</code>
       */
      public Builder setTransitiveSystemIncludeDirectory(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureTransitiveSystemIncludeDirectoryIsMutable();
        transitiveSystemIncludeDirectory_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string transitive_system_include_directory = 6;</code>
       */
      public Builder addTransitiveSystemIncludeDirectory(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureTransitiveSystemIncludeDirectoryIsMutable();
        transitiveSystemIncludeDirectory_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string transitive_system_include_directory = 6;</code>
       */
      public Builder addAllTransitiveSystemIncludeDirectory(
          java.lang.Iterable<java.lang.String> values) {
        ensureTransitiveSystemIncludeDirectoryIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, transitiveSystemIncludeDirectory_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string transitive_system_include_directory = 6;</code>
       */
      public Builder clearTransitiveSystemIncludeDirectory() {
        transitiveSystemIncludeDirectory_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string transitive_system_include_directory = 6;</code>
       */
      public Builder addTransitiveSystemIncludeDirectoryBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureTransitiveSystemIncludeDirectoryIsMutable();
        transitiveSystemIncludeDirectory_.add(value);
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList ruleCopt_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureRuleCoptIsMutable() {
        if (!((bitField0_ & 0x00000020) == 0x00000020)) {
          ruleCopt_ = new com.google.protobuf.LazyStringArrayList(ruleCopt_);
          bitField0_ |= 0x00000020;
         }
      }
      /**
       * <code>repeated string rule_copt = 7;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getRuleCoptList() {
        return ruleCopt_.getUnmodifiableView();
      }
      /**
       * <code>repeated string rule_copt = 7;</code>
       */
      public int getRuleCoptCount() {
        return ruleCopt_.size();
      }
      /**
       * <code>repeated string rule_copt = 7;</code>
       */
      public java.lang.String getRuleCopt(int index) {
        return ruleCopt_.get(index);
      }
      /**
       * <code>repeated string rule_copt = 7;</code>
       */
      public com.google.protobuf.ByteString
          getRuleCoptBytes(int index) {
        return ruleCopt_.getByteString(index);
      }
      /**
       * <code>repeated string rule_copt = 7;</code>
       */
      public Builder setRuleCopt(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureRuleCoptIsMutable();
        ruleCopt_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string rule_copt = 7;</code>
       */
      public Builder addRuleCopt(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureRuleCoptIsMutable();
        ruleCopt_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string rule_copt = 7;</code>
       */
      public Builder addAllRuleCopt(
          java.lang.Iterable<java.lang.String> values) {
        ensureRuleCoptIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, ruleCopt_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string rule_copt = 7;</code>
       */
      public Builder clearRuleCopt() {
        ruleCopt_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000020);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string rule_copt = 7;</code>
       */
      public Builder addRuleCoptBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureRuleCoptIsMutable();
        ruleCopt_.add(value);
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList ruleDefine_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureRuleDefineIsMutable() {
        if (!((bitField0_ & 0x00000040) == 0x00000040)) {
          ruleDefine_ = new com.google.protobuf.LazyStringArrayList(ruleDefine_);
          bitField0_ |= 0x00000040;
         }
      }
      /**
       * <code>repeated string rule_define = 8;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getRuleDefineList() {
        return ruleDefine_.getUnmodifiableView();
      }
      /**
       * <code>repeated string rule_define = 8;</code>
       */
      public int getRuleDefineCount() {
        return ruleDefine_.size();
      }
      /**
       * <code>repeated string rule_define = 8;</code>
       */
      public java.lang.String getRuleDefine(int index) {
        return ruleDefine_.get(index);
      }
      /**
       * <code>repeated string rule_define = 8;</code>
       */
      public com.google.protobuf.ByteString
          getRuleDefineBytes(int index) {
        return ruleDefine_.getByteString(index);
      }
      /**
       * <code>repeated string rule_define = 8;</code>
       */
      public Builder setRuleDefine(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureRuleDefineIsMutable();
        ruleDefine_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string rule_define = 8;</code>
       */
      public Builder addRuleDefine(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureRuleDefineIsMutable();
        ruleDefine_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string rule_define = 8;</code>
       */
      public Builder addAllRuleDefine(
          java.lang.Iterable<java.lang.String> values) {
        ensureRuleDefineIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, ruleDefine_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string rule_define = 8;</code>
       */
      public Builder clearRuleDefine() {
        ruleDefine_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000040);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string rule_define = 8;</code>
       */
      public Builder addRuleDefineBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureRuleDefineIsMutable();
        ruleDefine_.add(value);
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList ruleInclude_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureRuleIncludeIsMutable() {
        if (!((bitField0_ & 0x00000080) == 0x00000080)) {
          ruleInclude_ = new com.google.protobuf.LazyStringArrayList(ruleInclude_);
          bitField0_ |= 0x00000080;
         }
      }
      /**
       * <code>repeated string rule_include = 9;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getRuleIncludeList() {
        return ruleInclude_.getUnmodifiableView();
      }
      /**
       * <code>repeated string rule_include = 9;</code>
       */
      public int getRuleIncludeCount() {
        return ruleInclude_.size();
      }
      /**
       * <code>repeated string rule_include = 9;</code>
       */
      public java.lang.String getRuleInclude(int index) {
        return ruleInclude_.get(index);
      }
      /**
       * <code>repeated string rule_include = 9;</code>
       */
      public com.google.protobuf.ByteString
          getRuleIncludeBytes(int index) {
        return ruleInclude_.getByteString(index);
      }
      /**
       * <code>repeated string rule_include = 9;</code>
       */
      public Builder setRuleInclude(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureRuleIncludeIsMutable();
        ruleInclude_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string rule_include = 9;</code>
       */
      public Builder addRuleInclude(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureRuleIncludeIsMutable();
        ruleInclude_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string rule_include = 9;</code>
       */
      public Builder addAllRuleInclude(
          java.lang.Iterable<java.lang.String> values) {
        ensureRuleIncludeIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, ruleInclude_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string rule_include = 9;</code>
       */
      public Builder clearRuleInclude() {
        ruleInclude_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000080);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string rule_include = 9;</code>
       */
      public Builder addRuleIncludeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureRuleIncludeIsMutable();
        ruleInclude_.add(value);
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:blaze.CRuleIdeInfo)
    }

    // @@protoc_insertion_point(class_scope:blaze.CRuleIdeInfo)
    private static final com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo();
    }

    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AndroidRuleIdeInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:blaze.AndroidRuleIdeInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .blaze.ArtifactLocation resources = 1;</code>
     */
    java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation> 
        getResourcesList();
    /**
     * <code>repeated .blaze.ArtifactLocation resources = 1;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getResources(int index);
    /**
     * <code>repeated .blaze.ArtifactLocation resources = 1;</code>
     */
    int getResourcesCount();
    /**
     * <code>repeated .blaze.ArtifactLocation resources = 1;</code>
     */
    java.util.List<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> 
        getResourcesOrBuilderList();
    /**
     * <code>repeated .blaze.ArtifactLocation resources = 1;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getResourcesOrBuilder(
        int index);

    /**
     * <code>optional .blaze.ArtifactLocation apk = 3;</code>
     */
    boolean hasApk();
    /**
     * <code>optional .blaze.ArtifactLocation apk = 3;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getApk();
    /**
     * <code>optional .blaze.ArtifactLocation apk = 3;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getApkOrBuilder();

    /**
     * <code>repeated .blaze.ArtifactLocation dependency_apk = 4;</code>
     */
    java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation> 
        getDependencyApkList();
    /**
     * <code>repeated .blaze.ArtifactLocation dependency_apk = 4;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getDependencyApk(int index);
    /**
     * <code>repeated .blaze.ArtifactLocation dependency_apk = 4;</code>
     */
    int getDependencyApkCount();
    /**
     * <code>repeated .blaze.ArtifactLocation dependency_apk = 4;</code>
     */
    java.util.List<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> 
        getDependencyApkOrBuilderList();
    /**
     * <code>repeated .blaze.ArtifactLocation dependency_apk = 4;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getDependencyApkOrBuilder(
        int index);

    /**
     * <code>optional .blaze.ArtifactLocation manifest = 5;</code>
     */
    boolean hasManifest();
    /**
     * <code>optional .blaze.ArtifactLocation manifest = 5;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getManifest();
    /**
     * <code>optional .blaze.ArtifactLocation manifest = 5;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getManifestOrBuilder();

    /**
     * <code>optional string java_package = 7;</code>
     */
    java.lang.String getJavaPackage();
    /**
     * <code>optional string java_package = 7;</code>
     */
    com.google.protobuf.ByteString
        getJavaPackageBytes();

    /**
     * <code>optional bool has_idl_sources = 8;</code>
     */
    boolean getHasIdlSources();

    /**
     * <code>optional .blaze.LibraryArtifact idl_jar = 9;</code>
     */
    boolean hasIdlJar();
    /**
     * <code>optional .blaze.LibraryArtifact idl_jar = 9;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact getIdlJar();
    /**
     * <code>optional .blaze.LibraryArtifact idl_jar = 9;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder getIdlJarOrBuilder();

    /**
     * <code>optional bool generate_resource_class = 10;</code>
     */
    boolean getGenerateResourceClass();

    /**
     * <code>optional string legacy_resources = 11;</code>
     */
    java.lang.String getLegacyResources();
    /**
     * <code>optional string legacy_resources = 11;</code>
     */
    com.google.protobuf.ByteString
        getLegacyResourcesBytes();

    /**
     * <code>optional .blaze.LibraryArtifact resource_jar = 12;</code>
     */
    boolean hasResourceJar();
    /**
     * <code>optional .blaze.LibraryArtifact resource_jar = 12;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact getResourceJar();
    /**
     * <code>optional .blaze.LibraryArtifact resource_jar = 12;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder getResourceJarOrBuilder();

    /**
     * <code>optional string idl_import_root = 13;</code>
     */
    java.lang.String getIdlImportRoot();
    /**
     * <code>optional string idl_import_root = 13;</code>
     */
    com.google.protobuf.ByteString
        getIdlImportRootBytes();
  }
  /**
   * Protobuf type {@code blaze.AndroidRuleIdeInfo}
   */
  public  static final class AndroidRuleIdeInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:blaze.AndroidRuleIdeInfo)
      AndroidRuleIdeInfoOrBuilder {
    // Use AndroidRuleIdeInfo.newBuilder() to construct.
    private AndroidRuleIdeInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AndroidRuleIdeInfo() {
      resources_ = java.util.Collections.emptyList();
      dependencyApk_ = java.util.Collections.emptyList();
      javaPackage_ = "";
      hasIdlSources_ = false;
      generateResourceClass_ = false;
      legacyResources_ = "";
      idlImportRoot_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private AndroidRuleIdeInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                resources_ = new java.util.ArrayList<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation>();
                mutable_bitField0_ |= 0x00000001;
              }
              resources_.add(
                  input.readMessage(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.parser(), extensionRegistry));
              break;
            }
            case 26: {
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder subBuilder = null;
              if (apk_ != null) {
                subBuilder = apk_.toBuilder();
              }
              apk_ = input.readMessage(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(apk_);
                apk_ = subBuilder.buildPartial();
              }

              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                dependencyApk_ = new java.util.ArrayList<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation>();
                mutable_bitField0_ |= 0x00000004;
              }
              dependencyApk_.add(
                  input.readMessage(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.parser(), extensionRegistry));
              break;
            }
            case 42: {
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder subBuilder = null;
              if (manifest_ != null) {
                subBuilder = manifest_.toBuilder();
              }
              manifest_ = input.readMessage(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(manifest_);
                manifest_ = subBuilder.buildPartial();
              }

              break;
            }
            case 58: {
              java.lang.String s = input.readStringRequireUtf8();

              javaPackage_ = s;
              break;
            }
            case 64: {

              hasIdlSources_ = input.readBool();
              break;
            }
            case 74: {
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder subBuilder = null;
              if (idlJar_ != null) {
                subBuilder = idlJar_.toBuilder();
              }
              idlJar_ = input.readMessage(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(idlJar_);
                idlJar_ = subBuilder.buildPartial();
              }

              break;
            }
            case 80: {

              generateResourceClass_ = input.readBool();
              break;
            }
            case 90: {
              java.lang.String s = input.readStringRequireUtf8();

              legacyResources_ = s;
              break;
            }
            case 98: {
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder subBuilder = null;
              if (resourceJar_ != null) {
                subBuilder = resourceJar_.toBuilder();
              }
              resourceJar_ = input.readMessage(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(resourceJar_);
                resourceJar_ = subBuilder.buildPartial();
              }

              break;
            }
            case 106: {
              java.lang.String s = input.readStringRequireUtf8();

              idlImportRoot_ = s;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          resources_ = java.util.Collections.unmodifiableList(resources_);
        }
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          dependencyApk_ = java.util.Collections.unmodifiableList(dependencyApk_);
        }
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_AndroidRuleIdeInfo_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_AndroidRuleIdeInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo.class, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo.Builder.class);
    }

    private int bitField0_;
    public static final int RESOURCES_FIELD_NUMBER = 1;
    private java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation> resources_;
    /**
     * <code>repeated .blaze.ArtifactLocation resources = 1;</code>
     */
    public java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation> getResourcesList() {
      return resources_;
    }
    /**
     * <code>repeated .blaze.ArtifactLocation resources = 1;</code>
     */
    public java.util.List<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> 
        getResourcesOrBuilderList() {
      return resources_;
    }
    /**
     * <code>repeated .blaze.ArtifactLocation resources = 1;</code>
     */
    public int getResourcesCount() {
      return resources_.size();
    }
    /**
     * <code>repeated .blaze.ArtifactLocation resources = 1;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getResources(int index) {
      return resources_.get(index);
    }
    /**
     * <code>repeated .blaze.ArtifactLocation resources = 1;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getResourcesOrBuilder(
        int index) {
      return resources_.get(index);
    }

    public static final int APK_FIELD_NUMBER = 3;
    private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation apk_;
    /**
     * <code>optional .blaze.ArtifactLocation apk = 3;</code>
     */
    public boolean hasApk() {
      return apk_ != null;
    }
    /**
     * <code>optional .blaze.ArtifactLocation apk = 3;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getApk() {
      return apk_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance() : apk_;
    }
    /**
     * <code>optional .blaze.ArtifactLocation apk = 3;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getApkOrBuilder() {
      return getApk();
    }

    public static final int DEPENDENCY_APK_FIELD_NUMBER = 4;
    private java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation> dependencyApk_;
    /**
     * <code>repeated .blaze.ArtifactLocation dependency_apk = 4;</code>
     */
    public java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation> getDependencyApkList() {
      return dependencyApk_;
    }
    /**
     * <code>repeated .blaze.ArtifactLocation dependency_apk = 4;</code>
     */
    public java.util.List<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> 
        getDependencyApkOrBuilderList() {
      return dependencyApk_;
    }
    /**
     * <code>repeated .blaze.ArtifactLocation dependency_apk = 4;</code>
     */
    public int getDependencyApkCount() {
      return dependencyApk_.size();
    }
    /**
     * <code>repeated .blaze.ArtifactLocation dependency_apk = 4;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getDependencyApk(int index) {
      return dependencyApk_.get(index);
    }
    /**
     * <code>repeated .blaze.ArtifactLocation dependency_apk = 4;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getDependencyApkOrBuilder(
        int index) {
      return dependencyApk_.get(index);
    }

    public static final int MANIFEST_FIELD_NUMBER = 5;
    private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation manifest_;
    /**
     * <code>optional .blaze.ArtifactLocation manifest = 5;</code>
     */
    public boolean hasManifest() {
      return manifest_ != null;
    }
    /**
     * <code>optional .blaze.ArtifactLocation manifest = 5;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getManifest() {
      return manifest_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance() : manifest_;
    }
    /**
     * <code>optional .blaze.ArtifactLocation manifest = 5;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getManifestOrBuilder() {
      return getManifest();
    }

    public static final int JAVA_PACKAGE_FIELD_NUMBER = 7;
    private volatile java.lang.Object javaPackage_;
    /**
     * <code>optional string java_package = 7;</code>
     */
    public java.lang.String getJavaPackage() {
      java.lang.Object ref = javaPackage_;
      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();
        javaPackage_ = s;
        return s;
      }
    }
    /**
     * <code>optional string java_package = 7;</code>
     */
    public com.google.protobuf.ByteString
        getJavaPackageBytes() {
      java.lang.Object ref = javaPackage_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        javaPackage_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HAS_IDL_SOURCES_FIELD_NUMBER = 8;
    private boolean hasIdlSources_;
    /**
     * <code>optional bool has_idl_sources = 8;</code>
     */
    public boolean getHasIdlSources() {
      return hasIdlSources_;
    }

    public static final int IDL_JAR_FIELD_NUMBER = 9;
    private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact idlJar_;
    /**
     * <code>optional .blaze.LibraryArtifact idl_jar = 9;</code>
     */
    public boolean hasIdlJar() {
      return idlJar_ != null;
    }
    /**
     * <code>optional .blaze.LibraryArtifact idl_jar = 9;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact getIdlJar() {
      return idlJar_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.getDefaultInstance() : idlJar_;
    }
    /**
     * <code>optional .blaze.LibraryArtifact idl_jar = 9;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder getIdlJarOrBuilder() {
      return getIdlJar();
    }

    public static final int GENERATE_RESOURCE_CLASS_FIELD_NUMBER = 10;
    private boolean generateResourceClass_;
    /**
     * <code>optional bool generate_resource_class = 10;</code>
     */
    public boolean getGenerateResourceClass() {
      return generateResourceClass_;
    }

    public static final int LEGACY_RESOURCES_FIELD_NUMBER = 11;
    private volatile java.lang.Object legacyResources_;
    /**
     * <code>optional string legacy_resources = 11;</code>
     */
    public java.lang.String getLegacyResources() {
      java.lang.Object ref = legacyResources_;
      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();
        legacyResources_ = s;
        return s;
      }
    }
    /**
     * <code>optional string legacy_resources = 11;</code>
     */
    public com.google.protobuf.ByteString
        getLegacyResourcesBytes() {
      java.lang.Object ref = legacyResources_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        legacyResources_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int RESOURCE_JAR_FIELD_NUMBER = 12;
    private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact resourceJar_;
    /**
     * <code>optional .blaze.LibraryArtifact resource_jar = 12;</code>
     */
    public boolean hasResourceJar() {
      return resourceJar_ != null;
    }
    /**
     * <code>optional .blaze.LibraryArtifact resource_jar = 12;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact getResourceJar() {
      return resourceJar_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.getDefaultInstance() : resourceJar_;
    }
    /**
     * <code>optional .blaze.LibraryArtifact resource_jar = 12;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder getResourceJarOrBuilder() {
      return getResourceJar();
    }

    public static final int IDL_IMPORT_ROOT_FIELD_NUMBER = 13;
    private volatile java.lang.Object idlImportRoot_;
    /**
     * <code>optional string idl_import_root = 13;</code>
     */
    public java.lang.String getIdlImportRoot() {
      java.lang.Object ref = idlImportRoot_;
      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();
        idlImportRoot_ = s;
        return s;
      }
    }
    /**
     * <code>optional string idl_import_root = 13;</code>
     */
    public com.google.protobuf.ByteString
        getIdlImportRootBytes() {
      java.lang.Object ref = idlImportRoot_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        idlImportRoot_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < resources_.size(); i++) {
        output.writeMessage(1, resources_.get(i));
      }
      if (apk_ != null) {
        output.writeMessage(3, getApk());
      }
      for (int i = 0; i < dependencyApk_.size(); i++) {
        output.writeMessage(4, dependencyApk_.get(i));
      }
      if (manifest_ != null) {
        output.writeMessage(5, getManifest());
      }
      if (!getJavaPackageBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, javaPackage_);
      }
      if (hasIdlSources_ != false) {
        output.writeBool(8, hasIdlSources_);
      }
      if (idlJar_ != null) {
        output.writeMessage(9, getIdlJar());
      }
      if (generateResourceClass_ != false) {
        output.writeBool(10, generateResourceClass_);
      }
      if (!getLegacyResourcesBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 11, legacyResources_);
      }
      if (resourceJar_ != null) {
        output.writeMessage(12, getResourceJar());
      }
      if (!getIdlImportRootBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 13, idlImportRoot_);
      }
    }

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

      size = 0;
      for (int i = 0; i < resources_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, resources_.get(i));
      }
      if (apk_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getApk());
      }
      for (int i = 0; i < dependencyApk_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, dependencyApk_.get(i));
      }
      if (manifest_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getManifest());
      }
      if (!getJavaPackageBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, javaPackage_);
      }
      if (hasIdlSources_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(8, hasIdlSources_);
      }
      if (idlJar_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, getIdlJar());
      }
      if (generateResourceClass_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(10, generateResourceClass_);
      }
      if (!getLegacyResourcesBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, legacyResources_);
      }
      if (resourceJar_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(12, getResourceJar());
      }
      if (!getIdlImportRootBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(13, idlImportRoot_);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo)) {
        return super.equals(obj);
      }
      com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo other = (com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo) obj;

      boolean result = true;
      result = result && getResourcesList()
          .equals(other.getResourcesList());
      result = result && (hasApk() == other.hasApk());
      if (hasApk()) {
        result = result && getApk()
            .equals(other.getApk());
      }
      result = result && getDependencyApkList()
          .equals(other.getDependencyApkList());
      result = result && (hasManifest() == other.hasManifest());
      if (hasManifest()) {
        result = result && getManifest()
            .equals(other.getManifest());
      }
      result = result && getJavaPackage()
          .equals(other.getJavaPackage());
      result = result && (getHasIdlSources()
          == other.getHasIdlSources());
      result = result && (hasIdlJar() == other.hasIdlJar());
      if (hasIdlJar()) {
        result = result && getIdlJar()
            .equals(other.getIdlJar());
      }
      result = result && (getGenerateResourceClass()
          == other.getGenerateResourceClass());
      result = result && getLegacyResources()
          .equals(other.getLegacyResources());
      result = result && (hasResourceJar() == other.hasResourceJar());
      if (hasResourceJar()) {
        result = result && getResourceJar()
            .equals(other.getResourceJar());
      }
      result = result && getIdlImportRoot()
          .equals(other.getIdlImportRoot());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (getResourcesCount() > 0) {
        hash = (37 * hash) + RESOURCES_FIELD_NUMBER;
        hash = (53 * hash) + getResourcesList().hashCode();
      }
      if (hasApk()) {
        hash = (37 * hash) + APK_FIELD_NUMBER;
        hash = (53 * hash) + getApk().hashCode();
      }
      if (getDependencyApkCount() > 0) {
        hash = (37 * hash) + DEPENDENCY_APK_FIELD_NUMBER;
        hash = (53 * hash) + getDependencyApkList().hashCode();
      }
      if (hasManifest()) {
        hash = (37 * hash) + MANIFEST_FIELD_NUMBER;
        hash = (53 * hash) + getManifest().hashCode();
      }
      hash = (37 * hash) + JAVA_PACKAGE_FIELD_NUMBER;
      hash = (53 * hash) + getJavaPackage().hashCode();
      hash = (37 * hash) + HAS_IDL_SOURCES_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getHasIdlSources());
      if (hasIdlJar()) {
        hash = (37 * hash) + IDL_JAR_FIELD_NUMBER;
        hash = (53 * hash) + getIdlJar().hashCode();
      }
      hash = (37 * hash) + GENERATE_RESOURCE_CLASS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getGenerateResourceClass());
      hash = (37 * hash) + LEGACY_RESOURCES_FIELD_NUMBER;
      hash = (53 * hash) + getLegacyResources().hashCode();
      if (hasResourceJar()) {
        hash = (37 * hash) + RESOURCE_JAR_FIELD_NUMBER;
        hash = (53 * hash) + getResourceJar().hashCode();
      }
      hash = (37 * hash) + IDL_IMPORT_ROOT_FIELD_NUMBER;
      hash = (53 * hash) + getIdlImportRoot().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo 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 com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo 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 com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code blaze.AndroidRuleIdeInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:blaze.AndroidRuleIdeInfo)
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_AndroidRuleIdeInfo_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_AndroidRuleIdeInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo.class, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo.Builder.class);
      }

      // Construct using com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getResourcesFieldBuilder();
          getDependencyApkFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        if (resourcesBuilder_ == null) {
          resources_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          resourcesBuilder_.clear();
        }
        if (apkBuilder_ == null) {
          apk_ = null;
        } else {
          apk_ = null;
          apkBuilder_ = null;
        }
        if (dependencyApkBuilder_ == null) {
          dependencyApk_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          dependencyApkBuilder_.clear();
        }
        if (manifestBuilder_ == null) {
          manifest_ = null;
        } else {
          manifest_ = null;
          manifestBuilder_ = null;
        }
        javaPackage_ = "";

        hasIdlSources_ = false;

        if (idlJarBuilder_ == null) {
          idlJar_ = null;
        } else {
          idlJar_ = null;
          idlJarBuilder_ = null;
        }
        generateResourceClass_ = false;

        legacyResources_ = "";

        if (resourceJarBuilder_ == null) {
          resourceJar_ = null;
        } else {
          resourceJar_ = null;
          resourceJarBuilder_ = null;
        }
        idlImportRoot_ = "";

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_AndroidRuleIdeInfo_descriptor;
      }

      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo getDefaultInstanceForType() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo.getDefaultInstance();
      }

      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo build() {
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo buildPartial() {
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo result = new com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (resourcesBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            resources_ = java.util.Collections.unmodifiableList(resources_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.resources_ = resources_;
        } else {
          result.resources_ = resourcesBuilder_.build();
        }
        if (apkBuilder_ == null) {
          result.apk_ = apk_;
        } else {
          result.apk_ = apkBuilder_.build();
        }
        if (dependencyApkBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            dependencyApk_ = java.util.Collections.unmodifiableList(dependencyApk_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.dependencyApk_ = dependencyApk_;
        } else {
          result.dependencyApk_ = dependencyApkBuilder_.build();
        }
        if (manifestBuilder_ == null) {
          result.manifest_ = manifest_;
        } else {
          result.manifest_ = manifestBuilder_.build();
        }
        result.javaPackage_ = javaPackage_;
        result.hasIdlSources_ = hasIdlSources_;
        if (idlJarBuilder_ == null) {
          result.idlJar_ = idlJar_;
        } else {
          result.idlJar_ = idlJarBuilder_.build();
        }
        result.generateResourceClass_ = generateResourceClass_;
        result.legacyResources_ = legacyResources_;
        if (resourceJarBuilder_ == null) {
          result.resourceJar_ = resourceJar_;
        } else {
          result.resourceJar_ = resourceJarBuilder_.build();
        }
        result.idlImportRoot_ = idlImportRoot_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo) {
          return mergeFrom((com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo other) {
        if (other == com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo.getDefaultInstance()) return this;
        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 (other.hasApk()) {
          mergeApk(other.getApk());
        }
        if (dependencyApkBuilder_ == null) {
          if (!other.dependencyApk_.isEmpty()) {
            if (dependencyApk_.isEmpty()) {
              dependencyApk_ = other.dependencyApk_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureDependencyApkIsMutable();
              dependencyApk_.addAll(other.dependencyApk_);
            }
            onChanged();
          }
        } else {
          if (!other.dependencyApk_.isEmpty()) {
            if (dependencyApkBuilder_.isEmpty()) {
              dependencyApkBuilder_.dispose();
              dependencyApkBuilder_ = null;
              dependencyApk_ = other.dependencyApk_;
              bitField0_ = (bitField0_ & ~0x00000004);
              dependencyApkBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getDependencyApkFieldBuilder() : null;
            } else {
              dependencyApkBuilder_.addAllMessages(other.dependencyApk_);
            }
          }
        }
        if (other.hasManifest()) {
          mergeManifest(other.getManifest());
        }
        if (!other.getJavaPackage().isEmpty()) {
          javaPackage_ = other.javaPackage_;
          onChanged();
        }
        if (other.getHasIdlSources() != false) {
          setHasIdlSources(other.getHasIdlSources());
        }
        if (other.hasIdlJar()) {
          mergeIdlJar(other.getIdlJar());
        }
        if (other.getGenerateResourceClass() != false) {
          setGenerateResourceClass(other.getGenerateResourceClass());
        }
        if (!other.getLegacyResources().isEmpty()) {
          legacyResources_ = other.legacyResources_;
          onChanged();
        }
        if (other.hasResourceJar()) {
          mergeResourceJar(other.getResourceJar());
        }
        if (!other.getIdlImportRoot().isEmpty()) {
          idlImportRoot_ = other.idlImportRoot_;
          onChanged();
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

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

      private java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation> resources_ =
        java.util.Collections.emptyList();
      private void ensureResourcesIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          resources_ = new java.util.ArrayList<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation>(resources_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> resourcesBuilder_;

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

      private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation apk_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> apkBuilder_;
      /**
       * <code>optional .blaze.ArtifactLocation apk = 3;</code>
       */
      public boolean hasApk() {
        return apkBuilder_ != null || apk_ != null;
      }
      /**
       * <code>optional .blaze.ArtifactLocation apk = 3;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getApk() {
        if (apkBuilder_ == null) {
          return apk_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance() : apk_;
        } else {
          return apkBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .blaze.ArtifactLocation apk = 3;</code>
       */
      public Builder setApk(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation value) {
        if (apkBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          apk_ = value;
          onChanged();
        } else {
          apkBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.ArtifactLocation apk = 3;</code>
       */
      public Builder setApk(
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder builderForValue) {
        if (apkBuilder_ == null) {
          apk_ = builderForValue.build();
          onChanged();
        } else {
          apkBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>optional .blaze.ArtifactLocation apk = 3;</code>
       */
      public Builder mergeApk(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation value) {
        if (apkBuilder_ == null) {
          if (apk_ != null) {
            apk_ =
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.newBuilder(apk_).mergeFrom(value).buildPartial();
          } else {
            apk_ = value;
          }
          onChanged();
        } else {
          apkBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.ArtifactLocation apk = 3;</code>
       */
      public Builder clearApk() {
        if (apkBuilder_ == null) {
          apk_ = null;
          onChanged();
        } else {
          apk_ = null;
          apkBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>optional .blaze.ArtifactLocation apk = 3;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder getApkBuilder() {
        
        onChanged();
        return getApkFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .blaze.ArtifactLocation apk = 3;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getApkOrBuilder() {
        if (apkBuilder_ != null) {
          return apkBuilder_.getMessageOrBuilder();
        } else {
          return apk_ == null ?
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance() : apk_;
        }
      }
      /**
       * <code>optional .blaze.ArtifactLocation apk = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> 
          getApkFieldBuilder() {
        if (apkBuilder_ == null) {
          apkBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder>(
                  getApk(),
                  getParentForChildren(),
                  isClean());
          apk_ = null;
        }
        return apkBuilder_;
      }

      private java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation> dependencyApk_ =
        java.util.Collections.emptyList();
      private void ensureDependencyApkIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          dependencyApk_ = new java.util.ArrayList<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation>(dependencyApk_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> dependencyApkBuilder_;

      /**
       * <code>repeated .blaze.ArtifactLocation dependency_apk = 4;</code>
       */
      public java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation> getDependencyApkList() {
        if (dependencyApkBuilder_ == null) {
          return java.util.Collections.unmodifiableList(dependencyApk_);
        } else {
          return dependencyApkBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .blaze.ArtifactLocation dependency_apk = 4;</code>
       */
      public int getDependencyApkCount() {
        if (dependencyApkBuilder_ == null) {
          return dependencyApk_.size();
        } else {
          return dependencyApkBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .blaze.ArtifactLocation dependency_apk = 4;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getDependencyApk(int index) {
        if (dependencyApkBuilder_ == null) {
          return dependencyApk_.get(index);
        } else {
          return dependencyApkBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .blaze.ArtifactLocation dependency_apk = 4;</code>
       */
      public Builder setDependencyApk(
          int index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation value) {
        if (dependencyApkBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDependencyApkIsMutable();
          dependencyApk_.set(index, value);
          onChanged();
        } else {
          dependencyApkBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation dependency_apk = 4;</code>
       */
      public Builder setDependencyApk(
          int index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder builderForValue) {
        if (dependencyApkBuilder_ == null) {
          ensureDependencyApkIsMutable();
          dependencyApk_.set(index, builderForValue.build());
          onChanged();
        } else {
          dependencyApkBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation dependency_apk = 4;</code>
       */
      public Builder addDependencyApk(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation value) {
        if (dependencyApkBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDependencyApkIsMutable();
          dependencyApk_.add(value);
          onChanged();
        } else {
          dependencyApkBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation dependency_apk = 4;</code>
       */
      public Builder addDependencyApk(
          int index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation value) {
        if (dependencyApkBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDependencyApkIsMutable();
          dependencyApk_.add(index, value);
          onChanged();
        } else {
          dependencyApkBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation dependency_apk = 4;</code>
       */
      public Builder addDependencyApk(
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder builderForValue) {
        if (dependencyApkBuilder_ == null) {
          ensureDependencyApkIsMutable();
          dependencyApk_.add(builderForValue.build());
          onChanged();
        } else {
          dependencyApkBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation dependency_apk = 4;</code>
       */
      public Builder addDependencyApk(
          int index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder builderForValue) {
        if (dependencyApkBuilder_ == null) {
          ensureDependencyApkIsMutable();
          dependencyApk_.add(index, builderForValue.build());
          onChanged();
        } else {
          dependencyApkBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation dependency_apk = 4;</code>
       */
      public Builder addAllDependencyApk(
          java.lang.Iterable<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation> values) {
        if (dependencyApkBuilder_ == null) {
          ensureDependencyApkIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, dependencyApk_);
          onChanged();
        } else {
          dependencyApkBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation dependency_apk = 4;</code>
       */
      public Builder clearDependencyApk() {
        if (dependencyApkBuilder_ == null) {
          dependencyApk_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          dependencyApkBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation dependency_apk = 4;</code>
       */
      public Builder removeDependencyApk(int index) {
        if (dependencyApkBuilder_ == null) {
          ensureDependencyApkIsMutable();
          dependencyApk_.remove(index);
          onChanged();
        } else {
          dependencyApkBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation dependency_apk = 4;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder getDependencyApkBuilder(
          int index) {
        return getDependencyApkFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .blaze.ArtifactLocation dependency_apk = 4;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getDependencyApkOrBuilder(
          int index) {
        if (dependencyApkBuilder_ == null) {
          return dependencyApk_.get(index);  } else {
          return dependencyApkBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .blaze.ArtifactLocation dependency_apk = 4;</code>
       */
      public java.util.List<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> 
           getDependencyApkOrBuilderList() {
        if (dependencyApkBuilder_ != null) {
          return dependencyApkBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(dependencyApk_);
        }
      }
      /**
       * <code>repeated .blaze.ArtifactLocation dependency_apk = 4;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder addDependencyApkBuilder() {
        return getDependencyApkFieldBuilder().addBuilder(
            com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance());
      }
      /**
       * <code>repeated .blaze.ArtifactLocation dependency_apk = 4;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder addDependencyApkBuilder(
          int index) {
        return getDependencyApkFieldBuilder().addBuilder(
            index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance());
      }
      /**
       * <code>repeated .blaze.ArtifactLocation dependency_apk = 4;</code>
       */
      public java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder> 
           getDependencyApkBuilderList() {
        return getDependencyApkFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> 
          getDependencyApkFieldBuilder() {
        if (dependencyApkBuilder_ == null) {
          dependencyApkBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder>(
                  dependencyApk_,
                  ((bitField0_ & 0x00000004) == 0x00000004),
                  getParentForChildren(),
                  isClean());
          dependencyApk_ = null;
        }
        return dependencyApkBuilder_;
      }

      private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation manifest_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> manifestBuilder_;
      /**
       * <code>optional .blaze.ArtifactLocation manifest = 5;</code>
       */
      public boolean hasManifest() {
        return manifestBuilder_ != null || manifest_ != null;
      }
      /**
       * <code>optional .blaze.ArtifactLocation manifest = 5;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getManifest() {
        if (manifestBuilder_ == null) {
          return manifest_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance() : manifest_;
        } else {
          return manifestBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .blaze.ArtifactLocation manifest = 5;</code>
       */
      public Builder setManifest(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation value) {
        if (manifestBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          manifest_ = value;
          onChanged();
        } else {
          manifestBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.ArtifactLocation manifest = 5;</code>
       */
      public Builder setManifest(
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder builderForValue) {
        if (manifestBuilder_ == null) {
          manifest_ = builderForValue.build();
          onChanged();
        } else {
          manifestBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>optional .blaze.ArtifactLocation manifest = 5;</code>
       */
      public Builder mergeManifest(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation value) {
        if (manifestBuilder_ == null) {
          if (manifest_ != null) {
            manifest_ =
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.newBuilder(manifest_).mergeFrom(value).buildPartial();
          } else {
            manifest_ = value;
          }
          onChanged();
        } else {
          manifestBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.ArtifactLocation manifest = 5;</code>
       */
      public Builder clearManifest() {
        if (manifestBuilder_ == null) {
          manifest_ = null;
          onChanged();
        } else {
          manifest_ = null;
          manifestBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>optional .blaze.ArtifactLocation manifest = 5;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder getManifestBuilder() {
        
        onChanged();
        return getManifestFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .blaze.ArtifactLocation manifest = 5;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getManifestOrBuilder() {
        if (manifestBuilder_ != null) {
          return manifestBuilder_.getMessageOrBuilder();
        } else {
          return manifest_ == null ?
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance() : manifest_;
        }
      }
      /**
       * <code>optional .blaze.ArtifactLocation manifest = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> 
          getManifestFieldBuilder() {
        if (manifestBuilder_ == null) {
          manifestBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder>(
                  getManifest(),
                  getParentForChildren(),
                  isClean());
          manifest_ = null;
        }
        return manifestBuilder_;
      }

      private java.lang.Object javaPackage_ = "";
      /**
       * <code>optional string java_package = 7;</code>
       */
      public java.lang.String getJavaPackage() {
        java.lang.Object ref = javaPackage_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          javaPackage_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string java_package = 7;</code>
       */
      public com.google.protobuf.ByteString
          getJavaPackageBytes() {
        java.lang.Object ref = javaPackage_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          javaPackage_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string java_package = 7;</code>
       */
      public Builder setJavaPackage(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        javaPackage_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string java_package = 7;</code>
       */
      public Builder clearJavaPackage() {
        
        javaPackage_ = getDefaultInstance().getJavaPackage();
        onChanged();
        return this;
      }
      /**
       * <code>optional string java_package = 7;</code>
       */
      public Builder setJavaPackageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        javaPackage_ = value;
        onChanged();
        return this;
      }

      private boolean hasIdlSources_ ;
      /**
       * <code>optional bool has_idl_sources = 8;</code>
       */
      public boolean getHasIdlSources() {
        return hasIdlSources_;
      }
      /**
       * <code>optional bool has_idl_sources = 8;</code>
       */
      public Builder setHasIdlSources(boolean value) {
        
        hasIdlSources_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool has_idl_sources = 8;</code>
       */
      public Builder clearHasIdlSources() {
        
        hasIdlSources_ = false;
        onChanged();
        return this;
      }

      private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact idlJar_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder> idlJarBuilder_;
      /**
       * <code>optional .blaze.LibraryArtifact idl_jar = 9;</code>
       */
      public boolean hasIdlJar() {
        return idlJarBuilder_ != null || idlJar_ != null;
      }
      /**
       * <code>optional .blaze.LibraryArtifact idl_jar = 9;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact getIdlJar() {
        if (idlJarBuilder_ == null) {
          return idlJar_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.getDefaultInstance() : idlJar_;
        } else {
          return idlJarBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .blaze.LibraryArtifact idl_jar = 9;</code>
       */
      public Builder setIdlJar(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact value) {
        if (idlJarBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          idlJar_ = value;
          onChanged();
        } else {
          idlJarBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.LibraryArtifact idl_jar = 9;</code>
       */
      public Builder setIdlJar(
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder builderForValue) {
        if (idlJarBuilder_ == null) {
          idlJar_ = builderForValue.build();
          onChanged();
        } else {
          idlJarBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>optional .blaze.LibraryArtifact idl_jar = 9;</code>
       */
      public Builder mergeIdlJar(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact value) {
        if (idlJarBuilder_ == null) {
          if (idlJar_ != null) {
            idlJar_ =
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.newBuilder(idlJar_).mergeFrom(value).buildPartial();
          } else {
            idlJar_ = value;
          }
          onChanged();
        } else {
          idlJarBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.LibraryArtifact idl_jar = 9;</code>
       */
      public Builder clearIdlJar() {
        if (idlJarBuilder_ == null) {
          idlJar_ = null;
          onChanged();
        } else {
          idlJar_ = null;
          idlJarBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>optional .blaze.LibraryArtifact idl_jar = 9;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder getIdlJarBuilder() {
        
        onChanged();
        return getIdlJarFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .blaze.LibraryArtifact idl_jar = 9;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder getIdlJarOrBuilder() {
        if (idlJarBuilder_ != null) {
          return idlJarBuilder_.getMessageOrBuilder();
        } else {
          return idlJar_ == null ?
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.getDefaultInstance() : idlJar_;
        }
      }
      /**
       * <code>optional .blaze.LibraryArtifact idl_jar = 9;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder> 
          getIdlJarFieldBuilder() {
        if (idlJarBuilder_ == null) {
          idlJarBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder>(
                  getIdlJar(),
                  getParentForChildren(),
                  isClean());
          idlJar_ = null;
        }
        return idlJarBuilder_;
      }

      private boolean generateResourceClass_ ;
      /**
       * <code>optional bool generate_resource_class = 10;</code>
       */
      public boolean getGenerateResourceClass() {
        return generateResourceClass_;
      }
      /**
       * <code>optional bool generate_resource_class = 10;</code>
       */
      public Builder setGenerateResourceClass(boolean value) {
        
        generateResourceClass_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool generate_resource_class = 10;</code>
       */
      public Builder clearGenerateResourceClass() {
        
        generateResourceClass_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object legacyResources_ = "";
      /**
       * <code>optional string legacy_resources = 11;</code>
       */
      public java.lang.String getLegacyResources() {
        java.lang.Object ref = legacyResources_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          legacyResources_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string legacy_resources = 11;</code>
       */
      public com.google.protobuf.ByteString
          getLegacyResourcesBytes() {
        java.lang.Object ref = legacyResources_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          legacyResources_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string legacy_resources = 11;</code>
       */
      public Builder setLegacyResources(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        legacyResources_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string legacy_resources = 11;</code>
       */
      public Builder clearLegacyResources() {
        
        legacyResources_ = getDefaultInstance().getLegacyResources();
        onChanged();
        return this;
      }
      /**
       * <code>optional string legacy_resources = 11;</code>
       */
      public Builder setLegacyResourcesBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        legacyResources_ = value;
        onChanged();
        return this;
      }

      private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact resourceJar_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder> resourceJarBuilder_;
      /**
       * <code>optional .blaze.LibraryArtifact resource_jar = 12;</code>
       */
      public boolean hasResourceJar() {
        return resourceJarBuilder_ != null || resourceJar_ != null;
      }
      /**
       * <code>optional .blaze.LibraryArtifact resource_jar = 12;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact getResourceJar() {
        if (resourceJarBuilder_ == null) {
          return resourceJar_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.getDefaultInstance() : resourceJar_;
        } else {
          return resourceJarBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .blaze.LibraryArtifact resource_jar = 12;</code>
       */
      public Builder setResourceJar(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact value) {
        if (resourceJarBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          resourceJar_ = value;
          onChanged();
        } else {
          resourceJarBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.LibraryArtifact resource_jar = 12;</code>
       */
      public Builder setResourceJar(
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder builderForValue) {
        if (resourceJarBuilder_ == null) {
          resourceJar_ = builderForValue.build();
          onChanged();
        } else {
          resourceJarBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>optional .blaze.LibraryArtifact resource_jar = 12;</code>
       */
      public Builder mergeResourceJar(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact value) {
        if (resourceJarBuilder_ == null) {
          if (resourceJar_ != null) {
            resourceJar_ =
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.newBuilder(resourceJar_).mergeFrom(value).buildPartial();
          } else {
            resourceJar_ = value;
          }
          onChanged();
        } else {
          resourceJarBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.LibraryArtifact resource_jar = 12;</code>
       */
      public Builder clearResourceJar() {
        if (resourceJarBuilder_ == null) {
          resourceJar_ = null;
          onChanged();
        } else {
          resourceJar_ = null;
          resourceJarBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>optional .blaze.LibraryArtifact resource_jar = 12;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder getResourceJarBuilder() {
        
        onChanged();
        return getResourceJarFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .blaze.LibraryArtifact resource_jar = 12;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder getResourceJarOrBuilder() {
        if (resourceJarBuilder_ != null) {
          return resourceJarBuilder_.getMessageOrBuilder();
        } else {
          return resourceJar_ == null ?
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.getDefaultInstance() : resourceJar_;
        }
      }
      /**
       * <code>optional .blaze.LibraryArtifact resource_jar = 12;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder> 
          getResourceJarFieldBuilder() {
        if (resourceJarBuilder_ == null) {
          resourceJarBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder>(
                  getResourceJar(),
                  getParentForChildren(),
                  isClean());
          resourceJar_ = null;
        }
        return resourceJarBuilder_;
      }

      private java.lang.Object idlImportRoot_ = "";
      /**
       * <code>optional string idl_import_root = 13;</code>
       */
      public java.lang.String getIdlImportRoot() {
        java.lang.Object ref = idlImportRoot_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          idlImportRoot_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string idl_import_root = 13;</code>
       */
      public com.google.protobuf.ByteString
          getIdlImportRootBytes() {
        java.lang.Object ref = idlImportRoot_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          idlImportRoot_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string idl_import_root = 13;</code>
       */
      public Builder setIdlImportRoot(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        idlImportRoot_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string idl_import_root = 13;</code>
       */
      public Builder clearIdlImportRoot() {
        
        idlImportRoot_ = getDefaultInstance().getIdlImportRoot();
        onChanged();
        return this;
      }
      /**
       * <code>optional string idl_import_root = 13;</code>
       */
      public Builder setIdlImportRootBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        idlImportRoot_ = value;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:blaze.AndroidRuleIdeInfo)
    }

    // @@protoc_insertion_point(class_scope:blaze.AndroidRuleIdeInfo)
    private static final com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo();
    }

    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PyRuleIdeInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:blaze.PyRuleIdeInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .blaze.ArtifactLocation sources = 1;</code>
     */
    java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation> 
        getSourcesList();
    /**
     * <code>repeated .blaze.ArtifactLocation sources = 1;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getSources(int index);
    /**
     * <code>repeated .blaze.ArtifactLocation sources = 1;</code>
     */
    int getSourcesCount();
    /**
     * <code>repeated .blaze.ArtifactLocation sources = 1;</code>
     */
    java.util.List<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> 
        getSourcesOrBuilderList();
    /**
     * <code>repeated .blaze.ArtifactLocation sources = 1;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getSourcesOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code blaze.PyRuleIdeInfo}
   */
  public  static final class PyRuleIdeInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:blaze.PyRuleIdeInfo)
      PyRuleIdeInfoOrBuilder {
    // Use PyRuleIdeInfo.newBuilder() to construct.
    private PyRuleIdeInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PyRuleIdeInfo() {
      sources_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private PyRuleIdeInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                sources_ = new java.util.ArrayList<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation>();
                mutable_bitField0_ |= 0x00000001;
              }
              sources_.add(
                  input.readMessage(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.parser(), extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          sources_ = java.util.Collections.unmodifiableList(sources_);
        }
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_PyRuleIdeInfo_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_PyRuleIdeInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo.class, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo.Builder.class);
    }

    public static final int SOURCES_FIELD_NUMBER = 1;
    private java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation> sources_;
    /**
     * <code>repeated .blaze.ArtifactLocation sources = 1;</code>
     */
    public java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation> getSourcesList() {
      return sources_;
    }
    /**
     * <code>repeated .blaze.ArtifactLocation sources = 1;</code>
     */
    public java.util.List<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> 
        getSourcesOrBuilderList() {
      return sources_;
    }
    /**
     * <code>repeated .blaze.ArtifactLocation sources = 1;</code>
     */
    public int getSourcesCount() {
      return sources_.size();
    }
    /**
     * <code>repeated .blaze.ArtifactLocation sources = 1;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getSources(int index) {
      return sources_.get(index);
    }
    /**
     * <code>repeated .blaze.ArtifactLocation sources = 1;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getSourcesOrBuilder(
        int index) {
      return sources_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo)) {
        return super.equals(obj);
      }
      com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo other = (com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo) obj;

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

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (getSourcesCount() > 0) {
        hash = (37 * hash) + SOURCES_FIELD_NUMBER;
        hash = (53 * hash) + getSourcesList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo 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 com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo 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 com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code blaze.PyRuleIdeInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:blaze.PyRuleIdeInfo)
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_PyRuleIdeInfo_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_PyRuleIdeInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo.class, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo.Builder.class);
      }

      // Construct using com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getSourcesFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        if (sourcesBuilder_ == null) {
          sources_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          sourcesBuilder_.clear();
        }
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_PyRuleIdeInfo_descriptor;
      }

      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo getDefaultInstanceForType() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo.getDefaultInstance();
      }

      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo build() {
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo buildPartial() {
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo result = new com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo(this);
        int from_bitField0_ = bitField0_;
        if (sourcesBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            sources_ = java.util.Collections.unmodifiableList(sources_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.sources_ = sources_;
        } else {
          result.sources_ = sourcesBuilder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo) {
          return mergeFrom((com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo other) {
        if (other == com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo.getDefaultInstance()) return this;
        if (sourcesBuilder_ == null) {
          if (!other.sources_.isEmpty()) {
            if (sources_.isEmpty()) {
              sources_ = other.sources_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureSourcesIsMutable();
              sources_.addAll(other.sources_);
            }
            onChanged();
          }
        } else {
          if (!other.sources_.isEmpty()) {
            if (sourcesBuilder_.isEmpty()) {
              sourcesBuilder_.dispose();
              sourcesBuilder_ = null;
              sources_ = other.sources_;
              bitField0_ = (bitField0_ & ~0x00000001);
              sourcesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getSourcesFieldBuilder() : null;
            } else {
              sourcesBuilder_.addAllMessages(other.sources_);
            }
          }
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

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

      private java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation> sources_ =
        java.util.Collections.emptyList();
      private void ensureSourcesIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          sources_ = new java.util.ArrayList<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation>(sources_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> sourcesBuilder_;

      /**
       * <code>repeated .blaze.ArtifactLocation sources = 1;</code>
       */
      public java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation> getSourcesList() {
        if (sourcesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(sources_);
        } else {
          return sourcesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 1;</code>
       */
      public int getSourcesCount() {
        if (sourcesBuilder_ == null) {
          return sources_.size();
        } else {
          return sourcesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 1;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getSources(int index) {
        if (sourcesBuilder_ == null) {
          return sources_.get(index);
        } else {
          return sourcesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 1;</code>
       */
      public Builder setSources(
          int index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation value) {
        if (sourcesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSourcesIsMutable();
          sources_.set(index, value);
          onChanged();
        } else {
          sourcesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 1;</code>
       */
      public Builder setSources(
          int index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder builderForValue) {
        if (sourcesBuilder_ == null) {
          ensureSourcesIsMutable();
          sources_.set(index, builderForValue.build());
          onChanged();
        } else {
          sourcesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 1;</code>
       */
      public Builder addSources(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation value) {
        if (sourcesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSourcesIsMutable();
          sources_.add(value);
          onChanged();
        } else {
          sourcesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 1;</code>
       */
      public Builder addSources(
          int index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation value) {
        if (sourcesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSourcesIsMutable();
          sources_.add(index, value);
          onChanged();
        } else {
          sourcesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 1;</code>
       */
      public Builder addSources(
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder builderForValue) {
        if (sourcesBuilder_ == null) {
          ensureSourcesIsMutable();
          sources_.add(builderForValue.build());
          onChanged();
        } else {
          sourcesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 1;</code>
       */
      public Builder addSources(
          int index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder builderForValue) {
        if (sourcesBuilder_ == null) {
          ensureSourcesIsMutable();
          sources_.add(index, builderForValue.build());
          onChanged();
        } else {
          sourcesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 1;</code>
       */
      public Builder addAllSources(
          java.lang.Iterable<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation> values) {
        if (sourcesBuilder_ == null) {
          ensureSourcesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, sources_);
          onChanged();
        } else {
          sourcesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 1;</code>
       */
      public Builder clearSources() {
        if (sourcesBuilder_ == null) {
          sources_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          sourcesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 1;</code>
       */
      public Builder removeSources(int index) {
        if (sourcesBuilder_ == null) {
          ensureSourcesIsMutable();
          sources_.remove(index);
          onChanged();
        } else {
          sourcesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 1;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder getSourcesBuilder(
          int index) {
        return getSourcesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 1;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getSourcesOrBuilder(
          int index) {
        if (sourcesBuilder_ == null) {
          return sources_.get(index);  } else {
          return sourcesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 1;</code>
       */
      public java.util.List<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> 
           getSourcesOrBuilderList() {
        if (sourcesBuilder_ != null) {
          return sourcesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(sources_);
        }
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 1;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder addSourcesBuilder() {
        return getSourcesFieldBuilder().addBuilder(
            com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance());
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 1;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder addSourcesBuilder(
          int index) {
        return getSourcesFieldBuilder().addBuilder(
            index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance());
      }
      /**
       * <code>repeated .blaze.ArtifactLocation sources = 1;</code>
       */
      public java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder> 
           getSourcesBuilderList() {
        return getSourcesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> 
          getSourcesFieldBuilder() {
        if (sourcesBuilder_ == null) {
          sourcesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder>(
                  sources_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          sources_ = null;
        }
        return sourcesBuilder_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:blaze.PyRuleIdeInfo)
    }

    // @@protoc_insertion_point(class_scope:blaze.PyRuleIdeInfo)
    private static final com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo();
    }

    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface CToolchainIdeInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:blaze.CToolchainIdeInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional string target_name = 1;</code>
     */
    java.lang.String getTargetName();
    /**
     * <code>optional string target_name = 1;</code>
     */
    com.google.protobuf.ByteString
        getTargetNameBytes();

    /**
     * <code>repeated string base_compiler_option = 2;</code>
     */
    java.util.List<java.lang.String>
        getBaseCompilerOptionList();
    /**
     * <code>repeated string base_compiler_option = 2;</code>
     */
    int getBaseCompilerOptionCount();
    /**
     * <code>repeated string base_compiler_option = 2;</code>
     */
    java.lang.String getBaseCompilerOption(int index);
    /**
     * <code>repeated string base_compiler_option = 2;</code>
     */
    com.google.protobuf.ByteString
        getBaseCompilerOptionBytes(int index);

    /**
     * <code>repeated string cpp_option = 3;</code>
     */
    java.util.List<java.lang.String>
        getCppOptionList();
    /**
     * <code>repeated string cpp_option = 3;</code>
     */
    int getCppOptionCount();
    /**
     * <code>repeated string cpp_option = 3;</code>
     */
    java.lang.String getCppOption(int index);
    /**
     * <code>repeated string cpp_option = 3;</code>
     */
    com.google.protobuf.ByteString
        getCppOptionBytes(int index);

    /**
     * <code>repeated string c_option = 4;</code>
     */
    java.util.List<java.lang.String>
        getCOptionList();
    /**
     * <code>repeated string c_option = 4;</code>
     */
    int getCOptionCount();
    /**
     * <code>repeated string c_option = 4;</code>
     */
    java.lang.String getCOption(int index);
    /**
     * <code>repeated string c_option = 4;</code>
     */
    com.google.protobuf.ByteString
        getCOptionBytes(int index);

    /**
     * <code>optional string preprocessor_executable = 5;</code>
     */
    java.lang.String getPreprocessorExecutable();
    /**
     * <code>optional string preprocessor_executable = 5;</code>
     */
    com.google.protobuf.ByteString
        getPreprocessorExecutableBytes();

    /**
     * <code>optional string cpp_executable = 6;</code>
     */
    java.lang.String getCppExecutable();
    /**
     * <code>optional string cpp_executable = 6;</code>
     */
    com.google.protobuf.ByteString
        getCppExecutableBytes();

    /**
     * <code>repeated string link_option = 7;</code>
     */
    java.util.List<java.lang.String>
        getLinkOptionList();
    /**
     * <code>repeated string link_option = 7;</code>
     */
    int getLinkOptionCount();
    /**
     * <code>repeated string link_option = 7;</code>
     */
    java.lang.String getLinkOption(int index);
    /**
     * <code>repeated string link_option = 7;</code>
     */
    com.google.protobuf.ByteString
        getLinkOptionBytes(int index);

    /**
     * <code>repeated string built_in_include_directory = 8;</code>
     */
    java.util.List<java.lang.String>
        getBuiltInIncludeDirectoryList();
    /**
     * <code>repeated string built_in_include_directory = 8;</code>
     */
    int getBuiltInIncludeDirectoryCount();
    /**
     * <code>repeated string built_in_include_directory = 8;</code>
     */
    java.lang.String getBuiltInIncludeDirectory(int index);
    /**
     * <code>repeated string built_in_include_directory = 8;</code>
     */
    com.google.protobuf.ByteString
        getBuiltInIncludeDirectoryBytes(int index);

    /**
     * <code>repeated string unfiltered_compiler_option = 9;</code>
     */
    java.util.List<java.lang.String>
        getUnfilteredCompilerOptionList();
    /**
     * <code>repeated string unfiltered_compiler_option = 9;</code>
     */
    int getUnfilteredCompilerOptionCount();
    /**
     * <code>repeated string unfiltered_compiler_option = 9;</code>
     */
    java.lang.String getUnfilteredCompilerOption(int index);
    /**
     * <code>repeated string unfiltered_compiler_option = 9;</code>
     */
    com.google.protobuf.ByteString
        getUnfilteredCompilerOptionBytes(int index);
  }
  /**
   * Protobuf type {@code blaze.CToolchainIdeInfo}
   */
  public  static final class CToolchainIdeInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:blaze.CToolchainIdeInfo)
      CToolchainIdeInfoOrBuilder {
    // Use CToolchainIdeInfo.newBuilder() to construct.
    private CToolchainIdeInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private CToolchainIdeInfo() {
      targetName_ = "";
      baseCompilerOption_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      cppOption_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      cOption_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      preprocessorExecutable_ = "";
      cppExecutable_ = "";
      linkOption_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      builtInIncludeDirectory_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      unfilteredCompilerOption_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private CToolchainIdeInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              targetName_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                baseCompilerOption_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              baseCompilerOption_.add(s);
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                cppOption_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000004;
              }
              cppOption_.add(s);
              break;
            }
            case 34: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                cOption_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000008;
              }
              cOption_.add(s);
              break;
            }
            case 42: {
              java.lang.String s = input.readStringRequireUtf8();

              preprocessorExecutable_ = s;
              break;
            }
            case 50: {
              java.lang.String s = input.readStringRequireUtf8();

              cppExecutable_ = s;
              break;
            }
            case 58: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
                linkOption_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000040;
              }
              linkOption_.add(s);
              break;
            }
            case 66: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
                builtInIncludeDirectory_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000080;
              }
              builtInIncludeDirectory_.add(s);
              break;
            }
            case 74: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000100) == 0x00000100)) {
                unfilteredCompilerOption_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000100;
              }
              unfilteredCompilerOption_.add(s);
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          baseCompilerOption_ = baseCompilerOption_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          cppOption_ = cppOption_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          cOption_ = cOption_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
          linkOption_ = linkOption_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
          builtInIncludeDirectory_ = builtInIncludeDirectory_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000100) == 0x00000100)) {
          unfilteredCompilerOption_ = unfilteredCompilerOption_.getUnmodifiableView();
        }
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_CToolchainIdeInfo_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_CToolchainIdeInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo.class, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo.Builder.class);
    }

    private int bitField0_;
    public static final int TARGET_NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object targetName_;
    /**
     * <code>optional string target_name = 1;</code>
     */
    public java.lang.String getTargetName() {
      java.lang.Object ref = targetName_;
      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();
        targetName_ = s;
        return s;
      }
    }
    /**
     * <code>optional string target_name = 1;</code>
     */
    public com.google.protobuf.ByteString
        getTargetNameBytes() {
      java.lang.Object ref = targetName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        targetName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int BASE_COMPILER_OPTION_FIELD_NUMBER = 2;
    private com.google.protobuf.LazyStringList baseCompilerOption_;
    /**
     * <code>repeated string base_compiler_option = 2;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getBaseCompilerOptionList() {
      return baseCompilerOption_;
    }
    /**
     * <code>repeated string base_compiler_option = 2;</code>
     */
    public int getBaseCompilerOptionCount() {
      return baseCompilerOption_.size();
    }
    /**
     * <code>repeated string base_compiler_option = 2;</code>
     */
    public java.lang.String getBaseCompilerOption(int index) {
      return baseCompilerOption_.get(index);
    }
    /**
     * <code>repeated string base_compiler_option = 2;</code>
     */
    public com.google.protobuf.ByteString
        getBaseCompilerOptionBytes(int index) {
      return baseCompilerOption_.getByteString(index);
    }

    public static final int CPP_OPTION_FIELD_NUMBER = 3;
    private com.google.protobuf.LazyStringList cppOption_;
    /**
     * <code>repeated string cpp_option = 3;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getCppOptionList() {
      return cppOption_;
    }
    /**
     * <code>repeated string cpp_option = 3;</code>
     */
    public int getCppOptionCount() {
      return cppOption_.size();
    }
    /**
     * <code>repeated string cpp_option = 3;</code>
     */
    public java.lang.String getCppOption(int index) {
      return cppOption_.get(index);
    }
    /**
     * <code>repeated string cpp_option = 3;</code>
     */
    public com.google.protobuf.ByteString
        getCppOptionBytes(int index) {
      return cppOption_.getByteString(index);
    }

    public static final int C_OPTION_FIELD_NUMBER = 4;
    private com.google.protobuf.LazyStringList cOption_;
    /**
     * <code>repeated string c_option = 4;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getCOptionList() {
      return cOption_;
    }
    /**
     * <code>repeated string c_option = 4;</code>
     */
    public int getCOptionCount() {
      return cOption_.size();
    }
    /**
     * <code>repeated string c_option = 4;</code>
     */
    public java.lang.String getCOption(int index) {
      return cOption_.get(index);
    }
    /**
     * <code>repeated string c_option = 4;</code>
     */
    public com.google.protobuf.ByteString
        getCOptionBytes(int index) {
      return cOption_.getByteString(index);
    }

    public static final int PREPROCESSOR_EXECUTABLE_FIELD_NUMBER = 5;
    private volatile java.lang.Object preprocessorExecutable_;
    /**
     * <code>optional string preprocessor_executable = 5;</code>
     */
    public java.lang.String getPreprocessorExecutable() {
      java.lang.Object ref = preprocessorExecutable_;
      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();
        preprocessorExecutable_ = s;
        return s;
      }
    }
    /**
     * <code>optional string preprocessor_executable = 5;</code>
     */
    public com.google.protobuf.ByteString
        getPreprocessorExecutableBytes() {
      java.lang.Object ref = preprocessorExecutable_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        preprocessorExecutable_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CPP_EXECUTABLE_FIELD_NUMBER = 6;
    private volatile java.lang.Object cppExecutable_;
    /**
     * <code>optional string cpp_executable = 6;</code>
     */
    public java.lang.String getCppExecutable() {
      java.lang.Object ref = cppExecutable_;
      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();
        cppExecutable_ = s;
        return s;
      }
    }
    /**
     * <code>optional string cpp_executable = 6;</code>
     */
    public com.google.protobuf.ByteString
        getCppExecutableBytes() {
      java.lang.Object ref = cppExecutable_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        cppExecutable_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LINK_OPTION_FIELD_NUMBER = 7;
    private com.google.protobuf.LazyStringList linkOption_;
    /**
     * <code>repeated string link_option = 7;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getLinkOptionList() {
      return linkOption_;
    }
    /**
     * <code>repeated string link_option = 7;</code>
     */
    public int getLinkOptionCount() {
      return linkOption_.size();
    }
    /**
     * <code>repeated string link_option = 7;</code>
     */
    public java.lang.String getLinkOption(int index) {
      return linkOption_.get(index);
    }
    /**
     * <code>repeated string link_option = 7;</code>
     */
    public com.google.protobuf.ByteString
        getLinkOptionBytes(int index) {
      return linkOption_.getByteString(index);
    }

    public static final int BUILT_IN_INCLUDE_DIRECTORY_FIELD_NUMBER = 8;
    private com.google.protobuf.LazyStringList builtInIncludeDirectory_;
    /**
     * <code>repeated string built_in_include_directory = 8;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getBuiltInIncludeDirectoryList() {
      return builtInIncludeDirectory_;
    }
    /**
     * <code>repeated string built_in_include_directory = 8;</code>
     */
    public int getBuiltInIncludeDirectoryCount() {
      return builtInIncludeDirectory_.size();
    }
    /**
     * <code>repeated string built_in_include_directory = 8;</code>
     */
    public java.lang.String getBuiltInIncludeDirectory(int index) {
      return builtInIncludeDirectory_.get(index);
    }
    /**
     * <code>repeated string built_in_include_directory = 8;</code>
     */
    public com.google.protobuf.ByteString
        getBuiltInIncludeDirectoryBytes(int index) {
      return builtInIncludeDirectory_.getByteString(index);
    }

    public static final int UNFILTERED_COMPILER_OPTION_FIELD_NUMBER = 9;
    private com.google.protobuf.LazyStringList unfilteredCompilerOption_;
    /**
     * <code>repeated string unfiltered_compiler_option = 9;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getUnfilteredCompilerOptionList() {
      return unfilteredCompilerOption_;
    }
    /**
     * <code>repeated string unfiltered_compiler_option = 9;</code>
     */
    public int getUnfilteredCompilerOptionCount() {
      return unfilteredCompilerOption_.size();
    }
    /**
     * <code>repeated string unfiltered_compiler_option = 9;</code>
     */
    public java.lang.String getUnfilteredCompilerOption(int index) {
      return unfilteredCompilerOption_.get(index);
    }
    /**
     * <code>repeated string unfiltered_compiler_option = 9;</code>
     */
    public com.google.protobuf.ByteString
        getUnfilteredCompilerOptionBytes(int index) {
      return unfilteredCompilerOption_.getByteString(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getTargetNameBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, targetName_);
      }
      for (int i = 0; i < baseCompilerOption_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, baseCompilerOption_.getRaw(i));
      }
      for (int i = 0; i < cppOption_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, cppOption_.getRaw(i));
      }
      for (int i = 0; i < cOption_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, cOption_.getRaw(i));
      }
      if (!getPreprocessorExecutableBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, preprocessorExecutable_);
      }
      if (!getCppExecutableBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, cppExecutable_);
      }
      for (int i = 0; i < linkOption_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, linkOption_.getRaw(i));
      }
      for (int i = 0; i < builtInIncludeDirectory_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, builtInIncludeDirectory_.getRaw(i));
      }
      for (int i = 0; i < unfilteredCompilerOption_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, unfilteredCompilerOption_.getRaw(i));
      }
    }

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

      size = 0;
      if (!getTargetNameBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, targetName_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < baseCompilerOption_.size(); i++) {
          dataSize += computeStringSizeNoTag(baseCompilerOption_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getBaseCompilerOptionList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < cppOption_.size(); i++) {
          dataSize += computeStringSizeNoTag(cppOption_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getCppOptionList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < cOption_.size(); i++) {
          dataSize += computeStringSizeNoTag(cOption_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getCOptionList().size();
      }
      if (!getPreprocessorExecutableBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, preprocessorExecutable_);
      }
      if (!getCppExecutableBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, cppExecutable_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < linkOption_.size(); i++) {
          dataSize += computeStringSizeNoTag(linkOption_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getLinkOptionList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < builtInIncludeDirectory_.size(); i++) {
          dataSize += computeStringSizeNoTag(builtInIncludeDirectory_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getBuiltInIncludeDirectoryList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < unfilteredCompilerOption_.size(); i++) {
          dataSize += computeStringSizeNoTag(unfilteredCompilerOption_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getUnfilteredCompilerOptionList().size();
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo)) {
        return super.equals(obj);
      }
      com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo other = (com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo) obj;

      boolean result = true;
      result = result && getTargetName()
          .equals(other.getTargetName());
      result = result && getBaseCompilerOptionList()
          .equals(other.getBaseCompilerOptionList());
      result = result && getCppOptionList()
          .equals(other.getCppOptionList());
      result = result && getCOptionList()
          .equals(other.getCOptionList());
      result = result && getPreprocessorExecutable()
          .equals(other.getPreprocessorExecutable());
      result = result && getCppExecutable()
          .equals(other.getCppExecutable());
      result = result && getLinkOptionList()
          .equals(other.getLinkOptionList());
      result = result && getBuiltInIncludeDirectoryList()
          .equals(other.getBuiltInIncludeDirectoryList());
      result = result && getUnfilteredCompilerOptionList()
          .equals(other.getUnfilteredCompilerOptionList());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (37 * hash) + TARGET_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getTargetName().hashCode();
      if (getBaseCompilerOptionCount() > 0) {
        hash = (37 * hash) + BASE_COMPILER_OPTION_FIELD_NUMBER;
        hash = (53 * hash) + getBaseCompilerOptionList().hashCode();
      }
      if (getCppOptionCount() > 0) {
        hash = (37 * hash) + CPP_OPTION_FIELD_NUMBER;
        hash = (53 * hash) + getCppOptionList().hashCode();
      }
      if (getCOptionCount() > 0) {
        hash = (37 * hash) + C_OPTION_FIELD_NUMBER;
        hash = (53 * hash) + getCOptionList().hashCode();
      }
      hash = (37 * hash) + PREPROCESSOR_EXECUTABLE_FIELD_NUMBER;
      hash = (53 * hash) + getPreprocessorExecutable().hashCode();
      hash = (37 * hash) + CPP_EXECUTABLE_FIELD_NUMBER;
      hash = (53 * hash) + getCppExecutable().hashCode();
      if (getLinkOptionCount() > 0) {
        hash = (37 * hash) + LINK_OPTION_FIELD_NUMBER;
        hash = (53 * hash) + getLinkOptionList().hashCode();
      }
      if (getBuiltInIncludeDirectoryCount() > 0) {
        hash = (37 * hash) + BUILT_IN_INCLUDE_DIRECTORY_FIELD_NUMBER;
        hash = (53 * hash) + getBuiltInIncludeDirectoryList().hashCode();
      }
      if (getUnfilteredCompilerOptionCount() > 0) {
        hash = (37 * hash) + UNFILTERED_COMPILER_OPTION_FIELD_NUMBER;
        hash = (53 * hash) + getUnfilteredCompilerOptionList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo 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 com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo 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 com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code blaze.CToolchainIdeInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:blaze.CToolchainIdeInfo)
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_CToolchainIdeInfo_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_CToolchainIdeInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo.class, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo.Builder.class);
      }

      // Construct using com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

        baseCompilerOption_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        cppOption_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        cOption_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        preprocessorExecutable_ = "";

        cppExecutable_ = "";

        linkOption_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000040);
        builtInIncludeDirectory_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000080);
        unfilteredCompilerOption_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_CToolchainIdeInfo_descriptor;
      }

      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo getDefaultInstanceForType() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo.getDefaultInstance();
      }

      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo build() {
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo buildPartial() {
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo result = new com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        result.targetName_ = targetName_;
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          baseCompilerOption_ = baseCompilerOption_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.baseCompilerOption_ = baseCompilerOption_;
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          cppOption_ = cppOption_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.cppOption_ = cppOption_;
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          cOption_ = cOption_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000008);
        }
        result.cOption_ = cOption_;
        result.preprocessorExecutable_ = preprocessorExecutable_;
        result.cppExecutable_ = cppExecutable_;
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          linkOption_ = linkOption_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000040);
        }
        result.linkOption_ = linkOption_;
        if (((bitField0_ & 0x00000080) == 0x00000080)) {
          builtInIncludeDirectory_ = builtInIncludeDirectory_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000080);
        }
        result.builtInIncludeDirectory_ = builtInIncludeDirectory_;
        if (((bitField0_ & 0x00000100) == 0x00000100)) {
          unfilteredCompilerOption_ = unfilteredCompilerOption_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000100);
        }
        result.unfilteredCompilerOption_ = unfilteredCompilerOption_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo) {
          return mergeFrom((com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo other) {
        if (other == com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo.getDefaultInstance()) return this;
        if (!other.getTargetName().isEmpty()) {
          targetName_ = other.targetName_;
          onChanged();
        }
        if (!other.baseCompilerOption_.isEmpty()) {
          if (baseCompilerOption_.isEmpty()) {
            baseCompilerOption_ = other.baseCompilerOption_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureBaseCompilerOptionIsMutable();
            baseCompilerOption_.addAll(other.baseCompilerOption_);
          }
          onChanged();
        }
        if (!other.cppOption_.isEmpty()) {
          if (cppOption_.isEmpty()) {
            cppOption_ = other.cppOption_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureCppOptionIsMutable();
            cppOption_.addAll(other.cppOption_);
          }
          onChanged();
        }
        if (!other.cOption_.isEmpty()) {
          if (cOption_.isEmpty()) {
            cOption_ = other.cOption_;
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            ensureCOptionIsMutable();
            cOption_.addAll(other.cOption_);
          }
          onChanged();
        }
        if (!other.getPreprocessorExecutable().isEmpty()) {
          preprocessorExecutable_ = other.preprocessorExecutable_;
          onChanged();
        }
        if (!other.getCppExecutable().isEmpty()) {
          cppExecutable_ = other.cppExecutable_;
          onChanged();
        }
        if (!other.linkOption_.isEmpty()) {
          if (linkOption_.isEmpty()) {
            linkOption_ = other.linkOption_;
            bitField0_ = (bitField0_ & ~0x00000040);
          } else {
            ensureLinkOptionIsMutable();
            linkOption_.addAll(other.linkOption_);
          }
          onChanged();
        }
        if (!other.builtInIncludeDirectory_.isEmpty()) {
          if (builtInIncludeDirectory_.isEmpty()) {
            builtInIncludeDirectory_ = other.builtInIncludeDirectory_;
            bitField0_ = (bitField0_ & ~0x00000080);
          } else {
            ensureBuiltInIncludeDirectoryIsMutable();
            builtInIncludeDirectory_.addAll(other.builtInIncludeDirectory_);
          }
          onChanged();
        }
        if (!other.unfilteredCompilerOption_.isEmpty()) {
          if (unfilteredCompilerOption_.isEmpty()) {
            unfilteredCompilerOption_ = other.unfilteredCompilerOption_;
            bitField0_ = (bitField0_ & ~0x00000100);
          } else {
            ensureUnfilteredCompilerOptionIsMutable();
            unfilteredCompilerOption_.addAll(other.unfilteredCompilerOption_);
          }
          onChanged();
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

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

      private java.lang.Object targetName_ = "";
      /**
       * <code>optional string target_name = 1;</code>
       */
      public java.lang.String getTargetName() {
        java.lang.Object ref = targetName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          targetName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string target_name = 1;</code>
       */
      public com.google.protobuf.ByteString
          getTargetNameBytes() {
        java.lang.Object ref = targetName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          targetName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string target_name = 1;</code>
       */
      public Builder setTargetName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        targetName_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string target_name = 1;</code>
       */
      public Builder clearTargetName() {
        
        targetName_ = getDefaultInstance().getTargetName();
        onChanged();
        return this;
      }
      /**
       * <code>optional string target_name = 1;</code>
       */
      public Builder setTargetNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        targetName_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList baseCompilerOption_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureBaseCompilerOptionIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          baseCompilerOption_ = new com.google.protobuf.LazyStringArrayList(baseCompilerOption_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * <code>repeated string base_compiler_option = 2;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getBaseCompilerOptionList() {
        return baseCompilerOption_.getUnmodifiableView();
      }
      /**
       * <code>repeated string base_compiler_option = 2;</code>
       */
      public int getBaseCompilerOptionCount() {
        return baseCompilerOption_.size();
      }
      /**
       * <code>repeated string base_compiler_option = 2;</code>
       */
      public java.lang.String getBaseCompilerOption(int index) {
        return baseCompilerOption_.get(index);
      }
      /**
       * <code>repeated string base_compiler_option = 2;</code>
       */
      public com.google.protobuf.ByteString
          getBaseCompilerOptionBytes(int index) {
        return baseCompilerOption_.getByteString(index);
      }
      /**
       * <code>repeated string base_compiler_option = 2;</code>
       */
      public Builder setBaseCompilerOption(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureBaseCompilerOptionIsMutable();
        baseCompilerOption_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string base_compiler_option = 2;</code>
       */
      public Builder addBaseCompilerOption(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureBaseCompilerOptionIsMutable();
        baseCompilerOption_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string base_compiler_option = 2;</code>
       */
      public Builder addAllBaseCompilerOption(
          java.lang.Iterable<java.lang.String> values) {
        ensureBaseCompilerOptionIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, baseCompilerOption_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string base_compiler_option = 2;</code>
       */
      public Builder clearBaseCompilerOption() {
        baseCompilerOption_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string base_compiler_option = 2;</code>
       */
      public Builder addBaseCompilerOptionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureBaseCompilerOptionIsMutable();
        baseCompilerOption_.add(value);
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList cppOption_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureCppOptionIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          cppOption_ = new com.google.protobuf.LazyStringArrayList(cppOption_);
          bitField0_ |= 0x00000004;
         }
      }
      /**
       * <code>repeated string cpp_option = 3;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getCppOptionList() {
        return cppOption_.getUnmodifiableView();
      }
      /**
       * <code>repeated string cpp_option = 3;</code>
       */
      public int getCppOptionCount() {
        return cppOption_.size();
      }
      /**
       * <code>repeated string cpp_option = 3;</code>
       */
      public java.lang.String getCppOption(int index) {
        return cppOption_.get(index);
      }
      /**
       * <code>repeated string cpp_option = 3;</code>
       */
      public com.google.protobuf.ByteString
          getCppOptionBytes(int index) {
        return cppOption_.getByteString(index);
      }
      /**
       * <code>repeated string cpp_option = 3;</code>
       */
      public Builder setCppOption(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureCppOptionIsMutable();
        cppOption_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string cpp_option = 3;</code>
       */
      public Builder addCppOption(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureCppOptionIsMutable();
        cppOption_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string cpp_option = 3;</code>
       */
      public Builder addAllCppOption(
          java.lang.Iterable<java.lang.String> values) {
        ensureCppOptionIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, cppOption_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string cpp_option = 3;</code>
       */
      public Builder clearCppOption() {
        cppOption_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string cpp_option = 3;</code>
       */
      public Builder addCppOptionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureCppOptionIsMutable();
        cppOption_.add(value);
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList cOption_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureCOptionIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          cOption_ = new com.google.protobuf.LazyStringArrayList(cOption_);
          bitField0_ |= 0x00000008;
         }
      }
      /**
       * <code>repeated string c_option = 4;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getCOptionList() {
        return cOption_.getUnmodifiableView();
      }
      /**
       * <code>repeated string c_option = 4;</code>
       */
      public int getCOptionCount() {
        return cOption_.size();
      }
      /**
       * <code>repeated string c_option = 4;</code>
       */
      public java.lang.String getCOption(int index) {
        return cOption_.get(index);
      }
      /**
       * <code>repeated string c_option = 4;</code>
       */
      public com.google.protobuf.ByteString
          getCOptionBytes(int index) {
        return cOption_.getByteString(index);
      }
      /**
       * <code>repeated string c_option = 4;</code>
       */
      public Builder setCOption(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureCOptionIsMutable();
        cOption_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string c_option = 4;</code>
       */
      public Builder addCOption(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureCOptionIsMutable();
        cOption_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string c_option = 4;</code>
       */
      public Builder addAllCOption(
          java.lang.Iterable<java.lang.String> values) {
        ensureCOptionIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, cOption_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string c_option = 4;</code>
       */
      public Builder clearCOption() {
        cOption_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string c_option = 4;</code>
       */
      public Builder addCOptionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureCOptionIsMutable();
        cOption_.add(value);
        onChanged();
        return this;
      }

      private java.lang.Object preprocessorExecutable_ = "";
      /**
       * <code>optional string preprocessor_executable = 5;</code>
       */
      public java.lang.String getPreprocessorExecutable() {
        java.lang.Object ref = preprocessorExecutable_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          preprocessorExecutable_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string preprocessor_executable = 5;</code>
       */
      public com.google.protobuf.ByteString
          getPreprocessorExecutableBytes() {
        java.lang.Object ref = preprocessorExecutable_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          preprocessorExecutable_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string preprocessor_executable = 5;</code>
       */
      public Builder setPreprocessorExecutable(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        preprocessorExecutable_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string preprocessor_executable = 5;</code>
       */
      public Builder clearPreprocessorExecutable() {
        
        preprocessorExecutable_ = getDefaultInstance().getPreprocessorExecutable();
        onChanged();
        return this;
      }
      /**
       * <code>optional string preprocessor_executable = 5;</code>
       */
      public Builder setPreprocessorExecutableBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        preprocessorExecutable_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object cppExecutable_ = "";
      /**
       * <code>optional string cpp_executable = 6;</code>
       */
      public java.lang.String getCppExecutable() {
        java.lang.Object ref = cppExecutable_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          cppExecutable_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string cpp_executable = 6;</code>
       */
      public com.google.protobuf.ByteString
          getCppExecutableBytes() {
        java.lang.Object ref = cppExecutable_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          cppExecutable_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string cpp_executable = 6;</code>
       */
      public Builder setCppExecutable(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        cppExecutable_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string cpp_executable = 6;</code>
       */
      public Builder clearCppExecutable() {
        
        cppExecutable_ = getDefaultInstance().getCppExecutable();
        onChanged();
        return this;
      }
      /**
       * <code>optional string cpp_executable = 6;</code>
       */
      public Builder setCppExecutableBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        cppExecutable_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList linkOption_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureLinkOptionIsMutable() {
        if (!((bitField0_ & 0x00000040) == 0x00000040)) {
          linkOption_ = new com.google.protobuf.LazyStringArrayList(linkOption_);
          bitField0_ |= 0x00000040;
         }
      }
      /**
       * <code>repeated string link_option = 7;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getLinkOptionList() {
        return linkOption_.getUnmodifiableView();
      }
      /**
       * <code>repeated string link_option = 7;</code>
       */
      public int getLinkOptionCount() {
        return linkOption_.size();
      }
      /**
       * <code>repeated string link_option = 7;</code>
       */
      public java.lang.String getLinkOption(int index) {
        return linkOption_.get(index);
      }
      /**
       * <code>repeated string link_option = 7;</code>
       */
      public com.google.protobuf.ByteString
          getLinkOptionBytes(int index) {
        return linkOption_.getByteString(index);
      }
      /**
       * <code>repeated string link_option = 7;</code>
       */
      public Builder setLinkOption(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureLinkOptionIsMutable();
        linkOption_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string link_option = 7;</code>
       */
      public Builder addLinkOption(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureLinkOptionIsMutable();
        linkOption_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string link_option = 7;</code>
       */
      public Builder addAllLinkOption(
          java.lang.Iterable<java.lang.String> values) {
        ensureLinkOptionIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, linkOption_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string link_option = 7;</code>
       */
      public Builder clearLinkOption() {
        linkOption_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000040);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string link_option = 7;</code>
       */
      public Builder addLinkOptionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureLinkOptionIsMutable();
        linkOption_.add(value);
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList builtInIncludeDirectory_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureBuiltInIncludeDirectoryIsMutable() {
        if (!((bitField0_ & 0x00000080) == 0x00000080)) {
          builtInIncludeDirectory_ = new com.google.protobuf.LazyStringArrayList(builtInIncludeDirectory_);
          bitField0_ |= 0x00000080;
         }
      }
      /**
       * <code>repeated string built_in_include_directory = 8;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getBuiltInIncludeDirectoryList() {
        return builtInIncludeDirectory_.getUnmodifiableView();
      }
      /**
       * <code>repeated string built_in_include_directory = 8;</code>
       */
      public int getBuiltInIncludeDirectoryCount() {
        return builtInIncludeDirectory_.size();
      }
      /**
       * <code>repeated string built_in_include_directory = 8;</code>
       */
      public java.lang.String getBuiltInIncludeDirectory(int index) {
        return builtInIncludeDirectory_.get(index);
      }
      /**
       * <code>repeated string built_in_include_directory = 8;</code>
       */
      public com.google.protobuf.ByteString
          getBuiltInIncludeDirectoryBytes(int index) {
        return builtInIncludeDirectory_.getByteString(index);
      }
      /**
       * <code>repeated string built_in_include_directory = 8;</code>
       */
      public Builder setBuiltInIncludeDirectory(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureBuiltInIncludeDirectoryIsMutable();
        builtInIncludeDirectory_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string built_in_include_directory = 8;</code>
       */
      public Builder addBuiltInIncludeDirectory(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureBuiltInIncludeDirectoryIsMutable();
        builtInIncludeDirectory_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string built_in_include_directory = 8;</code>
       */
      public Builder addAllBuiltInIncludeDirectory(
          java.lang.Iterable<java.lang.String> values) {
        ensureBuiltInIncludeDirectoryIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, builtInIncludeDirectory_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string built_in_include_directory = 8;</code>
       */
      public Builder clearBuiltInIncludeDirectory() {
        builtInIncludeDirectory_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000080);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string built_in_include_directory = 8;</code>
       */
      public Builder addBuiltInIncludeDirectoryBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureBuiltInIncludeDirectoryIsMutable();
        builtInIncludeDirectory_.add(value);
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList unfilteredCompilerOption_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureUnfilteredCompilerOptionIsMutable() {
        if (!((bitField0_ & 0x00000100) == 0x00000100)) {
          unfilteredCompilerOption_ = new com.google.protobuf.LazyStringArrayList(unfilteredCompilerOption_);
          bitField0_ |= 0x00000100;
         }
      }
      /**
       * <code>repeated string unfiltered_compiler_option = 9;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getUnfilteredCompilerOptionList() {
        return unfilteredCompilerOption_.getUnmodifiableView();
      }
      /**
       * <code>repeated string unfiltered_compiler_option = 9;</code>
       */
      public int getUnfilteredCompilerOptionCount() {
        return unfilteredCompilerOption_.size();
      }
      /**
       * <code>repeated string unfiltered_compiler_option = 9;</code>
       */
      public java.lang.String getUnfilteredCompilerOption(int index) {
        return unfilteredCompilerOption_.get(index);
      }
      /**
       * <code>repeated string unfiltered_compiler_option = 9;</code>
       */
      public com.google.protobuf.ByteString
          getUnfilteredCompilerOptionBytes(int index) {
        return unfilteredCompilerOption_.getByteString(index);
      }
      /**
       * <code>repeated string unfiltered_compiler_option = 9;</code>
       */
      public Builder setUnfilteredCompilerOption(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureUnfilteredCompilerOptionIsMutable();
        unfilteredCompilerOption_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string unfiltered_compiler_option = 9;</code>
       */
      public Builder addUnfilteredCompilerOption(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureUnfilteredCompilerOptionIsMutable();
        unfilteredCompilerOption_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string unfiltered_compiler_option = 9;</code>
       */
      public Builder addAllUnfilteredCompilerOption(
          java.lang.Iterable<java.lang.String> values) {
        ensureUnfilteredCompilerOptionIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, unfilteredCompilerOption_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string unfiltered_compiler_option = 9;</code>
       */
      public Builder clearUnfilteredCompilerOption() {
        unfilteredCompilerOption_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000100);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string unfiltered_compiler_option = 9;</code>
       */
      public Builder addUnfilteredCompilerOptionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureUnfilteredCompilerOptionIsMutable();
        unfilteredCompilerOption_.add(value);
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:blaze.CToolchainIdeInfo)
    }

    // @@protoc_insertion_point(class_scope:blaze.CToolchainIdeInfo)
    private static final com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo();
    }

    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ProtoLibraryLegacyJavaIdeInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:blaze.ProtoLibraryLegacyJavaIdeInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional int32 api_version = 1;</code>
     */
    int getApiVersion();

    /**
     * <code>optional .blaze.ProtoLibraryLegacyJavaIdeInfo.ApiFlavor api_flavor = 2;</code>
     */
    int getApiFlavorValue();
    /**
     * <code>optional .blaze.ProtoLibraryLegacyJavaIdeInfo.ApiFlavor api_flavor = 2;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo.ApiFlavor getApiFlavor();

    /**
     * <code>repeated .blaze.LibraryArtifact jars1 = 3;</code>
     */
    java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact> 
        getJars1List();
    /**
     * <code>repeated .blaze.LibraryArtifact jars1 = 3;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact getJars1(int index);
    /**
     * <code>repeated .blaze.LibraryArtifact jars1 = 3;</code>
     */
    int getJars1Count();
    /**
     * <code>repeated .blaze.LibraryArtifact jars1 = 3;</code>
     */
    java.util.List<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder> 
        getJars1OrBuilderList();
    /**
     * <code>repeated .blaze.LibraryArtifact jars1 = 3;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder getJars1OrBuilder(
        int index);

    /**
     * <code>repeated .blaze.LibraryArtifact jars_mutable = 4;</code>
     */
    java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact> 
        getJarsMutableList();
    /**
     * <code>repeated .blaze.LibraryArtifact jars_mutable = 4;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact getJarsMutable(int index);
    /**
     * <code>repeated .blaze.LibraryArtifact jars_mutable = 4;</code>
     */
    int getJarsMutableCount();
    /**
     * <code>repeated .blaze.LibraryArtifact jars_mutable = 4;</code>
     */
    java.util.List<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder> 
        getJarsMutableOrBuilderList();
    /**
     * <code>repeated .blaze.LibraryArtifact jars_mutable = 4;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder getJarsMutableOrBuilder(
        int index);

    /**
     * <code>repeated .blaze.LibraryArtifact jars_immutable = 5;</code>
     */
    java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact> 
        getJarsImmutableList();
    /**
     * <code>repeated .blaze.LibraryArtifact jars_immutable = 5;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact getJarsImmutable(int index);
    /**
     * <code>repeated .blaze.LibraryArtifact jars_immutable = 5;</code>
     */
    int getJarsImmutableCount();
    /**
     * <code>repeated .blaze.LibraryArtifact jars_immutable = 5;</code>
     */
    java.util.List<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder> 
        getJarsImmutableOrBuilderList();
    /**
     * <code>repeated .blaze.LibraryArtifact jars_immutable = 5;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder getJarsImmutableOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code blaze.ProtoLibraryLegacyJavaIdeInfo}
   */
  public  static final class ProtoLibraryLegacyJavaIdeInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:blaze.ProtoLibraryLegacyJavaIdeInfo)
      ProtoLibraryLegacyJavaIdeInfoOrBuilder {
    // Use ProtoLibraryLegacyJavaIdeInfo.newBuilder() to construct.
    private ProtoLibraryLegacyJavaIdeInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ProtoLibraryLegacyJavaIdeInfo() {
      apiVersion_ = 0;
      apiFlavor_ = 0;
      jars1_ = java.util.Collections.emptyList();
      jarsMutable_ = java.util.Collections.emptyList();
      jarsImmutable_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private ProtoLibraryLegacyJavaIdeInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 8: {

              apiVersion_ = input.readInt32();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();

              apiFlavor_ = rawValue;
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                jars1_ = new java.util.ArrayList<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact>();
                mutable_bitField0_ |= 0x00000004;
              }
              jars1_.add(
                  input.readMessage(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.parser(), extensionRegistry));
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                jarsMutable_ = new java.util.ArrayList<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact>();
                mutable_bitField0_ |= 0x00000008;
              }
              jarsMutable_.add(
                  input.readMessage(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.parser(), extensionRegistry));
              break;
            }
            case 42: {
              if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                jarsImmutable_ = new java.util.ArrayList<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact>();
                mutable_bitField0_ |= 0x00000010;
              }
              jarsImmutable_.add(
                  input.readMessage(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.parser(), extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          jars1_ = java.util.Collections.unmodifiableList(jars1_);
        }
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          jarsMutable_ = java.util.Collections.unmodifiableList(jarsMutable_);
        }
        if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
          jarsImmutable_ = java.util.Collections.unmodifiableList(jarsImmutable_);
        }
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_ProtoLibraryLegacyJavaIdeInfo_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_ProtoLibraryLegacyJavaIdeInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo.class, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo.Builder.class);
    }

    /**
     * Protobuf enum {@code blaze.ProtoLibraryLegacyJavaIdeInfo.ApiFlavor}
     */
    public enum ApiFlavor
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>NONE = 0;</code>
       */
      NONE(0),
      /**
       * <code>IMMUTABLE = 1;</code>
       */
      IMMUTABLE(1),
      /**
       * <code>MUTABLE = 2;</code>
       */
      MUTABLE(2),
      /**
       * <code>BOTH = 3;</code>
       */
      BOTH(3),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>NONE = 0;</code>
       */
      public static final int NONE_VALUE = 0;
      /**
       * <code>IMMUTABLE = 1;</code>
       */
      public static final int IMMUTABLE_VALUE = 1;
      /**
       * <code>MUTABLE = 2;</code>
       */
      public static final int MUTABLE_VALUE = 2;
      /**
       * <code>BOTH = 3;</code>
       */
      public static final int BOTH_VALUE = 3;


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

      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static ApiFlavor valueOf(int value) {
        return forNumber(value);
      }

      public static ApiFlavor forNumber(int value) {
        switch (value) {
          case 0: return NONE;
          case 1: return IMMUTABLE;
          case 2: return MUTABLE;
          case 3: return BOTH;
          default: return null;
        }
      }

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

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        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 com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo.getDescriptor().getEnumTypes().get(0);
      }

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

      public static ApiFlavor 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 ApiFlavor(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:blaze.ProtoLibraryLegacyJavaIdeInfo.ApiFlavor)
    }

    private int bitField0_;
    public static final int API_VERSION_FIELD_NUMBER = 1;
    private int apiVersion_;
    /**
     * <code>optional int32 api_version = 1;</code>
     */
    public int getApiVersion() {
      return apiVersion_;
    }

    public static final int API_FLAVOR_FIELD_NUMBER = 2;
    private int apiFlavor_;
    /**
     * <code>optional .blaze.ProtoLibraryLegacyJavaIdeInfo.ApiFlavor api_flavor = 2;</code>
     */
    public int getApiFlavorValue() {
      return apiFlavor_;
    }
    /**
     * <code>optional .blaze.ProtoLibraryLegacyJavaIdeInfo.ApiFlavor api_flavor = 2;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo.ApiFlavor getApiFlavor() {
      com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo.ApiFlavor result = com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo.ApiFlavor.valueOf(apiFlavor_);
      return result == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo.ApiFlavor.UNRECOGNIZED : result;
    }

    public static final int JARS1_FIELD_NUMBER = 3;
    private java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact> jars1_;
    /**
     * <code>repeated .blaze.LibraryArtifact jars1 = 3;</code>
     */
    public java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact> getJars1List() {
      return jars1_;
    }
    /**
     * <code>repeated .blaze.LibraryArtifact jars1 = 3;</code>
     */
    public java.util.List<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder> 
        getJars1OrBuilderList() {
      return jars1_;
    }
    /**
     * <code>repeated .blaze.LibraryArtifact jars1 = 3;</code>
     */
    public int getJars1Count() {
      return jars1_.size();
    }
    /**
     * <code>repeated .blaze.LibraryArtifact jars1 = 3;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact getJars1(int index) {
      return jars1_.get(index);
    }
    /**
     * <code>repeated .blaze.LibraryArtifact jars1 = 3;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder getJars1OrBuilder(
        int index) {
      return jars1_.get(index);
    }

    public static final int JARS_MUTABLE_FIELD_NUMBER = 4;
    private java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact> jarsMutable_;
    /**
     * <code>repeated .blaze.LibraryArtifact jars_mutable = 4;</code>
     */
    public java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact> getJarsMutableList() {
      return jarsMutable_;
    }
    /**
     * <code>repeated .blaze.LibraryArtifact jars_mutable = 4;</code>
     */
    public java.util.List<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder> 
        getJarsMutableOrBuilderList() {
      return jarsMutable_;
    }
    /**
     * <code>repeated .blaze.LibraryArtifact jars_mutable = 4;</code>
     */
    public int getJarsMutableCount() {
      return jarsMutable_.size();
    }
    /**
     * <code>repeated .blaze.LibraryArtifact jars_mutable = 4;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact getJarsMutable(int index) {
      return jarsMutable_.get(index);
    }
    /**
     * <code>repeated .blaze.LibraryArtifact jars_mutable = 4;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder getJarsMutableOrBuilder(
        int index) {
      return jarsMutable_.get(index);
    }

    public static final int JARS_IMMUTABLE_FIELD_NUMBER = 5;
    private java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact> jarsImmutable_;
    /**
     * <code>repeated .blaze.LibraryArtifact jars_immutable = 5;</code>
     */
    public java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact> getJarsImmutableList() {
      return jarsImmutable_;
    }
    /**
     * <code>repeated .blaze.LibraryArtifact jars_immutable = 5;</code>
     */
    public java.util.List<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder> 
        getJarsImmutableOrBuilderList() {
      return jarsImmutable_;
    }
    /**
     * <code>repeated .blaze.LibraryArtifact jars_immutable = 5;</code>
     */
    public int getJarsImmutableCount() {
      return jarsImmutable_.size();
    }
    /**
     * <code>repeated .blaze.LibraryArtifact jars_immutable = 5;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact getJarsImmutable(int index) {
      return jarsImmutable_.get(index);
    }
    /**
     * <code>repeated .blaze.LibraryArtifact jars_immutable = 5;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder getJarsImmutableOrBuilder(
        int index) {
      return jarsImmutable_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (apiVersion_ != 0) {
        output.writeInt32(1, apiVersion_);
      }
      if (apiFlavor_ != com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo.ApiFlavor.NONE.getNumber()) {
        output.writeEnum(2, apiFlavor_);
      }
      for (int i = 0; i < jars1_.size(); i++) {
        output.writeMessage(3, jars1_.get(i));
      }
      for (int i = 0; i < jarsMutable_.size(); i++) {
        output.writeMessage(4, jarsMutable_.get(i));
      }
      for (int i = 0; i < jarsImmutable_.size(); i++) {
        output.writeMessage(5, jarsImmutable_.get(i));
      }
    }

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

      size = 0;
      if (apiVersion_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, apiVersion_);
      }
      if (apiFlavor_ != com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo.ApiFlavor.NONE.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, apiFlavor_);
      }
      for (int i = 0; i < jars1_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, jars1_.get(i));
      }
      for (int i = 0; i < jarsMutable_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, jarsMutable_.get(i));
      }
      for (int i = 0; i < jarsImmutable_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, jarsImmutable_.get(i));
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo)) {
        return super.equals(obj);
      }
      com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo other = (com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo) obj;

      boolean result = true;
      result = result && (getApiVersion()
          == other.getApiVersion());
      result = result && apiFlavor_ == other.apiFlavor_;
      result = result && getJars1List()
          .equals(other.getJars1List());
      result = result && getJarsMutableList()
          .equals(other.getJarsMutableList());
      result = result && getJarsImmutableList()
          .equals(other.getJarsImmutableList());
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (37 * hash) + API_VERSION_FIELD_NUMBER;
      hash = (53 * hash) + getApiVersion();
      hash = (37 * hash) + API_FLAVOR_FIELD_NUMBER;
      hash = (53 * hash) + apiFlavor_;
      if (getJars1Count() > 0) {
        hash = (37 * hash) + JARS1_FIELD_NUMBER;
        hash = (53 * hash) + getJars1List().hashCode();
      }
      if (getJarsMutableCount() > 0) {
        hash = (37 * hash) + JARS_MUTABLE_FIELD_NUMBER;
        hash = (53 * hash) + getJarsMutableList().hashCode();
      }
      if (getJarsImmutableCount() > 0) {
        hash = (37 * hash) + JARS_IMMUTABLE_FIELD_NUMBER;
        hash = (53 * hash) + getJarsImmutableList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo 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 com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo 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 com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code blaze.ProtoLibraryLegacyJavaIdeInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:blaze.ProtoLibraryLegacyJavaIdeInfo)
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_ProtoLibraryLegacyJavaIdeInfo_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_ProtoLibraryLegacyJavaIdeInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo.class, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo.Builder.class);
      }

      // Construct using com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getJars1FieldBuilder();
          getJarsMutableFieldBuilder();
          getJarsImmutableFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        apiVersion_ = 0;

        apiFlavor_ = 0;

        if (jars1Builder_ == null) {
          jars1_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          jars1Builder_.clear();
        }
        if (jarsMutableBuilder_ == null) {
          jarsMutable_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
        } else {
          jarsMutableBuilder_.clear();
        }
        if (jarsImmutableBuilder_ == null) {
          jarsImmutable_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
        } else {
          jarsImmutableBuilder_.clear();
        }
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_ProtoLibraryLegacyJavaIdeInfo_descriptor;
      }

      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo getDefaultInstanceForType() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo.getDefaultInstance();
      }

      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo build() {
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo buildPartial() {
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo result = new com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        result.apiVersion_ = apiVersion_;
        result.apiFlavor_ = apiFlavor_;
        if (jars1Builder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            jars1_ = java.util.Collections.unmodifiableList(jars1_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.jars1_ = jars1_;
        } else {
          result.jars1_ = jars1Builder_.build();
        }
        if (jarsMutableBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            jarsMutable_ = java.util.Collections.unmodifiableList(jarsMutable_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.jarsMutable_ = jarsMutable_;
        } else {
          result.jarsMutable_ = jarsMutableBuilder_.build();
        }
        if (jarsImmutableBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            jarsImmutable_ = java.util.Collections.unmodifiableList(jarsImmutable_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.jarsImmutable_ = jarsImmutable_;
        } else {
          result.jarsImmutable_ = jarsImmutableBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo) {
          return mergeFrom((com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo other) {
        if (other == com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo.getDefaultInstance()) return this;
        if (other.getApiVersion() != 0) {
          setApiVersion(other.getApiVersion());
        }
        if (other.apiFlavor_ != 0) {
          setApiFlavorValue(other.getApiFlavorValue());
        }
        if (jars1Builder_ == null) {
          if (!other.jars1_.isEmpty()) {
            if (jars1_.isEmpty()) {
              jars1_ = other.jars1_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureJars1IsMutable();
              jars1_.addAll(other.jars1_);
            }
            onChanged();
          }
        } else {
          if (!other.jars1_.isEmpty()) {
            if (jars1Builder_.isEmpty()) {
              jars1Builder_.dispose();
              jars1Builder_ = null;
              jars1_ = other.jars1_;
              bitField0_ = (bitField0_ & ~0x00000004);
              jars1Builder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getJars1FieldBuilder() : null;
            } else {
              jars1Builder_.addAllMessages(other.jars1_);
            }
          }
        }
        if (jarsMutableBuilder_ == null) {
          if (!other.jarsMutable_.isEmpty()) {
            if (jarsMutable_.isEmpty()) {
              jarsMutable_ = other.jarsMutable_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureJarsMutableIsMutable();
              jarsMutable_.addAll(other.jarsMutable_);
            }
            onChanged();
          }
        } else {
          if (!other.jarsMutable_.isEmpty()) {
            if (jarsMutableBuilder_.isEmpty()) {
              jarsMutableBuilder_.dispose();
              jarsMutableBuilder_ = null;
              jarsMutable_ = other.jarsMutable_;
              bitField0_ = (bitField0_ & ~0x00000008);
              jarsMutableBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getJarsMutableFieldBuilder() : null;
            } else {
              jarsMutableBuilder_.addAllMessages(other.jarsMutable_);
            }
          }
        }
        if (jarsImmutableBuilder_ == null) {
          if (!other.jarsImmutable_.isEmpty()) {
            if (jarsImmutable_.isEmpty()) {
              jarsImmutable_ = other.jarsImmutable_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensureJarsImmutableIsMutable();
              jarsImmutable_.addAll(other.jarsImmutable_);
            }
            onChanged();
          }
        } else {
          if (!other.jarsImmutable_.isEmpty()) {
            if (jarsImmutableBuilder_.isEmpty()) {
              jarsImmutableBuilder_.dispose();
              jarsImmutableBuilder_ = null;
              jarsImmutable_ = other.jarsImmutable_;
              bitField0_ = (bitField0_ & ~0x00000010);
              jarsImmutableBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getJarsImmutableFieldBuilder() : null;
            } else {
              jarsImmutableBuilder_.addAllMessages(other.jarsImmutable_);
            }
          }
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

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

      private int apiVersion_ ;
      /**
       * <code>optional int32 api_version = 1;</code>
       */
      public int getApiVersion() {
        return apiVersion_;
      }
      /**
       * <code>optional int32 api_version = 1;</code>
       */
      public Builder setApiVersion(int value) {
        
        apiVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 api_version = 1;</code>
       */
      public Builder clearApiVersion() {
        
        apiVersion_ = 0;
        onChanged();
        return this;
      }

      private int apiFlavor_ = 0;
      /**
       * <code>optional .blaze.ProtoLibraryLegacyJavaIdeInfo.ApiFlavor api_flavor = 2;</code>
       */
      public int getApiFlavorValue() {
        return apiFlavor_;
      }
      /**
       * <code>optional .blaze.ProtoLibraryLegacyJavaIdeInfo.ApiFlavor api_flavor = 2;</code>
       */
      public Builder setApiFlavorValue(int value) {
        apiFlavor_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional .blaze.ProtoLibraryLegacyJavaIdeInfo.ApiFlavor api_flavor = 2;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo.ApiFlavor getApiFlavor() {
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo.ApiFlavor result = com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo.ApiFlavor.valueOf(apiFlavor_);
        return result == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo.ApiFlavor.UNRECOGNIZED : result;
      }
      /**
       * <code>optional .blaze.ProtoLibraryLegacyJavaIdeInfo.ApiFlavor api_flavor = 2;</code>
       */
      public Builder setApiFlavor(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo.ApiFlavor value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        apiFlavor_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>optional .blaze.ProtoLibraryLegacyJavaIdeInfo.ApiFlavor api_flavor = 2;</code>
       */
      public Builder clearApiFlavor() {
        
        apiFlavor_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact> jars1_ =
        java.util.Collections.emptyList();
      private void ensureJars1IsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          jars1_ = new java.util.ArrayList<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact>(jars1_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder> jars1Builder_;

      /**
       * <code>repeated .blaze.LibraryArtifact jars1 = 3;</code>
       */
      public java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact> getJars1List() {
        if (jars1Builder_ == null) {
          return java.util.Collections.unmodifiableList(jars1_);
        } else {
          return jars1Builder_.getMessageList();
        }
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars1 = 3;</code>
       */
      public int getJars1Count() {
        if (jars1Builder_ == null) {
          return jars1_.size();
        } else {
          return jars1Builder_.getCount();
        }
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars1 = 3;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact getJars1(int index) {
        if (jars1Builder_ == null) {
          return jars1_.get(index);
        } else {
          return jars1Builder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars1 = 3;</code>
       */
      public Builder setJars1(
          int index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact value) {
        if (jars1Builder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureJars1IsMutable();
          jars1_.set(index, value);
          onChanged();
        } else {
          jars1Builder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars1 = 3;</code>
       */
      public Builder setJars1(
          int index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder builderForValue) {
        if (jars1Builder_ == null) {
          ensureJars1IsMutable();
          jars1_.set(index, builderForValue.build());
          onChanged();
        } else {
          jars1Builder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars1 = 3;</code>
       */
      public Builder addJars1(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact value) {
        if (jars1Builder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureJars1IsMutable();
          jars1_.add(value);
          onChanged();
        } else {
          jars1Builder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars1 = 3;</code>
       */
      public Builder addJars1(
          int index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact value) {
        if (jars1Builder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureJars1IsMutable();
          jars1_.add(index, value);
          onChanged();
        } else {
          jars1Builder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars1 = 3;</code>
       */
      public Builder addJars1(
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder builderForValue) {
        if (jars1Builder_ == null) {
          ensureJars1IsMutable();
          jars1_.add(builderForValue.build());
          onChanged();
        } else {
          jars1Builder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars1 = 3;</code>
       */
      public Builder addJars1(
          int index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder builderForValue) {
        if (jars1Builder_ == null) {
          ensureJars1IsMutable();
          jars1_.add(index, builderForValue.build());
          onChanged();
        } else {
          jars1Builder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars1 = 3;</code>
       */
      public Builder addAllJars1(
          java.lang.Iterable<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact> values) {
        if (jars1Builder_ == null) {
          ensureJars1IsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, jars1_);
          onChanged();
        } else {
          jars1Builder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars1 = 3;</code>
       */
      public Builder clearJars1() {
        if (jars1Builder_ == null) {
          jars1_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          jars1Builder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars1 = 3;</code>
       */
      public Builder removeJars1(int index) {
        if (jars1Builder_ == null) {
          ensureJars1IsMutable();
          jars1_.remove(index);
          onChanged();
        } else {
          jars1Builder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars1 = 3;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder getJars1Builder(
          int index) {
        return getJars1FieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars1 = 3;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder getJars1OrBuilder(
          int index) {
        if (jars1Builder_ == null) {
          return jars1_.get(index);  } else {
          return jars1Builder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars1 = 3;</code>
       */
      public java.util.List<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder> 
           getJars1OrBuilderList() {
        if (jars1Builder_ != null) {
          return jars1Builder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(jars1_);
        }
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars1 = 3;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder addJars1Builder() {
        return getJars1FieldBuilder().addBuilder(
            com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.getDefaultInstance());
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars1 = 3;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder addJars1Builder(
          int index) {
        return getJars1FieldBuilder().addBuilder(
            index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.getDefaultInstance());
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars1 = 3;</code>
       */
      public java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder> 
           getJars1BuilderList() {
        return getJars1FieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder> 
          getJars1FieldBuilder() {
        if (jars1Builder_ == null) {
          jars1Builder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder>(
                  jars1_,
                  ((bitField0_ & 0x00000004) == 0x00000004),
                  getParentForChildren(),
                  isClean());
          jars1_ = null;
        }
        return jars1Builder_;
      }

      private java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact> jarsMutable_ =
        java.util.Collections.emptyList();
      private void ensureJarsMutableIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          jarsMutable_ = new java.util.ArrayList<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact>(jarsMutable_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder> jarsMutableBuilder_;

      /**
       * <code>repeated .blaze.LibraryArtifact jars_mutable = 4;</code>
       */
      public java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact> getJarsMutableList() {
        if (jarsMutableBuilder_ == null) {
          return java.util.Collections.unmodifiableList(jarsMutable_);
        } else {
          return jarsMutableBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_mutable = 4;</code>
       */
      public int getJarsMutableCount() {
        if (jarsMutableBuilder_ == null) {
          return jarsMutable_.size();
        } else {
          return jarsMutableBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_mutable = 4;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact getJarsMutable(int index) {
        if (jarsMutableBuilder_ == null) {
          return jarsMutable_.get(index);
        } else {
          return jarsMutableBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_mutable = 4;</code>
       */
      public Builder setJarsMutable(
          int index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact value) {
        if (jarsMutableBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureJarsMutableIsMutable();
          jarsMutable_.set(index, value);
          onChanged();
        } else {
          jarsMutableBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_mutable = 4;</code>
       */
      public Builder setJarsMutable(
          int index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder builderForValue) {
        if (jarsMutableBuilder_ == null) {
          ensureJarsMutableIsMutable();
          jarsMutable_.set(index, builderForValue.build());
          onChanged();
        } else {
          jarsMutableBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_mutable = 4;</code>
       */
      public Builder addJarsMutable(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact value) {
        if (jarsMutableBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureJarsMutableIsMutable();
          jarsMutable_.add(value);
          onChanged();
        } else {
          jarsMutableBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_mutable = 4;</code>
       */
      public Builder addJarsMutable(
          int index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact value) {
        if (jarsMutableBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureJarsMutableIsMutable();
          jarsMutable_.add(index, value);
          onChanged();
        } else {
          jarsMutableBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_mutable = 4;</code>
       */
      public Builder addJarsMutable(
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder builderForValue) {
        if (jarsMutableBuilder_ == null) {
          ensureJarsMutableIsMutable();
          jarsMutable_.add(builderForValue.build());
          onChanged();
        } else {
          jarsMutableBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_mutable = 4;</code>
       */
      public Builder addJarsMutable(
          int index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder builderForValue) {
        if (jarsMutableBuilder_ == null) {
          ensureJarsMutableIsMutable();
          jarsMutable_.add(index, builderForValue.build());
          onChanged();
        } else {
          jarsMutableBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_mutable = 4;</code>
       */
      public Builder addAllJarsMutable(
          java.lang.Iterable<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact> values) {
        if (jarsMutableBuilder_ == null) {
          ensureJarsMutableIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, jarsMutable_);
          onChanged();
        } else {
          jarsMutableBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_mutable = 4;</code>
       */
      public Builder clearJarsMutable() {
        if (jarsMutableBuilder_ == null) {
          jarsMutable_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          jarsMutableBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_mutable = 4;</code>
       */
      public Builder removeJarsMutable(int index) {
        if (jarsMutableBuilder_ == null) {
          ensureJarsMutableIsMutable();
          jarsMutable_.remove(index);
          onChanged();
        } else {
          jarsMutableBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_mutable = 4;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder getJarsMutableBuilder(
          int index) {
        return getJarsMutableFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_mutable = 4;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder getJarsMutableOrBuilder(
          int index) {
        if (jarsMutableBuilder_ == null) {
          return jarsMutable_.get(index);  } else {
          return jarsMutableBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_mutable = 4;</code>
       */
      public java.util.List<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder> 
           getJarsMutableOrBuilderList() {
        if (jarsMutableBuilder_ != null) {
          return jarsMutableBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(jarsMutable_);
        }
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_mutable = 4;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder addJarsMutableBuilder() {
        return getJarsMutableFieldBuilder().addBuilder(
            com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.getDefaultInstance());
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_mutable = 4;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder addJarsMutableBuilder(
          int index) {
        return getJarsMutableFieldBuilder().addBuilder(
            index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.getDefaultInstance());
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_mutable = 4;</code>
       */
      public java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder> 
           getJarsMutableBuilderList() {
        return getJarsMutableFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder> 
          getJarsMutableFieldBuilder() {
        if (jarsMutableBuilder_ == null) {
          jarsMutableBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder>(
                  jarsMutable_,
                  ((bitField0_ & 0x00000008) == 0x00000008),
                  getParentForChildren(),
                  isClean());
          jarsMutable_ = null;
        }
        return jarsMutableBuilder_;
      }

      private java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact> jarsImmutable_ =
        java.util.Collections.emptyList();
      private void ensureJarsImmutableIsMutable() {
        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
          jarsImmutable_ = new java.util.ArrayList<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact>(jarsImmutable_);
          bitField0_ |= 0x00000010;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder> jarsImmutableBuilder_;

      /**
       * <code>repeated .blaze.LibraryArtifact jars_immutable = 5;</code>
       */
      public java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact> getJarsImmutableList() {
        if (jarsImmutableBuilder_ == null) {
          return java.util.Collections.unmodifiableList(jarsImmutable_);
        } else {
          return jarsImmutableBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_immutable = 5;</code>
       */
      public int getJarsImmutableCount() {
        if (jarsImmutableBuilder_ == null) {
          return jarsImmutable_.size();
        } else {
          return jarsImmutableBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_immutable = 5;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact getJarsImmutable(int index) {
        if (jarsImmutableBuilder_ == null) {
          return jarsImmutable_.get(index);
        } else {
          return jarsImmutableBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_immutable = 5;</code>
       */
      public Builder setJarsImmutable(
          int index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact value) {
        if (jarsImmutableBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureJarsImmutableIsMutable();
          jarsImmutable_.set(index, value);
          onChanged();
        } else {
          jarsImmutableBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_immutable = 5;</code>
       */
      public Builder setJarsImmutable(
          int index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder builderForValue) {
        if (jarsImmutableBuilder_ == null) {
          ensureJarsImmutableIsMutable();
          jarsImmutable_.set(index, builderForValue.build());
          onChanged();
        } else {
          jarsImmutableBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_immutable = 5;</code>
       */
      public Builder addJarsImmutable(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact value) {
        if (jarsImmutableBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureJarsImmutableIsMutable();
          jarsImmutable_.add(value);
          onChanged();
        } else {
          jarsImmutableBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_immutable = 5;</code>
       */
      public Builder addJarsImmutable(
          int index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact value) {
        if (jarsImmutableBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureJarsImmutableIsMutable();
          jarsImmutable_.add(index, value);
          onChanged();
        } else {
          jarsImmutableBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_immutable = 5;</code>
       */
      public Builder addJarsImmutable(
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder builderForValue) {
        if (jarsImmutableBuilder_ == null) {
          ensureJarsImmutableIsMutable();
          jarsImmutable_.add(builderForValue.build());
          onChanged();
        } else {
          jarsImmutableBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_immutable = 5;</code>
       */
      public Builder addJarsImmutable(
          int index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder builderForValue) {
        if (jarsImmutableBuilder_ == null) {
          ensureJarsImmutableIsMutable();
          jarsImmutable_.add(index, builderForValue.build());
          onChanged();
        } else {
          jarsImmutableBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_immutable = 5;</code>
       */
      public Builder addAllJarsImmutable(
          java.lang.Iterable<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact> values) {
        if (jarsImmutableBuilder_ == null) {
          ensureJarsImmutableIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, jarsImmutable_);
          onChanged();
        } else {
          jarsImmutableBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_immutable = 5;</code>
       */
      public Builder clearJarsImmutable() {
        if (jarsImmutableBuilder_ == null) {
          jarsImmutable_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          jarsImmutableBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_immutable = 5;</code>
       */
      public Builder removeJarsImmutable(int index) {
        if (jarsImmutableBuilder_ == null) {
          ensureJarsImmutableIsMutable();
          jarsImmutable_.remove(index);
          onChanged();
        } else {
          jarsImmutableBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_immutable = 5;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder getJarsImmutableBuilder(
          int index) {
        return getJarsImmutableFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_immutable = 5;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder getJarsImmutableOrBuilder(
          int index) {
        if (jarsImmutableBuilder_ == null) {
          return jarsImmutable_.get(index);  } else {
          return jarsImmutableBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_immutable = 5;</code>
       */
      public java.util.List<? extends com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder> 
           getJarsImmutableOrBuilderList() {
        if (jarsImmutableBuilder_ != null) {
          return jarsImmutableBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(jarsImmutable_);
        }
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_immutable = 5;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder addJarsImmutableBuilder() {
        return getJarsImmutableFieldBuilder().addBuilder(
            com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.getDefaultInstance());
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_immutable = 5;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder addJarsImmutableBuilder(
          int index) {
        return getJarsImmutableFieldBuilder().addBuilder(
            index, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.getDefaultInstance());
      }
      /**
       * <code>repeated .blaze.LibraryArtifact jars_immutable = 5;</code>
       */
      public java.util.List<com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder> 
           getJarsImmutableBuilderList() {
        return getJarsImmutableFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder> 
          getJarsImmutableFieldBuilder() {
        if (jarsImmutableBuilder_ == null) {
          jarsImmutableBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifact.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.LibraryArtifactOrBuilder>(
                  jarsImmutable_,
                  ((bitField0_ & 0x00000010) == 0x00000010),
                  getParentForChildren(),
                  isClean());
          jarsImmutable_ = null;
        }
        return jarsImmutableBuilder_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:blaze.ProtoLibraryLegacyJavaIdeInfo)
    }

    // @@protoc_insertion_point(class_scope:blaze.ProtoLibraryLegacyJavaIdeInfo)
    private static final com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo();
    }

    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface TestInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:blaze.TestInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional string size = 1;</code>
     */
    java.lang.String getSize();
    /**
     * <code>optional string size = 1;</code>
     */
    com.google.protobuf.ByteString
        getSizeBytes();
  }
  /**
   * Protobuf type {@code blaze.TestInfo}
   */
  public  static final class TestInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:blaze.TestInfo)
      TestInfoOrBuilder {
    // Use TestInfo.newBuilder() to construct.
    private TestInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TestInfo() {
      size_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private TestInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              size_ = s;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_TestInfo_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_TestInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo.class, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo.Builder.class);
    }

    public static final int SIZE_FIELD_NUMBER = 1;
    private volatile java.lang.Object size_;
    /**
     * <code>optional string size = 1;</code>
     */
    public java.lang.String getSize() {
      java.lang.Object ref = size_;
      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();
        size_ = s;
        return s;
      }
    }
    /**
     * <code>optional string size = 1;</code>
     */
    public com.google.protobuf.ByteString
        getSizeBytes() {
      java.lang.Object ref = size_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        size_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getSizeBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, size_);
      }
    }

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

      size = 0;
      if (!getSizeBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, size_);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo)) {
        return super.equals(obj);
      }
      com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo other = (com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo) obj;

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

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

    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo 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 com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo 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 com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code blaze.TestInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:blaze.TestInfo)
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_TestInfo_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_TestInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo.class, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo.Builder.class);
      }

      // Construct using com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_TestInfo_descriptor;
      }

      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo getDefaultInstanceForType() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo.getDefaultInstance();
      }

      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo build() {
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo buildPartial() {
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo result = new com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo(this);
        result.size_ = size_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo) {
          return mergeFrom((com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo other) {
        if (other == com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo.getDefaultInstance()) return this;
        if (!other.getSize().isEmpty()) {
          size_ = other.size_;
          onChanged();
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object size_ = "";
      /**
       * <code>optional string size = 1;</code>
       */
      public java.lang.String getSize() {
        java.lang.Object ref = size_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          size_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string size = 1;</code>
       */
      public com.google.protobuf.ByteString
          getSizeBytes() {
        java.lang.Object ref = size_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          size_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string size = 1;</code>
       */
      public Builder setSize(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        size_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string size = 1;</code>
       */
      public Builder clearSize() {
        
        size_ = getDefaultInstance().getSize();
        onChanged();
        return this;
      }
      /**
       * <code>optional string size = 1;</code>
       */
      public Builder setSizeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        size_ = value;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:blaze.TestInfo)
    }

    // @@protoc_insertion_point(class_scope:blaze.TestInfo)
    private static final com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo();
    }

    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface JavaToolchainIdeInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:blaze.JavaToolchainIdeInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional string source_version = 1;</code>
     */
    java.lang.String getSourceVersion();
    /**
     * <code>optional string source_version = 1;</code>
     */
    com.google.protobuf.ByteString
        getSourceVersionBytes();

    /**
     * <code>optional string target_version = 2;</code>
     */
    java.lang.String getTargetVersion();
    /**
     * <code>optional string target_version = 2;</code>
     */
    com.google.protobuf.ByteString
        getTargetVersionBytes();
  }
  /**
   * Protobuf type {@code blaze.JavaToolchainIdeInfo}
   */
  public  static final class JavaToolchainIdeInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:blaze.JavaToolchainIdeInfo)
      JavaToolchainIdeInfoOrBuilder {
    // Use JavaToolchainIdeInfo.newBuilder() to construct.
    private JavaToolchainIdeInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private JavaToolchainIdeInfo() {
      sourceVersion_ = "";
      targetVersion_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private JavaToolchainIdeInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              sourceVersion_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();

              targetVersion_ = s;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_JavaToolchainIdeInfo_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_JavaToolchainIdeInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo.class, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo.Builder.class);
    }

    public static final int SOURCE_VERSION_FIELD_NUMBER = 1;
    private volatile java.lang.Object sourceVersion_;
    /**
     * <code>optional string source_version = 1;</code>
     */
    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;
      }
    }
    /**
     * <code>optional string source_version = 1;</code>
     */
    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_;
    /**
     * <code>optional string target_version = 2;</code>
     */
    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;
      }
    }
    /**
     * <code>optional string target_version = 2;</code>
     */
    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;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getSourceVersionBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, sourceVersion_);
      }
      if (!getTargetVersionBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, targetVersion_);
      }
    }

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

      size = 0;
      if (!getSourceVersionBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, sourceVersion_);
      }
      if (!getTargetVersionBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, targetVersion_);
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo)) {
        return super.equals(obj);
      }
      com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo other = (com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo) obj;

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

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().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();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo 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 com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo 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 com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code blaze.JavaToolchainIdeInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:blaze.JavaToolchainIdeInfo)
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_JavaToolchainIdeInfo_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_JavaToolchainIdeInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo.class, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo.Builder.class);
      }

      // Construct using com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

        targetVersion_ = "";

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_JavaToolchainIdeInfo_descriptor;
      }

      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo getDefaultInstanceForType() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo.getDefaultInstance();
      }

      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo build() {
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo buildPartial() {
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo result = new com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo(this);
        result.sourceVersion_ = sourceVersion_;
        result.targetVersion_ = targetVersion_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo) {
          return mergeFrom((com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo other) {
        if (other == com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo.getDefaultInstance()) return this;
        if (!other.getSourceVersion().isEmpty()) {
          sourceVersion_ = other.sourceVersion_;
          onChanged();
        }
        if (!other.getTargetVersion().isEmpty()) {
          targetVersion_ = other.targetVersion_;
          onChanged();
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object sourceVersion_ = "";
      /**
       * <code>optional string source_version = 1;</code>
       */
      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;
        }
      }
      /**
       * <code>optional string source_version = 1;</code>
       */
      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;
        }
      }
      /**
       * <code>optional string source_version = 1;</code>
       */
      public Builder setSourceVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        sourceVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string source_version = 1;</code>
       */
      public Builder clearSourceVersion() {
        
        sourceVersion_ = getDefaultInstance().getSourceVersion();
        onChanged();
        return this;
      }
      /**
       * <code>optional string source_version = 1;</code>
       */
      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_ = "";
      /**
       * <code>optional string target_version = 2;</code>
       */
      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;
        }
      }
      /**
       * <code>optional string target_version = 2;</code>
       */
      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;
        }
      }
      /**
       * <code>optional string target_version = 2;</code>
       */
      public Builder setTargetVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        targetVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string target_version = 2;</code>
       */
      public Builder clearTargetVersion() {
        
        targetVersion_ = getDefaultInstance().getTargetVersion();
        onChanged();
        return this;
      }
      /**
       * <code>optional string target_version = 2;</code>
       */
      public Builder setTargetVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        targetVersion_ = value;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:blaze.JavaToolchainIdeInfo)
    }

    // @@protoc_insertion_point(class_scope:blaze.JavaToolchainIdeInfo)
    private static final com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo();
    }

    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RuleIdeInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:blaze.RuleIdeInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional string label = 1;</code>
     */
    java.lang.String getLabel();
    /**
     * <code>optional string label = 1;</code>
     */
    com.google.protobuf.ByteString
        getLabelBytes();

    /**
     * <code>repeated string dependencies = 4;</code>
     */
    java.util.List<java.lang.String>
        getDependenciesList();
    /**
     * <code>repeated string dependencies = 4;</code>
     */
    int getDependenciesCount();
    /**
     * <code>repeated string dependencies = 4;</code>
     */
    java.lang.String getDependencies(int index);
    /**
     * <code>repeated string dependencies = 4;</code>
     */
    com.google.protobuf.ByteString
        getDependenciesBytes(int index);

    /**
     * <pre>
     * kind is one of {JAVA,ANDROID}_{LIBRARY,BINARY,TEST} and JAVA_IMPORT
     * </pre>
     *
     * <code>optional .blaze.JavaRuleIdeInfo java_rule_ide_info = 7;</code>
     */
    boolean hasJavaRuleIdeInfo();
    /**
     * <pre>
     * kind is one of {JAVA,ANDROID}_{LIBRARY,BINARY,TEST} and JAVA_IMPORT
     * </pre>
     *
     * <code>optional .blaze.JavaRuleIdeInfo java_rule_ide_info = 7;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo getJavaRuleIdeInfo();
    /**
     * <pre>
     * kind is one of {JAVA,ANDROID}_{LIBRARY,BINARY,TEST} and JAVA_IMPORT
     * </pre>
     *
     * <code>optional .blaze.JavaRuleIdeInfo java_rule_ide_info = 7;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfoOrBuilder getJavaRuleIdeInfoOrBuilder();

    /**
     * <code>optional .blaze.AndroidRuleIdeInfo android_rule_ide_info = 8;</code>
     */
    boolean hasAndroidRuleIdeInfo();
    /**
     * <code>optional .blaze.AndroidRuleIdeInfo android_rule_ide_info = 8;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo getAndroidRuleIdeInfo();
    /**
     * <code>optional .blaze.AndroidRuleIdeInfo android_rule_ide_info = 8;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfoOrBuilder getAndroidRuleIdeInfoOrBuilder();

    /**
     * <code>repeated string tags = 9;</code>
     */
    java.util.List<java.lang.String>
        getTagsList();
    /**
     * <code>repeated string tags = 9;</code>
     */
    int getTagsCount();
    /**
     * <code>repeated string tags = 9;</code>
     */
    java.lang.String getTags(int index);
    /**
     * <code>repeated string tags = 9;</code>
     */
    com.google.protobuf.ByteString
        getTagsBytes(int index);

    /**
     * <code>repeated string runtime_deps = 10;</code>
     */
    java.util.List<java.lang.String>
        getRuntimeDepsList();
    /**
     * <code>repeated string runtime_deps = 10;</code>
     */
    int getRuntimeDepsCount();
    /**
     * <code>repeated string runtime_deps = 10;</code>
     */
    java.lang.String getRuntimeDeps(int index);
    /**
     * <code>repeated string runtime_deps = 10;</code>
     */
    com.google.protobuf.ByteString
        getRuntimeDepsBytes(int index);

    /**
     * <code>optional .blaze.ArtifactLocation build_file_artifact_location = 11;</code>
     */
    boolean hasBuildFileArtifactLocation();
    /**
     * <code>optional .blaze.ArtifactLocation build_file_artifact_location = 11;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getBuildFileArtifactLocation();
    /**
     * <code>optional .blaze.ArtifactLocation build_file_artifact_location = 11;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getBuildFileArtifactLocationOrBuilder();

    /**
     * <code>optional .blaze.CRuleIdeInfo c_rule_ide_info = 12;</code>
     */
    boolean hasCRuleIdeInfo();
    /**
     * <code>optional .blaze.CRuleIdeInfo c_rule_ide_info = 12;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo getCRuleIdeInfo();
    /**
     * <code>optional .blaze.CRuleIdeInfo c_rule_ide_info = 12;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfoOrBuilder getCRuleIdeInfoOrBuilder();

    /**
     * <code>optional .blaze.CToolchainIdeInfo c_toolchain_ide_info = 13;</code>
     */
    boolean hasCToolchainIdeInfo();
    /**
     * <code>optional .blaze.CToolchainIdeInfo c_toolchain_ide_info = 13;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo getCToolchainIdeInfo();
    /**
     * <code>optional .blaze.CToolchainIdeInfo c_toolchain_ide_info = 13;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfoOrBuilder getCToolchainIdeInfoOrBuilder();

    /**
     * <code>optional string kind_string = 14;</code>
     */
    java.lang.String getKindString();
    /**
     * <code>optional string kind_string = 14;</code>
     */
    com.google.protobuf.ByteString
        getKindStringBytes();

    /**
     * <code>optional .blaze.TestInfo test_info = 15;</code>
     */
    boolean hasTestInfo();
    /**
     * <code>optional .blaze.TestInfo test_info = 15;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo getTestInfo();
    /**
     * <code>optional .blaze.TestInfo test_info = 15;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfoOrBuilder getTestInfoOrBuilder();

    /**
     * <code>optional .blaze.ProtoLibraryLegacyJavaIdeInfo proto_library_legacy_java_ide_info = 16;</code>
     */
    boolean hasProtoLibraryLegacyJavaIdeInfo();
    /**
     * <code>optional .blaze.ProtoLibraryLegacyJavaIdeInfo proto_library_legacy_java_ide_info = 16;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo getProtoLibraryLegacyJavaIdeInfo();
    /**
     * <code>optional .blaze.ProtoLibraryLegacyJavaIdeInfo proto_library_legacy_java_ide_info = 16;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfoOrBuilder getProtoLibraryLegacyJavaIdeInfoOrBuilder();

    /**
     * <code>optional .blaze.JavaToolchainIdeInfo java_toolchain_ide_info = 17;</code>
     */
    boolean hasJavaToolchainIdeInfo();
    /**
     * <code>optional .blaze.JavaToolchainIdeInfo java_toolchain_ide_info = 17;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo getJavaToolchainIdeInfo();
    /**
     * <code>optional .blaze.JavaToolchainIdeInfo java_toolchain_ide_info = 17;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfoOrBuilder getJavaToolchainIdeInfoOrBuilder();

    /**
     * <code>optional .blaze.PyRuleIdeInfo py_rule_ide_info = 18;</code>
     */
    boolean hasPyRuleIdeInfo();
    /**
     * <code>optional .blaze.PyRuleIdeInfo py_rule_ide_info = 18;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo getPyRuleIdeInfo();
    /**
     * <code>optional .blaze.PyRuleIdeInfo py_rule_ide_info = 18;</code>
     */
    com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfoOrBuilder getPyRuleIdeInfoOrBuilder();
  }
  /**
   * Protobuf type {@code blaze.RuleIdeInfo}
   */
  public  static final class RuleIdeInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:blaze.RuleIdeInfo)
      RuleIdeInfoOrBuilder {
    // Use RuleIdeInfo.newBuilder() to construct.
    private RuleIdeInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RuleIdeInfo() {
      label_ = "";
      dependencies_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      tags_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      runtimeDeps_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      kindString_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private RuleIdeInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              label_ = s;
              break;
            }
            case 34: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                dependencies_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              dependencies_.add(s);
              break;
            }
            case 58: {
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo.Builder subBuilder = null;
              if (javaRuleIdeInfo_ != null) {
                subBuilder = javaRuleIdeInfo_.toBuilder();
              }
              javaRuleIdeInfo_ = input.readMessage(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(javaRuleIdeInfo_);
                javaRuleIdeInfo_ = subBuilder.buildPartial();
              }

              break;
            }
            case 66: {
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo.Builder subBuilder = null;
              if (androidRuleIdeInfo_ != null) {
                subBuilder = androidRuleIdeInfo_.toBuilder();
              }
              androidRuleIdeInfo_ = input.readMessage(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(androidRuleIdeInfo_);
                androidRuleIdeInfo_ = subBuilder.buildPartial();
              }

              break;
            }
            case 74: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                tags_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000010;
              }
              tags_.add(s);
              break;
            }
            case 82: {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
                runtimeDeps_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000020;
              }
              runtimeDeps_.add(s);
              break;
            }
            case 90: {
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder subBuilder = null;
              if (buildFileArtifactLocation_ != null) {
                subBuilder = buildFileArtifactLocation_.toBuilder();
              }
              buildFileArtifactLocation_ = input.readMessage(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(buildFileArtifactLocation_);
                buildFileArtifactLocation_ = subBuilder.buildPartial();
              }

              break;
            }
            case 98: {
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo.Builder subBuilder = null;
              if (cRuleIdeInfo_ != null) {
                subBuilder = cRuleIdeInfo_.toBuilder();
              }
              cRuleIdeInfo_ = input.readMessage(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(cRuleIdeInfo_);
                cRuleIdeInfo_ = subBuilder.buildPartial();
              }

              break;
            }
            case 106: {
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo.Builder subBuilder = null;
              if (cToolchainIdeInfo_ != null) {
                subBuilder = cToolchainIdeInfo_.toBuilder();
              }
              cToolchainIdeInfo_ = input.readMessage(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(cToolchainIdeInfo_);
                cToolchainIdeInfo_ = subBuilder.buildPartial();
              }

              break;
            }
            case 114: {
              java.lang.String s = input.readStringRequireUtf8();

              kindString_ = s;
              break;
            }
            case 122: {
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo.Builder subBuilder = null;
              if (testInfo_ != null) {
                subBuilder = testInfo_.toBuilder();
              }
              testInfo_ = input.readMessage(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(testInfo_);
                testInfo_ = subBuilder.buildPartial();
              }

              break;
            }
            case 130: {
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo.Builder subBuilder = null;
              if (protoLibraryLegacyJavaIdeInfo_ != null) {
                subBuilder = protoLibraryLegacyJavaIdeInfo_.toBuilder();
              }
              protoLibraryLegacyJavaIdeInfo_ = input.readMessage(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(protoLibraryLegacyJavaIdeInfo_);
                protoLibraryLegacyJavaIdeInfo_ = subBuilder.buildPartial();
              }

              break;
            }
            case 138: {
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo.Builder subBuilder = null;
              if (javaToolchainIdeInfo_ != null) {
                subBuilder = javaToolchainIdeInfo_.toBuilder();
              }
              javaToolchainIdeInfo_ = input.readMessage(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(javaToolchainIdeInfo_);
                javaToolchainIdeInfo_ = subBuilder.buildPartial();
              }

              break;
            }
            case 146: {
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo.Builder subBuilder = null;
              if (pyRuleIdeInfo_ != null) {
                subBuilder = pyRuleIdeInfo_.toBuilder();
              }
              pyRuleIdeInfo_ = input.readMessage(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(pyRuleIdeInfo_);
                pyRuleIdeInfo_ = subBuilder.buildPartial();
              }

              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          dependencies_ = dependencies_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
          tags_ = tags_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
          runtimeDeps_ = runtimeDeps_.getUnmodifiableView();
        }
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_RuleIdeInfo_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_RuleIdeInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo.class, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo.Builder.class);
    }

    private int bitField0_;
    public static final int LABEL_FIELD_NUMBER = 1;
    private volatile java.lang.Object label_;
    /**
     * <code>optional string label = 1;</code>
     */
    public java.lang.String getLabel() {
      java.lang.Object ref = label_;
      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();
        label_ = s;
        return s;
      }
    }
    /**
     * <code>optional string label = 1;</code>
     */
    public com.google.protobuf.ByteString
        getLabelBytes() {
      java.lang.Object ref = label_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        label_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEPENDENCIES_FIELD_NUMBER = 4;
    private com.google.protobuf.LazyStringList dependencies_;
    /**
     * <code>repeated string dependencies = 4;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getDependenciesList() {
      return dependencies_;
    }
    /**
     * <code>repeated string dependencies = 4;</code>
     */
    public int getDependenciesCount() {
      return dependencies_.size();
    }
    /**
     * <code>repeated string dependencies = 4;</code>
     */
    public java.lang.String getDependencies(int index) {
      return dependencies_.get(index);
    }
    /**
     * <code>repeated string dependencies = 4;</code>
     */
    public com.google.protobuf.ByteString
        getDependenciesBytes(int index) {
      return dependencies_.getByteString(index);
    }

    public static final int JAVA_RULE_IDE_INFO_FIELD_NUMBER = 7;
    private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo javaRuleIdeInfo_;
    /**
     * <pre>
     * kind is one of {JAVA,ANDROID}_{LIBRARY,BINARY,TEST} and JAVA_IMPORT
     * </pre>
     *
     * <code>optional .blaze.JavaRuleIdeInfo java_rule_ide_info = 7;</code>
     */
    public boolean hasJavaRuleIdeInfo() {
      return javaRuleIdeInfo_ != null;
    }
    /**
     * <pre>
     * kind is one of {JAVA,ANDROID}_{LIBRARY,BINARY,TEST} and JAVA_IMPORT
     * </pre>
     *
     * <code>optional .blaze.JavaRuleIdeInfo java_rule_ide_info = 7;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo getJavaRuleIdeInfo() {
      return javaRuleIdeInfo_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo.getDefaultInstance() : javaRuleIdeInfo_;
    }
    /**
     * <pre>
     * kind is one of {JAVA,ANDROID}_{LIBRARY,BINARY,TEST} and JAVA_IMPORT
     * </pre>
     *
     * <code>optional .blaze.JavaRuleIdeInfo java_rule_ide_info = 7;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfoOrBuilder getJavaRuleIdeInfoOrBuilder() {
      return getJavaRuleIdeInfo();
    }

    public static final int ANDROID_RULE_IDE_INFO_FIELD_NUMBER = 8;
    private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo androidRuleIdeInfo_;
    /**
     * <code>optional .blaze.AndroidRuleIdeInfo android_rule_ide_info = 8;</code>
     */
    public boolean hasAndroidRuleIdeInfo() {
      return androidRuleIdeInfo_ != null;
    }
    /**
     * <code>optional .blaze.AndroidRuleIdeInfo android_rule_ide_info = 8;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo getAndroidRuleIdeInfo() {
      return androidRuleIdeInfo_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo.getDefaultInstance() : androidRuleIdeInfo_;
    }
    /**
     * <code>optional .blaze.AndroidRuleIdeInfo android_rule_ide_info = 8;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfoOrBuilder getAndroidRuleIdeInfoOrBuilder() {
      return getAndroidRuleIdeInfo();
    }

    public static final int TAGS_FIELD_NUMBER = 9;
    private com.google.protobuf.LazyStringList tags_;
    /**
     * <code>repeated string tags = 9;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getTagsList() {
      return tags_;
    }
    /**
     * <code>repeated string tags = 9;</code>
     */
    public int getTagsCount() {
      return tags_.size();
    }
    /**
     * <code>repeated string tags = 9;</code>
     */
    public java.lang.String getTags(int index) {
      return tags_.get(index);
    }
    /**
     * <code>repeated string tags = 9;</code>
     */
    public com.google.protobuf.ByteString
        getTagsBytes(int index) {
      return tags_.getByteString(index);
    }

    public static final int RUNTIME_DEPS_FIELD_NUMBER = 10;
    private com.google.protobuf.LazyStringList runtimeDeps_;
    /**
     * <code>repeated string runtime_deps = 10;</code>
     */
    public com.google.protobuf.ProtocolStringList
        getRuntimeDepsList() {
      return runtimeDeps_;
    }
    /**
     * <code>repeated string runtime_deps = 10;</code>
     */
    public int getRuntimeDepsCount() {
      return runtimeDeps_.size();
    }
    /**
     * <code>repeated string runtime_deps = 10;</code>
     */
    public java.lang.String getRuntimeDeps(int index) {
      return runtimeDeps_.get(index);
    }
    /**
     * <code>repeated string runtime_deps = 10;</code>
     */
    public com.google.protobuf.ByteString
        getRuntimeDepsBytes(int index) {
      return runtimeDeps_.getByteString(index);
    }

    public static final int BUILD_FILE_ARTIFACT_LOCATION_FIELD_NUMBER = 11;
    private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation buildFileArtifactLocation_;
    /**
     * <code>optional .blaze.ArtifactLocation build_file_artifact_location = 11;</code>
     */
    public boolean hasBuildFileArtifactLocation() {
      return buildFileArtifactLocation_ != null;
    }
    /**
     * <code>optional .blaze.ArtifactLocation build_file_artifact_location = 11;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getBuildFileArtifactLocation() {
      return buildFileArtifactLocation_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance() : buildFileArtifactLocation_;
    }
    /**
     * <code>optional .blaze.ArtifactLocation build_file_artifact_location = 11;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getBuildFileArtifactLocationOrBuilder() {
      return getBuildFileArtifactLocation();
    }

    public static final int C_RULE_IDE_INFO_FIELD_NUMBER = 12;
    private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo cRuleIdeInfo_;
    /**
     * <code>optional .blaze.CRuleIdeInfo c_rule_ide_info = 12;</code>
     */
    public boolean hasCRuleIdeInfo() {
      return cRuleIdeInfo_ != null;
    }
    /**
     * <code>optional .blaze.CRuleIdeInfo c_rule_ide_info = 12;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo getCRuleIdeInfo() {
      return cRuleIdeInfo_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo.getDefaultInstance() : cRuleIdeInfo_;
    }
    /**
     * <code>optional .blaze.CRuleIdeInfo c_rule_ide_info = 12;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfoOrBuilder getCRuleIdeInfoOrBuilder() {
      return getCRuleIdeInfo();
    }

    public static final int C_TOOLCHAIN_IDE_INFO_FIELD_NUMBER = 13;
    private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo cToolchainIdeInfo_;
    /**
     * <code>optional .blaze.CToolchainIdeInfo c_toolchain_ide_info = 13;</code>
     */
    public boolean hasCToolchainIdeInfo() {
      return cToolchainIdeInfo_ != null;
    }
    /**
     * <code>optional .blaze.CToolchainIdeInfo c_toolchain_ide_info = 13;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo getCToolchainIdeInfo() {
      return cToolchainIdeInfo_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo.getDefaultInstance() : cToolchainIdeInfo_;
    }
    /**
     * <code>optional .blaze.CToolchainIdeInfo c_toolchain_ide_info = 13;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfoOrBuilder getCToolchainIdeInfoOrBuilder() {
      return getCToolchainIdeInfo();
    }

    public static final int KIND_STRING_FIELD_NUMBER = 14;
    private volatile java.lang.Object kindString_;
    /**
     * <code>optional string kind_string = 14;</code>
     */
    public java.lang.String getKindString() {
      java.lang.Object ref = kindString_;
      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();
        kindString_ = s;
        return s;
      }
    }
    /**
     * <code>optional string kind_string = 14;</code>
     */
    public com.google.protobuf.ByteString
        getKindStringBytes() {
      java.lang.Object ref = kindString_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        kindString_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TEST_INFO_FIELD_NUMBER = 15;
    private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo testInfo_;
    /**
     * <code>optional .blaze.TestInfo test_info = 15;</code>
     */
    public boolean hasTestInfo() {
      return testInfo_ != null;
    }
    /**
     * <code>optional .blaze.TestInfo test_info = 15;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo getTestInfo() {
      return testInfo_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo.getDefaultInstance() : testInfo_;
    }
    /**
     * <code>optional .blaze.TestInfo test_info = 15;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfoOrBuilder getTestInfoOrBuilder() {
      return getTestInfo();
    }

    public static final int PROTO_LIBRARY_LEGACY_JAVA_IDE_INFO_FIELD_NUMBER = 16;
    private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo protoLibraryLegacyJavaIdeInfo_;
    /**
     * <code>optional .blaze.ProtoLibraryLegacyJavaIdeInfo proto_library_legacy_java_ide_info = 16;</code>
     */
    public boolean hasProtoLibraryLegacyJavaIdeInfo() {
      return protoLibraryLegacyJavaIdeInfo_ != null;
    }
    /**
     * <code>optional .blaze.ProtoLibraryLegacyJavaIdeInfo proto_library_legacy_java_ide_info = 16;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo getProtoLibraryLegacyJavaIdeInfo() {
      return protoLibraryLegacyJavaIdeInfo_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo.getDefaultInstance() : protoLibraryLegacyJavaIdeInfo_;
    }
    /**
     * <code>optional .blaze.ProtoLibraryLegacyJavaIdeInfo proto_library_legacy_java_ide_info = 16;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfoOrBuilder getProtoLibraryLegacyJavaIdeInfoOrBuilder() {
      return getProtoLibraryLegacyJavaIdeInfo();
    }

    public static final int JAVA_TOOLCHAIN_IDE_INFO_FIELD_NUMBER = 17;
    private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo javaToolchainIdeInfo_;
    /**
     * <code>optional .blaze.JavaToolchainIdeInfo java_toolchain_ide_info = 17;</code>
     */
    public boolean hasJavaToolchainIdeInfo() {
      return javaToolchainIdeInfo_ != null;
    }
    /**
     * <code>optional .blaze.JavaToolchainIdeInfo java_toolchain_ide_info = 17;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo getJavaToolchainIdeInfo() {
      return javaToolchainIdeInfo_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo.getDefaultInstance() : javaToolchainIdeInfo_;
    }
    /**
     * <code>optional .blaze.JavaToolchainIdeInfo java_toolchain_ide_info = 17;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfoOrBuilder getJavaToolchainIdeInfoOrBuilder() {
      return getJavaToolchainIdeInfo();
    }

    public static final int PY_RULE_IDE_INFO_FIELD_NUMBER = 18;
    private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo pyRuleIdeInfo_;
    /**
     * <code>optional .blaze.PyRuleIdeInfo py_rule_ide_info = 18;</code>
     */
    public boolean hasPyRuleIdeInfo() {
      return pyRuleIdeInfo_ != null;
    }
    /**
     * <code>optional .blaze.PyRuleIdeInfo py_rule_ide_info = 18;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo getPyRuleIdeInfo() {
      return pyRuleIdeInfo_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo.getDefaultInstance() : pyRuleIdeInfo_;
    }
    /**
     * <code>optional .blaze.PyRuleIdeInfo py_rule_ide_info = 18;</code>
     */
    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfoOrBuilder getPyRuleIdeInfoOrBuilder() {
      return getPyRuleIdeInfo();
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getLabelBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, label_);
      }
      for (int i = 0; i < dependencies_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, dependencies_.getRaw(i));
      }
      if (javaRuleIdeInfo_ != null) {
        output.writeMessage(7, getJavaRuleIdeInfo());
      }
      if (androidRuleIdeInfo_ != null) {
        output.writeMessage(8, getAndroidRuleIdeInfo());
      }
      for (int i = 0; i < tags_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, tags_.getRaw(i));
      }
      for (int i = 0; i < runtimeDeps_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, runtimeDeps_.getRaw(i));
      }
      if (buildFileArtifactLocation_ != null) {
        output.writeMessage(11, getBuildFileArtifactLocation());
      }
      if (cRuleIdeInfo_ != null) {
        output.writeMessage(12, getCRuleIdeInfo());
      }
      if (cToolchainIdeInfo_ != null) {
        output.writeMessage(13, getCToolchainIdeInfo());
      }
      if (!getKindStringBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 14, kindString_);
      }
      if (testInfo_ != null) {
        output.writeMessage(15, getTestInfo());
      }
      if (protoLibraryLegacyJavaIdeInfo_ != null) {
        output.writeMessage(16, getProtoLibraryLegacyJavaIdeInfo());
      }
      if (javaToolchainIdeInfo_ != null) {
        output.writeMessage(17, getJavaToolchainIdeInfo());
      }
      if (pyRuleIdeInfo_ != null) {
        output.writeMessage(18, getPyRuleIdeInfo());
      }
    }

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

      size = 0;
      if (!getLabelBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, label_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < dependencies_.size(); i++) {
          dataSize += computeStringSizeNoTag(dependencies_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getDependenciesList().size();
      }
      if (javaRuleIdeInfo_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, getJavaRuleIdeInfo());
      }
      if (androidRuleIdeInfo_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, getAndroidRuleIdeInfo());
      }
      {
        int dataSize = 0;
        for (int i = 0; i < tags_.size(); i++) {
          dataSize += computeStringSizeNoTag(tags_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getTagsList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < runtimeDeps_.size(); i++) {
          dataSize += computeStringSizeNoTag(runtimeDeps_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getRuntimeDepsList().size();
      }
      if (buildFileArtifactLocation_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(11, getBuildFileArtifactLocation());
      }
      if (cRuleIdeInfo_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(12, getCRuleIdeInfo());
      }
      if (cToolchainIdeInfo_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(13, getCToolchainIdeInfo());
      }
      if (!getKindStringBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, kindString_);
      }
      if (testInfo_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(15, getTestInfo());
      }
      if (protoLibraryLegacyJavaIdeInfo_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(16, getProtoLibraryLegacyJavaIdeInfo());
      }
      if (javaToolchainIdeInfo_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(17, getJavaToolchainIdeInfo());
      }
      if (pyRuleIdeInfo_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(18, getPyRuleIdeInfo());
      }
      memoizedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo)) {
        return super.equals(obj);
      }
      com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo other = (com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo) obj;

      boolean result = true;
      result = result && getLabel()
          .equals(other.getLabel());
      result = result && getDependenciesList()
          .equals(other.getDependenciesList());
      result = result && (hasJavaRuleIdeInfo() == other.hasJavaRuleIdeInfo());
      if (hasJavaRuleIdeInfo()) {
        result = result && getJavaRuleIdeInfo()
            .equals(other.getJavaRuleIdeInfo());
      }
      result = result && (hasAndroidRuleIdeInfo() == other.hasAndroidRuleIdeInfo());
      if (hasAndroidRuleIdeInfo()) {
        result = result && getAndroidRuleIdeInfo()
            .equals(other.getAndroidRuleIdeInfo());
      }
      result = result && getTagsList()
          .equals(other.getTagsList());
      result = result && getRuntimeDepsList()
          .equals(other.getRuntimeDepsList());
      result = result && (hasBuildFileArtifactLocation() == other.hasBuildFileArtifactLocation());
      if (hasBuildFileArtifactLocation()) {
        result = result && getBuildFileArtifactLocation()
            .equals(other.getBuildFileArtifactLocation());
      }
      result = result && (hasCRuleIdeInfo() == other.hasCRuleIdeInfo());
      if (hasCRuleIdeInfo()) {
        result = result && getCRuleIdeInfo()
            .equals(other.getCRuleIdeInfo());
      }
      result = result && (hasCToolchainIdeInfo() == other.hasCToolchainIdeInfo());
      if (hasCToolchainIdeInfo()) {
        result = result && getCToolchainIdeInfo()
            .equals(other.getCToolchainIdeInfo());
      }
      result = result && getKindString()
          .equals(other.getKindString());
      result = result && (hasTestInfo() == other.hasTestInfo());
      if (hasTestInfo()) {
        result = result && getTestInfo()
            .equals(other.getTestInfo());
      }
      result = result && (hasProtoLibraryLegacyJavaIdeInfo() == other.hasProtoLibraryLegacyJavaIdeInfo());
      if (hasProtoLibraryLegacyJavaIdeInfo()) {
        result = result && getProtoLibraryLegacyJavaIdeInfo()
            .equals(other.getProtoLibraryLegacyJavaIdeInfo());
      }
      result = result && (hasJavaToolchainIdeInfo() == other.hasJavaToolchainIdeInfo());
      if (hasJavaToolchainIdeInfo()) {
        result = result && getJavaToolchainIdeInfo()
            .equals(other.getJavaToolchainIdeInfo());
      }
      result = result && (hasPyRuleIdeInfo() == other.hasPyRuleIdeInfo());
      if (hasPyRuleIdeInfo()) {
        result = result && getPyRuleIdeInfo()
            .equals(other.getPyRuleIdeInfo());
      }
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (37 * hash) + LABEL_FIELD_NUMBER;
      hash = (53 * hash) + getLabel().hashCode();
      if (getDependenciesCount() > 0) {
        hash = (37 * hash) + DEPENDENCIES_FIELD_NUMBER;
        hash = (53 * hash) + getDependenciesList().hashCode();
      }
      if (hasJavaRuleIdeInfo()) {
        hash = (37 * hash) + JAVA_RULE_IDE_INFO_FIELD_NUMBER;
        hash = (53 * hash) + getJavaRuleIdeInfo().hashCode();
      }
      if (hasAndroidRuleIdeInfo()) {
        hash = (37 * hash) + ANDROID_RULE_IDE_INFO_FIELD_NUMBER;
        hash = (53 * hash) + getAndroidRuleIdeInfo().hashCode();
      }
      if (getTagsCount() > 0) {
        hash = (37 * hash) + TAGS_FIELD_NUMBER;
        hash = (53 * hash) + getTagsList().hashCode();
      }
      if (getRuntimeDepsCount() > 0) {
        hash = (37 * hash) + RUNTIME_DEPS_FIELD_NUMBER;
        hash = (53 * hash) + getRuntimeDepsList().hashCode();
      }
      if (hasBuildFileArtifactLocation()) {
        hash = (37 * hash) + BUILD_FILE_ARTIFACT_LOCATION_FIELD_NUMBER;
        hash = (53 * hash) + getBuildFileArtifactLocation().hashCode();
      }
      if (hasCRuleIdeInfo()) {
        hash = (37 * hash) + C_RULE_IDE_INFO_FIELD_NUMBER;
        hash = (53 * hash) + getCRuleIdeInfo().hashCode();
      }
      if (hasCToolchainIdeInfo()) {
        hash = (37 * hash) + C_TOOLCHAIN_IDE_INFO_FIELD_NUMBER;
        hash = (53 * hash) + getCToolchainIdeInfo().hashCode();
      }
      hash = (37 * hash) + KIND_STRING_FIELD_NUMBER;
      hash = (53 * hash) + getKindString().hashCode();
      if (hasTestInfo()) {
        hash = (37 * hash) + TEST_INFO_FIELD_NUMBER;
        hash = (53 * hash) + getTestInfo().hashCode();
      }
      if (hasProtoLibraryLegacyJavaIdeInfo()) {
        hash = (37 * hash) + PROTO_LIBRARY_LEGACY_JAVA_IDE_INFO_FIELD_NUMBER;
        hash = (53 * hash) + getProtoLibraryLegacyJavaIdeInfo().hashCode();
      }
      if (hasJavaToolchainIdeInfo()) {
        hash = (37 * hash) + JAVA_TOOLCHAIN_IDE_INFO_FIELD_NUMBER;
        hash = (53 * hash) + getJavaToolchainIdeInfo().hashCode();
      }
      if (hasPyRuleIdeInfo()) {
        hash = (37 * hash) + PY_RULE_IDE_INFO_FIELD_NUMBER;
        hash = (53 * hash) + getPyRuleIdeInfo().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo 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 com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo 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 com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code blaze.RuleIdeInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:blaze.RuleIdeInfo)
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_RuleIdeInfo_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_RuleIdeInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo.class, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo.Builder.class);
      }

      // Construct using com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

        dependencies_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (javaRuleIdeInfoBuilder_ == null) {
          javaRuleIdeInfo_ = null;
        } else {
          javaRuleIdeInfo_ = null;
          javaRuleIdeInfoBuilder_ = null;
        }
        if (androidRuleIdeInfoBuilder_ == null) {
          androidRuleIdeInfo_ = null;
        } else {
          androidRuleIdeInfo_ = null;
          androidRuleIdeInfoBuilder_ = null;
        }
        tags_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000010);
        runtimeDeps_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000020);
        if (buildFileArtifactLocationBuilder_ == null) {
          buildFileArtifactLocation_ = null;
        } else {
          buildFileArtifactLocation_ = null;
          buildFileArtifactLocationBuilder_ = null;
        }
        if (cRuleIdeInfoBuilder_ == null) {
          cRuleIdeInfo_ = null;
        } else {
          cRuleIdeInfo_ = null;
          cRuleIdeInfoBuilder_ = null;
        }
        if (cToolchainIdeInfoBuilder_ == null) {
          cToolchainIdeInfo_ = null;
        } else {
          cToolchainIdeInfo_ = null;
          cToolchainIdeInfoBuilder_ = null;
        }
        kindString_ = "";

        if (testInfoBuilder_ == null) {
          testInfo_ = null;
        } else {
          testInfo_ = null;
          testInfoBuilder_ = null;
        }
        if (protoLibraryLegacyJavaIdeInfoBuilder_ == null) {
          protoLibraryLegacyJavaIdeInfo_ = null;
        } else {
          protoLibraryLegacyJavaIdeInfo_ = null;
          protoLibraryLegacyJavaIdeInfoBuilder_ = null;
        }
        if (javaToolchainIdeInfoBuilder_ == null) {
          javaToolchainIdeInfo_ = null;
        } else {
          javaToolchainIdeInfo_ = null;
          javaToolchainIdeInfoBuilder_ = null;
        }
        if (pyRuleIdeInfoBuilder_ == null) {
          pyRuleIdeInfo_ = null;
        } else {
          pyRuleIdeInfo_ = null;
          pyRuleIdeInfoBuilder_ = null;
        }
        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.internal_static_blaze_RuleIdeInfo_descriptor;
      }

      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo getDefaultInstanceForType() {
        return com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo.getDefaultInstance();
      }

      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo build() {
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo buildPartial() {
        com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo result = new com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        result.label_ = label_;
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          dependencies_ = dependencies_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.dependencies_ = dependencies_;
        if (javaRuleIdeInfoBuilder_ == null) {
          result.javaRuleIdeInfo_ = javaRuleIdeInfo_;
        } else {
          result.javaRuleIdeInfo_ = javaRuleIdeInfoBuilder_.build();
        }
        if (androidRuleIdeInfoBuilder_ == null) {
          result.androidRuleIdeInfo_ = androidRuleIdeInfo_;
        } else {
          result.androidRuleIdeInfo_ = androidRuleIdeInfoBuilder_.build();
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          tags_ = tags_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000010);
        }
        result.tags_ = tags_;
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          runtimeDeps_ = runtimeDeps_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000020);
        }
        result.runtimeDeps_ = runtimeDeps_;
        if (buildFileArtifactLocationBuilder_ == null) {
          result.buildFileArtifactLocation_ = buildFileArtifactLocation_;
        } else {
          result.buildFileArtifactLocation_ = buildFileArtifactLocationBuilder_.build();
        }
        if (cRuleIdeInfoBuilder_ == null) {
          result.cRuleIdeInfo_ = cRuleIdeInfo_;
        } else {
          result.cRuleIdeInfo_ = cRuleIdeInfoBuilder_.build();
        }
        if (cToolchainIdeInfoBuilder_ == null) {
          result.cToolchainIdeInfo_ = cToolchainIdeInfo_;
        } else {
          result.cToolchainIdeInfo_ = cToolchainIdeInfoBuilder_.build();
        }
        result.kindString_ = kindString_;
        if (testInfoBuilder_ == null) {
          result.testInfo_ = testInfo_;
        } else {
          result.testInfo_ = testInfoBuilder_.build();
        }
        if (protoLibraryLegacyJavaIdeInfoBuilder_ == null) {
          result.protoLibraryLegacyJavaIdeInfo_ = protoLibraryLegacyJavaIdeInfo_;
        } else {
          result.protoLibraryLegacyJavaIdeInfo_ = protoLibraryLegacyJavaIdeInfoBuilder_.build();
        }
        if (javaToolchainIdeInfoBuilder_ == null) {
          result.javaToolchainIdeInfo_ = javaToolchainIdeInfo_;
        } else {
          result.javaToolchainIdeInfo_ = javaToolchainIdeInfoBuilder_.build();
        }
        if (pyRuleIdeInfoBuilder_ == null) {
          result.pyRuleIdeInfo_ = pyRuleIdeInfo_;
        } else {
          result.pyRuleIdeInfo_ = pyRuleIdeInfoBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo) {
          return mergeFrom((com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo other) {
        if (other == com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo.getDefaultInstance()) return this;
        if (!other.getLabel().isEmpty()) {
          label_ = other.label_;
          onChanged();
        }
        if (!other.dependencies_.isEmpty()) {
          if (dependencies_.isEmpty()) {
            dependencies_ = other.dependencies_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureDependenciesIsMutable();
            dependencies_.addAll(other.dependencies_);
          }
          onChanged();
        }
        if (other.hasJavaRuleIdeInfo()) {
          mergeJavaRuleIdeInfo(other.getJavaRuleIdeInfo());
        }
        if (other.hasAndroidRuleIdeInfo()) {
          mergeAndroidRuleIdeInfo(other.getAndroidRuleIdeInfo());
        }
        if (!other.tags_.isEmpty()) {
          if (tags_.isEmpty()) {
            tags_ = other.tags_;
            bitField0_ = (bitField0_ & ~0x00000010);
          } else {
            ensureTagsIsMutable();
            tags_.addAll(other.tags_);
          }
          onChanged();
        }
        if (!other.runtimeDeps_.isEmpty()) {
          if (runtimeDeps_.isEmpty()) {
            runtimeDeps_ = other.runtimeDeps_;
            bitField0_ = (bitField0_ & ~0x00000020);
          } else {
            ensureRuntimeDepsIsMutable();
            runtimeDeps_.addAll(other.runtimeDeps_);
          }
          onChanged();
        }
        if (other.hasBuildFileArtifactLocation()) {
          mergeBuildFileArtifactLocation(other.getBuildFileArtifactLocation());
        }
        if (other.hasCRuleIdeInfo()) {
          mergeCRuleIdeInfo(other.getCRuleIdeInfo());
        }
        if (other.hasCToolchainIdeInfo()) {
          mergeCToolchainIdeInfo(other.getCToolchainIdeInfo());
        }
        if (!other.getKindString().isEmpty()) {
          kindString_ = other.kindString_;
          onChanged();
        }
        if (other.hasTestInfo()) {
          mergeTestInfo(other.getTestInfo());
        }
        if (other.hasProtoLibraryLegacyJavaIdeInfo()) {
          mergeProtoLibraryLegacyJavaIdeInfo(other.getProtoLibraryLegacyJavaIdeInfo());
        }
        if (other.hasJavaToolchainIdeInfo()) {
          mergeJavaToolchainIdeInfo(other.getJavaToolchainIdeInfo());
        }
        if (other.hasPyRuleIdeInfo()) {
          mergePyRuleIdeInfo(other.getPyRuleIdeInfo());
        }
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

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

      private java.lang.Object label_ = "";
      /**
       * <code>optional string label = 1;</code>
       */
      public java.lang.String getLabel() {
        java.lang.Object ref = label_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          label_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string label = 1;</code>
       */
      public com.google.protobuf.ByteString
          getLabelBytes() {
        java.lang.Object ref = label_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          label_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string label = 1;</code>
       */
      public Builder setLabel(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        label_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string label = 1;</code>
       */
      public Builder clearLabel() {
        
        label_ = getDefaultInstance().getLabel();
        onChanged();
        return this;
      }
      /**
       * <code>optional string label = 1;</code>
       */
      public Builder setLabelBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        label_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList dependencies_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureDependenciesIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          dependencies_ = new com.google.protobuf.LazyStringArrayList(dependencies_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * <code>repeated string dependencies = 4;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getDependenciesList() {
        return dependencies_.getUnmodifiableView();
      }
      /**
       * <code>repeated string dependencies = 4;</code>
       */
      public int getDependenciesCount() {
        return dependencies_.size();
      }
      /**
       * <code>repeated string dependencies = 4;</code>
       */
      public java.lang.String getDependencies(int index) {
        return dependencies_.get(index);
      }
      /**
       * <code>repeated string dependencies = 4;</code>
       */
      public com.google.protobuf.ByteString
          getDependenciesBytes(int index) {
        return dependencies_.getByteString(index);
      }
      /**
       * <code>repeated string dependencies = 4;</code>
       */
      public Builder setDependencies(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureDependenciesIsMutable();
        dependencies_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string dependencies = 4;</code>
       */
      public Builder addDependencies(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureDependenciesIsMutable();
        dependencies_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string dependencies = 4;</code>
       */
      public Builder addAllDependencies(
          java.lang.Iterable<java.lang.String> values) {
        ensureDependenciesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, dependencies_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string dependencies = 4;</code>
       */
      public Builder clearDependencies() {
        dependencies_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string dependencies = 4;</code>
       */
      public Builder addDependenciesBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureDependenciesIsMutable();
        dependencies_.add(value);
        onChanged();
        return this;
      }

      private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo javaRuleIdeInfo_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfoOrBuilder> javaRuleIdeInfoBuilder_;
      /**
       * <pre>
       * kind is one of {JAVA,ANDROID}_{LIBRARY,BINARY,TEST} and JAVA_IMPORT
       * </pre>
       *
       * <code>optional .blaze.JavaRuleIdeInfo java_rule_ide_info = 7;</code>
       */
      public boolean hasJavaRuleIdeInfo() {
        return javaRuleIdeInfoBuilder_ != null || javaRuleIdeInfo_ != null;
      }
      /**
       * <pre>
       * kind is one of {JAVA,ANDROID}_{LIBRARY,BINARY,TEST} and JAVA_IMPORT
       * </pre>
       *
       * <code>optional .blaze.JavaRuleIdeInfo java_rule_ide_info = 7;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo getJavaRuleIdeInfo() {
        if (javaRuleIdeInfoBuilder_ == null) {
          return javaRuleIdeInfo_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo.getDefaultInstance() : javaRuleIdeInfo_;
        } else {
          return javaRuleIdeInfoBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * kind is one of {JAVA,ANDROID}_{LIBRARY,BINARY,TEST} and JAVA_IMPORT
       * </pre>
       *
       * <code>optional .blaze.JavaRuleIdeInfo java_rule_ide_info = 7;</code>
       */
      public Builder setJavaRuleIdeInfo(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo value) {
        if (javaRuleIdeInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          javaRuleIdeInfo_ = value;
          onChanged();
        } else {
          javaRuleIdeInfoBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       * kind is one of {JAVA,ANDROID}_{LIBRARY,BINARY,TEST} and JAVA_IMPORT
       * </pre>
       *
       * <code>optional .blaze.JavaRuleIdeInfo java_rule_ide_info = 7;</code>
       */
      public Builder setJavaRuleIdeInfo(
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo.Builder builderForValue) {
        if (javaRuleIdeInfoBuilder_ == null) {
          javaRuleIdeInfo_ = builderForValue.build();
          onChanged();
        } else {
          javaRuleIdeInfoBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       * kind is one of {JAVA,ANDROID}_{LIBRARY,BINARY,TEST} and JAVA_IMPORT
       * </pre>
       *
       * <code>optional .blaze.JavaRuleIdeInfo java_rule_ide_info = 7;</code>
       */
      public Builder mergeJavaRuleIdeInfo(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo value) {
        if (javaRuleIdeInfoBuilder_ == null) {
          if (javaRuleIdeInfo_ != null) {
            javaRuleIdeInfo_ =
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo.newBuilder(javaRuleIdeInfo_).mergeFrom(value).buildPartial();
          } else {
            javaRuleIdeInfo_ = value;
          }
          onChanged();
        } else {
          javaRuleIdeInfoBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       * kind is one of {JAVA,ANDROID}_{LIBRARY,BINARY,TEST} and JAVA_IMPORT
       * </pre>
       *
       * <code>optional .blaze.JavaRuleIdeInfo java_rule_ide_info = 7;</code>
       */
      public Builder clearJavaRuleIdeInfo() {
        if (javaRuleIdeInfoBuilder_ == null) {
          javaRuleIdeInfo_ = null;
          onChanged();
        } else {
          javaRuleIdeInfo_ = null;
          javaRuleIdeInfoBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       * kind is one of {JAVA,ANDROID}_{LIBRARY,BINARY,TEST} and JAVA_IMPORT
       * </pre>
       *
       * <code>optional .blaze.JavaRuleIdeInfo java_rule_ide_info = 7;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo.Builder getJavaRuleIdeInfoBuilder() {
        
        onChanged();
        return getJavaRuleIdeInfoFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * kind is one of {JAVA,ANDROID}_{LIBRARY,BINARY,TEST} and JAVA_IMPORT
       * </pre>
       *
       * <code>optional .blaze.JavaRuleIdeInfo java_rule_ide_info = 7;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfoOrBuilder getJavaRuleIdeInfoOrBuilder() {
        if (javaRuleIdeInfoBuilder_ != null) {
          return javaRuleIdeInfoBuilder_.getMessageOrBuilder();
        } else {
          return javaRuleIdeInfo_ == null ?
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo.getDefaultInstance() : javaRuleIdeInfo_;
        }
      }
      /**
       * <pre>
       * kind is one of {JAVA,ANDROID}_{LIBRARY,BINARY,TEST} and JAVA_IMPORT
       * </pre>
       *
       * <code>optional .blaze.JavaRuleIdeInfo java_rule_ide_info = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfoOrBuilder> 
          getJavaRuleIdeInfoFieldBuilder() {
        if (javaRuleIdeInfoBuilder_ == null) {
          javaRuleIdeInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfo.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaRuleIdeInfoOrBuilder>(
                  getJavaRuleIdeInfo(),
                  getParentForChildren(),
                  isClean());
          javaRuleIdeInfo_ = null;
        }
        return javaRuleIdeInfoBuilder_;
      }

      private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo androidRuleIdeInfo_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfoOrBuilder> androidRuleIdeInfoBuilder_;
      /**
       * <code>optional .blaze.AndroidRuleIdeInfo android_rule_ide_info = 8;</code>
       */
      public boolean hasAndroidRuleIdeInfo() {
        return androidRuleIdeInfoBuilder_ != null || androidRuleIdeInfo_ != null;
      }
      /**
       * <code>optional .blaze.AndroidRuleIdeInfo android_rule_ide_info = 8;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo getAndroidRuleIdeInfo() {
        if (androidRuleIdeInfoBuilder_ == null) {
          return androidRuleIdeInfo_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo.getDefaultInstance() : androidRuleIdeInfo_;
        } else {
          return androidRuleIdeInfoBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .blaze.AndroidRuleIdeInfo android_rule_ide_info = 8;</code>
       */
      public Builder setAndroidRuleIdeInfo(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo value) {
        if (androidRuleIdeInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          androidRuleIdeInfo_ = value;
          onChanged();
        } else {
          androidRuleIdeInfoBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.AndroidRuleIdeInfo android_rule_ide_info = 8;</code>
       */
      public Builder setAndroidRuleIdeInfo(
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo.Builder builderForValue) {
        if (androidRuleIdeInfoBuilder_ == null) {
          androidRuleIdeInfo_ = builderForValue.build();
          onChanged();
        } else {
          androidRuleIdeInfoBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>optional .blaze.AndroidRuleIdeInfo android_rule_ide_info = 8;</code>
       */
      public Builder mergeAndroidRuleIdeInfo(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo value) {
        if (androidRuleIdeInfoBuilder_ == null) {
          if (androidRuleIdeInfo_ != null) {
            androidRuleIdeInfo_ =
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo.newBuilder(androidRuleIdeInfo_).mergeFrom(value).buildPartial();
          } else {
            androidRuleIdeInfo_ = value;
          }
          onChanged();
        } else {
          androidRuleIdeInfoBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.AndroidRuleIdeInfo android_rule_ide_info = 8;</code>
       */
      public Builder clearAndroidRuleIdeInfo() {
        if (androidRuleIdeInfoBuilder_ == null) {
          androidRuleIdeInfo_ = null;
          onChanged();
        } else {
          androidRuleIdeInfo_ = null;
          androidRuleIdeInfoBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>optional .blaze.AndroidRuleIdeInfo android_rule_ide_info = 8;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo.Builder getAndroidRuleIdeInfoBuilder() {
        
        onChanged();
        return getAndroidRuleIdeInfoFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .blaze.AndroidRuleIdeInfo android_rule_ide_info = 8;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfoOrBuilder getAndroidRuleIdeInfoOrBuilder() {
        if (androidRuleIdeInfoBuilder_ != null) {
          return androidRuleIdeInfoBuilder_.getMessageOrBuilder();
        } else {
          return androidRuleIdeInfo_ == null ?
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo.getDefaultInstance() : androidRuleIdeInfo_;
        }
      }
      /**
       * <code>optional .blaze.AndroidRuleIdeInfo android_rule_ide_info = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfoOrBuilder> 
          getAndroidRuleIdeInfoFieldBuilder() {
        if (androidRuleIdeInfoBuilder_ == null) {
          androidRuleIdeInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfo.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.AndroidRuleIdeInfoOrBuilder>(
                  getAndroidRuleIdeInfo(),
                  getParentForChildren(),
                  isClean());
          androidRuleIdeInfo_ = null;
        }
        return androidRuleIdeInfoBuilder_;
      }

      private com.google.protobuf.LazyStringList tags_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureTagsIsMutable() {
        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
          tags_ = new com.google.protobuf.LazyStringArrayList(tags_);
          bitField0_ |= 0x00000010;
         }
      }
      /**
       * <code>repeated string tags = 9;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getTagsList() {
        return tags_.getUnmodifiableView();
      }
      /**
       * <code>repeated string tags = 9;</code>
       */
      public int getTagsCount() {
        return tags_.size();
      }
      /**
       * <code>repeated string tags = 9;</code>
       */
      public java.lang.String getTags(int index) {
        return tags_.get(index);
      }
      /**
       * <code>repeated string tags = 9;</code>
       */
      public com.google.protobuf.ByteString
          getTagsBytes(int index) {
        return tags_.getByteString(index);
      }
      /**
       * <code>repeated string tags = 9;</code>
       */
      public Builder setTags(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureTagsIsMutable();
        tags_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string tags = 9;</code>
       */
      public Builder addTags(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureTagsIsMutable();
        tags_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string tags = 9;</code>
       */
      public Builder addAllTags(
          java.lang.Iterable<java.lang.String> values) {
        ensureTagsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, tags_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string tags = 9;</code>
       */
      public Builder clearTags() {
        tags_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string tags = 9;</code>
       */
      public Builder addTagsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureTagsIsMutable();
        tags_.add(value);
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList runtimeDeps_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureRuntimeDepsIsMutable() {
        if (!((bitField0_ & 0x00000020) == 0x00000020)) {
          runtimeDeps_ = new com.google.protobuf.LazyStringArrayList(runtimeDeps_);
          bitField0_ |= 0x00000020;
         }
      }
      /**
       * <code>repeated string runtime_deps = 10;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getRuntimeDepsList() {
        return runtimeDeps_.getUnmodifiableView();
      }
      /**
       * <code>repeated string runtime_deps = 10;</code>
       */
      public int getRuntimeDepsCount() {
        return runtimeDeps_.size();
      }
      /**
       * <code>repeated string runtime_deps = 10;</code>
       */
      public java.lang.String getRuntimeDeps(int index) {
        return runtimeDeps_.get(index);
      }
      /**
       * <code>repeated string runtime_deps = 10;</code>
       */
      public com.google.protobuf.ByteString
          getRuntimeDepsBytes(int index) {
        return runtimeDeps_.getByteString(index);
      }
      /**
       * <code>repeated string runtime_deps = 10;</code>
       */
      public Builder setRuntimeDeps(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureRuntimeDepsIsMutable();
        runtimeDeps_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string runtime_deps = 10;</code>
       */
      public Builder addRuntimeDeps(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureRuntimeDepsIsMutable();
        runtimeDeps_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string runtime_deps = 10;</code>
       */
      public Builder addAllRuntimeDeps(
          java.lang.Iterable<java.lang.String> values) {
        ensureRuntimeDepsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, runtimeDeps_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string runtime_deps = 10;</code>
       */
      public Builder clearRuntimeDeps() {
        runtimeDeps_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000020);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string runtime_deps = 10;</code>
       */
      public Builder addRuntimeDepsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureRuntimeDepsIsMutable();
        runtimeDeps_.add(value);
        onChanged();
        return this;
      }

      private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation buildFileArtifactLocation_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> buildFileArtifactLocationBuilder_;
      /**
       * <code>optional .blaze.ArtifactLocation build_file_artifact_location = 11;</code>
       */
      public boolean hasBuildFileArtifactLocation() {
        return buildFileArtifactLocationBuilder_ != null || buildFileArtifactLocation_ != null;
      }
      /**
       * <code>optional .blaze.ArtifactLocation build_file_artifact_location = 11;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation getBuildFileArtifactLocation() {
        if (buildFileArtifactLocationBuilder_ == null) {
          return buildFileArtifactLocation_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance() : buildFileArtifactLocation_;
        } else {
          return buildFileArtifactLocationBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .blaze.ArtifactLocation build_file_artifact_location = 11;</code>
       */
      public Builder setBuildFileArtifactLocation(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation value) {
        if (buildFileArtifactLocationBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          buildFileArtifactLocation_ = value;
          onChanged();
        } else {
          buildFileArtifactLocationBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.ArtifactLocation build_file_artifact_location = 11;</code>
       */
      public Builder setBuildFileArtifactLocation(
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder builderForValue) {
        if (buildFileArtifactLocationBuilder_ == null) {
          buildFileArtifactLocation_ = builderForValue.build();
          onChanged();
        } else {
          buildFileArtifactLocationBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>optional .blaze.ArtifactLocation build_file_artifact_location = 11;</code>
       */
      public Builder mergeBuildFileArtifactLocation(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation value) {
        if (buildFileArtifactLocationBuilder_ == null) {
          if (buildFileArtifactLocation_ != null) {
            buildFileArtifactLocation_ =
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.newBuilder(buildFileArtifactLocation_).mergeFrom(value).buildPartial();
          } else {
            buildFileArtifactLocation_ = value;
          }
          onChanged();
        } else {
          buildFileArtifactLocationBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.ArtifactLocation build_file_artifact_location = 11;</code>
       */
      public Builder clearBuildFileArtifactLocation() {
        if (buildFileArtifactLocationBuilder_ == null) {
          buildFileArtifactLocation_ = null;
          onChanged();
        } else {
          buildFileArtifactLocation_ = null;
          buildFileArtifactLocationBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>optional .blaze.ArtifactLocation build_file_artifact_location = 11;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder getBuildFileArtifactLocationBuilder() {
        
        onChanged();
        return getBuildFileArtifactLocationFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .blaze.ArtifactLocation build_file_artifact_location = 11;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder getBuildFileArtifactLocationOrBuilder() {
        if (buildFileArtifactLocationBuilder_ != null) {
          return buildFileArtifactLocationBuilder_.getMessageOrBuilder();
        } else {
          return buildFileArtifactLocation_ == null ?
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.getDefaultInstance() : buildFileArtifactLocation_;
        }
      }
      /**
       * <code>optional .blaze.ArtifactLocation build_file_artifact_location = 11;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder> 
          getBuildFileArtifactLocationFieldBuilder() {
        if (buildFileArtifactLocationBuilder_ == null) {
          buildFileArtifactLocationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocation.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ArtifactLocationOrBuilder>(
                  getBuildFileArtifactLocation(),
                  getParentForChildren(),
                  isClean());
          buildFileArtifactLocation_ = null;
        }
        return buildFileArtifactLocationBuilder_;
      }

      private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo cRuleIdeInfo_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfoOrBuilder> cRuleIdeInfoBuilder_;
      /**
       * <code>optional .blaze.CRuleIdeInfo c_rule_ide_info = 12;</code>
       */
      public boolean hasCRuleIdeInfo() {
        return cRuleIdeInfoBuilder_ != null || cRuleIdeInfo_ != null;
      }
      /**
       * <code>optional .blaze.CRuleIdeInfo c_rule_ide_info = 12;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo getCRuleIdeInfo() {
        if (cRuleIdeInfoBuilder_ == null) {
          return cRuleIdeInfo_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo.getDefaultInstance() : cRuleIdeInfo_;
        } else {
          return cRuleIdeInfoBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .blaze.CRuleIdeInfo c_rule_ide_info = 12;</code>
       */
      public Builder setCRuleIdeInfo(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo value) {
        if (cRuleIdeInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          cRuleIdeInfo_ = value;
          onChanged();
        } else {
          cRuleIdeInfoBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.CRuleIdeInfo c_rule_ide_info = 12;</code>
       */
      public Builder setCRuleIdeInfo(
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo.Builder builderForValue) {
        if (cRuleIdeInfoBuilder_ == null) {
          cRuleIdeInfo_ = builderForValue.build();
          onChanged();
        } else {
          cRuleIdeInfoBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>optional .blaze.CRuleIdeInfo c_rule_ide_info = 12;</code>
       */
      public Builder mergeCRuleIdeInfo(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo value) {
        if (cRuleIdeInfoBuilder_ == null) {
          if (cRuleIdeInfo_ != null) {
            cRuleIdeInfo_ =
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo.newBuilder(cRuleIdeInfo_).mergeFrom(value).buildPartial();
          } else {
            cRuleIdeInfo_ = value;
          }
          onChanged();
        } else {
          cRuleIdeInfoBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.CRuleIdeInfo c_rule_ide_info = 12;</code>
       */
      public Builder clearCRuleIdeInfo() {
        if (cRuleIdeInfoBuilder_ == null) {
          cRuleIdeInfo_ = null;
          onChanged();
        } else {
          cRuleIdeInfo_ = null;
          cRuleIdeInfoBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>optional .blaze.CRuleIdeInfo c_rule_ide_info = 12;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo.Builder getCRuleIdeInfoBuilder() {
        
        onChanged();
        return getCRuleIdeInfoFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .blaze.CRuleIdeInfo c_rule_ide_info = 12;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfoOrBuilder getCRuleIdeInfoOrBuilder() {
        if (cRuleIdeInfoBuilder_ != null) {
          return cRuleIdeInfoBuilder_.getMessageOrBuilder();
        } else {
          return cRuleIdeInfo_ == null ?
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo.getDefaultInstance() : cRuleIdeInfo_;
        }
      }
      /**
       * <code>optional .blaze.CRuleIdeInfo c_rule_ide_info = 12;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfoOrBuilder> 
          getCRuleIdeInfoFieldBuilder() {
        if (cRuleIdeInfoBuilder_ == null) {
          cRuleIdeInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfo.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CRuleIdeInfoOrBuilder>(
                  getCRuleIdeInfo(),
                  getParentForChildren(),
                  isClean());
          cRuleIdeInfo_ = null;
        }
        return cRuleIdeInfoBuilder_;
      }

      private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo cToolchainIdeInfo_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfoOrBuilder> cToolchainIdeInfoBuilder_;
      /**
       * <code>optional .blaze.CToolchainIdeInfo c_toolchain_ide_info = 13;</code>
       */
      public boolean hasCToolchainIdeInfo() {
        return cToolchainIdeInfoBuilder_ != null || cToolchainIdeInfo_ != null;
      }
      /**
       * <code>optional .blaze.CToolchainIdeInfo c_toolchain_ide_info = 13;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo getCToolchainIdeInfo() {
        if (cToolchainIdeInfoBuilder_ == null) {
          return cToolchainIdeInfo_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo.getDefaultInstance() : cToolchainIdeInfo_;
        } else {
          return cToolchainIdeInfoBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .blaze.CToolchainIdeInfo c_toolchain_ide_info = 13;</code>
       */
      public Builder setCToolchainIdeInfo(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo value) {
        if (cToolchainIdeInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          cToolchainIdeInfo_ = value;
          onChanged();
        } else {
          cToolchainIdeInfoBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.CToolchainIdeInfo c_toolchain_ide_info = 13;</code>
       */
      public Builder setCToolchainIdeInfo(
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo.Builder builderForValue) {
        if (cToolchainIdeInfoBuilder_ == null) {
          cToolchainIdeInfo_ = builderForValue.build();
          onChanged();
        } else {
          cToolchainIdeInfoBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>optional .blaze.CToolchainIdeInfo c_toolchain_ide_info = 13;</code>
       */
      public Builder mergeCToolchainIdeInfo(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo value) {
        if (cToolchainIdeInfoBuilder_ == null) {
          if (cToolchainIdeInfo_ != null) {
            cToolchainIdeInfo_ =
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo.newBuilder(cToolchainIdeInfo_).mergeFrom(value).buildPartial();
          } else {
            cToolchainIdeInfo_ = value;
          }
          onChanged();
        } else {
          cToolchainIdeInfoBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.CToolchainIdeInfo c_toolchain_ide_info = 13;</code>
       */
      public Builder clearCToolchainIdeInfo() {
        if (cToolchainIdeInfoBuilder_ == null) {
          cToolchainIdeInfo_ = null;
          onChanged();
        } else {
          cToolchainIdeInfo_ = null;
          cToolchainIdeInfoBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>optional .blaze.CToolchainIdeInfo c_toolchain_ide_info = 13;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo.Builder getCToolchainIdeInfoBuilder() {
        
        onChanged();
        return getCToolchainIdeInfoFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .blaze.CToolchainIdeInfo c_toolchain_ide_info = 13;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfoOrBuilder getCToolchainIdeInfoOrBuilder() {
        if (cToolchainIdeInfoBuilder_ != null) {
          return cToolchainIdeInfoBuilder_.getMessageOrBuilder();
        } else {
          return cToolchainIdeInfo_ == null ?
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo.getDefaultInstance() : cToolchainIdeInfo_;
        }
      }
      /**
       * <code>optional .blaze.CToolchainIdeInfo c_toolchain_ide_info = 13;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfoOrBuilder> 
          getCToolchainIdeInfoFieldBuilder() {
        if (cToolchainIdeInfoBuilder_ == null) {
          cToolchainIdeInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfo.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.CToolchainIdeInfoOrBuilder>(
                  getCToolchainIdeInfo(),
                  getParentForChildren(),
                  isClean());
          cToolchainIdeInfo_ = null;
        }
        return cToolchainIdeInfoBuilder_;
      }

      private java.lang.Object kindString_ = "";
      /**
       * <code>optional string kind_string = 14;</code>
       */
      public java.lang.String getKindString() {
        java.lang.Object ref = kindString_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          kindString_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string kind_string = 14;</code>
       */
      public com.google.protobuf.ByteString
          getKindStringBytes() {
        java.lang.Object ref = kindString_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          kindString_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string kind_string = 14;</code>
       */
      public Builder setKindString(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        kindString_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string kind_string = 14;</code>
       */
      public Builder clearKindString() {
        
        kindString_ = getDefaultInstance().getKindString();
        onChanged();
        return this;
      }
      /**
       * <code>optional string kind_string = 14;</code>
       */
      public Builder setKindStringBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        kindString_ = value;
        onChanged();
        return this;
      }

      private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo testInfo_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfoOrBuilder> testInfoBuilder_;
      /**
       * <code>optional .blaze.TestInfo test_info = 15;</code>
       */
      public boolean hasTestInfo() {
        return testInfoBuilder_ != null || testInfo_ != null;
      }
      /**
       * <code>optional .blaze.TestInfo test_info = 15;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo getTestInfo() {
        if (testInfoBuilder_ == null) {
          return testInfo_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo.getDefaultInstance() : testInfo_;
        } else {
          return testInfoBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .blaze.TestInfo test_info = 15;</code>
       */
      public Builder setTestInfo(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo value) {
        if (testInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          testInfo_ = value;
          onChanged();
        } else {
          testInfoBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.TestInfo test_info = 15;</code>
       */
      public Builder setTestInfo(
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo.Builder builderForValue) {
        if (testInfoBuilder_ == null) {
          testInfo_ = builderForValue.build();
          onChanged();
        } else {
          testInfoBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>optional .blaze.TestInfo test_info = 15;</code>
       */
      public Builder mergeTestInfo(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo value) {
        if (testInfoBuilder_ == null) {
          if (testInfo_ != null) {
            testInfo_ =
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo.newBuilder(testInfo_).mergeFrom(value).buildPartial();
          } else {
            testInfo_ = value;
          }
          onChanged();
        } else {
          testInfoBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.TestInfo test_info = 15;</code>
       */
      public Builder clearTestInfo() {
        if (testInfoBuilder_ == null) {
          testInfo_ = null;
          onChanged();
        } else {
          testInfo_ = null;
          testInfoBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>optional .blaze.TestInfo test_info = 15;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo.Builder getTestInfoBuilder() {
        
        onChanged();
        return getTestInfoFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .blaze.TestInfo test_info = 15;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfoOrBuilder getTestInfoOrBuilder() {
        if (testInfoBuilder_ != null) {
          return testInfoBuilder_.getMessageOrBuilder();
        } else {
          return testInfo_ == null ?
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo.getDefaultInstance() : testInfo_;
        }
      }
      /**
       * <code>optional .blaze.TestInfo test_info = 15;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfoOrBuilder> 
          getTestInfoFieldBuilder() {
        if (testInfoBuilder_ == null) {
          testInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfo.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.TestInfoOrBuilder>(
                  getTestInfo(),
                  getParentForChildren(),
                  isClean());
          testInfo_ = null;
        }
        return testInfoBuilder_;
      }

      private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo protoLibraryLegacyJavaIdeInfo_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfoOrBuilder> protoLibraryLegacyJavaIdeInfoBuilder_;
      /**
       * <code>optional .blaze.ProtoLibraryLegacyJavaIdeInfo proto_library_legacy_java_ide_info = 16;</code>
       */
      public boolean hasProtoLibraryLegacyJavaIdeInfo() {
        return protoLibraryLegacyJavaIdeInfoBuilder_ != null || protoLibraryLegacyJavaIdeInfo_ != null;
      }
      /**
       * <code>optional .blaze.ProtoLibraryLegacyJavaIdeInfo proto_library_legacy_java_ide_info = 16;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo getProtoLibraryLegacyJavaIdeInfo() {
        if (protoLibraryLegacyJavaIdeInfoBuilder_ == null) {
          return protoLibraryLegacyJavaIdeInfo_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo.getDefaultInstance() : protoLibraryLegacyJavaIdeInfo_;
        } else {
          return protoLibraryLegacyJavaIdeInfoBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .blaze.ProtoLibraryLegacyJavaIdeInfo proto_library_legacy_java_ide_info = 16;</code>
       */
      public Builder setProtoLibraryLegacyJavaIdeInfo(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo value) {
        if (protoLibraryLegacyJavaIdeInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          protoLibraryLegacyJavaIdeInfo_ = value;
          onChanged();
        } else {
          protoLibraryLegacyJavaIdeInfoBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.ProtoLibraryLegacyJavaIdeInfo proto_library_legacy_java_ide_info = 16;</code>
       */
      public Builder setProtoLibraryLegacyJavaIdeInfo(
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo.Builder builderForValue) {
        if (protoLibraryLegacyJavaIdeInfoBuilder_ == null) {
          protoLibraryLegacyJavaIdeInfo_ = builderForValue.build();
          onChanged();
        } else {
          protoLibraryLegacyJavaIdeInfoBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>optional .blaze.ProtoLibraryLegacyJavaIdeInfo proto_library_legacy_java_ide_info = 16;</code>
       */
      public Builder mergeProtoLibraryLegacyJavaIdeInfo(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo value) {
        if (protoLibraryLegacyJavaIdeInfoBuilder_ == null) {
          if (protoLibraryLegacyJavaIdeInfo_ != null) {
            protoLibraryLegacyJavaIdeInfo_ =
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo.newBuilder(protoLibraryLegacyJavaIdeInfo_).mergeFrom(value).buildPartial();
          } else {
            protoLibraryLegacyJavaIdeInfo_ = value;
          }
          onChanged();
        } else {
          protoLibraryLegacyJavaIdeInfoBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.ProtoLibraryLegacyJavaIdeInfo proto_library_legacy_java_ide_info = 16;</code>
       */
      public Builder clearProtoLibraryLegacyJavaIdeInfo() {
        if (protoLibraryLegacyJavaIdeInfoBuilder_ == null) {
          protoLibraryLegacyJavaIdeInfo_ = null;
          onChanged();
        } else {
          protoLibraryLegacyJavaIdeInfo_ = null;
          protoLibraryLegacyJavaIdeInfoBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>optional .blaze.ProtoLibraryLegacyJavaIdeInfo proto_library_legacy_java_ide_info = 16;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo.Builder getProtoLibraryLegacyJavaIdeInfoBuilder() {
        
        onChanged();
        return getProtoLibraryLegacyJavaIdeInfoFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .blaze.ProtoLibraryLegacyJavaIdeInfo proto_library_legacy_java_ide_info = 16;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfoOrBuilder getProtoLibraryLegacyJavaIdeInfoOrBuilder() {
        if (protoLibraryLegacyJavaIdeInfoBuilder_ != null) {
          return protoLibraryLegacyJavaIdeInfoBuilder_.getMessageOrBuilder();
        } else {
          return protoLibraryLegacyJavaIdeInfo_ == null ?
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo.getDefaultInstance() : protoLibraryLegacyJavaIdeInfo_;
        }
      }
      /**
       * <code>optional .blaze.ProtoLibraryLegacyJavaIdeInfo proto_library_legacy_java_ide_info = 16;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfoOrBuilder> 
          getProtoLibraryLegacyJavaIdeInfoFieldBuilder() {
        if (protoLibraryLegacyJavaIdeInfoBuilder_ == null) {
          protoLibraryLegacyJavaIdeInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfo.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.ProtoLibraryLegacyJavaIdeInfoOrBuilder>(
                  getProtoLibraryLegacyJavaIdeInfo(),
                  getParentForChildren(),
                  isClean());
          protoLibraryLegacyJavaIdeInfo_ = null;
        }
        return protoLibraryLegacyJavaIdeInfoBuilder_;
      }

      private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo javaToolchainIdeInfo_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfoOrBuilder> javaToolchainIdeInfoBuilder_;
      /**
       * <code>optional .blaze.JavaToolchainIdeInfo java_toolchain_ide_info = 17;</code>
       */
      public boolean hasJavaToolchainIdeInfo() {
        return javaToolchainIdeInfoBuilder_ != null || javaToolchainIdeInfo_ != null;
      }
      /**
       * <code>optional .blaze.JavaToolchainIdeInfo java_toolchain_ide_info = 17;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo getJavaToolchainIdeInfo() {
        if (javaToolchainIdeInfoBuilder_ == null) {
          return javaToolchainIdeInfo_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo.getDefaultInstance() : javaToolchainIdeInfo_;
        } else {
          return javaToolchainIdeInfoBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .blaze.JavaToolchainIdeInfo java_toolchain_ide_info = 17;</code>
       */
      public Builder setJavaToolchainIdeInfo(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo value) {
        if (javaToolchainIdeInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          javaToolchainIdeInfo_ = value;
          onChanged();
        } else {
          javaToolchainIdeInfoBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.JavaToolchainIdeInfo java_toolchain_ide_info = 17;</code>
       */
      public Builder setJavaToolchainIdeInfo(
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo.Builder builderForValue) {
        if (javaToolchainIdeInfoBuilder_ == null) {
          javaToolchainIdeInfo_ = builderForValue.build();
          onChanged();
        } else {
          javaToolchainIdeInfoBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>optional .blaze.JavaToolchainIdeInfo java_toolchain_ide_info = 17;</code>
       */
      public Builder mergeJavaToolchainIdeInfo(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo value) {
        if (javaToolchainIdeInfoBuilder_ == null) {
          if (javaToolchainIdeInfo_ != null) {
            javaToolchainIdeInfo_ =
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo.newBuilder(javaToolchainIdeInfo_).mergeFrom(value).buildPartial();
          } else {
            javaToolchainIdeInfo_ = value;
          }
          onChanged();
        } else {
          javaToolchainIdeInfoBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.JavaToolchainIdeInfo java_toolchain_ide_info = 17;</code>
       */
      public Builder clearJavaToolchainIdeInfo() {
        if (javaToolchainIdeInfoBuilder_ == null) {
          javaToolchainIdeInfo_ = null;
          onChanged();
        } else {
          javaToolchainIdeInfo_ = null;
          javaToolchainIdeInfoBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>optional .blaze.JavaToolchainIdeInfo java_toolchain_ide_info = 17;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo.Builder getJavaToolchainIdeInfoBuilder() {
        
        onChanged();
        return getJavaToolchainIdeInfoFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .blaze.JavaToolchainIdeInfo java_toolchain_ide_info = 17;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfoOrBuilder getJavaToolchainIdeInfoOrBuilder() {
        if (javaToolchainIdeInfoBuilder_ != null) {
          return javaToolchainIdeInfoBuilder_.getMessageOrBuilder();
        } else {
          return javaToolchainIdeInfo_ == null ?
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo.getDefaultInstance() : javaToolchainIdeInfo_;
        }
      }
      /**
       * <code>optional .blaze.JavaToolchainIdeInfo java_toolchain_ide_info = 17;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfoOrBuilder> 
          getJavaToolchainIdeInfoFieldBuilder() {
        if (javaToolchainIdeInfoBuilder_ == null) {
          javaToolchainIdeInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfo.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.JavaToolchainIdeInfoOrBuilder>(
                  getJavaToolchainIdeInfo(),
                  getParentForChildren(),
                  isClean());
          javaToolchainIdeInfo_ = null;
        }
        return javaToolchainIdeInfoBuilder_;
      }

      private com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo pyRuleIdeInfo_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfoOrBuilder> pyRuleIdeInfoBuilder_;
      /**
       * <code>optional .blaze.PyRuleIdeInfo py_rule_ide_info = 18;</code>
       */
      public boolean hasPyRuleIdeInfo() {
        return pyRuleIdeInfoBuilder_ != null || pyRuleIdeInfo_ != null;
      }
      /**
       * <code>optional .blaze.PyRuleIdeInfo py_rule_ide_info = 18;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo getPyRuleIdeInfo() {
        if (pyRuleIdeInfoBuilder_ == null) {
          return pyRuleIdeInfo_ == null ? com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo.getDefaultInstance() : pyRuleIdeInfo_;
        } else {
          return pyRuleIdeInfoBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .blaze.PyRuleIdeInfo py_rule_ide_info = 18;</code>
       */
      public Builder setPyRuleIdeInfo(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo value) {
        if (pyRuleIdeInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          pyRuleIdeInfo_ = value;
          onChanged();
        } else {
          pyRuleIdeInfoBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.PyRuleIdeInfo py_rule_ide_info = 18;</code>
       */
      public Builder setPyRuleIdeInfo(
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo.Builder builderForValue) {
        if (pyRuleIdeInfoBuilder_ == null) {
          pyRuleIdeInfo_ = builderForValue.build();
          onChanged();
        } else {
          pyRuleIdeInfoBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>optional .blaze.PyRuleIdeInfo py_rule_ide_info = 18;</code>
       */
      public Builder mergePyRuleIdeInfo(com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo value) {
        if (pyRuleIdeInfoBuilder_ == null) {
          if (pyRuleIdeInfo_ != null) {
            pyRuleIdeInfo_ =
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo.newBuilder(pyRuleIdeInfo_).mergeFrom(value).buildPartial();
          } else {
            pyRuleIdeInfo_ = value;
          }
          onChanged();
        } else {
          pyRuleIdeInfoBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>optional .blaze.PyRuleIdeInfo py_rule_ide_info = 18;</code>
       */
      public Builder clearPyRuleIdeInfo() {
        if (pyRuleIdeInfoBuilder_ == null) {
          pyRuleIdeInfo_ = null;
          onChanged();
        } else {
          pyRuleIdeInfo_ = null;
          pyRuleIdeInfoBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>optional .blaze.PyRuleIdeInfo py_rule_ide_info = 18;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo.Builder getPyRuleIdeInfoBuilder() {
        
        onChanged();
        return getPyRuleIdeInfoFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .blaze.PyRuleIdeInfo py_rule_ide_info = 18;</code>
       */
      public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfoOrBuilder getPyRuleIdeInfoOrBuilder() {
        if (pyRuleIdeInfoBuilder_ != null) {
          return pyRuleIdeInfoBuilder_.getMessageOrBuilder();
        } else {
          return pyRuleIdeInfo_ == null ?
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo.getDefaultInstance() : pyRuleIdeInfo_;
        }
      }
      /**
       * <code>optional .blaze.PyRuleIdeInfo py_rule_ide_info = 18;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfoOrBuilder> 
          getPyRuleIdeInfoFieldBuilder() {
        if (pyRuleIdeInfoBuilder_ == null) {
          pyRuleIdeInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfo.Builder, com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.PyRuleIdeInfoOrBuilder>(
                  getPyRuleIdeInfo(),
                  getParentForChildren(),
                  isClean());
          pyRuleIdeInfo_ = null;
        }
        return pyRuleIdeInfoBuilder_;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }

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


      // @@protoc_insertion_point(builder_scope:blaze.RuleIdeInfo)
    }

    // @@protoc_insertion_point(class_scope:blaze.RuleIdeInfo)
    private static final com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo();
    }

    public static com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    public com.google.devtools.build.lib.ideinfo.androidstudio.AndroidStudioIdeInfo.RuleIdeInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_blaze_ArtifactLocation_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_blaze_ArtifactLocation_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_blaze_LibraryArtifact_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_blaze_LibraryArtifact_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_blaze_JavaRuleIdeInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_blaze_JavaRuleIdeInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_blaze_CRuleIdeInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_blaze_CRuleIdeInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_blaze_AndroidRuleIdeInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_blaze_AndroidRuleIdeInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_blaze_PyRuleIdeInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_blaze_PyRuleIdeInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_blaze_CToolchainIdeInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_blaze_CToolchainIdeInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_blaze_ProtoLibraryLegacyJavaIdeInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_blaze_ProtoLibraryLegacyJavaIdeInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_blaze_TestInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_blaze_TestInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_blaze_JavaToolchainIdeInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_blaze_JavaToolchainIdeInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_blaze_RuleIdeInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_blaze_RuleIdeInfo_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\216\001bazel-out/local-fastbuild/bin/src/mai" +
      "n/protobuf/libandroid_studio_ide_info_ja" +
      "va_proto_srcjar.srcjar.preprocessed/andr" +
      "oid_studio_ide_info.proto\022\005blaze\"b\n\020Arti" +
      "factLocation\022\025\n\rrelative_path\030\002 \001(\t\022\021\n\ti" +
      "s_source\030\003 \001(\010\022$\n\034root_execution_path_fr" +
      "agment\030\004 \001(\t\"\224\001\n\017LibraryArtifact\022$\n\003jar\030" +
      "\001 \001(\0132\027.blaze.ArtifactLocation\022.\n\rinterf" +
      "ace_jar\030\002 \001(\0132\027.blaze.ArtifactLocation\022+" +
      "\n\nsource_jar\030\003 \001(\0132\027.blaze.ArtifactLocat",
      "ion\"\236\002\n\017JavaRuleIdeInfo\022$\n\004jars\030\001 \003(\0132\026." +
      "blaze.LibraryArtifact\022.\n\016generated_jars\030" +
      "\002 \003(\0132\026.blaze.LibraryArtifact\0221\n\020package" +
      "_manifest\030\003 \001(\0132\027.blaze.ArtifactLocation" +
      "\022(\n\007sources\030\004 \003(\0132\027.blaze.ArtifactLocati" +
      "on\022&\n\005jdeps\030\005 \001(\0132\027.blaze.ArtifactLocati" +
      "on\0220\n\020filtered_gen_jar\030\006 \001(\0132\026.blaze.Lib" +
      "raryArtifact\"\217\002\n\014CRuleIdeInfo\022\'\n\006source\030" +
      "\001 \003(\0132\027.blaze.ArtifactLocation\022$\n\034transi" +
      "tive_include_directory\030\003 \003(\t\022*\n\"transiti",
      "ve_quote_include_directory\030\004 \003(\t\022\031\n\021tran" +
      "sitive_define\030\005 \003(\t\022+\n#transitive_system" +
      "_include_directory\030\006 \003(\t\022\021\n\trule_copt\030\007 " +
      "\003(\t\022\023\n\013rule_define\030\010 \003(\t\022\024\n\014rule_include" +
      "\030\t \003(\t\"\234\003\n\022AndroidRuleIdeInfo\022*\n\tresourc" +
      "es\030\001 \003(\0132\027.blaze.ArtifactLocation\022$\n\003apk" +
      "\030\003 \001(\0132\027.blaze.ArtifactLocation\022/\n\016depen" +
      "dency_apk\030\004 \003(\0132\027.blaze.ArtifactLocation" +
      "\022)\n\010manifest\030\005 \001(\0132\027.blaze.ArtifactLocat" +
      "ion\022\024\n\014java_package\030\007 \001(\t\022\027\n\017has_idl_sou",
      "rces\030\010 \001(\010\022\'\n\007idl_jar\030\t \001(\0132\026.blaze.Libr" +
      "aryArtifact\022\037\n\027generate_resource_class\030\n" +
      " \001(\010\022\030\n\020legacy_resources\030\013 \001(\t\022,\n\014resour" +
      "ce_jar\030\014 \001(\0132\026.blaze.LibraryArtifact\022\027\n\017" +
      "idl_import_root\030\r \001(\t\"9\n\rPyRuleIdeInfo\022(" +
      "\n\007sources\030\001 \003(\0132\027.blaze.ArtifactLocation" +
      "\"\202\002\n\021CToolchainIdeInfo\022\023\n\013target_name\030\001 " +
      "\001(\t\022\034\n\024base_compiler_option\030\002 \003(\t\022\022\n\ncpp" +
      "_option\030\003 \003(\t\022\020\n\010c_option\030\004 \003(\t\022\037\n\027prepr" +
      "ocessor_executable\030\005 \001(\t\022\026\n\016cpp_executab",
      "le\030\006 \001(\t\022\023\n\013link_option\030\007 \003(\t\022\"\n\032built_i" +
      "n_include_directory\030\010 \003(\t\022\"\n\032unfiltered_" +
      "compiler_option\030\t \003(\t\"\272\002\n\035ProtoLibraryLe" +
      "gacyJavaIdeInfo\022\023\n\013api_version\030\001 \001(\005\022B\n\n" +
      "api_flavor\030\002 \001(\0162..blaze.ProtoLibraryLeg" +
      "acyJavaIdeInfo.ApiFlavor\022%\n\005jars1\030\003 \003(\0132" +
      "\026.blaze.LibraryArtifact\022,\n\014jars_mutable\030" +
      "\004 \003(\0132\026.blaze.LibraryArtifact\022.\n\016jars_im" +
      "mutable\030\005 \003(\0132\026.blaze.LibraryArtifact\";\n" +
      "\tApiFlavor\022\010\n\004NONE\020\000\022\r\n\tIMMUTABLE\020\001\022\013\n\007M",
      "UTABLE\020\002\022\010\n\004BOTH\020\003\"\030\n\010TestInfo\022\014\n\004size\030\001" +
      " \001(\t\"F\n\024JavaToolchainIdeInfo\022\026\n\016source_v" +
      "ersion\030\001 \001(\t\022\026\n\016target_version\030\002 \001(\t\"\342\004\n" +
      "\013RuleIdeInfo\022\r\n\005label\030\001 \001(\t\022\024\n\014dependenc" +
      "ies\030\004 \003(\t\0222\n\022java_rule_ide_info\030\007 \001(\0132\026." +
      "blaze.JavaRuleIdeInfo\0228\n\025android_rule_id" +
      "e_info\030\010 \001(\0132\031.blaze.AndroidRuleIdeInfo\022" +
      "\014\n\004tags\030\t \003(\t\022\024\n\014runtime_deps\030\n \003(\t\022=\n\034b" +
      "uild_file_artifact_location\030\013 \001(\0132\027.blaz" +
      "e.ArtifactLocation\022,\n\017c_rule_ide_info\030\014 ",
      "\001(\0132\023.blaze.CRuleIdeInfo\0226\n\024c_toolchain_" +
      "ide_info\030\r \001(\0132\030.blaze.CToolchainIdeInfo" +
      "\022\023\n\013kind_string\030\016 \001(\t\022\"\n\ttest_info\030\017 \001(\013" +
      "2\017.blaze.TestInfo\022P\n\"proto_library_legac" +
      "y_java_ide_info\030\020 \001(\0132$.blaze.ProtoLibra" +
      "ryLegacyJavaIdeInfo\022<\n\027java_toolchain_id" +
      "e_info\030\021 \001(\0132\033.blaze.JavaToolchainIdeInf" +
      "o\022.\n\020py_rule_ide_info\030\022 \001(\0132\024.blaze.PyRu" +
      "leIdeInfoB5\n3com.google.devtools.build.l" +
      "ib.ideinfo.androidstudiob\006proto3"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            return null;
          }
        };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        }, assigner);
    internal_static_blaze_ArtifactLocation_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_blaze_ArtifactLocation_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_blaze_ArtifactLocation_descriptor,
        new java.lang.String[] { "RelativePath", "IsSource", "RootExecutionPathFragment", });
    internal_static_blaze_LibraryArtifact_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_blaze_LibraryArtifact_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_blaze_LibraryArtifact_descriptor,
        new java.lang.String[] { "Jar", "InterfaceJar", "SourceJar", });
    internal_static_blaze_JavaRuleIdeInfo_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_blaze_JavaRuleIdeInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_blaze_JavaRuleIdeInfo_descriptor,
        new java.lang.String[] { "Jars", "GeneratedJars", "PackageManifest", "Sources", "Jdeps", "FilteredGenJar", });
    internal_static_blaze_CRuleIdeInfo_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_blaze_CRuleIdeInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_blaze_CRuleIdeInfo_descriptor,
        new java.lang.String[] { "Source", "TransitiveIncludeDirectory", "TransitiveQuoteIncludeDirectory", "TransitiveDefine", "TransitiveSystemIncludeDirectory", "RuleCopt", "RuleDefine", "RuleInclude", });
    internal_static_blaze_AndroidRuleIdeInfo_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_blaze_AndroidRuleIdeInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_blaze_AndroidRuleIdeInfo_descriptor,
        new java.lang.String[] { "Resources", "Apk", "DependencyApk", "Manifest", "JavaPackage", "HasIdlSources", "IdlJar", "GenerateResourceClass", "LegacyResources", "ResourceJar", "IdlImportRoot", });
    internal_static_blaze_PyRuleIdeInfo_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_blaze_PyRuleIdeInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_blaze_PyRuleIdeInfo_descriptor,
        new java.lang.String[] { "Sources", });
    internal_static_blaze_CToolchainIdeInfo_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_blaze_CToolchainIdeInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_blaze_CToolchainIdeInfo_descriptor,
        new java.lang.String[] { "TargetName", "BaseCompilerOption", "CppOption", "COption", "PreprocessorExecutable", "CppExecutable", "LinkOption", "BuiltInIncludeDirectory", "UnfilteredCompilerOption", });
    internal_static_blaze_ProtoLibraryLegacyJavaIdeInfo_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_blaze_ProtoLibraryLegacyJavaIdeInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_blaze_ProtoLibraryLegacyJavaIdeInfo_descriptor,
        new java.lang.String[] { "ApiVersion", "ApiFlavor", "Jars1", "JarsMutable", "JarsImmutable", });
    internal_static_blaze_TestInfo_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_blaze_TestInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_blaze_TestInfo_descriptor,
        new java.lang.String[] { "Size", });
    internal_static_blaze_JavaToolchainIdeInfo_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_blaze_JavaToolchainIdeInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_blaze_JavaToolchainIdeInfo_descriptor,
        new java.lang.String[] { "SourceVersion", "TargetVersion", });
    internal_static_blaze_RuleIdeInfo_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_blaze_RuleIdeInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_blaze_RuleIdeInfo_descriptor,
        new java.lang.String[] { "Label", "Dependencies", "JavaRuleIdeInfo", "AndroidRuleIdeInfo", "Tags", "RuntimeDeps", "BuildFileArtifactLocation", "CRuleIdeInfo", "CToolchainIdeInfo", "KindString", "TestInfo", "ProtoLibraryLegacyJavaIdeInfo", "JavaToolchainIdeInfo", "PyRuleIdeInfo", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}
