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

org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint Maven / Gradle / Ivy

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: sonarlint.proto

package org.sonarsource.sonarlint.core.serverconnection.proto;

public final class Sonarlint {
  private Sonarlint() {}
  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 ServerInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:sonarlint.ServerInfo)
      com.google.protobuf.MessageOrBuilder {

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

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_ServerInfo_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_ServerInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo.class, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo.Builder.class);
    }

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

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo)) {
        return super.equals(obj);
      }
      org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo other = (org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo) obj;

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

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

    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code sonarlint.ServerInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:sonarlint.ServerInfo)
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_ServerInfo_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_ServerInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo.class, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo.Builder.class);
      }

      // Construct using org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo.newBuilder()
      private Builder() {

      }

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

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

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_ServerInfo_descriptor;
      }

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo getDefaultInstanceForType() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo.getDefaultInstance();
      }

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo build() {
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo buildPartial() {
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo result = new org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo(this);
        result.version_ = version_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo) {
          return mergeFrom((org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo other) {
        if (other == org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo.getDefaultInstance()) return this;
        if (!other.getVersion().isEmpty()) {
          version_ = other.version_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

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

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

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


      // @@protoc_insertion_point(builder_scope:sonarlint.ServerInfo)
    }

    // @@protoc_insertion_point(class_scope:sonarlint.ServerInfo)
    private static final org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo();
    }

    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ServerInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PluginReferencesOrBuilder extends
      // @@protoc_insertion_point(interface_extends:sonarlint.PluginReferences)
      com.google.protobuf.MessageOrBuilder {

    /**
     * map<string, .sonarlint.PluginReferences.PluginReference> plugins_by_key = 1;
     */
    int getPluginsByKeyCount();
    /**
     * map<string, .sonarlint.PluginReferences.PluginReference> plugins_by_key = 1;
     */
    boolean containsPluginsByKey(
        java.lang.String key);
    /**
     * Use {@link #getPluginsByKeyMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map
    getPluginsByKey();
    /**
     * map<string, .sonarlint.PluginReferences.PluginReference> plugins_by_key = 1;
     */
    java.util.Map
    getPluginsByKeyMap();
    /**
     * map<string, .sonarlint.PluginReferences.PluginReference> plugins_by_key = 1;
     */

    /* nullable */
org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference getPluginsByKeyOrDefault(
        java.lang.String key,
        /* nullable */
org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference defaultValue);
    /**
     * map<string, .sonarlint.PluginReferences.PluginReference> plugins_by_key = 1;
     */

    org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference getPluginsByKeyOrThrow(
        java.lang.String key);
  }
  /**
   * Protobuf type {@code sonarlint.PluginReferences}
   */
  public static final class PluginReferences extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:sonarlint.PluginReferences)
      PluginReferencesOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PluginReferences.newBuilder() to construct.
    private PluginReferences(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private PluginReferences() {
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_PluginReferences_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 1:
          return internalGetPluginsByKey();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_PluginReferences_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.class, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.Builder.class);
    }

    public interface PluginReferenceOrBuilder extends
        // @@protoc_insertion_point(interface_extends:sonarlint.PluginReferences.PluginReference)
        com.google.protobuf.MessageOrBuilder {

      /**
       * string key = 1;
       * @return The key.
       */
      java.lang.String getKey();
      /**
       * string key = 1;
       * @return The bytes for key.
       */
      com.google.protobuf.ByteString
          getKeyBytes();

      /**
       * string hash = 2;
       * @return The hash.
       */
      java.lang.String getHash();
      /**
       * string hash = 2;
       * @return The bytes for hash.
       */
      com.google.protobuf.ByteString
          getHashBytes();

      /**
       * string filename = 3;
       * @return The filename.
       */
      java.lang.String getFilename();
      /**
       * string filename = 3;
       * @return The bytes for filename.
       */
      com.google.protobuf.ByteString
          getFilenameBytes();
    }
    /**
     * Protobuf type {@code sonarlint.PluginReferences.PluginReference}
     */
    public static final class PluginReference extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:sonarlint.PluginReferences.PluginReference)
        PluginReferenceOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use PluginReference.newBuilder() to construct.
      private PluginReference(com.google.protobuf.GeneratedMessageV3.Builder builder) {
        super(builder);
      }
      private PluginReference() {
        key_ = "";
        hash_ = "";
        filename_ = "";
      }

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

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_PluginReferences_PluginReference_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_PluginReferences_PluginReference_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference.class, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference.Builder.class);
      }

      public static final int KEY_FIELD_NUMBER = 1;
      private volatile java.lang.Object key_;
      /**
       * string key = 1;
       * @return The key.
       */
      @java.lang.Override
      public java.lang.String getKey() {
        java.lang.Object ref = key_;
        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();
          key_ = s;
          return s;
        }
      }
      /**
       * string key = 1;
       * @return The bytes for key.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getKeyBytes() {
        java.lang.Object ref = key_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          key_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int HASH_FIELD_NUMBER = 2;
      private volatile java.lang.Object hash_;
      /**
       * string hash = 2;
       * @return The hash.
       */
      @java.lang.Override
      public java.lang.String getHash() {
        java.lang.Object ref = hash_;
        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();
          hash_ = s;
          return s;
        }
      }
      /**
       * string hash = 2;
       * @return The bytes for hash.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getHashBytes() {
        java.lang.Object ref = hash_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          hash_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int FILENAME_FIELD_NUMBER = 3;
      private volatile java.lang.Object filename_;
      /**
       * string filename = 3;
       * @return The filename.
       */
      @java.lang.Override
      public java.lang.String getFilename() {
        java.lang.Object ref = filename_;
        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();
          filename_ = s;
          return s;
        }
      }
      /**
       * string filename = 3;
       * @return The bytes for filename.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getFilenameBytes() {
        java.lang.Object ref = filename_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          filename_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(key_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, key_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(hash_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 2, hash_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(filename_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 3, filename_);
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(key_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, key_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(hash_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, hash_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(filename_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, filename_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference)) {
          return super.equals(obj);
        }
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference other = (org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference) obj;

        if (!getKey()
            .equals(other.getKey())) return false;
        if (!getHash()
            .equals(other.getHash())) return false;
        if (!getFilename()
            .equals(other.getFilename())) return false;
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + KEY_FIELD_NUMBER;
        hash = (53 * hash) + getKey().hashCode();
        hash = (37 * hash) + HASH_FIELD_NUMBER;
        hash = (53 * hash) + getHash().hashCode();
        hash = (37 * hash) + FILENAME_FIELD_NUMBER;
        hash = (53 * hash) + getFilename().hashCode();
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code sonarlint.PluginReferences.PluginReference}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder implements
          // @@protoc_insertion_point(builder_implements:sonarlint.PluginReferences.PluginReference)
          org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReferenceOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_PluginReferences_PluginReference_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_PluginReferences_PluginReference_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference.class, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference.Builder.class);
        }

        // Construct using org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference.newBuilder()
        private Builder() {

        }

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

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

          hash_ = "";

          filename_ = "";

          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_PluginReferences_PluginReference_descriptor;
        }

        @java.lang.Override
        public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference getDefaultInstanceForType() {
          return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference.getDefaultInstance();
        }

        @java.lang.Override
        public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference build() {
          org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference buildPartial() {
          org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference result = new org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference(this);
          result.key_ = key_;
          result.hash_ = hash_;
          result.filename_ = filename_;
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference) {
            return mergeFrom((org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference other) {
          if (other == org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference.getDefaultInstance()) return this;
          if (!other.getKey().isEmpty()) {
            key_ = other.key_;
            onChanged();
          }
          if (!other.getHash().isEmpty()) {
            hash_ = other.hash_;
            onChanged();
          }
          if (!other.getFilename().isEmpty()) {
            filename_ = other.filename_;
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

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

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

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

                  break;
                } // case 18
                case 26: {
                  filename_ = input.readStringRequireUtf8();

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

        private java.lang.Object key_ = "";
        /**
         * string key = 1;
         * @return The key.
         */
        public java.lang.String getKey() {
          java.lang.Object ref = key_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            key_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * string key = 1;
         * @return The bytes for key.
         */
        public com.google.protobuf.ByteString
            getKeyBytes() {
          java.lang.Object ref = key_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            key_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * string key = 1;
         * @param value The key to set.
         * @return This builder for chaining.
         */
        public Builder setKey(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          key_ = value;
          onChanged();
          return this;
        }
        /**
         * string key = 1;
         * @return This builder for chaining.
         */
        public Builder clearKey() {
          
          key_ = getDefaultInstance().getKey();
          onChanged();
          return this;
        }
        /**
         * string key = 1;
         * @param value The bytes for key to set.
         * @return This builder for chaining.
         */
        public Builder setKeyBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          key_ = value;
          onChanged();
          return this;
        }

        private java.lang.Object hash_ = "";
        /**
         * string hash = 2;
         * @return The hash.
         */
        public java.lang.String getHash() {
          java.lang.Object ref = hash_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            hash_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * string hash = 2;
         * @return The bytes for hash.
         */
        public com.google.protobuf.ByteString
            getHashBytes() {
          java.lang.Object ref = hash_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            hash_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * string hash = 2;
         * @param value The hash to set.
         * @return This builder for chaining.
         */
        public Builder setHash(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          hash_ = value;
          onChanged();
          return this;
        }
        /**
         * string hash = 2;
         * @return This builder for chaining.
         */
        public Builder clearHash() {
          
          hash_ = getDefaultInstance().getHash();
          onChanged();
          return this;
        }
        /**
         * string hash = 2;
         * @param value The bytes for hash to set.
         * @return This builder for chaining.
         */
        public Builder setHashBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          hash_ = value;
          onChanged();
          return this;
        }

        private java.lang.Object filename_ = "";
        /**
         * string filename = 3;
         * @return The filename.
         */
        public java.lang.String getFilename() {
          java.lang.Object ref = filename_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            filename_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * string filename = 3;
         * @return The bytes for filename.
         */
        public com.google.protobuf.ByteString
            getFilenameBytes() {
          java.lang.Object ref = filename_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            filename_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * string filename = 3;
         * @param value The filename to set.
         * @return This builder for chaining.
         */
        public Builder setFilename(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          filename_ = value;
          onChanged();
          return this;
        }
        /**
         * string filename = 3;
         * @return This builder for chaining.
         */
        public Builder clearFilename() {
          
          filename_ = getDefaultInstance().getFilename();
          onChanged();
          return this;
        }
        /**
         * string filename = 3;
         * @param value The bytes for filename to set.
         * @return This builder for chaining.
         */
        public Builder setFilenameBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          filename_ = value;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:sonarlint.PluginReferences.PluginReference)
      }

      // @@protoc_insertion_point(class_scope:sonarlint.PluginReferences.PluginReference)
      private static final org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference();
      }

      public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public static final int PLUGINS_BY_KEY_FIELD_NUMBER = 1;
    private static final class PluginsByKeyDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.String, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference> defaultEntry =
              com.google.protobuf.MapEntry
              .newDefaultInstance(
                  org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_PluginReferences_PluginsByKeyEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.MESSAGE,
                  org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference.getDefaultInstance());
    }
    private com.google.protobuf.MapField<
        java.lang.String, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference> pluginsByKey_;
    private com.google.protobuf.MapField
    internalGetPluginsByKey() {
      if (pluginsByKey_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            PluginsByKeyDefaultEntryHolder.defaultEntry);
      }
      return pluginsByKey_;
    }

    public int getPluginsByKeyCount() {
      return internalGetPluginsByKey().getMap().size();
    }
    /**
     * map<string, .sonarlint.PluginReferences.PluginReference> plugins_by_key = 1;
     */

    @java.lang.Override
    public boolean containsPluginsByKey(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      return internalGetPluginsByKey().getMap().containsKey(key);
    }
    /**
     * Use {@link #getPluginsByKeyMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map getPluginsByKey() {
      return getPluginsByKeyMap();
    }
    /**
     * map<string, .sonarlint.PluginReferences.PluginReference> plugins_by_key = 1;
     */
    @java.lang.Override

    public java.util.Map getPluginsByKeyMap() {
      return internalGetPluginsByKey().getMap();
    }
    /**
     * map<string, .sonarlint.PluginReferences.PluginReference> plugins_by_key = 1;
     */
    @java.lang.Override

    public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference getPluginsByKeyOrDefault(
        java.lang.String key,
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference defaultValue) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map map =
          internalGetPluginsByKey().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * map<string, .sonarlint.PluginReferences.PluginReference> plugins_by_key = 1;
     */
    @java.lang.Override

    public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference getPluginsByKeyOrThrow(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map map =
          internalGetPluginsByKey().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      com.google.protobuf.GeneratedMessageV3
        .serializeStringMapTo(
          output,
          internalGetPluginsByKey(),
          PluginsByKeyDefaultEntryHolder.defaultEntry,
          1);
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      for (java.util.Map.Entry entry
           : internalGetPluginsByKey().getMap().entrySet()) {
        com.google.protobuf.MapEntry
        pluginsByKey__ = PluginsByKeyDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, pluginsByKey__);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences)) {
        return super.equals(obj);
      }
      org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences other = (org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences) obj;

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

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

    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code sonarlint.PluginReferences}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:sonarlint.PluginReferences)
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferencesOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_PluginReferences_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 1:
            return internalGetPluginsByKey();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 1:
            return internalGetMutablePluginsByKey();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_PluginReferences_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.class, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.Builder.class);
      }

      // Construct using org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        internalGetMutablePluginsByKey().clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_PluginReferences_descriptor;
      }

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences getDefaultInstanceForType() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.getDefaultInstance();
      }

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences build() {
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences buildPartial() {
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences result = new org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences(this);
        int from_bitField0_ = bitField0_;
        result.pluginsByKey_ = internalGetPluginsByKey();
        result.pluginsByKey_.makeImmutable();
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences) {
          return mergeFrom((org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences other) {
        if (other == org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.getDefaultInstance()) return this;
        internalGetMutablePluginsByKey().mergeFrom(
            other.internalGetPluginsByKey());
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                com.google.protobuf.MapEntry
                pluginsByKey__ = input.readMessage(
                    PluginsByKeyDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                internalGetMutablePluginsByKey().getMutableMap().put(
                    pluginsByKey__.getKey(), pluginsByKey__.getValue());
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.MapField<
          java.lang.String, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference> pluginsByKey_;
      private com.google.protobuf.MapField
      internalGetPluginsByKey() {
        if (pluginsByKey_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              PluginsByKeyDefaultEntryHolder.defaultEntry);
        }
        return pluginsByKey_;
      }
      private com.google.protobuf.MapField
      internalGetMutablePluginsByKey() {
        onChanged();;
        if (pluginsByKey_ == null) {
          pluginsByKey_ = com.google.protobuf.MapField.newMapField(
              PluginsByKeyDefaultEntryHolder.defaultEntry);
        }
        if (!pluginsByKey_.isMutable()) {
          pluginsByKey_ = pluginsByKey_.copy();
        }
        return pluginsByKey_;
      }

      public int getPluginsByKeyCount() {
        return internalGetPluginsByKey().getMap().size();
      }
      /**
       * map<string, .sonarlint.PluginReferences.PluginReference> plugins_by_key = 1;
       */

      @java.lang.Override
      public boolean containsPluginsByKey(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        return internalGetPluginsByKey().getMap().containsKey(key);
      }
      /**
       * Use {@link #getPluginsByKeyMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map getPluginsByKey() {
        return getPluginsByKeyMap();
      }
      /**
       * map<string, .sonarlint.PluginReferences.PluginReference> plugins_by_key = 1;
       */
      @java.lang.Override

      public java.util.Map getPluginsByKeyMap() {
        return internalGetPluginsByKey().getMap();
      }
      /**
       * map<string, .sonarlint.PluginReferences.PluginReference> plugins_by_key = 1;
       */
      @java.lang.Override

      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference getPluginsByKeyOrDefault(
          java.lang.String key,
          org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference defaultValue) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map map =
            internalGetPluginsByKey().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * map<string, .sonarlint.PluginReferences.PluginReference> plugins_by_key = 1;
       */
      @java.lang.Override

      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference getPluginsByKeyOrThrow(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map map =
            internalGetPluginsByKey().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearPluginsByKey() {
        internalGetMutablePluginsByKey().getMutableMap()
            .clear();
        return this;
      }
      /**
       * map<string, .sonarlint.PluginReferences.PluginReference> plugins_by_key = 1;
       */

      public Builder removePluginsByKey(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        internalGetMutablePluginsByKey().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map
      getMutablePluginsByKey() {
        return internalGetMutablePluginsByKey().getMutableMap();
      }
      /**
       * map<string, .sonarlint.PluginReferences.PluginReference> plugins_by_key = 1;
       */
      public Builder putPluginsByKey(
          java.lang.String key,
          org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences.PluginReference value) {
        if (key == null) { throw new NullPointerException("map key"); }
        if (value == null) {
  throw new NullPointerException("map value");
}

        internalGetMutablePluginsByKey().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * map<string, .sonarlint.PluginReferences.PluginReference> plugins_by_key = 1;
       */

      public Builder putAllPluginsByKey(
          java.util.Map values) {
        internalGetMutablePluginsByKey().getMutableMap()
            .putAll(values);
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:sonarlint.PluginReferences)
    }

    // @@protoc_insertion_point(class_scope:sonarlint.PluginReferences)
    private static final org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences();
    }

    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.PluginReferences getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ProjectComponentsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:sonarlint.ProjectComponents)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated string component = 1;
     * @return A list containing the component.
     */
    java.util.List
        getComponentList();
    /**
     * repeated string component = 1;
     * @return The count of component.
     */
    int getComponentCount();
    /**
     * repeated string component = 1;
     * @param index The index of the element to return.
     * @return The component at the given index.
     */
    java.lang.String getComponent(int index);
    /**
     * repeated string component = 1;
     * @param index The index of the value to return.
     * @return The bytes of the component at the given index.
     */
    com.google.protobuf.ByteString
        getComponentBytes(int index);
  }
  /**
   * Protobuf type {@code sonarlint.ProjectComponents}
   */
  public static final class ProjectComponents extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:sonarlint.ProjectComponents)
      ProjectComponentsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ProjectComponents.newBuilder() to construct.
    private ProjectComponents(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private ProjectComponents() {
      component_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_ProjectComponents_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_ProjectComponents_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents.class, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents.Builder.class);
    }

    public static final int COMPONENT_FIELD_NUMBER = 1;
    private com.google.protobuf.LazyStringList component_;
    /**
     * repeated string component = 1;
     * @return A list containing the component.
     */
    public com.google.protobuf.ProtocolStringList
        getComponentList() {
      return component_;
    }
    /**
     * repeated string component = 1;
     * @return The count of component.
     */
    public int getComponentCount() {
      return component_.size();
    }
    /**
     * repeated string component = 1;
     * @param index The index of the element to return.
     * @return The component at the given index.
     */
    public java.lang.String getComponent(int index) {
      return component_.get(index);
    }
    /**
     * repeated string component = 1;
     * @param index The index of the value to return.
     * @return The bytes of the component at the given index.
     */
    public com.google.protobuf.ByteString
        getComponentBytes(int index) {
      return component_.getByteString(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents)) {
        return super.equals(obj);
      }
      org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents other = (org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents) obj;

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

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

    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code sonarlint.ProjectComponents}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:sonarlint.ProjectComponents)
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponentsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_ProjectComponents_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_ProjectComponents_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents.class, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents.Builder.class);
      }

      // Construct using org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents.newBuilder()
      private Builder() {

      }

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

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

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_ProjectComponents_descriptor;
      }

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents getDefaultInstanceForType() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents.getDefaultInstance();
      }

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents build() {
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents buildPartial() {
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents result = new org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) != 0)) {
          component_ = component_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.component_ = component_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents) {
          return mergeFrom((org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents other) {
        if (other == org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents.getDefaultInstance()) return this;
        if (!other.component_.isEmpty()) {
          if (component_.isEmpty()) {
            component_ = other.component_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureComponentIsMutable();
            component_.addAll(other.component_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

      private com.google.protobuf.LazyStringList component_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureComponentIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          component_ = new com.google.protobuf.LazyStringArrayList(component_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * repeated string component = 1;
       * @return A list containing the component.
       */
      public com.google.protobuf.ProtocolStringList
          getComponentList() {
        return component_.getUnmodifiableView();
      }
      /**
       * repeated string component = 1;
       * @return The count of component.
       */
      public int getComponentCount() {
        return component_.size();
      }
      /**
       * repeated string component = 1;
       * @param index The index of the element to return.
       * @return The component at the given index.
       */
      public java.lang.String getComponent(int index) {
        return component_.get(index);
      }
      /**
       * repeated string component = 1;
       * @param index The index of the value to return.
       * @return The bytes of the component at the given index.
       */
      public com.google.protobuf.ByteString
          getComponentBytes(int index) {
        return component_.getByteString(index);
      }
      /**
       * repeated string component = 1;
       * @param index The index to set the value at.
       * @param value The component to set.
       * @return This builder for chaining.
       */
      public Builder setComponent(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureComponentIsMutable();
        component_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated string component = 1;
       * @param value The component to add.
       * @return This builder for chaining.
       */
      public Builder addComponent(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureComponentIsMutable();
        component_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated string component = 1;
       * @param values The component to add.
       * @return This builder for chaining.
       */
      public Builder addAllComponent(
          java.lang.Iterable values) {
        ensureComponentIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, component_);
        onChanged();
        return this;
      }
      /**
       * repeated string component = 1;
       * @return This builder for chaining.
       */
      public Builder clearComponent() {
        component_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * repeated string component = 1;
       * @param value The bytes of the component to add.
       * @return This builder for chaining.
       */
      public Builder addComponentBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureComponentIsMutable();
        component_.add(value);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:sonarlint.ProjectComponents)
    }

    // @@protoc_insertion_point(class_scope:sonarlint.ProjectComponents)
    private static final org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents();
    }

    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectComponents getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AnalyzerConfigurationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:sonarlint.AnalyzerConfiguration)
      com.google.protobuf.MessageOrBuilder {

    /**
     * map<string, string> settings = 1;
     */
    int getSettingsCount();
    /**
     * map<string, string> settings = 1;
     */
    boolean containsSettings(
        java.lang.String key);
    /**
     * Use {@link #getSettingsMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map
    getSettings();
    /**
     * map<string, string> settings = 1;
     */
    java.util.Map
    getSettingsMap();
    /**
     * map<string, string> settings = 1;
     */

    /* nullable */
java.lang.String getSettingsOrDefault(
        java.lang.String key,
        /* nullable */
java.lang.String defaultValue);
    /**
     * map<string, string> settings = 1;
     */

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

    /**
     * map<string, .sonarlint.RuleSet> rule_sets_by_language_key = 2;
     */
    int getRuleSetsByLanguageKeyCount();
    /**
     * map<string, .sonarlint.RuleSet> rule_sets_by_language_key = 2;
     */
    boolean containsRuleSetsByLanguageKey(
        java.lang.String key);
    /**
     * Use {@link #getRuleSetsByLanguageKeyMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map
    getRuleSetsByLanguageKey();
    /**
     * map<string, .sonarlint.RuleSet> rule_sets_by_language_key = 2;
     */
    java.util.Map
    getRuleSetsByLanguageKeyMap();
    /**
     * map<string, .sonarlint.RuleSet> rule_sets_by_language_key = 2;
     */

    /* nullable */
org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet getRuleSetsByLanguageKeyOrDefault(
        java.lang.String key,
        /* nullable */
org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet defaultValue);
    /**
     * map<string, .sonarlint.RuleSet> rule_sets_by_language_key = 2;
     */

    org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet getRuleSetsByLanguageKeyOrThrow(
        java.lang.String key);

    /**
     * uint32 schema_version = 3;
     * @return The schemaVersion.
     */
    int getSchemaVersion();
  }
  /**
   * Protobuf type {@code sonarlint.AnalyzerConfiguration}
   */
  public static final class AnalyzerConfiguration extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:sonarlint.AnalyzerConfiguration)
      AnalyzerConfigurationOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AnalyzerConfiguration.newBuilder() to construct.
    private AnalyzerConfiguration(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private AnalyzerConfiguration() {
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_AnalyzerConfiguration_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 1:
          return internalGetSettings();
        case 2:
          return internalGetRuleSetsByLanguageKey();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_AnalyzerConfiguration_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration.class, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration.Builder.class);
    }

    public static final int SETTINGS_FIELD_NUMBER = 1;
    private static final class SettingsDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.String, java.lang.String> defaultEntry =
              com.google.protobuf.MapEntry
              .newDefaultInstance(
                  org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_AnalyzerConfiguration_SettingsEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "");
    }
    private com.google.protobuf.MapField<
        java.lang.String, java.lang.String> settings_;
    private com.google.protobuf.MapField
    internalGetSettings() {
      if (settings_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            SettingsDefaultEntryHolder.defaultEntry);
      }
      return settings_;
    }

    public int getSettingsCount() {
      return internalGetSettings().getMap().size();
    }
    /**
     * map<string, string> settings = 1;
     */

    @java.lang.Override
    public boolean containsSettings(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      return internalGetSettings().getMap().containsKey(key);
    }
    /**
     * Use {@link #getSettingsMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map getSettings() {
      return getSettingsMap();
    }
    /**
     * map<string, string> settings = 1;
     */
    @java.lang.Override

    public java.util.Map getSettingsMap() {
      return internalGetSettings().getMap();
    }
    /**
     * map<string, string> settings = 1;
     */
    @java.lang.Override

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

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

    public static final int RULE_SETS_BY_LANGUAGE_KEY_FIELD_NUMBER = 2;
    private static final class RuleSetsByLanguageKeyDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.String, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet> defaultEntry =
              com.google.protobuf.MapEntry
              .newDefaultInstance(
                  org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_AnalyzerConfiguration_RuleSetsByLanguageKeyEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.MESSAGE,
                  org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.getDefaultInstance());
    }
    private com.google.protobuf.MapField<
        java.lang.String, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet> ruleSetsByLanguageKey_;
    private com.google.protobuf.MapField
    internalGetRuleSetsByLanguageKey() {
      if (ruleSetsByLanguageKey_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            RuleSetsByLanguageKeyDefaultEntryHolder.defaultEntry);
      }
      return ruleSetsByLanguageKey_;
    }

    public int getRuleSetsByLanguageKeyCount() {
      return internalGetRuleSetsByLanguageKey().getMap().size();
    }
    /**
     * map<string, .sonarlint.RuleSet> rule_sets_by_language_key = 2;
     */

    @java.lang.Override
    public boolean containsRuleSetsByLanguageKey(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      return internalGetRuleSetsByLanguageKey().getMap().containsKey(key);
    }
    /**
     * Use {@link #getRuleSetsByLanguageKeyMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map getRuleSetsByLanguageKey() {
      return getRuleSetsByLanguageKeyMap();
    }
    /**
     * map<string, .sonarlint.RuleSet> rule_sets_by_language_key = 2;
     */
    @java.lang.Override

    public java.util.Map getRuleSetsByLanguageKeyMap() {
      return internalGetRuleSetsByLanguageKey().getMap();
    }
    /**
     * map<string, .sonarlint.RuleSet> rule_sets_by_language_key = 2;
     */
    @java.lang.Override

    public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet getRuleSetsByLanguageKeyOrDefault(
        java.lang.String key,
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet defaultValue) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map map =
          internalGetRuleSetsByLanguageKey().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * map<string, .sonarlint.RuleSet> rule_sets_by_language_key = 2;
     */
    @java.lang.Override

    public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet getRuleSetsByLanguageKeyOrThrow(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map map =
          internalGetRuleSetsByLanguageKey().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int SCHEMA_VERSION_FIELD_NUMBER = 3;
    private int schemaVersion_;
    /**
     * uint32 schema_version = 3;
     * @return The schemaVersion.
     */
    @java.lang.Override
    public int getSchemaVersion() {
      return schemaVersion_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      com.google.protobuf.GeneratedMessageV3
        .serializeStringMapTo(
          output,
          internalGetSettings(),
          SettingsDefaultEntryHolder.defaultEntry,
          1);
      com.google.protobuf.GeneratedMessageV3
        .serializeStringMapTo(
          output,
          internalGetRuleSetsByLanguageKey(),
          RuleSetsByLanguageKeyDefaultEntryHolder.defaultEntry,
          2);
      if (schemaVersion_ != 0) {
        output.writeUInt32(3, schemaVersion_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      for (java.util.Map.Entry entry
           : internalGetSettings().getMap().entrySet()) {
        com.google.protobuf.MapEntry
        settings__ = SettingsDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, settings__);
      }
      for (java.util.Map.Entry entry
           : internalGetRuleSetsByLanguageKey().getMap().entrySet()) {
        com.google.protobuf.MapEntry
        ruleSetsByLanguageKey__ = RuleSetsByLanguageKeyDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, ruleSetsByLanguageKey__);
      }
      if (schemaVersion_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, schemaVersion_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration)) {
        return super.equals(obj);
      }
      org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration other = (org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration) obj;

      if (!internalGetSettings().equals(
          other.internalGetSettings())) return false;
      if (!internalGetRuleSetsByLanguageKey().equals(
          other.internalGetRuleSetsByLanguageKey())) return false;
      if (getSchemaVersion()
          != other.getSchemaVersion()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (!internalGetSettings().getMap().isEmpty()) {
        hash = (37 * hash) + SETTINGS_FIELD_NUMBER;
        hash = (53 * hash) + internalGetSettings().hashCode();
      }
      if (!internalGetRuleSetsByLanguageKey().getMap().isEmpty()) {
        hash = (37 * hash) + RULE_SETS_BY_LANGUAGE_KEY_FIELD_NUMBER;
        hash = (53 * hash) + internalGetRuleSetsByLanguageKey().hashCode();
      }
      hash = (37 * hash) + SCHEMA_VERSION_FIELD_NUMBER;
      hash = (53 * hash) + getSchemaVersion();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code sonarlint.AnalyzerConfiguration}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:sonarlint.AnalyzerConfiguration)
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfigurationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_AnalyzerConfiguration_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 1:
            return internalGetSettings();
          case 2:
            return internalGetRuleSetsByLanguageKey();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 1:
            return internalGetMutableSettings();
          case 2:
            return internalGetMutableRuleSetsByLanguageKey();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_AnalyzerConfiguration_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration.class, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration.Builder.class);
      }

      // Construct using org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        internalGetMutableSettings().clear();
        internalGetMutableRuleSetsByLanguageKey().clear();
        schemaVersion_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_AnalyzerConfiguration_descriptor;
      }

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration getDefaultInstanceForType() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration.getDefaultInstance();
      }

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration build() {
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration buildPartial() {
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration result = new org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration(this);
        int from_bitField0_ = bitField0_;
        result.settings_ = internalGetSettings();
        result.settings_.makeImmutable();
        result.ruleSetsByLanguageKey_ = internalGetRuleSetsByLanguageKey();
        result.ruleSetsByLanguageKey_.makeImmutable();
        result.schemaVersion_ = schemaVersion_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration) {
          return mergeFrom((org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration other) {
        if (other == org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration.getDefaultInstance()) return this;
        internalGetMutableSettings().mergeFrom(
            other.internalGetSettings());
        internalGetMutableRuleSetsByLanguageKey().mergeFrom(
            other.internalGetRuleSetsByLanguageKey());
        if (other.getSchemaVersion() != 0) {
          setSchemaVersion(other.getSchemaVersion());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                com.google.protobuf.MapEntry
                settings__ = input.readMessage(
                    SettingsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                internalGetMutableSettings().getMutableMap().put(
                    settings__.getKey(), settings__.getValue());
                break;
              } // case 10
              case 18: {
                com.google.protobuf.MapEntry
                ruleSetsByLanguageKey__ = input.readMessage(
                    RuleSetsByLanguageKeyDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                internalGetMutableRuleSetsByLanguageKey().getMutableMap().put(
                    ruleSetsByLanguageKey__.getKey(), ruleSetsByLanguageKey__.getValue());
                break;
              } // case 18
              case 24: {
                schemaVersion_ = input.readUInt32();

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

      private com.google.protobuf.MapField<
          java.lang.String, java.lang.String> settings_;
      private com.google.protobuf.MapField
      internalGetSettings() {
        if (settings_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              SettingsDefaultEntryHolder.defaultEntry);
        }
        return settings_;
      }
      private com.google.protobuf.MapField
      internalGetMutableSettings() {
        onChanged();;
        if (settings_ == null) {
          settings_ = com.google.protobuf.MapField.newMapField(
              SettingsDefaultEntryHolder.defaultEntry);
        }
        if (!settings_.isMutable()) {
          settings_ = settings_.copy();
        }
        return settings_;
      }

      public int getSettingsCount() {
        return internalGetSettings().getMap().size();
      }
      /**
       * map<string, string> settings = 1;
       */

      @java.lang.Override
      public boolean containsSettings(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        return internalGetSettings().getMap().containsKey(key);
      }
      /**
       * Use {@link #getSettingsMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map getSettings() {
        return getSettingsMap();
      }
      /**
       * map<string, string> settings = 1;
       */
      @java.lang.Override

      public java.util.Map getSettingsMap() {
        return internalGetSettings().getMap();
      }
      /**
       * map<string, string> settings = 1;
       */
      @java.lang.Override

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

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

      public Builder clearSettings() {
        internalGetMutableSettings().getMutableMap()
            .clear();
        return this;
      }
      /**
       * map<string, string> settings = 1;
       */

      public Builder removeSettings(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        internalGetMutableSettings().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map
      getMutableSettings() {
        return internalGetMutableSettings().getMutableMap();
      }
      /**
       * map<string, string> settings = 1;
       */
      public Builder putSettings(
          java.lang.String key,
          java.lang.String value) {
        if (key == null) { throw new NullPointerException("map key"); }
        if (value == null) {
  throw new NullPointerException("map value");
}

        internalGetMutableSettings().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * map<string, string> settings = 1;
       */

      public Builder putAllSettings(
          java.util.Map values) {
        internalGetMutableSettings().getMutableMap()
            .putAll(values);
        return this;
      }

      private com.google.protobuf.MapField<
          java.lang.String, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet> ruleSetsByLanguageKey_;
      private com.google.protobuf.MapField
      internalGetRuleSetsByLanguageKey() {
        if (ruleSetsByLanguageKey_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              RuleSetsByLanguageKeyDefaultEntryHolder.defaultEntry);
        }
        return ruleSetsByLanguageKey_;
      }
      private com.google.protobuf.MapField
      internalGetMutableRuleSetsByLanguageKey() {
        onChanged();;
        if (ruleSetsByLanguageKey_ == null) {
          ruleSetsByLanguageKey_ = com.google.protobuf.MapField.newMapField(
              RuleSetsByLanguageKeyDefaultEntryHolder.defaultEntry);
        }
        if (!ruleSetsByLanguageKey_.isMutable()) {
          ruleSetsByLanguageKey_ = ruleSetsByLanguageKey_.copy();
        }
        return ruleSetsByLanguageKey_;
      }

      public int getRuleSetsByLanguageKeyCount() {
        return internalGetRuleSetsByLanguageKey().getMap().size();
      }
      /**
       * map<string, .sonarlint.RuleSet> rule_sets_by_language_key = 2;
       */

      @java.lang.Override
      public boolean containsRuleSetsByLanguageKey(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        return internalGetRuleSetsByLanguageKey().getMap().containsKey(key);
      }
      /**
       * Use {@link #getRuleSetsByLanguageKeyMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map getRuleSetsByLanguageKey() {
        return getRuleSetsByLanguageKeyMap();
      }
      /**
       * map<string, .sonarlint.RuleSet> rule_sets_by_language_key = 2;
       */
      @java.lang.Override

      public java.util.Map getRuleSetsByLanguageKeyMap() {
        return internalGetRuleSetsByLanguageKey().getMap();
      }
      /**
       * map<string, .sonarlint.RuleSet> rule_sets_by_language_key = 2;
       */
      @java.lang.Override

      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet getRuleSetsByLanguageKeyOrDefault(
          java.lang.String key,
          org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet defaultValue) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map map =
            internalGetRuleSetsByLanguageKey().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * map<string, .sonarlint.RuleSet> rule_sets_by_language_key = 2;
       */
      @java.lang.Override

      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet getRuleSetsByLanguageKeyOrThrow(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map map =
            internalGetRuleSetsByLanguageKey().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearRuleSetsByLanguageKey() {
        internalGetMutableRuleSetsByLanguageKey().getMutableMap()
            .clear();
        return this;
      }
      /**
       * map<string, .sonarlint.RuleSet> rule_sets_by_language_key = 2;
       */

      public Builder removeRuleSetsByLanguageKey(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        internalGetMutableRuleSetsByLanguageKey().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map
      getMutableRuleSetsByLanguageKey() {
        return internalGetMutableRuleSetsByLanguageKey().getMutableMap();
      }
      /**
       * map<string, .sonarlint.RuleSet> rule_sets_by_language_key = 2;
       */
      public Builder putRuleSetsByLanguageKey(
          java.lang.String key,
          org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet value) {
        if (key == null) { throw new NullPointerException("map key"); }
        if (value == null) {
  throw new NullPointerException("map value");
}

        internalGetMutableRuleSetsByLanguageKey().getMutableMap()
            .put(key, value);
        return this;
      }
      /**
       * map<string, .sonarlint.RuleSet> rule_sets_by_language_key = 2;
       */

      public Builder putAllRuleSetsByLanguageKey(
          java.util.Map values) {
        internalGetMutableRuleSetsByLanguageKey().getMutableMap()
            .putAll(values);
        return this;
      }

      private int schemaVersion_ ;
      /**
       * uint32 schema_version = 3;
       * @return The schemaVersion.
       */
      @java.lang.Override
      public int getSchemaVersion() {
        return schemaVersion_;
      }
      /**
       * uint32 schema_version = 3;
       * @param value The schemaVersion to set.
       * @return This builder for chaining.
       */
      public Builder setSchemaVersion(int value) {
        
        schemaVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * uint32 schema_version = 3;
       * @return This builder for chaining.
       */
      public Builder clearSchemaVersion() {
        
        schemaVersion_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:sonarlint.AnalyzerConfiguration)
    }

    // @@protoc_insertion_point(class_scope:sonarlint.AnalyzerConfiguration)
    private static final org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration();
    }

    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.AnalyzerConfiguration getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RuleSetOrBuilder extends
      // @@protoc_insertion_point(interface_extends:sonarlint.RuleSet)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated .sonarlint.RuleSet.ActiveRule rule = 1;
     */
    java.util.List 
        getRuleList();
    /**
     * repeated .sonarlint.RuleSet.ActiveRule rule = 1;
     */
    org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule getRule(int index);
    /**
     * repeated .sonarlint.RuleSet.ActiveRule rule = 1;
     */
    int getRuleCount();
    /**
     * repeated .sonarlint.RuleSet.ActiveRule rule = 1;
     */
    java.util.List 
        getRuleOrBuilderList();
    /**
     * repeated .sonarlint.RuleSet.ActiveRule rule = 1;
     */
    org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRuleOrBuilder getRuleOrBuilder(
        int index);

    /**
     * string last_modified = 3;
     * @return The lastModified.
     */
    java.lang.String getLastModified();
    /**
     * string last_modified = 3;
     * @return The bytes for lastModified.
     */
    com.google.protobuf.ByteString
        getLastModifiedBytes();
  }
  /**
   * Protobuf type {@code sonarlint.RuleSet}
   */
  public static final class RuleSet extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:sonarlint.RuleSet)
      RuleSetOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RuleSet.newBuilder() to construct.
    private RuleSet(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private RuleSet() {
      rule_ = java.util.Collections.emptyList();
      lastModified_ = "";
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_RuleSet_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_RuleSet_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.class, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.Builder.class);
    }

    public interface ActiveRuleOrBuilder extends
        // @@protoc_insertion_point(interface_extends:sonarlint.RuleSet.ActiveRule)
        com.google.protobuf.MessageOrBuilder {

      /**
       * string rule_key = 1;
       * @return The ruleKey.
       */
      java.lang.String getRuleKey();
      /**
       * string rule_key = 1;
       * @return The bytes for ruleKey.
       */
      com.google.protobuf.ByteString
          getRuleKeyBytes();

      /**
       * string severity = 2;
       * @return The severity.
       */
      java.lang.String getSeverity();
      /**
       * string severity = 2;
       * @return The bytes for severity.
       */
      com.google.protobuf.ByteString
          getSeverityBytes();

      /**
       * string template_key = 3;
       * @return The templateKey.
       */
      java.lang.String getTemplateKey();
      /**
       * string template_key = 3;
       * @return The bytes for templateKey.
       */
      com.google.protobuf.ByteString
          getTemplateKeyBytes();

      /**
       * map<string, string> params = 4;
       */
      int getParamsCount();
      /**
       * map<string, string> params = 4;
       */
      boolean containsParams(
          java.lang.String key);
      /**
       * Use {@link #getParamsMap()} instead.
       */
      @java.lang.Deprecated
      java.util.Map
      getParams();
      /**
       * map<string, string> params = 4;
       */
      java.util.Map
      getParamsMap();
      /**
       * map<string, string> params = 4;
       */

      /* nullable */
java.lang.String getParamsOrDefault(
          java.lang.String key,
          /* nullable */
java.lang.String defaultValue);
      /**
       * map<string, string> params = 4;
       */

      java.lang.String getParamsOrThrow(
          java.lang.String key);
    }
    /**
     * Protobuf type {@code sonarlint.RuleSet.ActiveRule}
     */
    public static final class ActiveRule extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:sonarlint.RuleSet.ActiveRule)
        ActiveRuleOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use ActiveRule.newBuilder() to construct.
      private ActiveRule(com.google.protobuf.GeneratedMessageV3.Builder builder) {
        super(builder);
      }
      private ActiveRule() {
        ruleKey_ = "";
        severity_ = "";
        templateKey_ = "";
      }

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

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_RuleSet_ActiveRule_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      @java.lang.Override
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 4:
            return internalGetParams();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_RuleSet_ActiveRule_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule.class, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule.Builder.class);
      }

      public static final int RULE_KEY_FIELD_NUMBER = 1;
      private volatile java.lang.Object ruleKey_;
      /**
       * string rule_key = 1;
       * @return The ruleKey.
       */
      @java.lang.Override
      public java.lang.String getRuleKey() {
        java.lang.Object ref = ruleKey_;
        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();
          ruleKey_ = s;
          return s;
        }
      }
      /**
       * string rule_key = 1;
       * @return The bytes for ruleKey.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getRuleKeyBytes() {
        java.lang.Object ref = ruleKey_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          ruleKey_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int SEVERITY_FIELD_NUMBER = 2;
      private volatile java.lang.Object severity_;
      /**
       * string severity = 2;
       * @return The severity.
       */
      @java.lang.Override
      public java.lang.String getSeverity() {
        java.lang.Object ref = severity_;
        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();
          severity_ = s;
          return s;
        }
      }
      /**
       * string severity = 2;
       * @return The bytes for severity.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getSeverityBytes() {
        java.lang.Object ref = severity_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          severity_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int TEMPLATE_KEY_FIELD_NUMBER = 3;
      private volatile java.lang.Object templateKey_;
      /**
       * string template_key = 3;
       * @return The templateKey.
       */
      @java.lang.Override
      public java.lang.String getTemplateKey() {
        java.lang.Object ref = templateKey_;
        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();
          templateKey_ = s;
          return s;
        }
      }
      /**
       * string template_key = 3;
       * @return The bytes for templateKey.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getTemplateKeyBytes() {
        java.lang.Object ref = templateKey_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          templateKey_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int PARAMS_FIELD_NUMBER = 4;
      private static final class ParamsDefaultEntryHolder {
        static final com.google.protobuf.MapEntry<
            java.lang.String, java.lang.String> defaultEntry =
                com.google.protobuf.MapEntry
                .newDefaultInstance(
                    org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_RuleSet_ActiveRule_ParamsEntry_descriptor, 
                    com.google.protobuf.WireFormat.FieldType.STRING,
                    "",
                    com.google.protobuf.WireFormat.FieldType.STRING,
                    "");
      }
      private com.google.protobuf.MapField<
          java.lang.String, java.lang.String> params_;
      private com.google.protobuf.MapField
      internalGetParams() {
        if (params_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              ParamsDefaultEntryHolder.defaultEntry);
        }
        return params_;
      }

      public int getParamsCount() {
        return internalGetParams().getMap().size();
      }
      /**
       * map<string, string> params = 4;
       */

      @java.lang.Override
      public boolean containsParams(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        return internalGetParams().getMap().containsKey(key);
      }
      /**
       * Use {@link #getParamsMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map getParams() {
        return getParamsMap();
      }
      /**
       * map<string, string> params = 4;
       */
      @java.lang.Override

      public java.util.Map getParamsMap() {
        return internalGetParams().getMap();
      }
      /**
       * map<string, string> params = 4;
       */
      @java.lang.Override

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

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

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

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(ruleKey_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, ruleKey_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(severity_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 2, severity_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(templateKey_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 3, templateKey_);
        }
        com.google.protobuf.GeneratedMessageV3
          .serializeStringMapTo(
            output,
            internalGetParams(),
            ParamsDefaultEntryHolder.defaultEntry,
            4);
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(ruleKey_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, ruleKey_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(severity_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, severity_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(templateKey_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, templateKey_);
        }
        for (java.util.Map.Entry entry
             : internalGetParams().getMap().entrySet()) {
          com.google.protobuf.MapEntry
          params__ = ParamsDefaultEntryHolder.defaultEntry.newBuilderForType()
              .setKey(entry.getKey())
              .setValue(entry.getValue())
              .build();
          size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(4, params__);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule)) {
          return super.equals(obj);
        }
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule other = (org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule) obj;

        if (!getRuleKey()
            .equals(other.getRuleKey())) return false;
        if (!getSeverity()
            .equals(other.getSeverity())) return false;
        if (!getTemplateKey()
            .equals(other.getTemplateKey())) return false;
        if (!internalGetParams().equals(
            other.internalGetParams())) return false;
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + RULE_KEY_FIELD_NUMBER;
        hash = (53 * hash) + getRuleKey().hashCode();
        hash = (37 * hash) + SEVERITY_FIELD_NUMBER;
        hash = (53 * hash) + getSeverity().hashCode();
        hash = (37 * hash) + TEMPLATE_KEY_FIELD_NUMBER;
        hash = (53 * hash) + getTemplateKey().hashCode();
        if (!internalGetParams().getMap().isEmpty()) {
          hash = (37 * hash) + PARAMS_FIELD_NUMBER;
          hash = (53 * hash) + internalGetParams().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code sonarlint.RuleSet.ActiveRule}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder implements
          // @@protoc_insertion_point(builder_implements:sonarlint.RuleSet.ActiveRule)
          org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRuleOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_RuleSet_ActiveRule_descriptor;
        }

        @SuppressWarnings({"rawtypes"})
        protected com.google.protobuf.MapField internalGetMapField(
            int number) {
          switch (number) {
            case 4:
              return internalGetParams();
            default:
              throw new RuntimeException(
                  "Invalid map field number: " + number);
          }
        }
        @SuppressWarnings({"rawtypes"})
        protected com.google.protobuf.MapField internalGetMutableMapField(
            int number) {
          switch (number) {
            case 4:
              return internalGetMutableParams();
            default:
              throw new RuntimeException(
                  "Invalid map field number: " + number);
          }
        }
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_RuleSet_ActiveRule_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule.class, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule.Builder.class);
        }

        // Construct using org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule.newBuilder()
        private Builder() {

        }

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

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

          severity_ = "";

          templateKey_ = "";

          internalGetMutableParams().clear();
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_RuleSet_ActiveRule_descriptor;
        }

        @java.lang.Override
        public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule getDefaultInstanceForType() {
          return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule.getDefaultInstance();
        }

        @java.lang.Override
        public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule build() {
          org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule buildPartial() {
          org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule result = new org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule(this);
          int from_bitField0_ = bitField0_;
          result.ruleKey_ = ruleKey_;
          result.severity_ = severity_;
          result.templateKey_ = templateKey_;
          result.params_ = internalGetParams();
          result.params_.makeImmutable();
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule) {
            return mergeFrom((org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule other) {
          if (other == org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule.getDefaultInstance()) return this;
          if (!other.getRuleKey().isEmpty()) {
            ruleKey_ = other.ruleKey_;
            onChanged();
          }
          if (!other.getSeverity().isEmpty()) {
            severity_ = other.severity_;
            onChanged();
          }
          if (!other.getTemplateKey().isEmpty()) {
            templateKey_ = other.templateKey_;
            onChanged();
          }
          internalGetMutableParams().mergeFrom(
              other.internalGetParams());
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

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

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

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

                  break;
                } // case 18
                case 26: {
                  templateKey_ = input.readStringRequireUtf8();

                  break;
                } // case 26
                case 34: {
                  com.google.protobuf.MapEntry
                  params__ = input.readMessage(
                      ParamsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                  internalGetMutableParams().getMutableMap().put(
                      params__.getKey(), params__.getValue());
                  break;
                } // case 34
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;

        private java.lang.Object ruleKey_ = "";
        /**
         * string rule_key = 1;
         * @return The ruleKey.
         */
        public java.lang.String getRuleKey() {
          java.lang.Object ref = ruleKey_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            ruleKey_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * string rule_key = 1;
         * @return The bytes for ruleKey.
         */
        public com.google.protobuf.ByteString
            getRuleKeyBytes() {
          java.lang.Object ref = ruleKey_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            ruleKey_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * string rule_key = 1;
         * @param value The ruleKey to set.
         * @return This builder for chaining.
         */
        public Builder setRuleKey(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          ruleKey_ = value;
          onChanged();
          return this;
        }
        /**
         * string rule_key = 1;
         * @return This builder for chaining.
         */
        public Builder clearRuleKey() {
          
          ruleKey_ = getDefaultInstance().getRuleKey();
          onChanged();
          return this;
        }
        /**
         * string rule_key = 1;
         * @param value The bytes for ruleKey to set.
         * @return This builder for chaining.
         */
        public Builder setRuleKeyBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          ruleKey_ = value;
          onChanged();
          return this;
        }

        private java.lang.Object severity_ = "";
        /**
         * string severity = 2;
         * @return The severity.
         */
        public java.lang.String getSeverity() {
          java.lang.Object ref = severity_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            severity_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * string severity = 2;
         * @return The bytes for severity.
         */
        public com.google.protobuf.ByteString
            getSeverityBytes() {
          java.lang.Object ref = severity_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            severity_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * string severity = 2;
         * @param value The severity to set.
         * @return This builder for chaining.
         */
        public Builder setSeverity(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          severity_ = value;
          onChanged();
          return this;
        }
        /**
         * string severity = 2;
         * @return This builder for chaining.
         */
        public Builder clearSeverity() {
          
          severity_ = getDefaultInstance().getSeverity();
          onChanged();
          return this;
        }
        /**
         * string severity = 2;
         * @param value The bytes for severity to set.
         * @return This builder for chaining.
         */
        public Builder setSeverityBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          severity_ = value;
          onChanged();
          return this;
        }

        private java.lang.Object templateKey_ = "";
        /**
         * string template_key = 3;
         * @return The templateKey.
         */
        public java.lang.String getTemplateKey() {
          java.lang.Object ref = templateKey_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            templateKey_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * string template_key = 3;
         * @return The bytes for templateKey.
         */
        public com.google.protobuf.ByteString
            getTemplateKeyBytes() {
          java.lang.Object ref = templateKey_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            templateKey_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * string template_key = 3;
         * @param value The templateKey to set.
         * @return This builder for chaining.
         */
        public Builder setTemplateKey(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          templateKey_ = value;
          onChanged();
          return this;
        }
        /**
         * string template_key = 3;
         * @return This builder for chaining.
         */
        public Builder clearTemplateKey() {
          
          templateKey_ = getDefaultInstance().getTemplateKey();
          onChanged();
          return this;
        }
        /**
         * string template_key = 3;
         * @param value The bytes for templateKey to set.
         * @return This builder for chaining.
         */
        public Builder setTemplateKeyBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          templateKey_ = value;
          onChanged();
          return this;
        }

        private com.google.protobuf.MapField<
            java.lang.String, java.lang.String> params_;
        private com.google.protobuf.MapField
        internalGetParams() {
          if (params_ == null) {
            return com.google.protobuf.MapField.emptyMapField(
                ParamsDefaultEntryHolder.defaultEntry);
          }
          return params_;
        }
        private com.google.protobuf.MapField
        internalGetMutableParams() {
          onChanged();;
          if (params_ == null) {
            params_ = com.google.protobuf.MapField.newMapField(
                ParamsDefaultEntryHolder.defaultEntry);
          }
          if (!params_.isMutable()) {
            params_ = params_.copy();
          }
          return params_;
        }

        public int getParamsCount() {
          return internalGetParams().getMap().size();
        }
        /**
         * map<string, string> params = 4;
         */

        @java.lang.Override
        public boolean containsParams(
            java.lang.String key) {
          if (key == null) { throw new NullPointerException("map key"); }
          return internalGetParams().getMap().containsKey(key);
        }
        /**
         * Use {@link #getParamsMap()} instead.
         */
        @java.lang.Override
        @java.lang.Deprecated
        public java.util.Map getParams() {
          return getParamsMap();
        }
        /**
         * map<string, string> params = 4;
         */
        @java.lang.Override

        public java.util.Map getParamsMap() {
          return internalGetParams().getMap();
        }
        /**
         * map<string, string> params = 4;
         */
        @java.lang.Override

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

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

        public Builder clearParams() {
          internalGetMutableParams().getMutableMap()
              .clear();
          return this;
        }
        /**
         * map<string, string> params = 4;
         */

        public Builder removeParams(
            java.lang.String key) {
          if (key == null) { throw new NullPointerException("map key"); }
          internalGetMutableParams().getMutableMap()
              .remove(key);
          return this;
        }
        /**
         * Use alternate mutation accessors instead.
         */
        @java.lang.Deprecated
        public java.util.Map
        getMutableParams() {
          return internalGetMutableParams().getMutableMap();
        }
        /**
         * map<string, string> params = 4;
         */
        public Builder putParams(
            java.lang.String key,
            java.lang.String value) {
          if (key == null) { throw new NullPointerException("map key"); }
          if (value == null) {
  throw new NullPointerException("map value");
}

          internalGetMutableParams().getMutableMap()
              .put(key, value);
          return this;
        }
        /**
         * map<string, string> params = 4;
         */

        public Builder putAllParams(
            java.util.Map values) {
          internalGetMutableParams().getMutableMap()
              .putAll(values);
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

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


        // @@protoc_insertion_point(builder_scope:sonarlint.RuleSet.ActiveRule)
      }

      // @@protoc_insertion_point(class_scope:sonarlint.RuleSet.ActiveRule)
      private static final org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule();
      }

      public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public static final int RULE_FIELD_NUMBER = 1;
    private java.util.List rule_;
    /**
     * repeated .sonarlint.RuleSet.ActiveRule rule = 1;
     */
    @java.lang.Override
    public java.util.List getRuleList() {
      return rule_;
    }
    /**
     * repeated .sonarlint.RuleSet.ActiveRule rule = 1;
     */
    @java.lang.Override
    public java.util.List 
        getRuleOrBuilderList() {
      return rule_;
    }
    /**
     * repeated .sonarlint.RuleSet.ActiveRule rule = 1;
     */
    @java.lang.Override
    public int getRuleCount() {
      return rule_.size();
    }
    /**
     * repeated .sonarlint.RuleSet.ActiveRule rule = 1;
     */
    @java.lang.Override
    public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule getRule(int index) {
      return rule_.get(index);
    }
    /**
     * repeated .sonarlint.RuleSet.ActiveRule rule = 1;
     */
    @java.lang.Override
    public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRuleOrBuilder getRuleOrBuilder(
        int index) {
      return rule_.get(index);
    }

    public static final int LAST_MODIFIED_FIELD_NUMBER = 3;
    private volatile java.lang.Object lastModified_;
    /**
     * string last_modified = 3;
     * @return The lastModified.
     */
    @java.lang.Override
    public java.lang.String getLastModified() {
      java.lang.Object ref = lastModified_;
      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();
        lastModified_ = s;
        return s;
      }
    }
    /**
     * string last_modified = 3;
     * @return The bytes for lastModified.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getLastModifiedBytes() {
      java.lang.Object ref = lastModified_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        lastModified_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < rule_.size(); i++) {
        output.writeMessage(1, rule_.get(i));
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(lastModified_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, lastModified_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      for (int i = 0; i < rule_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, rule_.get(i));
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(lastModified_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, lastModified_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet)) {
        return super.equals(obj);
      }
      org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet other = (org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet) obj;

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

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getRuleCount() > 0) {
        hash = (37 * hash) + RULE_FIELD_NUMBER;
        hash = (53 * hash) + getRuleList().hashCode();
      }
      hash = (37 * hash) + LAST_MODIFIED_FIELD_NUMBER;
      hash = (53 * hash) + getLastModified().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code sonarlint.RuleSet}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:sonarlint.RuleSet)
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSetOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_RuleSet_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_RuleSet_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.class, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.Builder.class);
      }

      // Construct using org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (ruleBuilder_ == null) {
          rule_ = java.util.Collections.emptyList();
        } else {
          rule_ = null;
          ruleBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        lastModified_ = "";

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_RuleSet_descriptor;
      }

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet getDefaultInstanceForType() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.getDefaultInstance();
      }

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet build() {
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet buildPartial() {
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet result = new org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet(this);
        int from_bitField0_ = bitField0_;
        if (ruleBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            rule_ = java.util.Collections.unmodifiableList(rule_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.rule_ = rule_;
        } else {
          result.rule_ = ruleBuilder_.build();
        }
        result.lastModified_ = lastModified_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet) {
          return mergeFrom((org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet other) {
        if (other == org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.getDefaultInstance()) return this;
        if (ruleBuilder_ == null) {
          if (!other.rule_.isEmpty()) {
            if (rule_.isEmpty()) {
              rule_ = other.rule_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureRuleIsMutable();
              rule_.addAll(other.rule_);
            }
            onChanged();
          }
        } else {
          if (!other.rule_.isEmpty()) {
            if (ruleBuilder_.isEmpty()) {
              ruleBuilder_.dispose();
              ruleBuilder_ = null;
              rule_ = other.rule_;
              bitField0_ = (bitField0_ & ~0x00000001);
              ruleBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getRuleFieldBuilder() : null;
            } else {
              ruleBuilder_.addAllMessages(other.rule_);
            }
          }
        }
        if (!other.getLastModified().isEmpty()) {
          lastModified_ = other.lastModified_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule m =
                    input.readMessage(
                        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule.parser(),
                        extensionRegistry);
                if (ruleBuilder_ == null) {
                  ensureRuleIsMutable();
                  rule_.add(m);
                } else {
                  ruleBuilder_.addMessage(m);
                }
                break;
              } // case 10
              case 26: {
                lastModified_ = input.readStringRequireUtf8();

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

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

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule.Builder, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRuleOrBuilder> ruleBuilder_;

      /**
       * repeated .sonarlint.RuleSet.ActiveRule rule = 1;
       */
      public java.util.List getRuleList() {
        if (ruleBuilder_ == null) {
          return java.util.Collections.unmodifiableList(rule_);
        } else {
          return ruleBuilder_.getMessageList();
        }
      }
      /**
       * repeated .sonarlint.RuleSet.ActiveRule rule = 1;
       */
      public int getRuleCount() {
        if (ruleBuilder_ == null) {
          return rule_.size();
        } else {
          return ruleBuilder_.getCount();
        }
      }
      /**
       * repeated .sonarlint.RuleSet.ActiveRule rule = 1;
       */
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule getRule(int index) {
        if (ruleBuilder_ == null) {
          return rule_.get(index);
        } else {
          return ruleBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .sonarlint.RuleSet.ActiveRule rule = 1;
       */
      public Builder setRule(
          int index, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule value) {
        if (ruleBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRuleIsMutable();
          rule_.set(index, value);
          onChanged();
        } else {
          ruleBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .sonarlint.RuleSet.ActiveRule rule = 1;
       */
      public Builder setRule(
          int index, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule.Builder builderForValue) {
        if (ruleBuilder_ == null) {
          ensureRuleIsMutable();
          rule_.set(index, builderForValue.build());
          onChanged();
        } else {
          ruleBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .sonarlint.RuleSet.ActiveRule rule = 1;
       */
      public Builder addRule(org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule value) {
        if (ruleBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRuleIsMutable();
          rule_.add(value);
          onChanged();
        } else {
          ruleBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .sonarlint.RuleSet.ActiveRule rule = 1;
       */
      public Builder addRule(
          int index, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule value) {
        if (ruleBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRuleIsMutable();
          rule_.add(index, value);
          onChanged();
        } else {
          ruleBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .sonarlint.RuleSet.ActiveRule rule = 1;
       */
      public Builder addRule(
          org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule.Builder builderForValue) {
        if (ruleBuilder_ == null) {
          ensureRuleIsMutable();
          rule_.add(builderForValue.build());
          onChanged();
        } else {
          ruleBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .sonarlint.RuleSet.ActiveRule rule = 1;
       */
      public Builder addRule(
          int index, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule.Builder builderForValue) {
        if (ruleBuilder_ == null) {
          ensureRuleIsMutable();
          rule_.add(index, builderForValue.build());
          onChanged();
        } else {
          ruleBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .sonarlint.RuleSet.ActiveRule rule = 1;
       */
      public Builder addAllRule(
          java.lang.Iterable values) {
        if (ruleBuilder_ == null) {
          ensureRuleIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, rule_);
          onChanged();
        } else {
          ruleBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .sonarlint.RuleSet.ActiveRule rule = 1;
       */
      public Builder clearRule() {
        if (ruleBuilder_ == null) {
          rule_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          ruleBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .sonarlint.RuleSet.ActiveRule rule = 1;
       */
      public Builder removeRule(int index) {
        if (ruleBuilder_ == null) {
          ensureRuleIsMutable();
          rule_.remove(index);
          onChanged();
        } else {
          ruleBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .sonarlint.RuleSet.ActiveRule rule = 1;
       */
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule.Builder getRuleBuilder(
          int index) {
        return getRuleFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .sonarlint.RuleSet.ActiveRule rule = 1;
       */
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRuleOrBuilder getRuleOrBuilder(
          int index) {
        if (ruleBuilder_ == null) {
          return rule_.get(index);  } else {
          return ruleBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .sonarlint.RuleSet.ActiveRule rule = 1;
       */
      public java.util.List 
           getRuleOrBuilderList() {
        if (ruleBuilder_ != null) {
          return ruleBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(rule_);
        }
      }
      /**
       * repeated .sonarlint.RuleSet.ActiveRule rule = 1;
       */
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule.Builder addRuleBuilder() {
        return getRuleFieldBuilder().addBuilder(
            org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule.getDefaultInstance());
      }
      /**
       * repeated .sonarlint.RuleSet.ActiveRule rule = 1;
       */
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule.Builder addRuleBuilder(
          int index) {
        return getRuleFieldBuilder().addBuilder(
            index, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule.getDefaultInstance());
      }
      /**
       * repeated .sonarlint.RuleSet.ActiveRule rule = 1;
       */
      public java.util.List 
           getRuleBuilderList() {
        return getRuleFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule.Builder, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRuleOrBuilder> 
          getRuleFieldBuilder() {
        if (ruleBuilder_ == null) {
          ruleBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRule.Builder, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet.ActiveRuleOrBuilder>(
                  rule_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          rule_ = null;
        }
        return ruleBuilder_;
      }

      private java.lang.Object lastModified_ = "";
      /**
       * string last_modified = 3;
       * @return The lastModified.
       */
      public java.lang.String getLastModified() {
        java.lang.Object ref = lastModified_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          lastModified_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string last_modified = 3;
       * @return The bytes for lastModified.
       */
      public com.google.protobuf.ByteString
          getLastModifiedBytes() {
        java.lang.Object ref = lastModified_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          lastModified_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string last_modified = 3;
       * @param value The lastModified to set.
       * @return This builder for chaining.
       */
      public Builder setLastModified(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        lastModified_ = value;
        onChanged();
        return this;
      }
      /**
       * string last_modified = 3;
       * @return This builder for chaining.
       */
      public Builder clearLastModified() {
        
        lastModified_ = getDefaultInstance().getLastModified();
        onChanged();
        return this;
      }
      /**
       * string last_modified = 3;
       * @param value The bytes for lastModified to set.
       * @return This builder for chaining.
       */
      public Builder setLastModifiedBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        lastModified_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:sonarlint.RuleSet)
    }

    // @@protoc_insertion_point(class_scope:sonarlint.RuleSet)
    private static final org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet();
    }

    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.RuleSet getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ProjectBranchesOrBuilder extends
      // @@protoc_insertion_point(interface_extends:sonarlint.ProjectBranches)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated string branch_name = 1;
     * @return A list containing the branchName.
     */
    java.util.List
        getBranchNameList();
    /**
     * repeated string branch_name = 1;
     * @return The count of branchName.
     */
    int getBranchNameCount();
    /**
     * repeated string branch_name = 1;
     * @param index The index of the element to return.
     * @return The branchName at the given index.
     */
    java.lang.String getBranchName(int index);
    /**
     * repeated string branch_name = 1;
     * @param index The index of the value to return.
     * @return The bytes of the branchName at the given index.
     */
    com.google.protobuf.ByteString
        getBranchNameBytes(int index);

    /**
     * string main_branch_name = 2;
     * @return The mainBranchName.
     */
    java.lang.String getMainBranchName();
    /**
     * string main_branch_name = 2;
     * @return The bytes for mainBranchName.
     */
    com.google.protobuf.ByteString
        getMainBranchNameBytes();
  }
  /**
   * Protobuf type {@code sonarlint.ProjectBranches}
   */
  public static final class ProjectBranches extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:sonarlint.ProjectBranches)
      ProjectBranchesOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ProjectBranches.newBuilder() to construct.
    private ProjectBranches(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private ProjectBranches() {
      branchName_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      mainBranchName_ = "";
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_ProjectBranches_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_ProjectBranches_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches.class, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches.Builder.class);
    }

    public static final int BRANCH_NAME_FIELD_NUMBER = 1;
    private com.google.protobuf.LazyStringList branchName_;
    /**
     * repeated string branch_name = 1;
     * @return A list containing the branchName.
     */
    public com.google.protobuf.ProtocolStringList
        getBranchNameList() {
      return branchName_;
    }
    /**
     * repeated string branch_name = 1;
     * @return The count of branchName.
     */
    public int getBranchNameCount() {
      return branchName_.size();
    }
    /**
     * repeated string branch_name = 1;
     * @param index The index of the element to return.
     * @return The branchName at the given index.
     */
    public java.lang.String getBranchName(int index) {
      return branchName_.get(index);
    }
    /**
     * repeated string branch_name = 1;
     * @param index The index of the value to return.
     * @return The bytes of the branchName at the given index.
     */
    public com.google.protobuf.ByteString
        getBranchNameBytes(int index) {
      return branchName_.getByteString(index);
    }

    public static final int MAIN_BRANCH_NAME_FIELD_NUMBER = 2;
    private volatile java.lang.Object mainBranchName_;
    /**
     * string main_branch_name = 2;
     * @return The mainBranchName.
     */
    @java.lang.Override
    public java.lang.String getMainBranchName() {
      java.lang.Object ref = mainBranchName_;
      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();
        mainBranchName_ = s;
        return s;
      }
    }
    /**
     * string main_branch_name = 2;
     * @return The bytes for mainBranchName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMainBranchNameBytes() {
      java.lang.Object ref = mainBranchName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        mainBranchName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < branchName_.size(); i++) {
          dataSize += computeStringSizeNoTag(branchName_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getBranchNameList().size();
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(mainBranchName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, mainBranchName_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches)) {
        return super.equals(obj);
      }
      org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches other = (org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches) obj;

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

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getBranchNameCount() > 0) {
        hash = (37 * hash) + BRANCH_NAME_FIELD_NUMBER;
        hash = (53 * hash) + getBranchNameList().hashCode();
      }
      hash = (37 * hash) + MAIN_BRANCH_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getMainBranchName().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code sonarlint.ProjectBranches}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:sonarlint.ProjectBranches)
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranchesOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_ProjectBranches_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_ProjectBranches_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches.class, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches.Builder.class);
      }

      // Construct using org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches.newBuilder()
      private Builder() {

      }

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

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

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_ProjectBranches_descriptor;
      }

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches getDefaultInstanceForType() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches.getDefaultInstance();
      }

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches build() {
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches buildPartial() {
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches result = new org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) != 0)) {
          branchName_ = branchName_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.branchName_ = branchName_;
        result.mainBranchName_ = mainBranchName_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches) {
          return mergeFrom((org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches other) {
        if (other == org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches.getDefaultInstance()) return this;
        if (!other.branchName_.isEmpty()) {
          if (branchName_.isEmpty()) {
            branchName_ = other.branchName_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureBranchNameIsMutable();
            branchName_.addAll(other.branchName_);
          }
          onChanged();
        }
        if (!other.getMainBranchName().isEmpty()) {
          mainBranchName_ = other.mainBranchName_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

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

      private com.google.protobuf.LazyStringList branchName_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureBranchNameIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          branchName_ = new com.google.protobuf.LazyStringArrayList(branchName_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * repeated string branch_name = 1;
       * @return A list containing the branchName.
       */
      public com.google.protobuf.ProtocolStringList
          getBranchNameList() {
        return branchName_.getUnmodifiableView();
      }
      /**
       * repeated string branch_name = 1;
       * @return The count of branchName.
       */
      public int getBranchNameCount() {
        return branchName_.size();
      }
      /**
       * repeated string branch_name = 1;
       * @param index The index of the element to return.
       * @return The branchName at the given index.
       */
      public java.lang.String getBranchName(int index) {
        return branchName_.get(index);
      }
      /**
       * repeated string branch_name = 1;
       * @param index The index of the value to return.
       * @return The bytes of the branchName at the given index.
       */
      public com.google.protobuf.ByteString
          getBranchNameBytes(int index) {
        return branchName_.getByteString(index);
      }
      /**
       * repeated string branch_name = 1;
       * @param index The index to set the value at.
       * @param value The branchName to set.
       * @return This builder for chaining.
       */
      public Builder setBranchName(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureBranchNameIsMutable();
        branchName_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated string branch_name = 1;
       * @param value The branchName to add.
       * @return This builder for chaining.
       */
      public Builder addBranchName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureBranchNameIsMutable();
        branchName_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated string branch_name = 1;
       * @param values The branchName to add.
       * @return This builder for chaining.
       */
      public Builder addAllBranchName(
          java.lang.Iterable values) {
        ensureBranchNameIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, branchName_);
        onChanged();
        return this;
      }
      /**
       * repeated string branch_name = 1;
       * @return This builder for chaining.
       */
      public Builder clearBranchName() {
        branchName_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * repeated string branch_name = 1;
       * @param value The bytes of the branchName to add.
       * @return This builder for chaining.
       */
      public Builder addBranchNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ensureBranchNameIsMutable();
        branchName_.add(value);
        onChanged();
        return this;
      }

      private java.lang.Object mainBranchName_ = "";
      /**
       * string main_branch_name = 2;
       * @return The mainBranchName.
       */
      public java.lang.String getMainBranchName() {
        java.lang.Object ref = mainBranchName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          mainBranchName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string main_branch_name = 2;
       * @return The bytes for mainBranchName.
       */
      public com.google.protobuf.ByteString
          getMainBranchNameBytes() {
        java.lang.Object ref = mainBranchName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          mainBranchName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string main_branch_name = 2;
       * @param value The mainBranchName to set.
       * @return This builder for chaining.
       */
      public Builder setMainBranchName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        mainBranchName_ = value;
        onChanged();
        return this;
      }
      /**
       * string main_branch_name = 2;
       * @return This builder for chaining.
       */
      public Builder clearMainBranchName() {
        
        mainBranchName_ = getDefaultInstance().getMainBranchName();
        onChanged();
        return this;
      }
      /**
       * string main_branch_name = 2;
       * @param value The bytes for mainBranchName to set.
       * @return This builder for chaining.
       */
      public Builder setMainBranchNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        mainBranchName_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:sonarlint.ProjectBranches)
    }

    // @@protoc_insertion_point(class_scope:sonarlint.ProjectBranches)
    private static final org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches();
    }

    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.ProjectBranches getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface FlowsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:sonarlint.Flows)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated .sonarlint.Flow flow = 1;
     */
    java.util.List 
        getFlowList();
    /**
     * repeated .sonarlint.Flow flow = 1;
     */
    org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow getFlow(int index);
    /**
     * repeated .sonarlint.Flow flow = 1;
     */
    int getFlowCount();
    /**
     * repeated .sonarlint.Flow flow = 1;
     */
    java.util.List 
        getFlowOrBuilderList();
    /**
     * repeated .sonarlint.Flow flow = 1;
     */
    org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.FlowOrBuilder getFlowOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code sonarlint.Flows}
   */
  public static final class Flows extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:sonarlint.Flows)
      FlowsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Flows.newBuilder() to construct.
    private Flows(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private Flows() {
      flow_ = java.util.Collections.emptyList();
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_Flows_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_Flows_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows.class, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows.Builder.class);
    }

    public static final int FLOW_FIELD_NUMBER = 1;
    private java.util.List flow_;
    /**
     * repeated .sonarlint.Flow flow = 1;
     */
    @java.lang.Override
    public java.util.List getFlowList() {
      return flow_;
    }
    /**
     * repeated .sonarlint.Flow flow = 1;
     */
    @java.lang.Override
    public java.util.List 
        getFlowOrBuilderList() {
      return flow_;
    }
    /**
     * repeated .sonarlint.Flow flow = 1;
     */
    @java.lang.Override
    public int getFlowCount() {
      return flow_.size();
    }
    /**
     * repeated .sonarlint.Flow flow = 1;
     */
    @java.lang.Override
    public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow getFlow(int index) {
      return flow_.get(index);
    }
    /**
     * repeated .sonarlint.Flow flow = 1;
     */
    @java.lang.Override
    public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.FlowOrBuilder getFlowOrBuilder(
        int index) {
      return flow_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows)) {
        return super.equals(obj);
      }
      org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows other = (org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows) obj;

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

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

    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code sonarlint.Flows}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:sonarlint.Flows)
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.FlowsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_Flows_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_Flows_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows.class, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows.Builder.class);
      }

      // Construct using org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows.newBuilder()
      private Builder() {

      }

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

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

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_Flows_descriptor;
      }

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows getDefaultInstanceForType() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows.getDefaultInstance();
      }

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows build() {
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows buildPartial() {
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows result = new org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows(this);
        int from_bitField0_ = bitField0_;
        if (flowBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            flow_ = java.util.Collections.unmodifiableList(flow_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.flow_ = flow_;
        } else {
          result.flow_ = flowBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows) {
          return mergeFrom((org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows other) {
        if (other == org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows.getDefaultInstance()) return this;
        if (flowBuilder_ == null) {
          if (!other.flow_.isEmpty()) {
            if (flow_.isEmpty()) {
              flow_ = other.flow_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureFlowIsMutable();
              flow_.addAll(other.flow_);
            }
            onChanged();
          }
        } else {
          if (!other.flow_.isEmpty()) {
            if (flowBuilder_.isEmpty()) {
              flowBuilder_.dispose();
              flowBuilder_ = null;
              flow_ = other.flow_;
              bitField0_ = (bitField0_ & ~0x00000001);
              flowBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getFlowFieldBuilder() : null;
            } else {
              flowBuilder_.addAllMessages(other.flow_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow m =
                    input.readMessage(
                        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow.parser(),
                        extensionRegistry);
                if (flowBuilder_ == null) {
                  ensureFlowIsMutable();
                  flow_.add(m);
                } else {
                  flowBuilder_.addMessage(m);
                }
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

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

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow.Builder, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.FlowOrBuilder> flowBuilder_;

      /**
       * repeated .sonarlint.Flow flow = 1;
       */
      public java.util.List getFlowList() {
        if (flowBuilder_ == null) {
          return java.util.Collections.unmodifiableList(flow_);
        } else {
          return flowBuilder_.getMessageList();
        }
      }
      /**
       * repeated .sonarlint.Flow flow = 1;
       */
      public int getFlowCount() {
        if (flowBuilder_ == null) {
          return flow_.size();
        } else {
          return flowBuilder_.getCount();
        }
      }
      /**
       * repeated .sonarlint.Flow flow = 1;
       */
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow getFlow(int index) {
        if (flowBuilder_ == null) {
          return flow_.get(index);
        } else {
          return flowBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .sonarlint.Flow flow = 1;
       */
      public Builder setFlow(
          int index, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow value) {
        if (flowBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFlowIsMutable();
          flow_.set(index, value);
          onChanged();
        } else {
          flowBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .sonarlint.Flow flow = 1;
       */
      public Builder setFlow(
          int index, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow.Builder builderForValue) {
        if (flowBuilder_ == null) {
          ensureFlowIsMutable();
          flow_.set(index, builderForValue.build());
          onChanged();
        } else {
          flowBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .sonarlint.Flow flow = 1;
       */
      public Builder addFlow(org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow value) {
        if (flowBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFlowIsMutable();
          flow_.add(value);
          onChanged();
        } else {
          flowBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .sonarlint.Flow flow = 1;
       */
      public Builder addFlow(
          int index, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow value) {
        if (flowBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFlowIsMutable();
          flow_.add(index, value);
          onChanged();
        } else {
          flowBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .sonarlint.Flow flow = 1;
       */
      public Builder addFlow(
          org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow.Builder builderForValue) {
        if (flowBuilder_ == null) {
          ensureFlowIsMutable();
          flow_.add(builderForValue.build());
          onChanged();
        } else {
          flowBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .sonarlint.Flow flow = 1;
       */
      public Builder addFlow(
          int index, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow.Builder builderForValue) {
        if (flowBuilder_ == null) {
          ensureFlowIsMutable();
          flow_.add(index, builderForValue.build());
          onChanged();
        } else {
          flowBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .sonarlint.Flow flow = 1;
       */
      public Builder addAllFlow(
          java.lang.Iterable values) {
        if (flowBuilder_ == null) {
          ensureFlowIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, flow_);
          onChanged();
        } else {
          flowBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .sonarlint.Flow flow = 1;
       */
      public Builder clearFlow() {
        if (flowBuilder_ == null) {
          flow_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          flowBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .sonarlint.Flow flow = 1;
       */
      public Builder removeFlow(int index) {
        if (flowBuilder_ == null) {
          ensureFlowIsMutable();
          flow_.remove(index);
          onChanged();
        } else {
          flowBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .sonarlint.Flow flow = 1;
       */
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow.Builder getFlowBuilder(
          int index) {
        return getFlowFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .sonarlint.Flow flow = 1;
       */
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.FlowOrBuilder getFlowOrBuilder(
          int index) {
        if (flowBuilder_ == null) {
          return flow_.get(index);  } else {
          return flowBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .sonarlint.Flow flow = 1;
       */
      public java.util.List 
           getFlowOrBuilderList() {
        if (flowBuilder_ != null) {
          return flowBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(flow_);
        }
      }
      /**
       * repeated .sonarlint.Flow flow = 1;
       */
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow.Builder addFlowBuilder() {
        return getFlowFieldBuilder().addBuilder(
            org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow.getDefaultInstance());
      }
      /**
       * repeated .sonarlint.Flow flow = 1;
       */
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow.Builder addFlowBuilder(
          int index) {
        return getFlowFieldBuilder().addBuilder(
            index, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow.getDefaultInstance());
      }
      /**
       * repeated .sonarlint.Flow flow = 1;
       */
      public java.util.List 
           getFlowBuilderList() {
        return getFlowFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow.Builder, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.FlowOrBuilder> 
          getFlowFieldBuilder() {
        if (flowBuilder_ == null) {
          flowBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow.Builder, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.FlowOrBuilder>(
                  flow_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          flow_ = null;
        }
        return flowBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:sonarlint.Flows)
    }

    // @@protoc_insertion_point(class_scope:sonarlint.Flows)
    private static final org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows();
    }

    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flows getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface FlowOrBuilder extends
      // @@protoc_insertion_point(interface_extends:sonarlint.Flow)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated .sonarlint.Location location = 1;
     */
    java.util.List 
        getLocationList();
    /**
     * repeated .sonarlint.Location location = 1;
     */
    org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location getLocation(int index);
    /**
     * repeated .sonarlint.Location location = 1;
     */
    int getLocationCount();
    /**
     * repeated .sonarlint.Location location = 1;
     */
    java.util.List 
        getLocationOrBuilderList();
    /**
     * repeated .sonarlint.Location location = 1;
     */
    org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LocationOrBuilder getLocationOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code sonarlint.Flow}
   */
  public static final class Flow extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:sonarlint.Flow)
      FlowOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Flow.newBuilder() to construct.
    private Flow(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private Flow() {
      location_ = java.util.Collections.emptyList();
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_Flow_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_Flow_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow.class, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow.Builder.class);
    }

    public static final int LOCATION_FIELD_NUMBER = 1;
    private java.util.List location_;
    /**
     * repeated .sonarlint.Location location = 1;
     */
    @java.lang.Override
    public java.util.List getLocationList() {
      return location_;
    }
    /**
     * repeated .sonarlint.Location location = 1;
     */
    @java.lang.Override
    public java.util.List 
        getLocationOrBuilderList() {
      return location_;
    }
    /**
     * repeated .sonarlint.Location location = 1;
     */
    @java.lang.Override
    public int getLocationCount() {
      return location_.size();
    }
    /**
     * repeated .sonarlint.Location location = 1;
     */
    @java.lang.Override
    public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location getLocation(int index) {
      return location_.get(index);
    }
    /**
     * repeated .sonarlint.Location location = 1;
     */
    @java.lang.Override
    public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LocationOrBuilder getLocationOrBuilder(
        int index) {
      return location_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow)) {
        return super.equals(obj);
      }
      org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow other = (org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow) obj;

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

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

    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code sonarlint.Flow}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:sonarlint.Flow)
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.FlowOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_Flow_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_Flow_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow.class, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow.Builder.class);
      }

      // Construct using org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow.newBuilder()
      private Builder() {

      }

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

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

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_Flow_descriptor;
      }

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow getDefaultInstanceForType() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow.getDefaultInstance();
      }

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow build() {
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow buildPartial() {
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow result = new org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow(this);
        int from_bitField0_ = bitField0_;
        if (locationBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            location_ = java.util.Collections.unmodifiableList(location_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.location_ = location_;
        } else {
          result.location_ = locationBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow) {
          return mergeFrom((org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow other) {
        if (other == org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow.getDefaultInstance()) return this;
        if (locationBuilder_ == null) {
          if (!other.location_.isEmpty()) {
            if (location_.isEmpty()) {
              location_ = other.location_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureLocationIsMutable();
              location_.addAll(other.location_);
            }
            onChanged();
          }
        } else {
          if (!other.location_.isEmpty()) {
            if (locationBuilder_.isEmpty()) {
              locationBuilder_.dispose();
              locationBuilder_ = null;
              location_ = other.location_;
              bitField0_ = (bitField0_ & ~0x00000001);
              locationBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getLocationFieldBuilder() : null;
            } else {
              locationBuilder_.addAllMessages(other.location_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location m =
                    input.readMessage(
                        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location.parser(),
                        extensionRegistry);
                if (locationBuilder_ == null) {
                  ensureLocationIsMutable();
                  location_.add(m);
                } else {
                  locationBuilder_.addMessage(m);
                }
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

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

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location.Builder, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LocationOrBuilder> locationBuilder_;

      /**
       * repeated .sonarlint.Location location = 1;
       */
      public java.util.List getLocationList() {
        if (locationBuilder_ == null) {
          return java.util.Collections.unmodifiableList(location_);
        } else {
          return locationBuilder_.getMessageList();
        }
      }
      /**
       * repeated .sonarlint.Location location = 1;
       */
      public int getLocationCount() {
        if (locationBuilder_ == null) {
          return location_.size();
        } else {
          return locationBuilder_.getCount();
        }
      }
      /**
       * repeated .sonarlint.Location location = 1;
       */
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location getLocation(int index) {
        if (locationBuilder_ == null) {
          return location_.get(index);
        } else {
          return locationBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .sonarlint.Location location = 1;
       */
      public Builder setLocation(
          int index, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location value) {
        if (locationBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLocationIsMutable();
          location_.set(index, value);
          onChanged();
        } else {
          locationBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .sonarlint.Location location = 1;
       */
      public Builder setLocation(
          int index, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location.Builder builderForValue) {
        if (locationBuilder_ == null) {
          ensureLocationIsMutable();
          location_.set(index, builderForValue.build());
          onChanged();
        } else {
          locationBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .sonarlint.Location location = 1;
       */
      public Builder addLocation(org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location value) {
        if (locationBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLocationIsMutable();
          location_.add(value);
          onChanged();
        } else {
          locationBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .sonarlint.Location location = 1;
       */
      public Builder addLocation(
          int index, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location value) {
        if (locationBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLocationIsMutable();
          location_.add(index, value);
          onChanged();
        } else {
          locationBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .sonarlint.Location location = 1;
       */
      public Builder addLocation(
          org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location.Builder builderForValue) {
        if (locationBuilder_ == null) {
          ensureLocationIsMutable();
          location_.add(builderForValue.build());
          onChanged();
        } else {
          locationBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .sonarlint.Location location = 1;
       */
      public Builder addLocation(
          int index, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location.Builder builderForValue) {
        if (locationBuilder_ == null) {
          ensureLocationIsMutable();
          location_.add(index, builderForValue.build());
          onChanged();
        } else {
          locationBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .sonarlint.Location location = 1;
       */
      public Builder addAllLocation(
          java.lang.Iterable values) {
        if (locationBuilder_ == null) {
          ensureLocationIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, location_);
          onChanged();
        } else {
          locationBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .sonarlint.Location location = 1;
       */
      public Builder clearLocation() {
        if (locationBuilder_ == null) {
          location_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          locationBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .sonarlint.Location location = 1;
       */
      public Builder removeLocation(int index) {
        if (locationBuilder_ == null) {
          ensureLocationIsMutable();
          location_.remove(index);
          onChanged();
        } else {
          locationBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .sonarlint.Location location = 1;
       */
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location.Builder getLocationBuilder(
          int index) {
        return getLocationFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .sonarlint.Location location = 1;
       */
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LocationOrBuilder getLocationOrBuilder(
          int index) {
        if (locationBuilder_ == null) {
          return location_.get(index);  } else {
          return locationBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .sonarlint.Location location = 1;
       */
      public java.util.List 
           getLocationOrBuilderList() {
        if (locationBuilder_ != null) {
          return locationBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(location_);
        }
      }
      /**
       * repeated .sonarlint.Location location = 1;
       */
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location.Builder addLocationBuilder() {
        return getLocationFieldBuilder().addBuilder(
            org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location.getDefaultInstance());
      }
      /**
       * repeated .sonarlint.Location location = 1;
       */
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location.Builder addLocationBuilder(
          int index) {
        return getLocationFieldBuilder().addBuilder(
            index, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location.getDefaultInstance());
      }
      /**
       * repeated .sonarlint.Location location = 1;
       */
      public java.util.List 
           getLocationBuilderList() {
        return getLocationFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location.Builder, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LocationOrBuilder> 
          getLocationFieldBuilder() {
        if (locationBuilder_ == null) {
          locationBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location.Builder, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LocationOrBuilder>(
                  location_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          location_ = null;
        }
        return locationBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:sonarlint.Flow)
    }

    // @@protoc_insertion_point(class_scope:sonarlint.Flow)
    private static final org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow();
    }

    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Flow getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface TextRangeOrBuilder extends
      // @@protoc_insertion_point(interface_extends:sonarlint.TextRange)
      com.google.protobuf.MessageOrBuilder {

    /**
     * int32 start_line = 1;
     * @return The startLine.
     */
    int getStartLine();

    /**
     * int32 start_line_offset = 2;
     * @return The startLineOffset.
     */
    int getStartLineOffset();

    /**
     * int32 end_line = 3;
     * @return The endLine.
     */
    int getEndLine();

    /**
     * int32 end_line_offset = 4;
     * @return The endLineOffset.
     */
    int getEndLineOffset();

    /**
     * string hash = 5;
     * @return The hash.
     */
    java.lang.String getHash();
    /**
     * string hash = 5;
     * @return The bytes for hash.
     */
    com.google.protobuf.ByteString
        getHashBytes();
  }
  /**
   * Protobuf type {@code sonarlint.TextRange}
   */
  public static final class TextRange extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:sonarlint.TextRange)
      TextRangeOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TextRange.newBuilder() to construct.
    private TextRange(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private TextRange() {
      hash_ = "";
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_TextRange_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_TextRange_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange.class, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange.Builder.class);
    }

    public static final int START_LINE_FIELD_NUMBER = 1;
    private int startLine_;
    /**
     * int32 start_line = 1;
     * @return The startLine.
     */
    @java.lang.Override
    public int getStartLine() {
      return startLine_;
    }

    public static final int START_LINE_OFFSET_FIELD_NUMBER = 2;
    private int startLineOffset_;
    /**
     * int32 start_line_offset = 2;
     * @return The startLineOffset.
     */
    @java.lang.Override
    public int getStartLineOffset() {
      return startLineOffset_;
    }

    public static final int END_LINE_FIELD_NUMBER = 3;
    private int endLine_;
    /**
     * int32 end_line = 3;
     * @return The endLine.
     */
    @java.lang.Override
    public int getEndLine() {
      return endLine_;
    }

    public static final int END_LINE_OFFSET_FIELD_NUMBER = 4;
    private int endLineOffset_;
    /**
     * int32 end_line_offset = 4;
     * @return The endLineOffset.
     */
    @java.lang.Override
    public int getEndLineOffset() {
      return endLineOffset_;
    }

    public static final int HASH_FIELD_NUMBER = 5;
    private volatile java.lang.Object hash_;
    /**
     * string hash = 5;
     * @return The hash.
     */
    @java.lang.Override
    public java.lang.String getHash() {
      java.lang.Object ref = hash_;
      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();
        hash_ = s;
        return s;
      }
    }
    /**
     * string hash = 5;
     * @return The bytes for hash.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getHashBytes() {
      java.lang.Object ref = hash_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        hash_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (startLine_ != 0) {
        output.writeInt32(1, startLine_);
      }
      if (startLineOffset_ != 0) {
        output.writeInt32(2, startLineOffset_);
      }
      if (endLine_ != 0) {
        output.writeInt32(3, endLine_);
      }
      if (endLineOffset_ != 0) {
        output.writeInt32(4, endLineOffset_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(hash_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, hash_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (startLine_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, startLine_);
      }
      if (startLineOffset_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, startLineOffset_);
      }
      if (endLine_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, endLine_);
      }
      if (endLineOffset_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, endLineOffset_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(hash_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, hash_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange)) {
        return super.equals(obj);
      }
      org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange other = (org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange) obj;

      if (getStartLine()
          != other.getStartLine()) return false;
      if (getStartLineOffset()
          != other.getStartLineOffset()) return false;
      if (getEndLine()
          != other.getEndLine()) return false;
      if (getEndLineOffset()
          != other.getEndLineOffset()) return false;
      if (!getHash()
          .equals(other.getHash())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + START_LINE_FIELD_NUMBER;
      hash = (53 * hash) + getStartLine();
      hash = (37 * hash) + START_LINE_OFFSET_FIELD_NUMBER;
      hash = (53 * hash) + getStartLineOffset();
      hash = (37 * hash) + END_LINE_FIELD_NUMBER;
      hash = (53 * hash) + getEndLine();
      hash = (37 * hash) + END_LINE_OFFSET_FIELD_NUMBER;
      hash = (53 * hash) + getEndLineOffset();
      hash = (37 * hash) + HASH_FIELD_NUMBER;
      hash = (53 * hash) + getHash().hashCode();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code sonarlint.TextRange}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:sonarlint.TextRange)
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRangeOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_TextRange_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_TextRange_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange.class, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange.Builder.class);
      }

      // Construct using org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        startLine_ = 0;

        startLineOffset_ = 0;

        endLine_ = 0;

        endLineOffset_ = 0;

        hash_ = "";

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_TextRange_descriptor;
      }

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange getDefaultInstanceForType() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange.getDefaultInstance();
      }

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange build() {
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange buildPartial() {
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange result = new org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange(this);
        result.startLine_ = startLine_;
        result.startLineOffset_ = startLineOffset_;
        result.endLine_ = endLine_;
        result.endLineOffset_ = endLineOffset_;
        result.hash_ = hash_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange) {
          return mergeFrom((org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange other) {
        if (other == org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange.getDefaultInstance()) return this;
        if (other.getStartLine() != 0) {
          setStartLine(other.getStartLine());
        }
        if (other.getStartLineOffset() != 0) {
          setStartLineOffset(other.getStartLineOffset());
        }
        if (other.getEndLine() != 0) {
          setEndLine(other.getEndLine());
        }
        if (other.getEndLineOffset() != 0) {
          setEndLineOffset(other.getEndLineOffset());
        }
        if (!other.getHash().isEmpty()) {
          hash_ = other.hash_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

                break;
              } // case 8
              case 16: {
                startLineOffset_ = input.readInt32();

                break;
              } // case 16
              case 24: {
                endLine_ = input.readInt32();

                break;
              } // case 24
              case 32: {
                endLineOffset_ = input.readInt32();

                break;
              } // case 32
              case 42: {
                hash_ = input.readStringRequireUtf8();

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

      private int startLine_ ;
      /**
       * int32 start_line = 1;
       * @return The startLine.
       */
      @java.lang.Override
      public int getStartLine() {
        return startLine_;
      }
      /**
       * int32 start_line = 1;
       * @param value The startLine to set.
       * @return This builder for chaining.
       */
      public Builder setStartLine(int value) {
        
        startLine_ = value;
        onChanged();
        return this;
      }
      /**
       * int32 start_line = 1;
       * @return This builder for chaining.
       */
      public Builder clearStartLine() {
        
        startLine_ = 0;
        onChanged();
        return this;
      }

      private int startLineOffset_ ;
      /**
       * int32 start_line_offset = 2;
       * @return The startLineOffset.
       */
      @java.lang.Override
      public int getStartLineOffset() {
        return startLineOffset_;
      }
      /**
       * int32 start_line_offset = 2;
       * @param value The startLineOffset to set.
       * @return This builder for chaining.
       */
      public Builder setStartLineOffset(int value) {
        
        startLineOffset_ = value;
        onChanged();
        return this;
      }
      /**
       * int32 start_line_offset = 2;
       * @return This builder for chaining.
       */
      public Builder clearStartLineOffset() {
        
        startLineOffset_ = 0;
        onChanged();
        return this;
      }

      private int endLine_ ;
      /**
       * int32 end_line = 3;
       * @return The endLine.
       */
      @java.lang.Override
      public int getEndLine() {
        return endLine_;
      }
      /**
       * int32 end_line = 3;
       * @param value The endLine to set.
       * @return This builder for chaining.
       */
      public Builder setEndLine(int value) {
        
        endLine_ = value;
        onChanged();
        return this;
      }
      /**
       * int32 end_line = 3;
       * @return This builder for chaining.
       */
      public Builder clearEndLine() {
        
        endLine_ = 0;
        onChanged();
        return this;
      }

      private int endLineOffset_ ;
      /**
       * int32 end_line_offset = 4;
       * @return The endLineOffset.
       */
      @java.lang.Override
      public int getEndLineOffset() {
        return endLineOffset_;
      }
      /**
       * int32 end_line_offset = 4;
       * @param value The endLineOffset to set.
       * @return This builder for chaining.
       */
      public Builder setEndLineOffset(int value) {
        
        endLineOffset_ = value;
        onChanged();
        return this;
      }
      /**
       * int32 end_line_offset = 4;
       * @return This builder for chaining.
       */
      public Builder clearEndLineOffset() {
        
        endLineOffset_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object hash_ = "";
      /**
       * string hash = 5;
       * @return The hash.
       */
      public java.lang.String getHash() {
        java.lang.Object ref = hash_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          hash_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string hash = 5;
       * @return The bytes for hash.
       */
      public com.google.protobuf.ByteString
          getHashBytes() {
        java.lang.Object ref = hash_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          hash_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string hash = 5;
       * @param value The hash to set.
       * @return This builder for chaining.
       */
      public Builder setHash(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        hash_ = value;
        onChanged();
        return this;
      }
      /**
       * string hash = 5;
       * @return This builder for chaining.
       */
      public Builder clearHash() {
        
        hash_ = getDefaultInstance().getHash();
        onChanged();
        return this;
      }
      /**
       * string hash = 5;
       * @param value The bytes for hash to set.
       * @return This builder for chaining.
       */
      public Builder setHashBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        hash_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:sonarlint.TextRange)
    }

    // @@protoc_insertion_point(class_scope:sonarlint.TextRange)
    private static final org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange();
    }

    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface LocationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:sonarlint.Location)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional string file_path = 1;
     * @return Whether the filePath field is set.
     */
    boolean hasFilePath();
    /**
     * optional string file_path = 1;
     * @return The filePath.
     */
    java.lang.String getFilePath();
    /**
     * optional string file_path = 1;
     * @return The bytes for filePath.
     */
    com.google.protobuf.ByteString
        getFilePathBytes();

    /**
     * string message = 2;
     * @return The message.
     */
    java.lang.String getMessage();
    /**
     * string message = 2;
     * @return The bytes for message.
     */
    com.google.protobuf.ByteString
        getMessageBytes();

    /**
     * optional .sonarlint.TextRange text_range = 3;
     * @return Whether the textRange field is set.
     */
    boolean hasTextRange();
    /**
     * optional .sonarlint.TextRange text_range = 3;
     * @return The textRange.
     */
    org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange getTextRange();
    /**
     * optional .sonarlint.TextRange text_range = 3;
     */
    org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRangeOrBuilder getTextRangeOrBuilder();
  }
  /**
   * Protobuf type {@code sonarlint.Location}
   */
  public static final class Location extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:sonarlint.Location)
      LocationOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Location.newBuilder() to construct.
    private Location(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private Location() {
      filePath_ = "";
      message_ = "";
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_Location_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_Location_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location.class, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location.Builder.class);
    }

    private int bitField0_;
    public static final int FILE_PATH_FIELD_NUMBER = 1;
    private volatile java.lang.Object filePath_;
    /**
     * optional string file_path = 1;
     * @return Whether the filePath field is set.
     */
    @java.lang.Override
    public boolean hasFilePath() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional string file_path = 1;
     * @return The filePath.
     */
    @java.lang.Override
    public java.lang.String getFilePath() {
      java.lang.Object ref = filePath_;
      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();
        filePath_ = s;
        return s;
      }
    }
    /**
     * optional string file_path = 1;
     * @return The bytes for filePath.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFilePathBytes() {
      java.lang.Object ref = filePath_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        filePath_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MESSAGE_FIELD_NUMBER = 2;
    private volatile java.lang.Object message_;
    /**
     * string message = 2;
     * @return The message.
     */
    @java.lang.Override
    public java.lang.String getMessage() {
      java.lang.Object ref = message_;
      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();
        message_ = s;
        return s;
      }
    }
    /**
     * string message = 2;
     * @return The bytes for message.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMessageBytes() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        message_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TEXT_RANGE_FIELD_NUMBER = 3;
    private org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange textRange_;
    /**
     * optional .sonarlint.TextRange text_range = 3;
     * @return Whether the textRange field is set.
     */
    @java.lang.Override
    public boolean hasTextRange() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional .sonarlint.TextRange text_range = 3;
     * @return The textRange.
     */
    @java.lang.Override
    public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange getTextRange() {
      return textRange_ == null ? org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange.getDefaultInstance() : textRange_;
    }
    /**
     * optional .sonarlint.TextRange text_range = 3;
     */
    @java.lang.Override
    public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRangeOrBuilder getTextRangeOrBuilder() {
      return textRange_ == null ? org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange.getDefaultInstance() : textRange_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, filePath_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(message_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, message_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(3, getTextRange());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, filePath_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(message_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, message_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getTextRange());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location)) {
        return super.equals(obj);
      }
      org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location other = (org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location) obj;

      if (hasFilePath() != other.hasFilePath()) return false;
      if (hasFilePath()) {
        if (!getFilePath()
            .equals(other.getFilePath())) return false;
      }
      if (!getMessage()
          .equals(other.getMessage())) return false;
      if (hasTextRange() != other.hasTextRange()) return false;
      if (hasTextRange()) {
        if (!getTextRange()
            .equals(other.getTextRange())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasFilePath()) {
        hash = (37 * hash) + FILE_PATH_FIELD_NUMBER;
        hash = (53 * hash) + getFilePath().hashCode();
      }
      hash = (37 * hash) + MESSAGE_FIELD_NUMBER;
      hash = (53 * hash) + getMessage().hashCode();
      if (hasTextRange()) {
        hash = (37 * hash) + TEXT_RANGE_FIELD_NUMBER;
        hash = (53 * hash) + getTextRange().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code sonarlint.Location}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:sonarlint.Location)
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LocationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_Location_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_Location_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location.class, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location.Builder.class);
      }

      // Construct using org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getTextRangeFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        filePath_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        message_ = "";

        if (textRangeBuilder_ == null) {
          textRange_ = null;
        } else {
          textRangeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_Location_descriptor;
      }

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location getDefaultInstanceForType() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location.getDefaultInstance();
      }

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location build() {
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location buildPartial() {
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location result = new org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.filePath_ = filePath_;
        result.message_ = message_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          if (textRangeBuilder_ == null) {
            result.textRange_ = textRange_;
          } else {
            result.textRange_ = textRangeBuilder_.build();
          }
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location) {
          return mergeFrom((org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location other) {
        if (other == org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location.getDefaultInstance()) return this;
        if (other.hasFilePath()) {
          bitField0_ |= 0x00000001;
          filePath_ = other.filePath_;
          onChanged();
        }
        if (!other.getMessage().isEmpty()) {
          message_ = other.message_;
          onChanged();
        }
        if (other.hasTextRange()) {
          mergeTextRange(other.getTextRange());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

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

      private java.lang.Object filePath_ = "";
      /**
       * optional string file_path = 1;
       * @return Whether the filePath field is set.
       */
      public boolean hasFilePath() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional string file_path = 1;
       * @return The filePath.
       */
      public java.lang.String getFilePath() {
        java.lang.Object ref = filePath_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          filePath_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string file_path = 1;
       * @return The bytes for filePath.
       */
      public com.google.protobuf.ByteString
          getFilePathBytes() {
        java.lang.Object ref = filePath_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          filePath_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string file_path = 1;
       * @param value The filePath to set.
       * @return This builder for chaining.
       */
      public Builder setFilePath(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        filePath_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string file_path = 1;
       * @return This builder for chaining.
       */
      public Builder clearFilePath() {
        bitField0_ = (bitField0_ & ~0x00000001);
        filePath_ = getDefaultInstance().getFilePath();
        onChanged();
        return this;
      }
      /**
       * optional string file_path = 1;
       * @param value The bytes for filePath to set.
       * @return This builder for chaining.
       */
      public Builder setFilePathBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        bitField0_ |= 0x00000001;
        filePath_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object message_ = "";
      /**
       * string message = 2;
       * @return The message.
       */
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          message_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string message = 2;
       * @return The bytes for message.
       */
      public com.google.protobuf.ByteString
          getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string message = 2;
       * @param value The message to set.
       * @return This builder for chaining.
       */
      public Builder setMessage(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        message_ = value;
        onChanged();
        return this;
      }
      /**
       * string message = 2;
       * @return This builder for chaining.
       */
      public Builder clearMessage() {
        
        message_ = getDefaultInstance().getMessage();
        onChanged();
        return this;
      }
      /**
       * string message = 2;
       * @param value The bytes for message to set.
       * @return This builder for chaining.
       */
      public Builder setMessageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        message_ = value;
        onChanged();
        return this;
      }

      private org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange textRange_;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange.Builder, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRangeOrBuilder> textRangeBuilder_;
      /**
       * optional .sonarlint.TextRange text_range = 3;
       * @return Whether the textRange field is set.
       */
      public boolean hasTextRange() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional .sonarlint.TextRange text_range = 3;
       * @return The textRange.
       */
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange getTextRange() {
        if (textRangeBuilder_ == null) {
          return textRange_ == null ? org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange.getDefaultInstance() : textRange_;
        } else {
          return textRangeBuilder_.getMessage();
        }
      }
      /**
       * optional .sonarlint.TextRange text_range = 3;
       */
      public Builder setTextRange(org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange value) {
        if (textRangeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          textRange_ = value;
          onChanged();
        } else {
          textRangeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .sonarlint.TextRange text_range = 3;
       */
      public Builder setTextRange(
          org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange.Builder builderForValue) {
        if (textRangeBuilder_ == null) {
          textRange_ = builderForValue.build();
          onChanged();
        } else {
          textRangeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .sonarlint.TextRange text_range = 3;
       */
      public Builder mergeTextRange(org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange value) {
        if (textRangeBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
              textRange_ != null &&
              textRange_ != org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange.getDefaultInstance()) {
            textRange_ =
              org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange.newBuilder(textRange_).mergeFrom(value).buildPartial();
          } else {
            textRange_ = value;
          }
          onChanged();
        } else {
          textRangeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .sonarlint.TextRange text_range = 3;
       */
      public Builder clearTextRange() {
        if (textRangeBuilder_ == null) {
          textRange_ = null;
          onChanged();
        } else {
          textRangeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * optional .sonarlint.TextRange text_range = 3;
       */
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange.Builder getTextRangeBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getTextRangeFieldBuilder().getBuilder();
      }
      /**
       * optional .sonarlint.TextRange text_range = 3;
       */
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRangeOrBuilder getTextRangeOrBuilder() {
        if (textRangeBuilder_ != null) {
          return textRangeBuilder_.getMessageOrBuilder();
        } else {
          return textRange_ == null ?
              org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange.getDefaultInstance() : textRange_;
        }
      }
      /**
       * optional .sonarlint.TextRange text_range = 3;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange.Builder, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRangeOrBuilder> 
          getTextRangeFieldBuilder() {
        if (textRangeBuilder_ == null) {
          textRangeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRange.Builder, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.TextRangeOrBuilder>(
                  getTextRange(),
                  getParentForChildren(),
                  isClean());
          textRange_ = null;
        }
        return textRangeBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:sonarlint.Location)
    }

    // @@protoc_insertion_point(class_scope:sonarlint.Location)
    private static final org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location();
    }

    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.Location getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface LastEventPollingOrBuilder extends
      // @@protoc_insertion_point(interface_extends:sonarlint.LastEventPolling)
      com.google.protobuf.MessageOrBuilder {

    /**
     * int64 last_event_polling = 1;
     * @return The lastEventPolling.
     */
    long getLastEventPolling();
  }
  /**
   * Protobuf type {@code sonarlint.LastEventPolling}
   */
  public static final class LastEventPolling extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:sonarlint.LastEventPolling)
      LastEventPollingOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use LastEventPolling.newBuilder() to construct.
    private LastEventPolling(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private LastEventPolling() {
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_LastEventPolling_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_LastEventPolling_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling.class, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling.Builder.class);
    }

    public static final int LAST_EVENT_POLLING_FIELD_NUMBER = 1;
    private long lastEventPolling_;
    /**
     * int64 last_event_polling = 1;
     * @return The lastEventPolling.
     */
    @java.lang.Override
    public long getLastEventPolling() {
      return lastEventPolling_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (lastEventPolling_ != 0L) {
        output.writeInt64(1, lastEventPolling_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (lastEventPolling_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, lastEventPolling_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling)) {
        return super.equals(obj);
      }
      org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling other = (org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling) obj;

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

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

    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code sonarlint.LastEventPolling}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:sonarlint.LastEventPolling)
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPollingOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_LastEventPolling_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_LastEventPolling_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling.class, org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling.Builder.class);
      }

      // Construct using org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        lastEventPolling_ = 0L;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.internal_static_sonarlint_LastEventPolling_descriptor;
      }

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling getDefaultInstanceForType() {
        return org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling.getDefaultInstance();
      }

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling build() {
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling buildPartial() {
        org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling result = new org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling(this);
        result.lastEventPolling_ = lastEventPolling_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling) {
          return mergeFrom((org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling other) {
        if (other == org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling.getDefaultInstance()) return this;
        if (other.getLastEventPolling() != 0L) {
          setLastEventPolling(other.getLastEventPolling());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

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

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

      private long lastEventPolling_ ;
      /**
       * int64 last_event_polling = 1;
       * @return The lastEventPolling.
       */
      @java.lang.Override
      public long getLastEventPolling() {
        return lastEventPolling_;
      }
      /**
       * int64 last_event_polling = 1;
       * @param value The lastEventPolling to set.
       * @return This builder for chaining.
       */
      public Builder setLastEventPolling(long value) {
        
        lastEventPolling_ = value;
        onChanged();
        return this;
      }
      /**
       * int64 last_event_polling = 1;
       * @return This builder for chaining.
       */
      public Builder clearLastEventPolling() {
        
        lastEventPolling_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:sonarlint.LastEventPolling)
    }

    // @@protoc_insertion_point(class_scope:sonarlint.LastEventPolling)
    private static final org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling();
    }

    public static org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public org.sonarsource.sonarlint.core.serverconnection.proto.Sonarlint.LastEventPolling getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_sonarlint_ServerInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_sonarlint_ServerInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_sonarlint_PluginReferences_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_sonarlint_PluginReferences_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_sonarlint_PluginReferences_PluginsByKeyEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_sonarlint_PluginReferences_PluginsByKeyEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_sonarlint_PluginReferences_PluginReference_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_sonarlint_PluginReferences_PluginReference_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_sonarlint_ProjectComponents_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_sonarlint_ProjectComponents_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_sonarlint_AnalyzerConfiguration_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_sonarlint_AnalyzerConfiguration_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_sonarlint_AnalyzerConfiguration_SettingsEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_sonarlint_AnalyzerConfiguration_SettingsEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_sonarlint_AnalyzerConfiguration_RuleSetsByLanguageKeyEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_sonarlint_AnalyzerConfiguration_RuleSetsByLanguageKeyEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_sonarlint_RuleSet_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_sonarlint_RuleSet_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_sonarlint_RuleSet_ActiveRule_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_sonarlint_RuleSet_ActiveRule_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_sonarlint_RuleSet_ActiveRule_ParamsEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_sonarlint_RuleSet_ActiveRule_ParamsEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_sonarlint_ProjectBranches_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_sonarlint_ProjectBranches_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_sonarlint_Flows_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_sonarlint_Flows_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_sonarlint_Flow_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_sonarlint_Flow_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_sonarlint_TextRange_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_sonarlint_TextRange_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_sonarlint_Location_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_sonarlint_Location_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_sonarlint_LastEventPolling_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_sonarlint_LastEventPolling_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\017sonarlint.proto\022\tsonarlint\"\035\n\nServerIn" +
      "fo\022\017\n\007version\030\001 \001(\t\"\373\001\n\020PluginReferences" +
      "\022E\n\016plugins_by_key\030\001 \003(\0132-.sonarlint.Plu" +
      "ginReferences.PluginsByKeyEntry\032`\n\021Plugi" +
      "nsByKeyEntry\022\013\n\003key\030\001 \001(\t\022:\n\005value\030\002 \001(\013" +
      "2+.sonarlint.PluginReferences.PluginRefe" +
      "rence:\0028\001\032>\n\017PluginReference\022\013\n\003key\030\001 \001(" +
      "\t\022\014\n\004hash\030\002 \001(\t\022\020\n\010filename\030\003 \001(\t\"&\n\021Pro" +
      "jectComponents\022\021\n\tcomponent\030\001 \003(\t\"\324\002\n\025An" +
      "alyzerConfiguration\022@\n\010settings\030\001 \003(\0132.." +
      "sonarlint.AnalyzerConfiguration.Settings" +
      "Entry\022^\n\031rule_sets_by_language_key\030\002 \003(\013" +
      "2;.sonarlint.AnalyzerConfiguration.RuleS" +
      "etsByLanguageKeyEntry\022\026\n\016schema_version\030" +
      "\003 \001(\r\032/\n\rSettingsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005v" +
      "alue\030\002 \001(\t:\0028\001\032P\n\032RuleSetsByLanguageKeyE" +
      "ntry\022\013\n\003key\030\001 \001(\t\022!\n\005value\030\002 \001(\0132\022.sonar" +
      "lint.RuleSet:\0028\001\"\200\002\n\007RuleSet\022+\n\004rule\030\001 \003" +
      "(\0132\035.sonarlint.RuleSet.ActiveRule\022\025\n\rlas" +
      "t_modified\030\003 \001(\t\032\260\001\n\nActiveRule\022\020\n\010rule_" +
      "key\030\001 \001(\t\022\020\n\010severity\030\002 \001(\t\022\024\n\014template_" +
      "key\030\003 \001(\t\0229\n\006params\030\004 \003(\0132).sonarlint.Ru" +
      "leSet.ActiveRule.ParamsEntry\032-\n\013ParamsEn" +
      "try\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"@\n\017P" +
      "rojectBranches\022\023\n\013branch_name\030\001 \003(\t\022\030\n\020m" +
      "ain_branch_name\030\002 \001(\t\"&\n\005Flows\022\035\n\004flow\030\001" +
      " \003(\0132\017.sonarlint.Flow\"-\n\004Flow\022%\n\010locatio" +
      "n\030\001 \003(\0132\023.sonarlint.Location\"s\n\tTextRang" +
      "e\022\022\n\nstart_line\030\001 \001(\005\022\031\n\021start_line_offs" +
      "et\030\002 \001(\005\022\020\n\010end_line\030\003 \001(\005\022\027\n\017end_line_o" +
      "ffset\030\004 \001(\005\022\014\n\004hash\030\005 \001(\t\"\177\n\010Location\022\026\n" +
      "\tfile_path\030\001 \001(\tH\000\210\001\001\022\017\n\007message\030\002 \001(\t\022-" +
      "\n\ntext_range\030\003 \001(\0132\024.sonarlint.TextRange" +
      "H\001\210\001\001B\014\n\n_file_pathB\r\n\013_text_range\".\n\020La" +
      "stEventPolling\022\032\n\022last_event_polling\030\001 \001" +
      "(\003B9\n5org.sonarsource.sonarlint.core.ser" +
      "verconnection.protoH\001b\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        });
    internal_static_sonarlint_ServerInfo_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_sonarlint_ServerInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_sonarlint_ServerInfo_descriptor,
        new java.lang.String[] { "Version", });
    internal_static_sonarlint_PluginReferences_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_sonarlint_PluginReferences_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_sonarlint_PluginReferences_descriptor,
        new java.lang.String[] { "PluginsByKey", });
    internal_static_sonarlint_PluginReferences_PluginsByKeyEntry_descriptor =
      internal_static_sonarlint_PluginReferences_descriptor.getNestedTypes().get(0);
    internal_static_sonarlint_PluginReferences_PluginsByKeyEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_sonarlint_PluginReferences_PluginsByKeyEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_sonarlint_PluginReferences_PluginReference_descriptor =
      internal_static_sonarlint_PluginReferences_descriptor.getNestedTypes().get(1);
    internal_static_sonarlint_PluginReferences_PluginReference_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_sonarlint_PluginReferences_PluginReference_descriptor,
        new java.lang.String[] { "Key", "Hash", "Filename", });
    internal_static_sonarlint_ProjectComponents_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_sonarlint_ProjectComponents_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_sonarlint_ProjectComponents_descriptor,
        new java.lang.String[] { "Component", });
    internal_static_sonarlint_AnalyzerConfiguration_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_sonarlint_AnalyzerConfiguration_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_sonarlint_AnalyzerConfiguration_descriptor,
        new java.lang.String[] { "Settings", "RuleSetsByLanguageKey", "SchemaVersion", });
    internal_static_sonarlint_AnalyzerConfiguration_SettingsEntry_descriptor =
      internal_static_sonarlint_AnalyzerConfiguration_descriptor.getNestedTypes().get(0);
    internal_static_sonarlint_AnalyzerConfiguration_SettingsEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_sonarlint_AnalyzerConfiguration_SettingsEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_sonarlint_AnalyzerConfiguration_RuleSetsByLanguageKeyEntry_descriptor =
      internal_static_sonarlint_AnalyzerConfiguration_descriptor.getNestedTypes().get(1);
    internal_static_sonarlint_AnalyzerConfiguration_RuleSetsByLanguageKeyEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_sonarlint_AnalyzerConfiguration_RuleSetsByLanguageKeyEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_sonarlint_RuleSet_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_sonarlint_RuleSet_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_sonarlint_RuleSet_descriptor,
        new java.lang.String[] { "Rule", "LastModified", });
    internal_static_sonarlint_RuleSet_ActiveRule_descriptor =
      internal_static_sonarlint_RuleSet_descriptor.getNestedTypes().get(0);
    internal_static_sonarlint_RuleSet_ActiveRule_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_sonarlint_RuleSet_ActiveRule_descriptor,
        new java.lang.String[] { "RuleKey", "Severity", "TemplateKey", "Params", });
    internal_static_sonarlint_RuleSet_ActiveRule_ParamsEntry_descriptor =
      internal_static_sonarlint_RuleSet_ActiveRule_descriptor.getNestedTypes().get(0);
    internal_static_sonarlint_RuleSet_ActiveRule_ParamsEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_sonarlint_RuleSet_ActiveRule_ParamsEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    internal_static_sonarlint_ProjectBranches_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_sonarlint_ProjectBranches_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_sonarlint_ProjectBranches_descriptor,
        new java.lang.String[] { "BranchName", "MainBranchName", });
    internal_static_sonarlint_Flows_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_sonarlint_Flows_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_sonarlint_Flows_descriptor,
        new java.lang.String[] { "Flow", });
    internal_static_sonarlint_Flow_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_sonarlint_Flow_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_sonarlint_Flow_descriptor,
        new java.lang.String[] { "Location", });
    internal_static_sonarlint_TextRange_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_sonarlint_TextRange_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_sonarlint_TextRange_descriptor,
        new java.lang.String[] { "StartLine", "StartLineOffset", "EndLine", "EndLineOffset", "Hash", });
    internal_static_sonarlint_Location_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_sonarlint_Location_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_sonarlint_Location_descriptor,
        new java.lang.String[] { "FilePath", "Message", "TextRange", "FilePath", "TextRange", });
    internal_static_sonarlint_LastEventPolling_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_sonarlint_LastEventPolling_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_sonarlint_LastEventPolling_descriptor,
        new java.lang.String[] { "LastEventPolling", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy