// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: db-file-sources.proto

package net.educoder.ecsonar.protobuf;

public final class DbFileSources {
  private DbFileSources() {}
  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 LineOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.sonar.server.source.db.Line)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional int32 line = 1;</code>
     * @return Whether the line field is set.
     */
    boolean hasLine();
    /**
     * <code>optional int32 line = 1;</code>
     * @return The line.
     */
    int getLine();

    /**
     * <code>optional string source = 2;</code>
     * @return Whether the source field is set.
     */
    boolean hasSource();
    /**
     * <code>optional string source = 2;</code>
     * @return The source.
     */
    String getSource();
    /**
     * <code>optional string source = 2;</code>
     * @return The bytes for source.
     */
    com.google.protobuf.ByteString
        getSourceBytes();

    /**
     * <pre>
     * SCM
     * </pre>
     *
     * <code>optional string scm_revision = 3;</code>
     * @return Whether the scmRevision field is set.
     */
    boolean hasScmRevision();
    /**
     * <pre>
     * SCM
     * </pre>
     *
     * <code>optional string scm_revision = 3;</code>
     * @return The scmRevision.
     */
    String getScmRevision();
    /**
     * <pre>
     * SCM
     * </pre>
     *
     * <code>optional string scm_revision = 3;</code>
     * @return The bytes for scmRevision.
     */
    com.google.protobuf.ByteString
        getScmRevisionBytes();

    /**
     * <code>optional string scm_author = 4;</code>
     * @return Whether the scmAuthor field is set.
     */
    boolean hasScmAuthor();
    /**
     * <code>optional string scm_author = 4;</code>
     * @return The scmAuthor.
     */
    String getScmAuthor();
    /**
     * <code>optional string scm_author = 4;</code>
     * @return The bytes for scmAuthor.
     */
    com.google.protobuf.ByteString
        getScmAuthorBytes();

    /**
     * <code>optional int64 scm_date = 5;</code>
     * @return Whether the scmDate field is set.
     */
    boolean hasScmDate();
    /**
     * <code>optional int64 scm_date = 5;</code>
     * @return The scmDate.
     */
    long getScmDate();

    /**
     * <pre>
     * Deprecated fields in 6.2 (has been deprecated when merging coverage into a single metric)
     * They are still used to read coverage info from sources that have not be re-analyzed
     * </pre>
     *
     * <code>optional int32 deprecated_ut_line_hits = 6;</code>
     * @return Whether the deprecatedUtLineHits field is set.
     */
    boolean hasDeprecatedUtLineHits();
    /**
     * <pre>
     * Deprecated fields in 6.2 (has been deprecated when merging coverage into a single metric)
     * They are still used to read coverage info from sources that have not be re-analyzed
     * </pre>
     *
     * <code>optional int32 deprecated_ut_line_hits = 6;</code>
     * @return The deprecatedUtLineHits.
     */
    int getDeprecatedUtLineHits();

    /**
     * <code>optional int32 deprecated_ut_conditions = 7;</code>
     * @return Whether the deprecatedUtConditions field is set.
     */
    boolean hasDeprecatedUtConditions();
    /**
     * <code>optional int32 deprecated_ut_conditions = 7;</code>
     * @return The deprecatedUtConditions.
     */
    int getDeprecatedUtConditions();

    /**
     * <code>optional int32 deprecated_ut_covered_conditions = 8;</code>
     * @return Whether the deprecatedUtCoveredConditions field is set.
     */
    boolean hasDeprecatedUtCoveredConditions();
    /**
     * <code>optional int32 deprecated_ut_covered_conditions = 8;</code>
     * @return The deprecatedUtCoveredConditions.
     */
    int getDeprecatedUtCoveredConditions();

    /**
     * <code>optional int32 deprecated_it_line_hits = 9;</code>
     * @return Whether the deprecatedItLineHits field is set.
     */
    boolean hasDeprecatedItLineHits();
    /**
     * <code>optional int32 deprecated_it_line_hits = 9;</code>
     * @return The deprecatedItLineHits.
     */
    int getDeprecatedItLineHits();

    /**
     * <code>optional int32 deprecated_it_conditions = 10;</code>
     * @return Whether the deprecatedItConditions field is set.
     */
    boolean hasDeprecatedItConditions();
    /**
     * <code>optional int32 deprecated_it_conditions = 10;</code>
     * @return The deprecatedItConditions.
     */
    int getDeprecatedItConditions();

    /**
     * <code>optional int32 deprecated_it_covered_conditions = 11;</code>
     * @return Whether the deprecatedItCoveredConditions field is set.
     */
    boolean hasDeprecatedItCoveredConditions();
    /**
     * <code>optional int32 deprecated_it_covered_conditions = 11;</code>
     * @return The deprecatedItCoveredConditions.
     */
    int getDeprecatedItCoveredConditions();

    /**
     * <code>optional int32 deprecated_overall_line_hits = 12;</code>
     * @return Whether the deprecatedOverallLineHits field is set.
     */
    boolean hasDeprecatedOverallLineHits();
    /**
     * <code>optional int32 deprecated_overall_line_hits = 12;</code>
     * @return The deprecatedOverallLineHits.
     */
    int getDeprecatedOverallLineHits();

    /**
     * <code>optional int32 deprecated_overall_conditions = 13;</code>
     * @return Whether the deprecatedOverallConditions field is set.
     */
    boolean hasDeprecatedOverallConditions();
    /**
     * <code>optional int32 deprecated_overall_conditions = 13;</code>
     * @return The deprecatedOverallConditions.
     */
    int getDeprecatedOverallConditions();

    /**
     * <code>optional int32 deprecated_overall_covered_conditions = 14;</code>
     * @return Whether the deprecatedOverallCoveredConditions field is set.
     */
    boolean hasDeprecatedOverallCoveredConditions();
    /**
     * <code>optional int32 deprecated_overall_covered_conditions = 14;</code>
     * @return The deprecatedOverallCoveredConditions.
     */
    int getDeprecatedOverallCoveredConditions();

    /**
     * <code>optional string highlighting = 15;</code>
     * @return Whether the highlighting field is set.
     */
    boolean hasHighlighting();
    /**
     * <code>optional string highlighting = 15;</code>
     * @return The highlighting.
     */
    String getHighlighting();
    /**
     * <code>optional string highlighting = 15;</code>
     * @return The bytes for highlighting.
     */
    com.google.protobuf.ByteString
        getHighlightingBytes();

    /**
     * <code>optional string symbols = 16;</code>
     * @return Whether the symbols field is set.
     */
    boolean hasSymbols();
    /**
     * <code>optional string symbols = 16;</code>
     * @return The symbols.
     */
    String getSymbols();
    /**
     * <code>optional string symbols = 16;</code>
     * @return The bytes for symbols.
     */
    com.google.protobuf.ByteString
        getSymbolsBytes();

    /**
     * <code>repeated int32 duplication = 17 [packed = true];</code>
     * @return A list containing the duplication.
     */
    java.util.List<Integer> getDuplicationList();
    /**
     * <code>repeated int32 duplication = 17 [packed = true];</code>
     * @return The count of duplication.
     */
    int getDuplicationCount();
    /**
     * <code>repeated int32 duplication = 17 [packed = true];</code>
     * @param index The index of the element to return.
     * @return The duplication at the given index.
     */
    int getDuplication(int index);

    /**
     * <pre>
     * coverage info (since 6.2)
     * </pre>
     *
     * <code>optional int32 line_hits = 18;</code>
     * @return Whether the lineHits field is set.
     */
    boolean hasLineHits();
    /**
     * <pre>
     * coverage info (since 6.2)
     * </pre>
     *
     * <code>optional int32 line_hits = 18;</code>
     * @return The lineHits.
     */
    int getLineHits();

    /**
     * <code>optional int32 conditions = 19;</code>
     * @return Whether the conditions field is set.
     */
    boolean hasConditions();
    /**
     * <code>optional int32 conditions = 19;</code>
     * @return The conditions.
     */
    int getConditions();

    /**
     * <code>optional int32 covered_conditions = 20;</code>
     * @return Whether the coveredConditions field is set.
     */
    boolean hasCoveredConditions();
    /**
     * <code>optional int32 covered_conditions = 20;</code>
     * @return The coveredConditions.
     */
    int getCoveredConditions();

    /**
     * <code>optional bool is_new_line = 21;</code>
     * @return Whether the isNewLine field is set.
     */
    boolean hasIsNewLine();
    /**
     * <code>optional bool is_new_line = 21;</code>
     * @return The isNewLine.
     */
    boolean getIsNewLine();
  }
  /**
   * Protobuf type {@code org.sonar.server.source.db.Line}
   */
  public static final class Line extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:org.sonar.server.source.db.Line)
      LineOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Line.newBuilder() to construct.
    private Line(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Line() {
      source_ = "";
      scmRevision_ = "";
      scmAuthor_ = "";
      highlighting_ = "";
      symbols_ = "";
      duplication_ = emptyIntList();
    }

    @Override
    @SuppressWarnings({"unused"})
    protected Object newInstance(
        UnusedPrivateParameter unused) {
      return new Line();
    }

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Line(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {
              bitField0_ |= 0x00000001;
              line_ = input.readInt32();
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              source_ = bs;
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              scmRevision_ = bs;
              break;
            }
            case 34: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000008;
              scmAuthor_ = bs;
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              scmDate_ = input.readInt64();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              deprecatedUtLineHits_ = input.readInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              deprecatedUtConditions_ = input.readInt32();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              deprecatedUtCoveredConditions_ = input.readInt32();
              break;
            }
            case 72: {
              bitField0_ |= 0x00000100;
              deprecatedItLineHits_ = input.readInt32();
              break;
            }
            case 80: {
              bitField0_ |= 0x00000200;
              deprecatedItConditions_ = input.readInt32();
              break;
            }
            case 88: {
              bitField0_ |= 0x00000400;
              deprecatedItCoveredConditions_ = input.readInt32();
              break;
            }
            case 96: {
              bitField0_ |= 0x00000800;
              deprecatedOverallLineHits_ = input.readInt32();
              break;
            }
            case 104: {
              bitField0_ |= 0x00001000;
              deprecatedOverallConditions_ = input.readInt32();
              break;
            }
            case 112: {
              bitField0_ |= 0x00002000;
              deprecatedOverallCoveredConditions_ = input.readInt32();
              break;
            }
            case 122: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00004000;
              highlighting_ = bs;
              break;
            }
            case 130: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00008000;
              symbols_ = bs;
              break;
            }
            case 136: {
              if (!((mutable_bitField0_ & 0x00010000) != 0)) {
                duplication_ = newIntList();
                mutable_bitField0_ |= 0x00010000;
              }
              duplication_.addInt(input.readInt32());
              break;
            }
            case 138: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00010000) != 0) && input.getBytesUntilLimit() > 0) {
                duplication_ = newIntList();
                mutable_bitField0_ |= 0x00010000;
              }
              while (input.getBytesUntilLimit() > 0) {
                duplication_.addInt(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 144: {
              bitField0_ |= 0x00010000;
              lineHits_ = input.readInt32();
              break;
            }
            case 152: {
              bitField0_ |= 0x00020000;
              conditions_ = input.readInt32();
              break;
            }
            case 160: {
              bitField0_ |= 0x00040000;
              coveredConditions_ = input.readInt32();
              break;
            }
            case 168: {
              bitField0_ |= 0x00080000;
              isNewLine_ = input.readBool();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00010000) != 0)) {
          duplication_.makeImmutable(); // C
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return net.educoder.ecsonar.protobuf.DbFileSources.internal_static_org_sonar_server_source_db_Line_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return net.educoder.ecsonar.protobuf.DbFileSources.internal_static_org_sonar_server_source_db_Line_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              Line.class, Builder.class);
    }

    private int bitField0_;
    public static final int LINE_FIELD_NUMBER = 1;
    private int line_;
    /**
     * <code>optional int32 line = 1;</code>
     * @return Whether the line field is set.
     */
    @Override
    public boolean hasLine() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional int32 line = 1;</code>
     * @return The line.
     */
    @Override
    public int getLine() {
      return line_;
    }

    public static final int SOURCE_FIELD_NUMBER = 2;
    private volatile Object source_;
    /**
     * <code>optional string source = 2;</code>
     * @return Whether the source field is set.
     */
    @Override
    public boolean hasSource() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional string source = 2;</code>
     * @return The source.
     */
    @Override
    public String getSource() {
      Object ref = source_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          source_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string source = 2;</code>
     * @return The bytes for source.
     */
    @Override
    public com.google.protobuf.ByteString
        getSourceBytes() {
      Object ref = source_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        source_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SCM_REVISION_FIELD_NUMBER = 3;
    private volatile Object scmRevision_;
    /**
     * <pre>
     * SCM
     * </pre>
     *
     * <code>optional string scm_revision = 3;</code>
     * @return Whether the scmRevision field is set.
     */
    @Override
    public boolean hasScmRevision() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * SCM
     * </pre>
     *
     * <code>optional string scm_revision = 3;</code>
     * @return The scmRevision.
     */
    @Override
    public String getScmRevision() {
      Object ref = scmRevision_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          scmRevision_ = s;
        }
        return s;
      }
    }
    /**
     * <pre>
     * SCM
     * </pre>
     *
     * <code>optional string scm_revision = 3;</code>
     * @return The bytes for scmRevision.
     */
    @Override
    public com.google.protobuf.ByteString
        getScmRevisionBytes() {
      Object ref = scmRevision_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        scmRevision_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SCM_AUTHOR_FIELD_NUMBER = 4;
    private volatile Object scmAuthor_;
    /**
     * <code>optional string scm_author = 4;</code>
     * @return Whether the scmAuthor field is set.
     */
    @Override
    public boolean hasScmAuthor() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional string scm_author = 4;</code>
     * @return The scmAuthor.
     */
    @Override
    public String getScmAuthor() {
      Object ref = scmAuthor_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          scmAuthor_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string scm_author = 4;</code>
     * @return The bytes for scmAuthor.
     */
    @Override
    public com.google.protobuf.ByteString
        getScmAuthorBytes() {
      Object ref = scmAuthor_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        scmAuthor_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SCM_DATE_FIELD_NUMBER = 5;
    private long scmDate_;
    /**
     * <code>optional int64 scm_date = 5;</code>
     * @return Whether the scmDate field is set.
     */
    @Override
    public boolean hasScmDate() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional int64 scm_date = 5;</code>
     * @return The scmDate.
     */
    @Override
    public long getScmDate() {
      return scmDate_;
    }

    public static final int DEPRECATED_UT_LINE_HITS_FIELD_NUMBER = 6;
    private int deprecatedUtLineHits_;
    /**
     * <pre>
     * Deprecated fields in 6.2 (has been deprecated when merging coverage into a single metric)
     * They are still used to read coverage info from sources that have not be re-analyzed
     * </pre>
     *
     * <code>optional int32 deprecated_ut_line_hits = 6;</code>
     * @return Whether the deprecatedUtLineHits field is set.
     */
    @Override
    public boolean hasDeprecatedUtLineHits() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <pre>
     * Deprecated fields in 6.2 (has been deprecated when merging coverage into a single metric)
     * They are still used to read coverage info from sources that have not be re-analyzed
     * </pre>
     *
     * <code>optional int32 deprecated_ut_line_hits = 6;</code>
     * @return The deprecatedUtLineHits.
     */
    @Override
    public int getDeprecatedUtLineHits() {
      return deprecatedUtLineHits_;
    }

    public static final int DEPRECATED_UT_CONDITIONS_FIELD_NUMBER = 7;
    private int deprecatedUtConditions_;
    /**
     * <code>optional int32 deprecated_ut_conditions = 7;</code>
     * @return Whether the deprecatedUtConditions field is set.
     */
    @Override
    public boolean hasDeprecatedUtConditions() {
      return ((bitField0_ & 0x00000040) != 0);
    }
    /**
     * <code>optional int32 deprecated_ut_conditions = 7;</code>
     * @return The deprecatedUtConditions.
     */
    @Override
    public int getDeprecatedUtConditions() {
      return deprecatedUtConditions_;
    }

    public static final int DEPRECATED_UT_COVERED_CONDITIONS_FIELD_NUMBER = 8;
    private int deprecatedUtCoveredConditions_;
    /**
     * <code>optional int32 deprecated_ut_covered_conditions = 8;</code>
     * @return Whether the deprecatedUtCoveredConditions field is set.
     */
    @Override
    public boolean hasDeprecatedUtCoveredConditions() {
      return ((bitField0_ & 0x00000080) != 0);
    }
    /**
     * <code>optional int32 deprecated_ut_covered_conditions = 8;</code>
     * @return The deprecatedUtCoveredConditions.
     */
    @Override
    public int getDeprecatedUtCoveredConditions() {
      return deprecatedUtCoveredConditions_;
    }

    public static final int DEPRECATED_IT_LINE_HITS_FIELD_NUMBER = 9;
    private int deprecatedItLineHits_;
    /**
     * <code>optional int32 deprecated_it_line_hits = 9;</code>
     * @return Whether the deprecatedItLineHits field is set.
     */
    @Override
    public boolean hasDeprecatedItLineHits() {
      return ((bitField0_ & 0x00000100) != 0);
    }
    /**
     * <code>optional int32 deprecated_it_line_hits = 9;</code>
     * @return The deprecatedItLineHits.
     */
    @Override
    public int getDeprecatedItLineHits() {
      return deprecatedItLineHits_;
    }

    public static final int DEPRECATED_IT_CONDITIONS_FIELD_NUMBER = 10;
    private int deprecatedItConditions_;
    /**
     * <code>optional int32 deprecated_it_conditions = 10;</code>
     * @return Whether the deprecatedItConditions field is set.
     */
    @Override
    public boolean hasDeprecatedItConditions() {
      return ((bitField0_ & 0x00000200) != 0);
    }
    /**
     * <code>optional int32 deprecated_it_conditions = 10;</code>
     * @return The deprecatedItConditions.
     */
    @Override
    public int getDeprecatedItConditions() {
      return deprecatedItConditions_;
    }

    public static final int DEPRECATED_IT_COVERED_CONDITIONS_FIELD_NUMBER = 11;
    private int deprecatedItCoveredConditions_;
    /**
     * <code>optional int32 deprecated_it_covered_conditions = 11;</code>
     * @return Whether the deprecatedItCoveredConditions field is set.
     */
    @Override
    public boolean hasDeprecatedItCoveredConditions() {
      return ((bitField0_ & 0x00000400) != 0);
    }
    /**
     * <code>optional int32 deprecated_it_covered_conditions = 11;</code>
     * @return The deprecatedItCoveredConditions.
     */
    @Override
    public int getDeprecatedItCoveredConditions() {
      return deprecatedItCoveredConditions_;
    }

    public static final int DEPRECATED_OVERALL_LINE_HITS_FIELD_NUMBER = 12;
    private int deprecatedOverallLineHits_;
    /**
     * <code>optional int32 deprecated_overall_line_hits = 12;</code>
     * @return Whether the deprecatedOverallLineHits field is set.
     */
    @Override
    public boolean hasDeprecatedOverallLineHits() {
      return ((bitField0_ & 0x00000800) != 0);
    }
    /**
     * <code>optional int32 deprecated_overall_line_hits = 12;</code>
     * @return The deprecatedOverallLineHits.
     */
    @Override
    public int getDeprecatedOverallLineHits() {
      return deprecatedOverallLineHits_;
    }

    public static final int DEPRECATED_OVERALL_CONDITIONS_FIELD_NUMBER = 13;
    private int deprecatedOverallConditions_;
    /**
     * <code>optional int32 deprecated_overall_conditions = 13;</code>
     * @return Whether the deprecatedOverallConditions field is set.
     */
    @Override
    public boolean hasDeprecatedOverallConditions() {
      return ((bitField0_ & 0x00001000) != 0);
    }
    /**
     * <code>optional int32 deprecated_overall_conditions = 13;</code>
     * @return The deprecatedOverallConditions.
     */
    @Override
    public int getDeprecatedOverallConditions() {
      return deprecatedOverallConditions_;
    }

    public static final int DEPRECATED_OVERALL_COVERED_CONDITIONS_FIELD_NUMBER = 14;
    private int deprecatedOverallCoveredConditions_;
    /**
     * <code>optional int32 deprecated_overall_covered_conditions = 14;</code>
     * @return Whether the deprecatedOverallCoveredConditions field is set.
     */
    @Override
    public boolean hasDeprecatedOverallCoveredConditions() {
      return ((bitField0_ & 0x00002000) != 0);
    }
    /**
     * <code>optional int32 deprecated_overall_covered_conditions = 14;</code>
     * @return The deprecatedOverallCoveredConditions.
     */
    @Override
    public int getDeprecatedOverallCoveredConditions() {
      return deprecatedOverallCoveredConditions_;
    }

    public static final int HIGHLIGHTING_FIELD_NUMBER = 15;
    private volatile Object highlighting_;
    /**
     * <code>optional string highlighting = 15;</code>
     * @return Whether the highlighting field is set.
     */
    @Override
    public boolean hasHighlighting() {
      return ((bitField0_ & 0x00004000) != 0);
    }
    /**
     * <code>optional string highlighting = 15;</code>
     * @return The highlighting.
     */
    @Override
    public String getHighlighting() {
      Object ref = highlighting_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          highlighting_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string highlighting = 15;</code>
     * @return The bytes for highlighting.
     */
    @Override
    public com.google.protobuf.ByteString
        getHighlightingBytes() {
      Object ref = highlighting_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        highlighting_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SYMBOLS_FIELD_NUMBER = 16;
    private volatile Object symbols_;
    /**
     * <code>optional string symbols = 16;</code>
     * @return Whether the symbols field is set.
     */
    @Override
    public boolean hasSymbols() {
      return ((bitField0_ & 0x00008000) != 0);
    }
    /**
     * <code>optional string symbols = 16;</code>
     * @return The symbols.
     */
    @Override
    public String getSymbols() {
      Object ref = symbols_;
      if (ref instanceof String) {
        return (String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          symbols_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string symbols = 16;</code>
     * @return The bytes for symbols.
     */
    @Override
    public com.google.protobuf.ByteString
        getSymbolsBytes() {
      Object ref = symbols_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
        symbols_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DUPLICATION_FIELD_NUMBER = 17;
    private com.google.protobuf.Internal.IntList duplication_;
    /**
     * <code>repeated int32 duplication = 17 [packed = true];</code>
     * @return A list containing the duplication.
     */
    @Override
    public java.util.List<Integer>
        getDuplicationList() {
      return duplication_;
    }
    /**
     * <code>repeated int32 duplication = 17 [packed = true];</code>
     * @return The count of duplication.
     */
    public int getDuplicationCount() {
      return duplication_.size();
    }
    /**
     * <code>repeated int32 duplication = 17 [packed = true];</code>
     * @param index The index of the element to return.
     * @return The duplication at the given index.
     */
    public int getDuplication(int index) {
      return duplication_.getInt(index);
    }
    private int duplicationMemoizedSerializedSize = -1;

    public static final int LINE_HITS_FIELD_NUMBER = 18;
    private int lineHits_;
    /**
     * <pre>
     * coverage info (since 6.2)
     * </pre>
     *
     * <code>optional int32 line_hits = 18;</code>
     * @return Whether the lineHits field is set.
     */
    @Override
    public boolean hasLineHits() {
      return ((bitField0_ & 0x00010000) != 0);
    }
    /**
     * <pre>
     * coverage info (since 6.2)
     * </pre>
     *
     * <code>optional int32 line_hits = 18;</code>
     * @return The lineHits.
     */
    @Override
    public int getLineHits() {
      return lineHits_;
    }

    public static final int CONDITIONS_FIELD_NUMBER = 19;
    private int conditions_;
    /**
     * <code>optional int32 conditions = 19;</code>
     * @return Whether the conditions field is set.
     */
    @Override
    public boolean hasConditions() {
      return ((bitField0_ & 0x00020000) != 0);
    }
    /**
     * <code>optional int32 conditions = 19;</code>
     * @return The conditions.
     */
    @Override
    public int getConditions() {
      return conditions_;
    }

    public static final int COVERED_CONDITIONS_FIELD_NUMBER = 20;
    private int coveredConditions_;
    /**
     * <code>optional int32 covered_conditions = 20;</code>
     * @return Whether the coveredConditions field is set.
     */
    @Override
    public boolean hasCoveredConditions() {
      return ((bitField0_ & 0x00040000) != 0);
    }
    /**
     * <code>optional int32 covered_conditions = 20;</code>
     * @return The coveredConditions.
     */
    @Override
    public int getCoveredConditions() {
      return coveredConditions_;
    }

    public static final int IS_NEW_LINE_FIELD_NUMBER = 21;
    private boolean isNewLine_;
    /**
     * <code>optional bool is_new_line = 21;</code>
     * @return Whether the isNewLine field is set.
     */
    @Override
    public boolean hasIsNewLine() {
      return ((bitField0_ & 0x00080000) != 0);
    }
    /**
     * <code>optional bool is_new_line = 21;</code>
     * @return The isNewLine.
     */
    @Override
    public boolean getIsNewLine() {
      return isNewLine_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeInt32(1, line_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, source_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, scmRevision_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, scmAuthor_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeInt64(5, scmDate_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeInt32(6, deprecatedUtLineHits_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        output.writeInt32(7, deprecatedUtConditions_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        output.writeInt32(8, deprecatedUtCoveredConditions_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        output.writeInt32(9, deprecatedItLineHits_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        output.writeInt32(10, deprecatedItConditions_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        output.writeInt32(11, deprecatedItCoveredConditions_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        output.writeInt32(12, deprecatedOverallLineHits_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        output.writeInt32(13, deprecatedOverallConditions_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        output.writeInt32(14, deprecatedOverallCoveredConditions_);
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 15, highlighting_);
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 16, symbols_);
      }
      if (getDuplicationList().size() > 0) {
        output.writeUInt32NoTag(138);
        output.writeUInt32NoTag(duplicationMemoizedSerializedSize);
      }
      for (int i = 0; i < duplication_.size(); i++) {
        output.writeInt32NoTag(duplication_.getInt(i));
      }
      if (((bitField0_ & 0x00010000) != 0)) {
        output.writeInt32(18, lineHits_);
      }
      if (((bitField0_ & 0x00020000) != 0)) {
        output.writeInt32(19, conditions_);
      }
      if (((bitField0_ & 0x00040000) != 0)) {
        output.writeInt32(20, coveredConditions_);
      }
      if (((bitField0_ & 0x00080000) != 0)) {
        output.writeBool(21, isNewLine_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, line_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, source_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, scmRevision_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, scmAuthor_);
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(5, scmDate_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, deprecatedUtLineHits_);
      }
      if (((bitField0_ & 0x00000040) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(7, deprecatedUtConditions_);
      }
      if (((bitField0_ & 0x00000080) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(8, deprecatedUtCoveredConditions_);
      }
      if (((bitField0_ & 0x00000100) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(9, deprecatedItLineHits_);
      }
      if (((bitField0_ & 0x00000200) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(10, deprecatedItConditions_);
      }
      if (((bitField0_ & 0x00000400) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(11, deprecatedItCoveredConditions_);
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(12, deprecatedOverallLineHits_);
      }
      if (((bitField0_ & 0x00001000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(13, deprecatedOverallConditions_);
      }
      if (((bitField0_ & 0x00002000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(14, deprecatedOverallCoveredConditions_);
      }
      if (((bitField0_ & 0x00004000) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(15, highlighting_);
      }
      if (((bitField0_ & 0x00008000) != 0)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(16, symbols_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < duplication_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(duplication_.getInt(i));
        }
        size += dataSize;
        if (!getDuplicationList().isEmpty()) {
          size += 2;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        duplicationMemoizedSerializedSize = dataSize;
      }
      if (((bitField0_ & 0x00010000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(18, lineHits_);
      }
      if (((bitField0_ & 0x00020000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(19, conditions_);
      }
      if (((bitField0_ & 0x00040000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(20, coveredConditions_);
      }
      if (((bitField0_ & 0x00080000) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(21, isNewLine_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @Override
    public boolean equals(final Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof Line)) {
        return super.equals(obj);
      }
      Line other = (Line) obj;

      if (hasLine() != other.hasLine()) return false;
      if (hasLine()) {
        if (getLine()
            != other.getLine()) return false;
      }
      if (hasSource() != other.hasSource()) return false;
      if (hasSource()) {
        if (!getSource()
            .equals(other.getSource())) return false;
      }
      if (hasScmRevision() != other.hasScmRevision()) return false;
      if (hasScmRevision()) {
        if (!getScmRevision()
            .equals(other.getScmRevision())) return false;
      }
      if (hasScmAuthor() != other.hasScmAuthor()) return false;
      if (hasScmAuthor()) {
        if (!getScmAuthor()
            .equals(other.getScmAuthor())) return false;
      }
      if (hasScmDate() != other.hasScmDate()) return false;
      if (hasScmDate()) {
        if (getScmDate()
            != other.getScmDate()) return false;
      }
      if (hasDeprecatedUtLineHits() != other.hasDeprecatedUtLineHits()) return false;
      if (hasDeprecatedUtLineHits()) {
        if (getDeprecatedUtLineHits()
            != other.getDeprecatedUtLineHits()) return false;
      }
      if (hasDeprecatedUtConditions() != other.hasDeprecatedUtConditions()) return false;
      if (hasDeprecatedUtConditions()) {
        if (getDeprecatedUtConditions()
            != other.getDeprecatedUtConditions()) return false;
      }
      if (hasDeprecatedUtCoveredConditions() != other.hasDeprecatedUtCoveredConditions()) return false;
      if (hasDeprecatedUtCoveredConditions()) {
        if (getDeprecatedUtCoveredConditions()
            != other.getDeprecatedUtCoveredConditions()) return false;
      }
      if (hasDeprecatedItLineHits() != other.hasDeprecatedItLineHits()) return false;
      if (hasDeprecatedItLineHits()) {
        if (getDeprecatedItLineHits()
            != other.getDeprecatedItLineHits()) return false;
      }
      if (hasDeprecatedItConditions() != other.hasDeprecatedItConditions()) return false;
      if (hasDeprecatedItConditions()) {
        if (getDeprecatedItConditions()
            != other.getDeprecatedItConditions()) return false;
      }
      if (hasDeprecatedItCoveredConditions() != other.hasDeprecatedItCoveredConditions()) return false;
      if (hasDeprecatedItCoveredConditions()) {
        if (getDeprecatedItCoveredConditions()
            != other.getDeprecatedItCoveredConditions()) return false;
      }
      if (hasDeprecatedOverallLineHits() != other.hasDeprecatedOverallLineHits()) return false;
      if (hasDeprecatedOverallLineHits()) {
        if (getDeprecatedOverallLineHits()
            != other.getDeprecatedOverallLineHits()) return false;
      }
      if (hasDeprecatedOverallConditions() != other.hasDeprecatedOverallConditions()) return false;
      if (hasDeprecatedOverallConditions()) {
        if (getDeprecatedOverallConditions()
            != other.getDeprecatedOverallConditions()) return false;
      }
      if (hasDeprecatedOverallCoveredConditions() != other.hasDeprecatedOverallCoveredConditions()) return false;
      if (hasDeprecatedOverallCoveredConditions()) {
        if (getDeprecatedOverallCoveredConditions()
            != other.getDeprecatedOverallCoveredConditions()) return false;
      }
      if (hasHighlighting() != other.hasHighlighting()) return false;
      if (hasHighlighting()) {
        if (!getHighlighting()
            .equals(other.getHighlighting())) return false;
      }
      if (hasSymbols() != other.hasSymbols()) return false;
      if (hasSymbols()) {
        if (!getSymbols()
            .equals(other.getSymbols())) return false;
      }
      if (!getDuplicationList()
          .equals(other.getDuplicationList())) return false;
      if (hasLineHits() != other.hasLineHits()) return false;
      if (hasLineHits()) {
        if (getLineHits()
            != other.getLineHits()) return false;
      }
      if (hasConditions() != other.hasConditions()) return false;
      if (hasConditions()) {
        if (getConditions()
            != other.getConditions()) return false;
      }
      if (hasCoveredConditions() != other.hasCoveredConditions()) return false;
      if (hasCoveredConditions()) {
        if (getCoveredConditions()
            != other.getCoveredConditions()) return false;
      }
      if (hasIsNewLine() != other.hasIsNewLine()) return false;
      if (hasIsNewLine()) {
        if (getIsNewLine()
            != other.getIsNewLine()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasLine()) {
        hash = (37 * hash) + LINE_FIELD_NUMBER;
        hash = (53 * hash) + getLine();
      }
      if (hasSource()) {
        hash = (37 * hash) + SOURCE_FIELD_NUMBER;
        hash = (53 * hash) + getSource().hashCode();
      }
      if (hasScmRevision()) {
        hash = (37 * hash) + SCM_REVISION_FIELD_NUMBER;
        hash = (53 * hash) + getScmRevision().hashCode();
      }
      if (hasScmAuthor()) {
        hash = (37 * hash) + SCM_AUTHOR_FIELD_NUMBER;
        hash = (53 * hash) + getScmAuthor().hashCode();
      }
      if (hasScmDate()) {
        hash = (37 * hash) + SCM_DATE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getScmDate());
      }
      if (hasDeprecatedUtLineHits()) {
        hash = (37 * hash) + DEPRECATED_UT_LINE_HITS_FIELD_NUMBER;
        hash = (53 * hash) + getDeprecatedUtLineHits();
      }
      if (hasDeprecatedUtConditions()) {
        hash = (37 * hash) + DEPRECATED_UT_CONDITIONS_FIELD_NUMBER;
        hash = (53 * hash) + getDeprecatedUtConditions();
      }
      if (hasDeprecatedUtCoveredConditions()) {
        hash = (37 * hash) + DEPRECATED_UT_COVERED_CONDITIONS_FIELD_NUMBER;
        hash = (53 * hash) + getDeprecatedUtCoveredConditions();
      }
      if (hasDeprecatedItLineHits()) {
        hash = (37 * hash) + DEPRECATED_IT_LINE_HITS_FIELD_NUMBER;
        hash = (53 * hash) + getDeprecatedItLineHits();
      }
      if (hasDeprecatedItConditions()) {
        hash = (37 * hash) + DEPRECATED_IT_CONDITIONS_FIELD_NUMBER;
        hash = (53 * hash) + getDeprecatedItConditions();
      }
      if (hasDeprecatedItCoveredConditions()) {
        hash = (37 * hash) + DEPRECATED_IT_COVERED_CONDITIONS_FIELD_NUMBER;
        hash = (53 * hash) + getDeprecatedItCoveredConditions();
      }
      if (hasDeprecatedOverallLineHits()) {
        hash = (37 * hash) + DEPRECATED_OVERALL_LINE_HITS_FIELD_NUMBER;
        hash = (53 * hash) + getDeprecatedOverallLineHits();
      }
      if (hasDeprecatedOverallConditions()) {
        hash = (37 * hash) + DEPRECATED_OVERALL_CONDITIONS_FIELD_NUMBER;
        hash = (53 * hash) + getDeprecatedOverallConditions();
      }
      if (hasDeprecatedOverallCoveredConditions()) {
        hash = (37 * hash) + DEPRECATED_OVERALL_COVERED_CONDITIONS_FIELD_NUMBER;
        hash = (53 * hash) + getDeprecatedOverallCoveredConditions();
      }
      if (hasHighlighting()) {
        hash = (37 * hash) + HIGHLIGHTING_FIELD_NUMBER;
        hash = (53 * hash) + getHighlighting().hashCode();
      }
      if (hasSymbols()) {
        hash = (37 * hash) + SYMBOLS_FIELD_NUMBER;
        hash = (53 * hash) + getSymbols().hashCode();
      }
      if (getDuplicationCount() > 0) {
        hash = (37 * hash) + DUPLICATION_FIELD_NUMBER;
        hash = (53 * hash) + getDuplicationList().hashCode();
      }
      if (hasLineHits()) {
        hash = (37 * hash) + LINE_HITS_FIELD_NUMBER;
        hash = (53 * hash) + getLineHits();
      }
      if (hasConditions()) {
        hash = (37 * hash) + CONDITIONS_FIELD_NUMBER;
        hash = (53 * hash) + getConditions();
      }
      if (hasCoveredConditions()) {
        hash = (37 * hash) + COVERED_CONDITIONS_FIELD_NUMBER;
        hash = (53 * hash) + getCoveredConditions();
      }
      if (hasIsNewLine()) {
        hash = (37 * hash) + IS_NEW_LINE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getIsNewLine());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

    @Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(Line prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @Override
    protected Builder newBuilderForType(
        BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code org.sonar.server.source.db.Line}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:org.sonar.server.source.db.Line)
        LineOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return net.educoder.ecsonar.protobuf.DbFileSources.internal_static_org_sonar_server_source_db_Line_descriptor;
      }

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return net.educoder.ecsonar.protobuf.DbFileSources.internal_static_org_sonar_server_source_db_Line_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                Line.class, Builder.class);
      }

      // Construct using net.educoder.ecsonar.protobuf.DbFileSources.Line.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @Override
      public Builder clear() {
        super.clear();
        line_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        source_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        scmRevision_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        scmAuthor_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        scmDate_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000010);
        deprecatedUtLineHits_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        deprecatedUtConditions_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        deprecatedUtCoveredConditions_ = 0;
        bitField0_ = (bitField0_ & ~0x00000080);
        deprecatedItLineHits_ = 0;
        bitField0_ = (bitField0_ & ~0x00000100);
        deprecatedItConditions_ = 0;
        bitField0_ = (bitField0_ & ~0x00000200);
        deprecatedItCoveredConditions_ = 0;
        bitField0_ = (bitField0_ & ~0x00000400);
        deprecatedOverallLineHits_ = 0;
        bitField0_ = (bitField0_ & ~0x00000800);
        deprecatedOverallConditions_ = 0;
        bitField0_ = (bitField0_ & ~0x00001000);
        deprecatedOverallCoveredConditions_ = 0;
        bitField0_ = (bitField0_ & ~0x00002000);
        highlighting_ = "";
        bitField0_ = (bitField0_ & ~0x00004000);
        symbols_ = "";
        bitField0_ = (bitField0_ & ~0x00008000);
        duplication_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00010000);
        lineHits_ = 0;
        bitField0_ = (bitField0_ & ~0x00020000);
        conditions_ = 0;
        bitField0_ = (bitField0_ & ~0x00040000);
        coveredConditions_ = 0;
        bitField0_ = (bitField0_ & ~0x00080000);
        isNewLine_ = false;
        bitField0_ = (bitField0_ & ~0x00100000);
        return this;
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return net.educoder.ecsonar.protobuf.DbFileSources.internal_static_org_sonar_server_source_db_Line_descriptor;
      }

      @Override
      public Line getDefaultInstanceForType() {
        return Line.getDefaultInstance();
      }

      @Override
      public Line build() {
        Line result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public Line buildPartial() {
        Line result = new Line(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.line_ = line_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.source_ = source_;
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.scmRevision_ = scmRevision_;
        if (((from_bitField0_ & 0x00000008) != 0)) {
          to_bitField0_ |= 0x00000008;
        }
        result.scmAuthor_ = scmAuthor_;
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.scmDate_ = scmDate_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.deprecatedUtLineHits_ = deprecatedUtLineHits_;
          to_bitField0_ |= 0x00000020;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.deprecatedUtConditions_ = deprecatedUtConditions_;
          to_bitField0_ |= 0x00000040;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.deprecatedUtCoveredConditions_ = deprecatedUtCoveredConditions_;
          to_bitField0_ |= 0x00000080;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.deprecatedItLineHits_ = deprecatedItLineHits_;
          to_bitField0_ |= 0x00000100;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.deprecatedItConditions_ = deprecatedItConditions_;
          to_bitField0_ |= 0x00000200;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.deprecatedItCoveredConditions_ = deprecatedItCoveredConditions_;
          to_bitField0_ |= 0x00000400;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.deprecatedOverallLineHits_ = deprecatedOverallLineHits_;
          to_bitField0_ |= 0x00000800;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.deprecatedOverallConditions_ = deprecatedOverallConditions_;
          to_bitField0_ |= 0x00001000;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          result.deprecatedOverallCoveredConditions_ = deprecatedOverallCoveredConditions_;
          to_bitField0_ |= 0x00002000;
        }
        if (((from_bitField0_ & 0x00004000) != 0)) {
          to_bitField0_ |= 0x00004000;
        }
        result.highlighting_ = highlighting_;
        if (((from_bitField0_ & 0x00008000) != 0)) {
          to_bitField0_ |= 0x00008000;
        }
        result.symbols_ = symbols_;
        if (((bitField0_ & 0x00010000) != 0)) {
          duplication_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00010000);
        }
        result.duplication_ = duplication_;
        if (((from_bitField0_ & 0x00020000) != 0)) {
          result.lineHits_ = lineHits_;
          to_bitField0_ |= 0x00010000;
        }
        if (((from_bitField0_ & 0x00040000) != 0)) {
          result.conditions_ = conditions_;
          to_bitField0_ |= 0x00020000;
        }
        if (((from_bitField0_ & 0x00080000) != 0)) {
          result.coveredConditions_ = coveredConditions_;
          to_bitField0_ |= 0x00040000;
        }
        if (((from_bitField0_ & 0x00100000) != 0)) {
          result.isNewLine_ = isNewLine_;
          to_bitField0_ |= 0x00080000;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(Line other) {
        if (other == Line.getDefaultInstance()) return this;
        if (other.hasLine()) {
          setLine(other.getLine());
        }
        if (other.hasSource()) {
          bitField0_ |= 0x00000002;
          source_ = other.source_;
          onChanged();
        }
        if (other.hasScmRevision()) {
          bitField0_ |= 0x00000004;
          scmRevision_ = other.scmRevision_;
          onChanged();
        }
        if (other.hasScmAuthor()) {
          bitField0_ |= 0x00000008;
          scmAuthor_ = other.scmAuthor_;
          onChanged();
        }
        if (other.hasScmDate()) {
          setScmDate(other.getScmDate());
        }
        if (other.hasDeprecatedUtLineHits()) {
          setDeprecatedUtLineHits(other.getDeprecatedUtLineHits());
        }
        if (other.hasDeprecatedUtConditions()) {
          setDeprecatedUtConditions(other.getDeprecatedUtConditions());
        }
        if (other.hasDeprecatedUtCoveredConditions()) {
          setDeprecatedUtCoveredConditions(other.getDeprecatedUtCoveredConditions());
        }
        if (other.hasDeprecatedItLineHits()) {
          setDeprecatedItLineHits(other.getDeprecatedItLineHits());
        }
        if (other.hasDeprecatedItConditions()) {
          setDeprecatedItConditions(other.getDeprecatedItConditions());
        }
        if (other.hasDeprecatedItCoveredConditions()) {
          setDeprecatedItCoveredConditions(other.getDeprecatedItCoveredConditions());
        }
        if (other.hasDeprecatedOverallLineHits()) {
          setDeprecatedOverallLineHits(other.getDeprecatedOverallLineHits());
        }
        if (other.hasDeprecatedOverallConditions()) {
          setDeprecatedOverallConditions(other.getDeprecatedOverallConditions());
        }
        if (other.hasDeprecatedOverallCoveredConditions()) {
          setDeprecatedOverallCoveredConditions(other.getDeprecatedOverallCoveredConditions());
        }
        if (other.hasHighlighting()) {
          bitField0_ |= 0x00004000;
          highlighting_ = other.highlighting_;
          onChanged();
        }
        if (other.hasSymbols()) {
          bitField0_ |= 0x00008000;
          symbols_ = other.symbols_;
          onChanged();
        }
        if (!other.duplication_.isEmpty()) {
          if (duplication_.isEmpty()) {
            duplication_ = other.duplication_;
            bitField0_ = (bitField0_ & ~0x00010000);
          } else {
            ensureDuplicationIsMutable();
            duplication_.addAll(other.duplication_);
          }
          onChanged();
        }
        if (other.hasLineHits()) {
          setLineHits(other.getLineHits());
        }
        if (other.hasConditions()) {
          setConditions(other.getConditions());
        }
        if (other.hasCoveredConditions()) {
          setCoveredConditions(other.getCoveredConditions());
        }
        if (other.hasIsNewLine()) {
          setIsNewLine(other.getIsNewLine());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private int line_ ;
      /**
       * <code>optional int32 line = 1;</code>
       * @return Whether the line field is set.
       */
      @Override
      public boolean hasLine() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional int32 line = 1;</code>
       * @return The line.
       */
      @Override
      public int getLine() {
        return line_;
      }
      /**
       * <code>optional int32 line = 1;</code>
       * @param value The line to set.
       * @return This builder for chaining.
       */
      public Builder setLine(int value) {
        bitField0_ |= 0x00000001;
        line_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 line = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearLine() {
        bitField0_ = (bitField0_ & ~0x00000001);
        line_ = 0;
        onChanged();
        return this;
      }

      private Object source_ = "";
      /**
       * <code>optional string source = 2;</code>
       * @return Whether the source field is set.
       */
      @Override
      public boolean hasSource() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional string source = 2;</code>
       * @return The source.
       */
      @Override
      public String getSource() {
        Object ref = source_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            source_ = s;
          }
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>optional string source = 2;</code>
       * @return The bytes for source.
       */
      @Override
      public com.google.protobuf.ByteString
          getSourceBytes() {
        Object ref = source_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          source_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string source = 2;</code>
       * @param value The source to set.
       * @return This builder for chaining.
       */
      public Builder setSource(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        source_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string source = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSource() {
        bitField0_ = (bitField0_ & ~0x00000002);
        source_ = getDefaultInstance().getSource();
        onChanged();
        return this;
      }
      /**
       * <code>optional string source = 2;</code>
       * @param value The bytes for source to set.
       * @return This builder for chaining.
       */
      public Builder setSourceBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        source_ = value;
        onChanged();
        return this;
      }

      private Object scmRevision_ = "";
      /**
       * <pre>
       * SCM
       * </pre>
       *
       * <code>optional string scm_revision = 3;</code>
       * @return Whether the scmRevision field is set.
       */
      public boolean hasScmRevision() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * SCM
       * </pre>
       *
       * <code>optional string scm_revision = 3;</code>
       * @return The scmRevision.
       */
      @Override
      public String getScmRevision() {
        Object ref = scmRevision_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            scmRevision_ = s;
          }
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <pre>
       * SCM
       * </pre>
       *
       * <code>optional string scm_revision = 3;</code>
       * @return The bytes for scmRevision.
       */
      @Override
      public com.google.protobuf.ByteString
          getScmRevisionBytes() {
        Object ref = scmRevision_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          scmRevision_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * SCM
       * </pre>
       *
       * <code>optional string scm_revision = 3;</code>
       * @param value The scmRevision to set.
       * @return This builder for chaining.
       */
      public Builder setScmRevision(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        scmRevision_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * SCM
       * </pre>
       *
       * <code>optional string scm_revision = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearScmRevision() {
        bitField0_ = (bitField0_ & ~0x00000004);
        scmRevision_ = getDefaultInstance().getScmRevision();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * SCM
       * </pre>
       *
       * <code>optional string scm_revision = 3;</code>
       * @param value The bytes for scmRevision to set.
       * @return This builder for chaining.
       */
      public Builder setScmRevisionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        scmRevision_ = value;
        onChanged();
        return this;
      }

      private Object scmAuthor_ = "";
      /**
       * <code>optional string scm_author = 4;</code>
       * @return Whether the scmAuthor field is set.
       */
      @Override
      public boolean hasScmAuthor() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional string scm_author = 4;</code>
       * @return The scmAuthor.
       */
      @Override
      public String getScmAuthor() {
        Object ref = scmAuthor_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            scmAuthor_ = s;
          }
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>optional string scm_author = 4;</code>
       * @return The bytes for scmAuthor.
       */
      public com.google.protobuf.ByteString
          getScmAuthorBytes() {
        Object ref = scmAuthor_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          scmAuthor_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string scm_author = 4;</code>
       * @param value The scmAuthor to set.
       * @return This builder for chaining.
       */
      public Builder setScmAuthor(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        scmAuthor_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string scm_author = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearScmAuthor() {
        bitField0_ = (bitField0_ & ~0x00000008);
        scmAuthor_ = getDefaultInstance().getScmAuthor();
        onChanged();
        return this;
      }
      /**
       * <code>optional string scm_author = 4;</code>
       * @param value The bytes for scmAuthor to set.
       * @return This builder for chaining.
       */
      public Builder setScmAuthorBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        scmAuthor_ = value;
        onChanged();
        return this;
      }

      private long scmDate_ ;
      /**
       * <code>optional int64 scm_date = 5;</code>
       * @return Whether the scmDate field is set.
       */
      @Override
      public boolean hasScmDate() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>optional int64 scm_date = 5;</code>
       * @return The scmDate.
       */
      @Override
      public long getScmDate() {
        return scmDate_;
      }
      /**
       * <code>optional int64 scm_date = 5;</code>
       * @param value The scmDate to set.
       * @return This builder for chaining.
       */
      public Builder setScmDate(long value) {
        bitField0_ |= 0x00000010;
        scmDate_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 scm_date = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearScmDate() {
        bitField0_ = (bitField0_ & ~0x00000010);
        scmDate_ = 0L;
        onChanged();
        return this;
      }

      private int deprecatedUtLineHits_ ;
      /**
       * <pre>
       * Deprecated fields in 6.2 (has been deprecated when merging coverage into a single metric)
       * They are still used to read coverage info from sources that have not be re-analyzed
       * </pre>
       *
       * <code>optional int32 deprecated_ut_line_hits = 6;</code>
       * @return Whether the deprecatedUtLineHits field is set.
       */
      @Override
      public boolean hasDeprecatedUtLineHits() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * Deprecated fields in 6.2 (has been deprecated when merging coverage into a single metric)
       * They are still used to read coverage info from sources that have not be re-analyzed
       * </pre>
       *
       * <code>optional int32 deprecated_ut_line_hits = 6;</code>
       * @return The deprecatedUtLineHits.
       */
      @Override
      public int getDeprecatedUtLineHits() {
        return deprecatedUtLineHits_;
      }
      /**
       * <pre>
       * Deprecated fields in 6.2 (has been deprecated when merging coverage into a single metric)
       * They are still used to read coverage info from sources that have not be re-analyzed
       * </pre>
       *
       * <code>optional int32 deprecated_ut_line_hits = 6;</code>
       * @param value The deprecatedUtLineHits to set.
       * @return This builder for chaining.
       */
      public Builder setDeprecatedUtLineHits(int value) {
        bitField0_ |= 0x00000020;
        deprecatedUtLineHits_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * Deprecated fields in 6.2 (has been deprecated when merging coverage into a single metric)
       * They are still used to read coverage info from sources that have not be re-analyzed
       * </pre>
       *
       * <code>optional int32 deprecated_ut_line_hits = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeprecatedUtLineHits() {
        bitField0_ = (bitField0_ & ~0x00000020);
        deprecatedUtLineHits_ = 0;
        onChanged();
        return this;
      }

      private int deprecatedUtConditions_ ;
      /**
       * <code>optional int32 deprecated_ut_conditions = 7;</code>
       * @return Whether the deprecatedUtConditions field is set.
       */
      @Override
      public boolean hasDeprecatedUtConditions() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <code>optional int32 deprecated_ut_conditions = 7;</code>
       * @return The deprecatedUtConditions.
       */
      @Override
      public int getDeprecatedUtConditions() {
        return deprecatedUtConditions_;
      }
      /**
       * <code>optional int32 deprecated_ut_conditions = 7;</code>
       * @param value The deprecatedUtConditions to set.
       * @return This builder for chaining.
       */
      public Builder setDeprecatedUtConditions(int value) {
        bitField0_ |= 0x00000040;
        deprecatedUtConditions_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 deprecated_ut_conditions = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeprecatedUtConditions() {
        bitField0_ = (bitField0_ & ~0x00000040);
        deprecatedUtConditions_ = 0;
        onChanged();
        return this;
      }

      private int deprecatedUtCoveredConditions_ ;
      /**
       * <code>optional int32 deprecated_ut_covered_conditions = 8;</code>
       * @return Whether the deprecatedUtCoveredConditions field is set.
       */
      @Override
      public boolean hasDeprecatedUtCoveredConditions() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <code>optional int32 deprecated_ut_covered_conditions = 8;</code>
       * @return The deprecatedUtCoveredConditions.
       */
      @Override
      public int getDeprecatedUtCoveredConditions() {
        return deprecatedUtCoveredConditions_;
      }
      /**
       * <code>optional int32 deprecated_ut_covered_conditions = 8;</code>
       * @param value The deprecatedUtCoveredConditions to set.
       * @return This builder for chaining.
       */
      public Builder setDeprecatedUtCoveredConditions(int value) {
        bitField0_ |= 0x00000080;
        deprecatedUtCoveredConditions_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 deprecated_ut_covered_conditions = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeprecatedUtCoveredConditions() {
        bitField0_ = (bitField0_ & ~0x00000080);
        deprecatedUtCoveredConditions_ = 0;
        onChanged();
        return this;
      }

      private int deprecatedItLineHits_ ;
      /**
       * <code>optional int32 deprecated_it_line_hits = 9;</code>
       * @return Whether the deprecatedItLineHits field is set.
       */
      @Override
      public boolean hasDeprecatedItLineHits() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <code>optional int32 deprecated_it_line_hits = 9;</code>
       * @return The deprecatedItLineHits.
       */
      @Override
      public int getDeprecatedItLineHits() {
        return deprecatedItLineHits_;
      }
      /**
       * <code>optional int32 deprecated_it_line_hits = 9;</code>
       * @param value The deprecatedItLineHits to set.
       * @return This builder for chaining.
       */
      public Builder setDeprecatedItLineHits(int value) {
        bitField0_ |= 0x00000100;
        deprecatedItLineHits_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 deprecated_it_line_hits = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeprecatedItLineHits() {
        bitField0_ = (bitField0_ & ~0x00000100);
        deprecatedItLineHits_ = 0;
        onChanged();
        return this;
      }

      private int deprecatedItConditions_ ;
      /**
       * <code>optional int32 deprecated_it_conditions = 10;</code>
       * @return Whether the deprecatedItConditions field is set.
       */
      @Override
      public boolean hasDeprecatedItConditions() {
        return ((bitField0_ & 0x00000200) != 0);
      }
      /**
       * <code>optional int32 deprecated_it_conditions = 10;</code>
       * @return The deprecatedItConditions.
       */
      @Override
      public int getDeprecatedItConditions() {
        return deprecatedItConditions_;
      }
      /**
       * <code>optional int32 deprecated_it_conditions = 10;</code>
       * @param value The deprecatedItConditions to set.
       * @return This builder for chaining.
       */
      public Builder setDeprecatedItConditions(int value) {
        bitField0_ |= 0x00000200;
        deprecatedItConditions_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 deprecated_it_conditions = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeprecatedItConditions() {
        bitField0_ = (bitField0_ & ~0x00000200);
        deprecatedItConditions_ = 0;
        onChanged();
        return this;
      }

      private int deprecatedItCoveredConditions_ ;
      /**
       * <code>optional int32 deprecated_it_covered_conditions = 11;</code>
       * @return Whether the deprecatedItCoveredConditions field is set.
       */
      @Override
      public boolean hasDeprecatedItCoveredConditions() {
        return ((bitField0_ & 0x00000400) != 0);
      }
      /**
       * <code>optional int32 deprecated_it_covered_conditions = 11;</code>
       * @return The deprecatedItCoveredConditions.
       */
      @Override
      public int getDeprecatedItCoveredConditions() {
        return deprecatedItCoveredConditions_;
      }
      /**
       * <code>optional int32 deprecated_it_covered_conditions = 11;</code>
       * @param value The deprecatedItCoveredConditions to set.
       * @return This builder for chaining.
       */
      public Builder setDeprecatedItCoveredConditions(int value) {
        bitField0_ |= 0x00000400;
        deprecatedItCoveredConditions_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 deprecated_it_covered_conditions = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeprecatedItCoveredConditions() {
        bitField0_ = (bitField0_ & ~0x00000400);
        deprecatedItCoveredConditions_ = 0;
        onChanged();
        return this;
      }

      private int deprecatedOverallLineHits_ ;
      /**
       * <code>optional int32 deprecated_overall_line_hits = 12;</code>
       * @return Whether the deprecatedOverallLineHits field is set.
       */
      @Override
      public boolean hasDeprecatedOverallLineHits() {
        return ((bitField0_ & 0x00000800) != 0);
      }
      /**
       * <code>optional int32 deprecated_overall_line_hits = 12;</code>
       * @return The deprecatedOverallLineHits.
       */
      @Override
      public int getDeprecatedOverallLineHits() {
        return deprecatedOverallLineHits_;
      }
      /**
       * <code>optional int32 deprecated_overall_line_hits = 12;</code>
       * @param value The deprecatedOverallLineHits to set.
       * @return This builder for chaining.
       */
      public Builder setDeprecatedOverallLineHits(int value) {
        bitField0_ |= 0x00000800;
        deprecatedOverallLineHits_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 deprecated_overall_line_hits = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeprecatedOverallLineHits() {
        bitField0_ = (bitField0_ & ~0x00000800);
        deprecatedOverallLineHits_ = 0;
        onChanged();
        return this;
      }

      private int deprecatedOverallConditions_ ;
      /**
       * <code>optional int32 deprecated_overall_conditions = 13;</code>
       * @return Whether the deprecatedOverallConditions field is set.
       */
      @Override
      public boolean hasDeprecatedOverallConditions() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <code>optional int32 deprecated_overall_conditions = 13;</code>
       * @return The deprecatedOverallConditions.
       */
      @Override
      public int getDeprecatedOverallConditions() {
        return deprecatedOverallConditions_;
      }
      /**
       * <code>optional int32 deprecated_overall_conditions = 13;</code>
       * @param value The deprecatedOverallConditions to set.
       * @return This builder for chaining.
       */
      public Builder setDeprecatedOverallConditions(int value) {
        bitField0_ |= 0x00001000;
        deprecatedOverallConditions_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 deprecated_overall_conditions = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeprecatedOverallConditions() {
        bitField0_ = (bitField0_ & ~0x00001000);
        deprecatedOverallConditions_ = 0;
        onChanged();
        return this;
      }

      private int deprecatedOverallCoveredConditions_ ;
      /**
       * <code>optional int32 deprecated_overall_covered_conditions = 14;</code>
       * @return Whether the deprecatedOverallCoveredConditions field is set.
       */
      @Override
      public boolean hasDeprecatedOverallCoveredConditions() {
        return ((bitField0_ & 0x00002000) != 0);
      }
      /**
       * <code>optional int32 deprecated_overall_covered_conditions = 14;</code>
       * @return The deprecatedOverallCoveredConditions.
       */
      @Override
      public int getDeprecatedOverallCoveredConditions() {
        return deprecatedOverallCoveredConditions_;
      }
      /**
       * <code>optional int32 deprecated_overall_covered_conditions = 14;</code>
       * @param value The deprecatedOverallCoveredConditions to set.
       * @return This builder for chaining.
       */
      public Builder setDeprecatedOverallCoveredConditions(int value) {
        bitField0_ |= 0x00002000;
        deprecatedOverallCoveredConditions_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 deprecated_overall_covered_conditions = 14;</code>
       * @return This builder for chaining.
       */
      public Builder clearDeprecatedOverallCoveredConditions() {
        bitField0_ = (bitField0_ & ~0x00002000);
        deprecatedOverallCoveredConditions_ = 0;
        onChanged();
        return this;
      }

      private Object highlighting_ = "";
      /**
       * <code>optional string highlighting = 15;</code>
       * @return Whether the highlighting field is set.
       */
      public boolean hasHighlighting() {
        return ((bitField0_ & 0x00004000) != 0);
      }
      /**
       * <code>optional string highlighting = 15;</code>
       * @return The highlighting.
       */
      public String getHighlighting() {
        Object ref = highlighting_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            highlighting_ = s;
          }
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>optional string highlighting = 15;</code>
       * @return The bytes for highlighting.
       */
      public com.google.protobuf.ByteString
          getHighlightingBytes() {
        Object ref = highlighting_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          highlighting_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string highlighting = 15;</code>
       * @param value The highlighting to set.
       * @return This builder for chaining.
       */
      public Builder setHighlighting(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00004000;
        highlighting_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string highlighting = 15;</code>
       * @return This builder for chaining.
       */
      public Builder clearHighlighting() {
        bitField0_ = (bitField0_ & ~0x00004000);
        highlighting_ = getDefaultInstance().getHighlighting();
        onChanged();
        return this;
      }
      /**
       * <code>optional string highlighting = 15;</code>
       * @param value The bytes for highlighting to set.
       * @return This builder for chaining.
       */
      public Builder setHighlightingBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00004000;
        highlighting_ = value;
        onChanged();
        return this;
      }

      private Object symbols_ = "";
      /**
       * <code>optional string symbols = 16;</code>
       * @return Whether the symbols field is set.
       */
      public boolean hasSymbols() {
        return ((bitField0_ & 0x00008000) != 0);
      }
      /**
       * <code>optional string symbols = 16;</code>
       * @return The symbols.
       */
      public String getSymbols() {
        Object ref = symbols_;
        if (!(ref instanceof String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            symbols_ = s;
          }
          return s;
        } else {
          return (String) ref;
        }
      }
      /**
       * <code>optional string symbols = 16;</code>
       * @return The bytes for symbols.
       */
      public com.google.protobuf.ByteString
          getSymbolsBytes() {
        Object ref = symbols_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (String) ref);
          symbols_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string symbols = 16;</code>
       * @param value The symbols to set.
       * @return This builder for chaining.
       */
      public Builder setSymbols(
          String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00008000;
        symbols_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string symbols = 16;</code>
       * @return This builder for chaining.
       */
      public Builder clearSymbols() {
        bitField0_ = (bitField0_ & ~0x00008000);
        symbols_ = getDefaultInstance().getSymbols();
        onChanged();
        return this;
      }
      /**
       * <code>optional string symbols = 16;</code>
       * @param value The bytes for symbols to set.
       * @return This builder for chaining.
       */
      public Builder setSymbolsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00008000;
        symbols_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList duplication_ = emptyIntList();
      private void ensureDuplicationIsMutable() {
        if (!((bitField0_ & 0x00010000) != 0)) {
          duplication_ = mutableCopy(duplication_);
          bitField0_ |= 0x00010000;
         }
      }
      /**
       * <code>repeated int32 duplication = 17 [packed = true];</code>
       * @return A list containing the duplication.
       */
      public java.util.List<Integer>
          getDuplicationList() {
        return ((bitField0_ & 0x00010000) != 0) ?
                 java.util.Collections.unmodifiableList(duplication_) : duplication_;
      }
      /**
       * <code>repeated int32 duplication = 17 [packed = true];</code>
       * @return The count of duplication.
       */
      public int getDuplicationCount() {
        return duplication_.size();
      }
      /**
       * <code>repeated int32 duplication = 17 [packed = true];</code>
       * @param index The index of the element to return.
       * @return The duplication at the given index.
       */
      public int getDuplication(int index) {
        return duplication_.getInt(index);
      }
      /**
       * <code>repeated int32 duplication = 17 [packed = true];</code>
       * @param index The index to set the value at.
       * @param value The duplication to set.
       * @return This builder for chaining.
       */
      public Builder setDuplication(
          int index, int value) {
        ensureDuplicationIsMutable();
        duplication_.setInt(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 duplication = 17 [packed = true];</code>
       * @param value The duplication to add.
       * @return This builder for chaining.
       */
      public Builder addDuplication(int value) {
        ensureDuplicationIsMutable();
        duplication_.addInt(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 duplication = 17 [packed = true];</code>
       * @param values The duplication to add.
       * @return This builder for chaining.
       */
      public Builder addAllDuplication(
          Iterable<? extends Integer> values) {
        ensureDuplicationIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, duplication_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int32 duplication = 17 [packed = true];</code>
       * @return This builder for chaining.
       */
      public Builder clearDuplication() {
        duplication_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00010000);
        onChanged();
        return this;
      }

      private int lineHits_ ;
      /**
       * <pre>
       * coverage info (since 6.2)
       * </pre>
       *
       * <code>optional int32 line_hits = 18;</code>
       * @return Whether the lineHits field is set.
       */
      @Override
      public boolean hasLineHits() {
        return ((bitField0_ & 0x00020000) != 0);
      }
      /**
       * <pre>
       * coverage info (since 6.2)
       * </pre>
       *
       * <code>optional int32 line_hits = 18;</code>
       * @return The lineHits.
       */
      @Override
      public int getLineHits() {
        return lineHits_;
      }
      /**
       * <pre>
       * coverage info (since 6.2)
       * </pre>
       *
       * <code>optional int32 line_hits = 18;</code>
       * @param value The lineHits to set.
       * @return This builder for chaining.
       */
      public Builder setLineHits(int value) {
        bitField0_ |= 0x00020000;
        lineHits_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * coverage info (since 6.2)
       * </pre>
       *
       * <code>optional int32 line_hits = 18;</code>
       * @return This builder for chaining.
       */
      public Builder clearLineHits() {
        bitField0_ = (bitField0_ & ~0x00020000);
        lineHits_ = 0;
        onChanged();
        return this;
      }

      private int conditions_ ;
      /**
       * <code>optional int32 conditions = 19;</code>
       * @return Whether the conditions field is set.
       */
      @Override
      public boolean hasConditions() {
        return ((bitField0_ & 0x00040000) != 0);
      }
      /**
       * <code>optional int32 conditions = 19;</code>
       * @return The conditions.
       */
      @Override
      public int getConditions() {
        return conditions_;
      }
      /**
       * <code>optional int32 conditions = 19;</code>
       * @param value The conditions to set.
       * @return This builder for chaining.
       */
      public Builder setConditions(int value) {
        bitField0_ |= 0x00040000;
        conditions_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 conditions = 19;</code>
       * @return This builder for chaining.
       */
      public Builder clearConditions() {
        bitField0_ = (bitField0_ & ~0x00040000);
        conditions_ = 0;
        onChanged();
        return this;
      }

      private int coveredConditions_ ;
      /**
       * <code>optional int32 covered_conditions = 20;</code>
       * @return Whether the coveredConditions field is set.
       */
      @Override
      public boolean hasCoveredConditions() {
        return ((bitField0_ & 0x00080000) != 0);
      }
      /**
       * <code>optional int32 covered_conditions = 20;</code>
       * @return The coveredConditions.
       */
      @Override
      public int getCoveredConditions() {
        return coveredConditions_;
      }
      /**
       * <code>optional int32 covered_conditions = 20;</code>
       * @param value The coveredConditions to set.
       * @return This builder for chaining.
       */
      public Builder setCoveredConditions(int value) {
        bitField0_ |= 0x00080000;
        coveredConditions_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 covered_conditions = 20;</code>
       * @return This builder for chaining.
       */
      public Builder clearCoveredConditions() {
        bitField0_ = (bitField0_ & ~0x00080000);
        coveredConditions_ = 0;
        onChanged();
        return this;
      }

      private boolean isNewLine_ ;
      /**
       * <code>optional bool is_new_line = 21;</code>
       * @return Whether the isNewLine field is set.
       */
      @Override
      public boolean hasIsNewLine() {
        return ((bitField0_ & 0x00100000) != 0);
      }
      /**
       * <code>optional bool is_new_line = 21;</code>
       * @return The isNewLine.
       */
      @Override
      public boolean getIsNewLine() {
        return isNewLine_;
      }
      /**
       * <code>optional bool is_new_line = 21;</code>
       * @param value The isNewLine to set.
       * @return This builder for chaining.
       */
      public Builder setIsNewLine(boolean value) {
        bitField0_ |= 0x00100000;
        isNewLine_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool is_new_line = 21;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsNewLine() {
        bitField0_ = (bitField0_ & ~0x00100000);
        isNewLine_ = false;
        onChanged();
        return this;
      }
      @Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:org.sonar.server.source.db.Line)
    }

    // @@protoc_insertion_point(class_scope:org.sonar.server.source.db.Line)
    private static final Line DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new Line();
    }

    public static Line getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @Override
    public Line getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RangeOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.sonar.server.source.db.Range)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>optional int32 startOffset = 1;</code>
     * @return Whether the startOffset field is set.
     */
    boolean hasStartOffset();
    /**
     * <code>optional int32 startOffset = 1;</code>
     * @return The startOffset.
     */
    int getStartOffset();

    /**
     * <code>optional int32 endOffset = 2;</code>
     * @return Whether the endOffset field is set.
     */
    boolean hasEndOffset();
    /**
     * <code>optional int32 endOffset = 2;</code>
     * @return The endOffset.
     */
    int getEndOffset();
  }
  /**
   * Protobuf type {@code org.sonar.server.source.db.Range}
   */
  public static final class Range extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:org.sonar.server.source.db.Range)
      RangeOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Range.newBuilder() to construct.
    private Range(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Range() {
    }

    @Override
    @SuppressWarnings({"unused"})
    protected Object newInstance(
        UnusedPrivateParameter unused) {
      return new Range();
    }

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Range(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {
              bitField0_ |= 0x00000001;
              startOffset_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              endOffset_ = input.readInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return net.educoder.ecsonar.protobuf.DbFileSources.internal_static_org_sonar_server_source_db_Range_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return net.educoder.ecsonar.protobuf.DbFileSources.internal_static_org_sonar_server_source_db_Range_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              Range.class, Builder.class);
    }

    private int bitField0_;
    public static final int STARTOFFSET_FIELD_NUMBER = 1;
    private int startOffset_;
    /**
     * <code>optional int32 startOffset = 1;</code>
     * @return Whether the startOffset field is set.
     */
    @Override
    public boolean hasStartOffset() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional int32 startOffset = 1;</code>
     * @return The startOffset.
     */
    @Override
    public int getStartOffset() {
      return startOffset_;
    }

    public static final int ENDOFFSET_FIELD_NUMBER = 2;
    private int endOffset_;
    /**
     * <code>optional int32 endOffset = 2;</code>
     * @return Whether the endOffset field is set.
     */
    @Override
    public boolean hasEndOffset() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional int32 endOffset = 2;</code>
     * @return The endOffset.
     */
    @Override
    public int getEndOffset() {
      return endOffset_;
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeInt32(1, startOffset_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, endOffset_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, startOffset_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, endOffset_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @Override
    public boolean equals(final Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof Range)) {
        return super.equals(obj);
      }
      Range other = (Range) obj;

      if (hasStartOffset() != other.hasStartOffset()) return false;
      if (hasStartOffset()) {
        if (getStartOffset()
            != other.getStartOffset()) return false;
      }
      if (hasEndOffset() != other.hasEndOffset()) return false;
      if (hasEndOffset()) {
        if (getEndOffset()
            != other.getEndOffset()) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasStartOffset()) {
        hash = (37 * hash) + STARTOFFSET_FIELD_NUMBER;
        hash = (53 * hash) + getStartOffset();
      }
      if (hasEndOffset()) {
        hash = (37 * hash) + ENDOFFSET_FIELD_NUMBER;
        hash = (53 * hash) + getEndOffset();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

    @Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(Range prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @Override
    protected Builder newBuilderForType(
        BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code org.sonar.server.source.db.Range}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:org.sonar.server.source.db.Range)
        RangeOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return net.educoder.ecsonar.protobuf.DbFileSources.internal_static_org_sonar_server_source_db_Range_descriptor;
      }

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return net.educoder.ecsonar.protobuf.DbFileSources.internal_static_org_sonar_server_source_db_Range_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                Range.class, Builder.class);
      }

      // Construct using net.educoder.ecsonar.protobuf.DbFileSources.Range.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @Override
      public Builder clear() {
        super.clear();
        startOffset_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        endOffset_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return net.educoder.ecsonar.protobuf.DbFileSources.internal_static_org_sonar_server_source_db_Range_descriptor;
      }

      @Override
      public Range getDefaultInstanceForType() {
        return Range.getDefaultInstance();
      }

      @Override
      public Range build() {
        Range result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public Range buildPartial() {
        Range result = new Range(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.startOffset_ = startOffset_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.endOffset_ = endOffset_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(Range other) {
        if (other == Range.getDefaultInstance()) return this;
        if (other.hasStartOffset()) {
          setStartOffset(other.getStartOffset());
        }
        if (other.hasEndOffset()) {
          setEndOffset(other.getEndOffset());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private int startOffset_ ;
      /**
       * <code>optional int32 startOffset = 1;</code>
       * @return Whether the startOffset field is set.
       */
      @Override
      public boolean hasStartOffset() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional int32 startOffset = 1;</code>
       * @return The startOffset.
       */
      @Override
      public int getStartOffset() {
        return startOffset_;
      }
      /**
       * <code>optional int32 startOffset = 1;</code>
       * @param value The startOffset to set.
       * @return This builder for chaining.
       */
      public Builder setStartOffset(int value) {
        bitField0_ |= 0x00000001;
        startOffset_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 startOffset = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearStartOffset() {
        bitField0_ = (bitField0_ & ~0x00000001);
        startOffset_ = 0;
        onChanged();
        return this;
      }

      private int endOffset_ ;
      /**
       * <code>optional int32 endOffset = 2;</code>
       * @return Whether the endOffset field is set.
       */
      @Override
      public boolean hasEndOffset() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional int32 endOffset = 2;</code>
       * @return The endOffset.
       */
      @Override
      public int getEndOffset() {
        return endOffset_;
      }
      /**
       * <code>optional int32 endOffset = 2;</code>
       * @param value The endOffset to set.
       * @return This builder for chaining.
       */
      public Builder setEndOffset(int value) {
        bitField0_ |= 0x00000002;
        endOffset_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 endOffset = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearEndOffset() {
        bitField0_ = (bitField0_ & ~0x00000002);
        endOffset_ = 0;
        onChanged();
        return this;
      }
      @Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:org.sonar.server.source.db.Range)
    }

    // @@protoc_insertion_point(class_scope:org.sonar.server.source.db.Range)
    private static final Range DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new Range();
    }

    public static Range getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @Override
    public Range getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:org.sonar.server.source.db.Data)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .org.sonar.server.source.db.Line lines = 1;</code>
     */
    java.util.List<Line>
        getLinesList();
    /**
     * <code>repeated .org.sonar.server.source.db.Line lines = 1;</code>
     */
    Line getLines(int index);
    /**
     * <code>repeated .org.sonar.server.source.db.Line lines = 1;</code>
     */
    int getLinesCount();
    /**
     * <code>repeated .org.sonar.server.source.db.Line lines = 1;</code>
     */
    java.util.List<? extends LineOrBuilder>
        getLinesOrBuilderList();
    /**
     * <code>repeated .org.sonar.server.source.db.Line lines = 1;</code>
     */
    LineOrBuilder getLinesOrBuilder(
        int index);
  }
  /**
   * <pre>
   * TODO should be dropped as it prevents streaming
   * </pre>
   *
   * Protobuf type {@code org.sonar.server.source.db.Data}
   */
  public static final class Data extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:org.sonar.server.source.db.Data)
      DataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Data.newBuilder() to construct.
    private Data(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Data() {
      lines_ = java.util.Collections.emptyList();
    }

    @Override
    @SuppressWarnings({"unused"})
    protected Object newInstance(
        UnusedPrivateParameter unused) {
      return new Data();
    }

    @Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Data(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                lines_ = new java.util.ArrayList<Line>();
                mutable_bitField0_ |= 0x00000001;
              }
              lines_.add(
                  input.readMessage(Line.PARSER, extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          lines_ = java.util.Collections.unmodifiableList(lines_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return net.educoder.ecsonar.protobuf.DbFileSources.internal_static_org_sonar_server_source_db_Data_descriptor;
    }

    @Override
    protected FieldAccessorTable
        internalGetFieldAccessorTable() {
      return net.educoder.ecsonar.protobuf.DbFileSources.internal_static_org_sonar_server_source_db_Data_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              Data.class, Builder.class);
    }

    public static final int LINES_FIELD_NUMBER = 1;
    private java.util.List<Line> lines_;
    /**
     * <code>repeated .org.sonar.server.source.db.Line lines = 1;</code>
     */
    @Override
    public java.util.List<Line> getLinesList() {
      return lines_;
    }
    /**
     * <code>repeated .org.sonar.server.source.db.Line lines = 1;</code>
     */
    @Override
    public java.util.List<? extends LineOrBuilder>
        getLinesOrBuilderList() {
      return lines_;
    }
    /**
     * <code>repeated .org.sonar.server.source.db.Line lines = 1;</code>
     */
    @Override
    public int getLinesCount() {
      return lines_.size();
    }
    /**
     * <code>repeated .org.sonar.server.source.db.Line lines = 1;</code>
     */
    @Override
    public Line getLines(int index) {
      return lines_.get(index);
    }
    /**
     * <code>repeated .org.sonar.server.source.db.Line lines = 1;</code>
     */
    @Override
    public LineOrBuilder getLinesOrBuilder(
        int index) {
      return lines_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

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

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

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

    @Override
    public boolean equals(final Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof Data)) {
        return super.equals(obj);
      }
      Data other = (Data) obj;

      if (!getLinesList()
          .equals(other.getLinesList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getLinesCount() > 0) {
        hash = (37 * hash) + LINES_FIELD_NUMBER;
        hash = (53 * hash) + getLinesList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

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

    @Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(Data prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @Override
    protected Builder newBuilderForType(
        BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     * TODO should be dropped as it prevents streaming
     * </pre>
     *
     * Protobuf type {@code org.sonar.server.source.db.Data}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:org.sonar.server.source.db.Data)
        DataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return net.educoder.ecsonar.protobuf.DbFileSources.internal_static_org_sonar_server_source_db_Data_descriptor;
      }

      @Override
      protected FieldAccessorTable
          internalGetFieldAccessorTable() {
        return net.educoder.ecsonar.protobuf.DbFileSources.internal_static_org_sonar_server_source_db_Data_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                Data.class, Builder.class);
      }

      // Construct using net.educoder.ecsonar.protobuf.DbFileSources.Data.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      @Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return net.educoder.ecsonar.protobuf.DbFileSources.internal_static_org_sonar_server_source_db_Data_descriptor;
      }

      @Override
      public Data getDefaultInstanceForType() {
        return Data.getDefaultInstance();
      }

      @Override
      public Data build() {
        Data result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @Override
      public Data buildPartial() {
        Data result = new Data(this);
        int from_bitField0_ = bitField0_;
        if (linesBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            lines_ = java.util.Collections.unmodifiableList(lines_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.lines_ = lines_;
        } else {
          result.lines_ = linesBuilder_.build();
        }
        onBuilt();
        return result;
      }

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

      public Builder mergeFrom(Data other) {
        if (other == Data.getDefaultInstance()) return this;
        if (linesBuilder_ == null) {
          if (!other.lines_.isEmpty()) {
            if (lines_.isEmpty()) {
              lines_ = other.lines_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureLinesIsMutable();
              lines_.addAll(other.lines_);
            }
            onChanged();
          }
        } else {
          if (!other.lines_.isEmpty()) {
            if (linesBuilder_.isEmpty()) {
              linesBuilder_.dispose();
              linesBuilder_ = null;
              lines_ = other.lines_;
              bitField0_ = (bitField0_ & ~0x00000001);
              linesBuilder_ =
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getLinesFieldBuilder() : null;
            } else {
              linesBuilder_.addAllMessages(other.lines_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

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

      private java.util.List<Line> lines_ =
        java.util.Collections.emptyList();
      private void ensureLinesIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          lines_ = new java.util.ArrayList<Line>(lines_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          Line, Line.Builder, LineOrBuilder> linesBuilder_;

      /**
       * <code>repeated .org.sonar.server.source.db.Line lines = 1;</code>
       */
      public java.util.List<Line> getLinesList() {
        if (linesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(lines_);
        } else {
          return linesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .org.sonar.server.source.db.Line lines = 1;</code>
       */
      public int getLinesCount() {
        if (linesBuilder_ == null) {
          return lines_.size();
        } else {
          return linesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .org.sonar.server.source.db.Line lines = 1;</code>
       */
      public Line getLines(int index) {
        if (linesBuilder_ == null) {
          return lines_.get(index);
        } else {
          return linesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .org.sonar.server.source.db.Line lines = 1;</code>
       */
      public Builder setLines(
          int index, Line value) {
        if (linesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLinesIsMutable();
          lines_.set(index, value);
          onChanged();
        } else {
          linesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .org.sonar.server.source.db.Line lines = 1;</code>
       */
      public Builder setLines(
          int index, Line.Builder builderForValue) {
        if (linesBuilder_ == null) {
          ensureLinesIsMutable();
          lines_.set(index, builderForValue.build());
          onChanged();
        } else {
          linesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.sonar.server.source.db.Line lines = 1;</code>
       */
      public Builder addLines(Line value) {
        if (linesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLinesIsMutable();
          lines_.add(value);
          onChanged();
        } else {
          linesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .org.sonar.server.source.db.Line lines = 1;</code>
       */
      public Builder addLines(
          int index, Line value) {
        if (linesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLinesIsMutable();
          lines_.add(index, value);
          onChanged();
        } else {
          linesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .org.sonar.server.source.db.Line lines = 1;</code>
       */
      public Builder addLines(
          Line.Builder builderForValue) {
        if (linesBuilder_ == null) {
          ensureLinesIsMutable();
          lines_.add(builderForValue.build());
          onChanged();
        } else {
          linesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.sonar.server.source.db.Line lines = 1;</code>
       */
      public Builder addLines(
          int index, Line.Builder builderForValue) {
        if (linesBuilder_ == null) {
          ensureLinesIsMutable();
          lines_.add(index, builderForValue.build());
          onChanged();
        } else {
          linesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .org.sonar.server.source.db.Line lines = 1;</code>
       */
      public Builder addAllLines(
          Iterable<? extends Line> values) {
        if (linesBuilder_ == null) {
          ensureLinesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, lines_);
          onChanged();
        } else {
          linesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .org.sonar.server.source.db.Line lines = 1;</code>
       */
      public Builder clearLines() {
        if (linesBuilder_ == null) {
          lines_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          linesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .org.sonar.server.source.db.Line lines = 1;</code>
       */
      public Builder removeLines(int index) {
        if (linesBuilder_ == null) {
          ensureLinesIsMutable();
          lines_.remove(index);
          onChanged();
        } else {
          linesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .org.sonar.server.source.db.Line lines = 1;</code>
       */
      public Line.Builder getLinesBuilder(
          int index) {
        return getLinesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .org.sonar.server.source.db.Line lines = 1;</code>
       */
      @Override
      public LineOrBuilder getLinesOrBuilder(
          int index) {
        if (linesBuilder_ == null) {
          return lines_.get(index);  } else {
          return linesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .org.sonar.server.source.db.Line lines = 1;</code>
       */
      @Override
      public java.util.List<? extends LineOrBuilder>
           getLinesOrBuilderList() {
        if (linesBuilder_ != null) {
          return linesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(lines_);
        }
      }
      /**
       * <code>repeated .org.sonar.server.source.db.Line lines = 1;</code>
       */
      public Line.Builder addLinesBuilder() {
        return getLinesFieldBuilder().addBuilder(
            Line.getDefaultInstance());
      }
      /**
       * <code>repeated .org.sonar.server.source.db.Line lines = 1;</code>
       */
      public Line.Builder addLinesBuilder(
          int index) {
        return getLinesFieldBuilder().addBuilder(
            index, Line.getDefaultInstance());
      }
      /**
       * <code>repeated .org.sonar.server.source.db.Line lines = 1;</code>
       */
      public java.util.List<Line.Builder>
           getLinesBuilderList() {
        return getLinesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          Line, Line.Builder, LineOrBuilder>
          getLinesFieldBuilder() {
        if (linesBuilder_ == null) {
          linesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              Line, Line.Builder, LineOrBuilder>(
                  lines_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          lines_ = null;
        }
        return linesBuilder_;
      }
      @Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

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


      // @@protoc_insertion_point(builder_scope:org.sonar.server.source.db.Data)
    }

    // @@protoc_insertion_point(class_scope:org.sonar.server.source.db.Data)
    private static final Data DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new Data();
    }

    public static Data getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @Override
    public Data getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_org_sonar_server_source_db_Line_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_org_sonar_server_source_db_Line_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_org_sonar_server_source_db_Range_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_org_sonar_server_source_db_Range_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_org_sonar_server_source_db_Data_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_org_sonar_server_source_db_Data_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    String[] descriptorData = {
      "\n\025db-file-sources.proto\022\032org.sonar.serve" +
      "r.source.db\"\316\004\n\004Line\022\014\n\004line\030\001 \001(\005\022\016\n\006so" +
      "urce\030\002 \001(\t\022\024\n\014scm_revision\030\003 \001(\t\022\022\n\nscm_" +
      "author\030\004 \001(\t\022\020\n\010scm_date\030\005 \001(\003\022\037\n\027deprec" +
      "ated_ut_line_hits\030\006 \001(\005\022 \n\030deprecated_ut" +
      "_conditions\030\007 \001(\005\022(\n deprecated_ut_cover" +
      "ed_conditions\030\010 \001(\005\022\037\n\027deprecated_it_lin" +
      "e_hits\030\t \001(\005\022 \n\030deprecated_it_conditions" +
      "\030\n \001(\005\022(\n deprecated_it_covered_conditio" +
      "ns\030\013 \001(\005\022$\n\034deprecated_overall_line_hits" +
      "\030\014 \001(\005\022%\n\035deprecated_overall_conditions\030" +
      "\r \001(\005\022-\n%deprecated_overall_covered_cond" +
      "itions\030\016 \001(\005\022\024\n\014highlighting\030\017 \001(\t\022\017\n\007sy" +
      "mbols\030\020 \001(\t\022\027\n\013duplication\030\021 \003(\005B\002\020\001\022\021\n\t" +
      "line_hits\030\022 \001(\005\022\022\n\nconditions\030\023 \001(\005\022\032\n\022c" +
      "overed_conditions\030\024 \001(\005\022\023\n\013is_new_line\030\025" +
      " \001(\010\"/\n\005Range\022\023\n\013startOffset\030\001 \001(\005\022\021\n\ten" +
      "dOffset\030\002 \001(\005\"7\n\004Data\022/\n\005lines\030\001 \003(\0132 .o" +
      "rg.sonar.server.source.db.LineB!\n\035net.ed" +
      "ucoder.ecsonar.protobufH\001"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        });
    internal_static_org_sonar_server_source_db_Line_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_org_sonar_server_source_db_Line_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_org_sonar_server_source_db_Line_descriptor,
        new String[] { "Line", "Source", "ScmRevision", "ScmAuthor", "ScmDate", "DeprecatedUtLineHits", "DeprecatedUtConditions", "DeprecatedUtCoveredConditions", "DeprecatedItLineHits", "DeprecatedItConditions", "DeprecatedItCoveredConditions", "DeprecatedOverallLineHits", "DeprecatedOverallConditions", "DeprecatedOverallCoveredConditions", "Highlighting", "Symbols", "Duplication", "LineHits", "Conditions", "CoveredConditions", "IsNewLine", });
    internal_static_org_sonar_server_source_db_Range_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_org_sonar_server_source_db_Range_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_org_sonar_server_source_db_Range_descriptor,
        new String[] { "StartOffset", "EndOffset", });
    internal_static_org_sonar_server_source_db_Data_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_org_sonar_server_source_db_Data_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_org_sonar_server_source_db_Data_descriptor,
        new String[] { "Lines", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}
