001// Generated by the protocol buffer compiler.  DO NOT EDIT!
002// source: batch_report.proto
003
004package org.sonar.batch.protocol.output;
005
006public final class BatchReport {
007  private BatchReport() {}
008  public static void registerAllExtensions(
009      com.google.protobuf.ExtensionRegistry registry) {
010  }
011  public interface MetadataOrBuilder extends
012      // @@protoc_insertion_point(interface_extends:Metadata)
013      com.google.protobuf.MessageOrBuilder {
014
015    /**
016     * <code>optional int64 analysis_date = 1;</code>
017     */
018    boolean hasAnalysisDate();
019    /**
020     * <code>optional int64 analysis_date = 1;</code>
021     */
022    long getAnalysisDate();
023
024    /**
025     * <code>optional string project_key = 2;</code>
026     *
027     * <pre>
028     * TODO should we keep this project_key here or not ? Because it's a duplication of Component.key
029     * </pre>
030     */
031    boolean hasProjectKey();
032    /**
033     * <code>optional string project_key = 2;</code>
034     *
035     * <pre>
036     * TODO should we keep this project_key here or not ? Because it's a duplication of Component.key
037     * </pre>
038     */
039    java.lang.String getProjectKey();
040    /**
041     * <code>optional string project_key = 2;</code>
042     *
043     * <pre>
044     * TODO should we keep this project_key here or not ? Because it's a duplication of Component.key
045     * </pre>
046     */
047    com.google.protobuf.ByteString
048        getProjectKeyBytes();
049
050    /**
051     * <code>optional string branch = 3;</code>
052     */
053    boolean hasBranch();
054    /**
055     * <code>optional string branch = 3;</code>
056     */
057    java.lang.String getBranch();
058    /**
059     * <code>optional string branch = 3;</code>
060     */
061    com.google.protobuf.ByteString
062        getBranchBytes();
063
064    /**
065     * <code>optional int32 root_component_ref = 4;</code>
066     */
067    boolean hasRootComponentRef();
068    /**
069     * <code>optional int32 root_component_ref = 4;</code>
070     */
071    int getRootComponentRef();
072  }
073  /**
074   * Protobuf type {@code Metadata}
075   */
076  public  static final class Metadata extends
077      com.google.protobuf.GeneratedMessage implements
078      // @@protoc_insertion_point(message_implements:Metadata)
079      MetadataOrBuilder {
080    // Use Metadata.newBuilder() to construct.
081    private Metadata(com.google.protobuf.GeneratedMessage.Builder builder) {
082      super(builder);
083    }
084    private Metadata() {
085      analysisDate_ = 0L;
086      projectKey_ = "";
087      branch_ = "";
088      rootComponentRef_ = 0;
089    }
090
091    @java.lang.Override
092    public final com.google.protobuf.UnknownFieldSet
093    getUnknownFields() {
094      return this.unknownFields;
095    }
096    private Metadata(
097        com.google.protobuf.CodedInputStream input,
098        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
099      this();
100      int mutable_bitField0_ = 0;
101      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
102          com.google.protobuf.UnknownFieldSet.newBuilder();
103      try {
104        boolean done = false;
105        while (!done) {
106          int tag = input.readTag();
107          switch (tag) {
108            case 0:
109              done = true;
110              break;
111            default: {
112              if (!parseUnknownField(input, unknownFields,
113                                     extensionRegistry, tag)) {
114                done = true;
115              }
116              break;
117            }
118            case 8: {
119              bitField0_ |= 0x00000001;
120              analysisDate_ = input.readInt64();
121              break;
122            }
123            case 18: {
124              com.google.protobuf.ByteString bs = input.readBytes();
125              bitField0_ |= 0x00000002;
126              projectKey_ = bs;
127              break;
128            }
129            case 26: {
130              com.google.protobuf.ByteString bs = input.readBytes();
131              bitField0_ |= 0x00000004;
132              branch_ = bs;
133              break;
134            }
135            case 32: {
136              bitField0_ |= 0x00000008;
137              rootComponentRef_ = input.readInt32();
138              break;
139            }
140          }
141        }
142      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
143        throw new RuntimeException(e.setUnfinishedMessage(this));
144      } catch (java.io.IOException e) {
145        throw new RuntimeException(
146            new com.google.protobuf.InvalidProtocolBufferException(
147                e.getMessage()).setUnfinishedMessage(this));
148      } finally {
149        this.unknownFields = unknownFields.build();
150        makeExtensionsImmutable();
151      }
152    }
153    public static final com.google.protobuf.Descriptors.Descriptor
154        getDescriptor() {
155      return org.sonar.batch.protocol.output.BatchReport.internal_static_Metadata_descriptor;
156    }
157
158    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
159        internalGetFieldAccessorTable() {
160      return org.sonar.batch.protocol.output.BatchReport.internal_static_Metadata_fieldAccessorTable
161          .ensureFieldAccessorsInitialized(
162              org.sonar.batch.protocol.output.BatchReport.Metadata.class, org.sonar.batch.protocol.output.BatchReport.Metadata.Builder.class);
163    }
164
165    private int bitField0_;
166    public static final int ANALYSIS_DATE_FIELD_NUMBER = 1;
167    private long analysisDate_;
168    /**
169     * <code>optional int64 analysis_date = 1;</code>
170     */
171    public boolean hasAnalysisDate() {
172      return ((bitField0_ & 0x00000001) == 0x00000001);
173    }
174    /**
175     * <code>optional int64 analysis_date = 1;</code>
176     */
177    public long getAnalysisDate() {
178      return analysisDate_;
179    }
180
181    public static final int PROJECT_KEY_FIELD_NUMBER = 2;
182    private volatile java.lang.Object projectKey_;
183    /**
184     * <code>optional string project_key = 2;</code>
185     *
186     * <pre>
187     * TODO should we keep this project_key here or not ? Because it's a duplication of Component.key
188     * </pre>
189     */
190    public boolean hasProjectKey() {
191      return ((bitField0_ & 0x00000002) == 0x00000002);
192    }
193    /**
194     * <code>optional string project_key = 2;</code>
195     *
196     * <pre>
197     * TODO should we keep this project_key here or not ? Because it's a duplication of Component.key
198     * </pre>
199     */
200    public java.lang.String getProjectKey() {
201      java.lang.Object ref = projectKey_;
202      if (ref instanceof java.lang.String) {
203        return (java.lang.String) ref;
204      } else {
205        com.google.protobuf.ByteString bs = 
206            (com.google.protobuf.ByteString) ref;
207        java.lang.String s = bs.toStringUtf8();
208        if (bs.isValidUtf8()) {
209          projectKey_ = s;
210        }
211        return s;
212      }
213    }
214    /**
215     * <code>optional string project_key = 2;</code>
216     *
217     * <pre>
218     * TODO should we keep this project_key here or not ? Because it's a duplication of Component.key
219     * </pre>
220     */
221    public com.google.protobuf.ByteString
222        getProjectKeyBytes() {
223      java.lang.Object ref = projectKey_;
224      if (ref instanceof java.lang.String) {
225        com.google.protobuf.ByteString b = 
226            com.google.protobuf.ByteString.copyFromUtf8(
227                (java.lang.String) ref);
228        projectKey_ = b;
229        return b;
230      } else {
231        return (com.google.protobuf.ByteString) ref;
232      }
233    }
234
235    public static final int BRANCH_FIELD_NUMBER = 3;
236    private volatile java.lang.Object branch_;
237    /**
238     * <code>optional string branch = 3;</code>
239     */
240    public boolean hasBranch() {
241      return ((bitField0_ & 0x00000004) == 0x00000004);
242    }
243    /**
244     * <code>optional string branch = 3;</code>
245     */
246    public java.lang.String getBranch() {
247      java.lang.Object ref = branch_;
248      if (ref instanceof java.lang.String) {
249        return (java.lang.String) ref;
250      } else {
251        com.google.protobuf.ByteString bs = 
252            (com.google.protobuf.ByteString) ref;
253        java.lang.String s = bs.toStringUtf8();
254        if (bs.isValidUtf8()) {
255          branch_ = s;
256        }
257        return s;
258      }
259    }
260    /**
261     * <code>optional string branch = 3;</code>
262     */
263    public com.google.protobuf.ByteString
264        getBranchBytes() {
265      java.lang.Object ref = branch_;
266      if (ref instanceof java.lang.String) {
267        com.google.protobuf.ByteString b = 
268            com.google.protobuf.ByteString.copyFromUtf8(
269                (java.lang.String) ref);
270        branch_ = b;
271        return b;
272      } else {
273        return (com.google.protobuf.ByteString) ref;
274      }
275    }
276
277    public static final int ROOT_COMPONENT_REF_FIELD_NUMBER = 4;
278    private int rootComponentRef_;
279    /**
280     * <code>optional int32 root_component_ref = 4;</code>
281     */
282    public boolean hasRootComponentRef() {
283      return ((bitField0_ & 0x00000008) == 0x00000008);
284    }
285    /**
286     * <code>optional int32 root_component_ref = 4;</code>
287     */
288    public int getRootComponentRef() {
289      return rootComponentRef_;
290    }
291
292    private byte memoizedIsInitialized = -1;
293    public final boolean isInitialized() {
294      byte isInitialized = memoizedIsInitialized;
295      if (isInitialized == 1) return true;
296      if (isInitialized == 0) return false;
297
298      memoizedIsInitialized = 1;
299      return true;
300    }
301
302    public void writeTo(com.google.protobuf.CodedOutputStream output)
303                        throws java.io.IOException {
304      if (((bitField0_ & 0x00000001) == 0x00000001)) {
305        output.writeInt64(1, analysisDate_);
306      }
307      if (((bitField0_ & 0x00000002) == 0x00000002)) {
308        output.writeBytes(2, getProjectKeyBytes());
309      }
310      if (((bitField0_ & 0x00000004) == 0x00000004)) {
311        output.writeBytes(3, getBranchBytes());
312      }
313      if (((bitField0_ & 0x00000008) == 0x00000008)) {
314        output.writeInt32(4, rootComponentRef_);
315      }
316      unknownFields.writeTo(output);
317    }
318
319    private int memoizedSerializedSize = -1;
320    public int getSerializedSize() {
321      int size = memoizedSerializedSize;
322      if (size != -1) return size;
323
324      size = 0;
325      if (((bitField0_ & 0x00000001) == 0x00000001)) {
326        size += com.google.protobuf.CodedOutputStream
327          .computeInt64Size(1, analysisDate_);
328      }
329      if (((bitField0_ & 0x00000002) == 0x00000002)) {
330        size += com.google.protobuf.CodedOutputStream
331          .computeBytesSize(2, getProjectKeyBytes());
332      }
333      if (((bitField0_ & 0x00000004) == 0x00000004)) {
334        size += com.google.protobuf.CodedOutputStream
335          .computeBytesSize(3, getBranchBytes());
336      }
337      if (((bitField0_ & 0x00000008) == 0x00000008)) {
338        size += com.google.protobuf.CodedOutputStream
339          .computeInt32Size(4, rootComponentRef_);
340      }
341      size += unknownFields.getSerializedSize();
342      memoizedSerializedSize = size;
343      return size;
344    }
345
346    private static final long serialVersionUID = 0L;
347    public static org.sonar.batch.protocol.output.BatchReport.Metadata parseFrom(
348        com.google.protobuf.ByteString data)
349        throws com.google.protobuf.InvalidProtocolBufferException {
350      return PARSER.parseFrom(data);
351    }
352    public static org.sonar.batch.protocol.output.BatchReport.Metadata parseFrom(
353        com.google.protobuf.ByteString data,
354        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
355        throws com.google.protobuf.InvalidProtocolBufferException {
356      return PARSER.parseFrom(data, extensionRegistry);
357    }
358    public static org.sonar.batch.protocol.output.BatchReport.Metadata parseFrom(byte[] data)
359        throws com.google.protobuf.InvalidProtocolBufferException {
360      return PARSER.parseFrom(data);
361    }
362    public static org.sonar.batch.protocol.output.BatchReport.Metadata parseFrom(
363        byte[] data,
364        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
365        throws com.google.protobuf.InvalidProtocolBufferException {
366      return PARSER.parseFrom(data, extensionRegistry);
367    }
368    public static org.sonar.batch.protocol.output.BatchReport.Metadata parseFrom(java.io.InputStream input)
369        throws java.io.IOException {
370      return PARSER.parseFrom(input);
371    }
372    public static org.sonar.batch.protocol.output.BatchReport.Metadata parseFrom(
373        java.io.InputStream input,
374        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
375        throws java.io.IOException {
376      return PARSER.parseFrom(input, extensionRegistry);
377    }
378    public static org.sonar.batch.protocol.output.BatchReport.Metadata parseDelimitedFrom(java.io.InputStream input)
379        throws java.io.IOException {
380      return PARSER.parseDelimitedFrom(input);
381    }
382    public static org.sonar.batch.protocol.output.BatchReport.Metadata parseDelimitedFrom(
383        java.io.InputStream input,
384        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
385        throws java.io.IOException {
386      return PARSER.parseDelimitedFrom(input, extensionRegistry);
387    }
388    public static org.sonar.batch.protocol.output.BatchReport.Metadata parseFrom(
389        com.google.protobuf.CodedInputStream input)
390        throws java.io.IOException {
391      return PARSER.parseFrom(input);
392    }
393    public static org.sonar.batch.protocol.output.BatchReport.Metadata parseFrom(
394        com.google.protobuf.CodedInputStream input,
395        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
396        throws java.io.IOException {
397      return PARSER.parseFrom(input, extensionRegistry);
398    }
399
400    public Builder newBuilderForType() { return newBuilder(); }
401    public static Builder newBuilder() {
402      return DEFAULT_INSTANCE.toBuilder();
403    }
404    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.Metadata prototype) {
405      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
406    }
407    public Builder toBuilder() {
408      return this == DEFAULT_INSTANCE
409          ? new Builder() : new Builder().mergeFrom(this);
410    }
411
412    @java.lang.Override
413    protected Builder newBuilderForType(
414        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
415      Builder builder = new Builder(parent);
416      return builder;
417    }
418    /**
419     * Protobuf type {@code Metadata}
420     */
421    public static final class Builder extends
422        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
423        // @@protoc_insertion_point(builder_implements:Metadata)
424        org.sonar.batch.protocol.output.BatchReport.MetadataOrBuilder {
425      public static final com.google.protobuf.Descriptors.Descriptor
426          getDescriptor() {
427        return org.sonar.batch.protocol.output.BatchReport.internal_static_Metadata_descriptor;
428      }
429
430      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
431          internalGetFieldAccessorTable() {
432        return org.sonar.batch.protocol.output.BatchReport.internal_static_Metadata_fieldAccessorTable
433            .ensureFieldAccessorsInitialized(
434                org.sonar.batch.protocol.output.BatchReport.Metadata.class, org.sonar.batch.protocol.output.BatchReport.Metadata.Builder.class);
435      }
436
437      // Construct using org.sonar.batch.protocol.output.BatchReport.Metadata.newBuilder()
438      private Builder() {
439        maybeForceBuilderInitialization();
440      }
441
442      private Builder(
443          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
444        super(parent);
445        maybeForceBuilderInitialization();
446      }
447      private void maybeForceBuilderInitialization() {
448        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
449        }
450      }
451      public Builder clear() {
452        super.clear();
453        analysisDate_ = 0L;
454        bitField0_ = (bitField0_ & ~0x00000001);
455        projectKey_ = "";
456        bitField0_ = (bitField0_ & ~0x00000002);
457        branch_ = "";
458        bitField0_ = (bitField0_ & ~0x00000004);
459        rootComponentRef_ = 0;
460        bitField0_ = (bitField0_ & ~0x00000008);
461        return this;
462      }
463
464      public com.google.protobuf.Descriptors.Descriptor
465          getDescriptorForType() {
466        return org.sonar.batch.protocol.output.BatchReport.internal_static_Metadata_descriptor;
467      }
468
469      public org.sonar.batch.protocol.output.BatchReport.Metadata getDefaultInstanceForType() {
470        return org.sonar.batch.protocol.output.BatchReport.Metadata.getDefaultInstance();
471      }
472
473      public org.sonar.batch.protocol.output.BatchReport.Metadata build() {
474        org.sonar.batch.protocol.output.BatchReport.Metadata result = buildPartial();
475        if (!result.isInitialized()) {
476          throw newUninitializedMessageException(result);
477        }
478        return result;
479      }
480
481      public org.sonar.batch.protocol.output.BatchReport.Metadata buildPartial() {
482        org.sonar.batch.protocol.output.BatchReport.Metadata result = new org.sonar.batch.protocol.output.BatchReport.Metadata(this);
483        int from_bitField0_ = bitField0_;
484        int to_bitField0_ = 0;
485        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
486          to_bitField0_ |= 0x00000001;
487        }
488        result.analysisDate_ = analysisDate_;
489        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
490          to_bitField0_ |= 0x00000002;
491        }
492        result.projectKey_ = projectKey_;
493        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
494          to_bitField0_ |= 0x00000004;
495        }
496        result.branch_ = branch_;
497        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
498          to_bitField0_ |= 0x00000008;
499        }
500        result.rootComponentRef_ = rootComponentRef_;
501        result.bitField0_ = to_bitField0_;
502        onBuilt();
503        return result;
504      }
505
506      public Builder mergeFrom(com.google.protobuf.Message other) {
507        if (other instanceof org.sonar.batch.protocol.output.BatchReport.Metadata) {
508          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.Metadata)other);
509        } else {
510          super.mergeFrom(other);
511          return this;
512        }
513      }
514
515      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.Metadata other) {
516        if (other == org.sonar.batch.protocol.output.BatchReport.Metadata.getDefaultInstance()) return this;
517        if (other.hasAnalysisDate()) {
518          setAnalysisDate(other.getAnalysisDate());
519        }
520        if (other.hasProjectKey()) {
521          bitField0_ |= 0x00000002;
522          projectKey_ = other.projectKey_;
523          onChanged();
524        }
525        if (other.hasBranch()) {
526          bitField0_ |= 0x00000004;
527          branch_ = other.branch_;
528          onChanged();
529        }
530        if (other.hasRootComponentRef()) {
531          setRootComponentRef(other.getRootComponentRef());
532        }
533        this.mergeUnknownFields(other.unknownFields);
534        onChanged();
535        return this;
536      }
537
538      public final boolean isInitialized() {
539        return true;
540      }
541
542      public Builder mergeFrom(
543          com.google.protobuf.CodedInputStream input,
544          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
545          throws java.io.IOException {
546        org.sonar.batch.protocol.output.BatchReport.Metadata parsedMessage = null;
547        try {
548          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
549        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
550          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.Metadata) e.getUnfinishedMessage();
551          throw e;
552        } finally {
553          if (parsedMessage != null) {
554            mergeFrom(parsedMessage);
555          }
556        }
557        return this;
558      }
559      private int bitField0_;
560
561      private long analysisDate_ ;
562      /**
563       * <code>optional int64 analysis_date = 1;</code>
564       */
565      public boolean hasAnalysisDate() {
566        return ((bitField0_ & 0x00000001) == 0x00000001);
567      }
568      /**
569       * <code>optional int64 analysis_date = 1;</code>
570       */
571      public long getAnalysisDate() {
572        return analysisDate_;
573      }
574      /**
575       * <code>optional int64 analysis_date = 1;</code>
576       */
577      public Builder setAnalysisDate(long value) {
578        bitField0_ |= 0x00000001;
579        analysisDate_ = value;
580        onChanged();
581        return this;
582      }
583      /**
584       * <code>optional int64 analysis_date = 1;</code>
585       */
586      public Builder clearAnalysisDate() {
587        bitField0_ = (bitField0_ & ~0x00000001);
588        analysisDate_ = 0L;
589        onChanged();
590        return this;
591      }
592
593      private java.lang.Object projectKey_ = "";
594      /**
595       * <code>optional string project_key = 2;</code>
596       *
597       * <pre>
598       * TODO should we keep this project_key here or not ? Because it's a duplication of Component.key
599       * </pre>
600       */
601      public boolean hasProjectKey() {
602        return ((bitField0_ & 0x00000002) == 0x00000002);
603      }
604      /**
605       * <code>optional string project_key = 2;</code>
606       *
607       * <pre>
608       * TODO should we keep this project_key here or not ? Because it's a duplication of Component.key
609       * </pre>
610       */
611      public java.lang.String getProjectKey() {
612        java.lang.Object ref = projectKey_;
613        if (!(ref instanceof java.lang.String)) {
614          com.google.protobuf.ByteString bs =
615              (com.google.protobuf.ByteString) ref;
616          java.lang.String s = bs.toStringUtf8();
617          if (bs.isValidUtf8()) {
618            projectKey_ = s;
619          }
620          return s;
621        } else {
622          return (java.lang.String) ref;
623        }
624      }
625      /**
626       * <code>optional string project_key = 2;</code>
627       *
628       * <pre>
629       * TODO should we keep this project_key here or not ? Because it's a duplication of Component.key
630       * </pre>
631       */
632      public com.google.protobuf.ByteString
633          getProjectKeyBytes() {
634        java.lang.Object ref = projectKey_;
635        if (ref instanceof String) {
636          com.google.protobuf.ByteString b = 
637              com.google.protobuf.ByteString.copyFromUtf8(
638                  (java.lang.String) ref);
639          projectKey_ = b;
640          return b;
641        } else {
642          return (com.google.protobuf.ByteString) ref;
643        }
644      }
645      /**
646       * <code>optional string project_key = 2;</code>
647       *
648       * <pre>
649       * TODO should we keep this project_key here or not ? Because it's a duplication of Component.key
650       * </pre>
651       */
652      public Builder setProjectKey(
653          java.lang.String value) {
654        if (value == null) {
655    throw new NullPointerException();
656  }
657  bitField0_ |= 0x00000002;
658        projectKey_ = value;
659        onChanged();
660        return this;
661      }
662      /**
663       * <code>optional string project_key = 2;</code>
664       *
665       * <pre>
666       * TODO should we keep this project_key here or not ? Because it's a duplication of Component.key
667       * </pre>
668       */
669      public Builder clearProjectKey() {
670        bitField0_ = (bitField0_ & ~0x00000002);
671        projectKey_ = getDefaultInstance().getProjectKey();
672        onChanged();
673        return this;
674      }
675      /**
676       * <code>optional string project_key = 2;</code>
677       *
678       * <pre>
679       * TODO should we keep this project_key here or not ? Because it's a duplication of Component.key
680       * </pre>
681       */
682      public Builder setProjectKeyBytes(
683          com.google.protobuf.ByteString value) {
684        if (value == null) {
685    throw new NullPointerException();
686  }
687  bitField0_ |= 0x00000002;
688        projectKey_ = value;
689        onChanged();
690        return this;
691      }
692
693      private java.lang.Object branch_ = "";
694      /**
695       * <code>optional string branch = 3;</code>
696       */
697      public boolean hasBranch() {
698        return ((bitField0_ & 0x00000004) == 0x00000004);
699      }
700      /**
701       * <code>optional string branch = 3;</code>
702       */
703      public java.lang.String getBranch() {
704        java.lang.Object ref = branch_;
705        if (!(ref instanceof java.lang.String)) {
706          com.google.protobuf.ByteString bs =
707              (com.google.protobuf.ByteString) ref;
708          java.lang.String s = bs.toStringUtf8();
709          if (bs.isValidUtf8()) {
710            branch_ = s;
711          }
712          return s;
713        } else {
714          return (java.lang.String) ref;
715        }
716      }
717      /**
718       * <code>optional string branch = 3;</code>
719       */
720      public com.google.protobuf.ByteString
721          getBranchBytes() {
722        java.lang.Object ref = branch_;
723        if (ref instanceof String) {
724          com.google.protobuf.ByteString b = 
725              com.google.protobuf.ByteString.copyFromUtf8(
726                  (java.lang.String) ref);
727          branch_ = b;
728          return b;
729        } else {
730          return (com.google.protobuf.ByteString) ref;
731        }
732      }
733      /**
734       * <code>optional string branch = 3;</code>
735       */
736      public Builder setBranch(
737          java.lang.String value) {
738        if (value == null) {
739    throw new NullPointerException();
740  }
741  bitField0_ |= 0x00000004;
742        branch_ = value;
743        onChanged();
744        return this;
745      }
746      /**
747       * <code>optional string branch = 3;</code>
748       */
749      public Builder clearBranch() {
750        bitField0_ = (bitField0_ & ~0x00000004);
751        branch_ = getDefaultInstance().getBranch();
752        onChanged();
753        return this;
754      }
755      /**
756       * <code>optional string branch = 3;</code>
757       */
758      public Builder setBranchBytes(
759          com.google.protobuf.ByteString value) {
760        if (value == null) {
761    throw new NullPointerException();
762  }
763  bitField0_ |= 0x00000004;
764        branch_ = value;
765        onChanged();
766        return this;
767      }
768
769      private int rootComponentRef_ ;
770      /**
771       * <code>optional int32 root_component_ref = 4;</code>
772       */
773      public boolean hasRootComponentRef() {
774        return ((bitField0_ & 0x00000008) == 0x00000008);
775      }
776      /**
777       * <code>optional int32 root_component_ref = 4;</code>
778       */
779      public int getRootComponentRef() {
780        return rootComponentRef_;
781      }
782      /**
783       * <code>optional int32 root_component_ref = 4;</code>
784       */
785      public Builder setRootComponentRef(int value) {
786        bitField0_ |= 0x00000008;
787        rootComponentRef_ = value;
788        onChanged();
789        return this;
790      }
791      /**
792       * <code>optional int32 root_component_ref = 4;</code>
793       */
794      public Builder clearRootComponentRef() {
795        bitField0_ = (bitField0_ & ~0x00000008);
796        rootComponentRef_ = 0;
797        onChanged();
798        return this;
799      }
800
801      // @@protoc_insertion_point(builder_scope:Metadata)
802    }
803
804    // @@protoc_insertion_point(class_scope:Metadata)
805    private static final org.sonar.batch.protocol.output.BatchReport.Metadata DEFAULT_INSTANCE;
806    static {
807      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.Metadata();
808    }
809
810    public static org.sonar.batch.protocol.output.BatchReport.Metadata getDefaultInstance() {
811      return DEFAULT_INSTANCE;
812    }
813
814    public static final com.google.protobuf.Parser<Metadata> PARSER =
815        new com.google.protobuf.AbstractParser<Metadata>() {
816      public Metadata parsePartialFrom(
817          com.google.protobuf.CodedInputStream input,
818          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
819          throws com.google.protobuf.InvalidProtocolBufferException {
820        try {
821          return new Metadata(input, extensionRegistry);
822        } catch (RuntimeException e) {
823          if (e.getCause() instanceof
824              com.google.protobuf.InvalidProtocolBufferException) {
825            throw (com.google.protobuf.InvalidProtocolBufferException)
826                e.getCause();
827          }
828          throw e;
829        }
830      }
831    };
832
833    @java.lang.Override
834    public com.google.protobuf.Parser<Metadata> getParserForType() {
835      return PARSER;
836    }
837
838    public org.sonar.batch.protocol.output.BatchReport.Metadata getDefaultInstanceForType() {
839      return DEFAULT_INSTANCE;
840    }
841
842  }
843
844  public interface ActiveRuleOrBuilder extends
845      // @@protoc_insertion_point(interface_extends:ActiveRule)
846      com.google.protobuf.MessageOrBuilder {
847
848    /**
849     * <code>optional string rule_repository = 1;</code>
850     */
851    boolean hasRuleRepository();
852    /**
853     * <code>optional string rule_repository = 1;</code>
854     */
855    java.lang.String getRuleRepository();
856    /**
857     * <code>optional string rule_repository = 1;</code>
858     */
859    com.google.protobuf.ByteString
860        getRuleRepositoryBytes();
861
862    /**
863     * <code>optional string rule_key = 2;</code>
864     */
865    boolean hasRuleKey();
866    /**
867     * <code>optional string rule_key = 2;</code>
868     */
869    java.lang.String getRuleKey();
870    /**
871     * <code>optional string rule_key = 2;</code>
872     */
873    com.google.protobuf.ByteString
874        getRuleKeyBytes();
875
876    /**
877     * <code>optional .Severity severity = 3;</code>
878     */
879    boolean hasSeverity();
880    /**
881     * <code>optional .Severity severity = 3;</code>
882     */
883    org.sonar.batch.protocol.Constants.Severity getSeverity();
884
885    /**
886     * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
887     */
888    java.util.List<org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam> 
889        getParamList();
890    /**
891     * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
892     */
893    org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam getParam(int index);
894    /**
895     * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
896     */
897    int getParamCount();
898    /**
899     * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
900     */
901    java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParamOrBuilder> 
902        getParamOrBuilderList();
903    /**
904     * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
905     */
906    org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParamOrBuilder getParamOrBuilder(
907        int index);
908  }
909  /**
910   * Protobuf type {@code ActiveRule}
911   */
912  public  static final class ActiveRule extends
913      com.google.protobuf.GeneratedMessage implements
914      // @@protoc_insertion_point(message_implements:ActiveRule)
915      ActiveRuleOrBuilder {
916    // Use ActiveRule.newBuilder() to construct.
917    private ActiveRule(com.google.protobuf.GeneratedMessage.Builder builder) {
918      super(builder);
919    }
920    private ActiveRule() {
921      ruleRepository_ = "";
922      ruleKey_ = "";
923      severity_ = 0;
924      param_ = java.util.Collections.emptyList();
925    }
926
927    @java.lang.Override
928    public final com.google.protobuf.UnknownFieldSet
929    getUnknownFields() {
930      return this.unknownFields;
931    }
932    private ActiveRule(
933        com.google.protobuf.CodedInputStream input,
934        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
935      this();
936      int mutable_bitField0_ = 0;
937      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
938          com.google.protobuf.UnknownFieldSet.newBuilder();
939      try {
940        boolean done = false;
941        while (!done) {
942          int tag = input.readTag();
943          switch (tag) {
944            case 0:
945              done = true;
946              break;
947            default: {
948              if (!parseUnknownField(input, unknownFields,
949                                     extensionRegistry, tag)) {
950                done = true;
951              }
952              break;
953            }
954            case 10: {
955              com.google.protobuf.ByteString bs = input.readBytes();
956              bitField0_ |= 0x00000001;
957              ruleRepository_ = bs;
958              break;
959            }
960            case 18: {
961              com.google.protobuf.ByteString bs = input.readBytes();
962              bitField0_ |= 0x00000002;
963              ruleKey_ = bs;
964              break;
965            }
966            case 24: {
967              int rawValue = input.readEnum();
968              org.sonar.batch.protocol.Constants.Severity value = org.sonar.batch.protocol.Constants.Severity.valueOf(rawValue);
969              if (value == null) {
970                unknownFields.mergeVarintField(3, rawValue);
971              } else {
972                bitField0_ |= 0x00000004;
973                severity_ = rawValue;
974              }
975              break;
976            }
977            case 34: {
978              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
979                param_ = new java.util.ArrayList<org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam>();
980                mutable_bitField0_ |= 0x00000008;
981              }
982              param_.add(input.readMessage(org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.PARSER, extensionRegistry));
983              break;
984            }
985          }
986        }
987      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
988        throw new RuntimeException(e.setUnfinishedMessage(this));
989      } catch (java.io.IOException e) {
990        throw new RuntimeException(
991            new com.google.protobuf.InvalidProtocolBufferException(
992                e.getMessage()).setUnfinishedMessage(this));
993      } finally {
994        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
995          param_ = java.util.Collections.unmodifiableList(param_);
996        }
997        this.unknownFields = unknownFields.build();
998        makeExtensionsImmutable();
999      }
1000    }
1001    public static final com.google.protobuf.Descriptors.Descriptor
1002        getDescriptor() {
1003      return org.sonar.batch.protocol.output.BatchReport.internal_static_ActiveRule_descriptor;
1004    }
1005
1006    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
1007        internalGetFieldAccessorTable() {
1008      return org.sonar.batch.protocol.output.BatchReport.internal_static_ActiveRule_fieldAccessorTable
1009          .ensureFieldAccessorsInitialized(
1010              org.sonar.batch.protocol.output.BatchReport.ActiveRule.class, org.sonar.batch.protocol.output.BatchReport.ActiveRule.Builder.class);
1011    }
1012
1013    public interface ActiveRuleParamOrBuilder extends
1014        // @@protoc_insertion_point(interface_extends:ActiveRule.ActiveRuleParam)
1015        com.google.protobuf.MessageOrBuilder {
1016
1017      /**
1018       * <code>optional string key = 1;</code>
1019       */
1020      boolean hasKey();
1021      /**
1022       * <code>optional string key = 1;</code>
1023       */
1024      java.lang.String getKey();
1025      /**
1026       * <code>optional string key = 1;</code>
1027       */
1028      com.google.protobuf.ByteString
1029          getKeyBytes();
1030
1031      /**
1032       * <code>optional string value = 2;</code>
1033       */
1034      boolean hasValue();
1035      /**
1036       * <code>optional string value = 2;</code>
1037       */
1038      java.lang.String getValue();
1039      /**
1040       * <code>optional string value = 2;</code>
1041       */
1042      com.google.protobuf.ByteString
1043          getValueBytes();
1044    }
1045    /**
1046     * Protobuf type {@code ActiveRule.ActiveRuleParam}
1047     *
1048     * <pre>
1049     * TODO replace by map
1050     * </pre>
1051     */
1052    public  static final class ActiveRuleParam extends
1053        com.google.protobuf.GeneratedMessage implements
1054        // @@protoc_insertion_point(message_implements:ActiveRule.ActiveRuleParam)
1055        ActiveRuleParamOrBuilder {
1056      // Use ActiveRuleParam.newBuilder() to construct.
1057      private ActiveRuleParam(com.google.protobuf.GeneratedMessage.Builder builder) {
1058        super(builder);
1059      }
1060      private ActiveRuleParam() {
1061        key_ = "";
1062        value_ = "";
1063      }
1064
1065      @java.lang.Override
1066      public final com.google.protobuf.UnknownFieldSet
1067      getUnknownFields() {
1068        return this.unknownFields;
1069      }
1070      private ActiveRuleParam(
1071          com.google.protobuf.CodedInputStream input,
1072          com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
1073        this();
1074        int mutable_bitField0_ = 0;
1075        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
1076            com.google.protobuf.UnknownFieldSet.newBuilder();
1077        try {
1078          boolean done = false;
1079          while (!done) {
1080            int tag = input.readTag();
1081            switch (tag) {
1082              case 0:
1083                done = true;
1084                break;
1085              default: {
1086                if (!parseUnknownField(input, unknownFields,
1087                                       extensionRegistry, tag)) {
1088                  done = true;
1089                }
1090                break;
1091              }
1092              case 10: {
1093                com.google.protobuf.ByteString bs = input.readBytes();
1094                bitField0_ |= 0x00000001;
1095                key_ = bs;
1096                break;
1097              }
1098              case 18: {
1099                com.google.protobuf.ByteString bs = input.readBytes();
1100                bitField0_ |= 0x00000002;
1101                value_ = bs;
1102                break;
1103              }
1104            }
1105          }
1106        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
1107          throw new RuntimeException(e.setUnfinishedMessage(this));
1108        } catch (java.io.IOException e) {
1109          throw new RuntimeException(
1110              new com.google.protobuf.InvalidProtocolBufferException(
1111                  e.getMessage()).setUnfinishedMessage(this));
1112        } finally {
1113          this.unknownFields = unknownFields.build();
1114          makeExtensionsImmutable();
1115        }
1116      }
1117      public static final com.google.protobuf.Descriptors.Descriptor
1118          getDescriptor() {
1119        return org.sonar.batch.protocol.output.BatchReport.internal_static_ActiveRule_ActiveRuleParam_descriptor;
1120      }
1121
1122      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
1123          internalGetFieldAccessorTable() {
1124        return org.sonar.batch.protocol.output.BatchReport.internal_static_ActiveRule_ActiveRuleParam_fieldAccessorTable
1125            .ensureFieldAccessorsInitialized(
1126                org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.class, org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.Builder.class);
1127      }
1128
1129      private int bitField0_;
1130      public static final int KEY_FIELD_NUMBER = 1;
1131      private volatile java.lang.Object key_;
1132      /**
1133       * <code>optional string key = 1;</code>
1134       */
1135      public boolean hasKey() {
1136        return ((bitField0_ & 0x00000001) == 0x00000001);
1137      }
1138      /**
1139       * <code>optional string key = 1;</code>
1140       */
1141      public java.lang.String getKey() {
1142        java.lang.Object ref = key_;
1143        if (ref instanceof java.lang.String) {
1144          return (java.lang.String) ref;
1145        } else {
1146          com.google.protobuf.ByteString bs = 
1147              (com.google.protobuf.ByteString) ref;
1148          java.lang.String s = bs.toStringUtf8();
1149          if (bs.isValidUtf8()) {
1150            key_ = s;
1151          }
1152          return s;
1153        }
1154      }
1155      /**
1156       * <code>optional string key = 1;</code>
1157       */
1158      public com.google.protobuf.ByteString
1159          getKeyBytes() {
1160        java.lang.Object ref = key_;
1161        if (ref instanceof java.lang.String) {
1162          com.google.protobuf.ByteString b = 
1163              com.google.protobuf.ByteString.copyFromUtf8(
1164                  (java.lang.String) ref);
1165          key_ = b;
1166          return b;
1167        } else {
1168          return (com.google.protobuf.ByteString) ref;
1169        }
1170      }
1171
1172      public static final int VALUE_FIELD_NUMBER = 2;
1173      private volatile java.lang.Object value_;
1174      /**
1175       * <code>optional string value = 2;</code>
1176       */
1177      public boolean hasValue() {
1178        return ((bitField0_ & 0x00000002) == 0x00000002);
1179      }
1180      /**
1181       * <code>optional string value = 2;</code>
1182       */
1183      public java.lang.String getValue() {
1184        java.lang.Object ref = value_;
1185        if (ref instanceof java.lang.String) {
1186          return (java.lang.String) ref;
1187        } else {
1188          com.google.protobuf.ByteString bs = 
1189              (com.google.protobuf.ByteString) ref;
1190          java.lang.String s = bs.toStringUtf8();
1191          if (bs.isValidUtf8()) {
1192            value_ = s;
1193          }
1194          return s;
1195        }
1196      }
1197      /**
1198       * <code>optional string value = 2;</code>
1199       */
1200      public com.google.protobuf.ByteString
1201          getValueBytes() {
1202        java.lang.Object ref = value_;
1203        if (ref instanceof java.lang.String) {
1204          com.google.protobuf.ByteString b = 
1205              com.google.protobuf.ByteString.copyFromUtf8(
1206                  (java.lang.String) ref);
1207          value_ = b;
1208          return b;
1209        } else {
1210          return (com.google.protobuf.ByteString) ref;
1211        }
1212      }
1213
1214      private byte memoizedIsInitialized = -1;
1215      public final boolean isInitialized() {
1216        byte isInitialized = memoizedIsInitialized;
1217        if (isInitialized == 1) return true;
1218        if (isInitialized == 0) return false;
1219
1220        memoizedIsInitialized = 1;
1221        return true;
1222      }
1223
1224      public void writeTo(com.google.protobuf.CodedOutputStream output)
1225                          throws java.io.IOException {
1226        if (((bitField0_ & 0x00000001) == 0x00000001)) {
1227          output.writeBytes(1, getKeyBytes());
1228        }
1229        if (((bitField0_ & 0x00000002) == 0x00000002)) {
1230          output.writeBytes(2, getValueBytes());
1231        }
1232        unknownFields.writeTo(output);
1233      }
1234
1235      private int memoizedSerializedSize = -1;
1236      public int getSerializedSize() {
1237        int size = memoizedSerializedSize;
1238        if (size != -1) return size;
1239
1240        size = 0;
1241        if (((bitField0_ & 0x00000001) == 0x00000001)) {
1242          size += com.google.protobuf.CodedOutputStream
1243            .computeBytesSize(1, getKeyBytes());
1244        }
1245        if (((bitField0_ & 0x00000002) == 0x00000002)) {
1246          size += com.google.protobuf.CodedOutputStream
1247            .computeBytesSize(2, getValueBytes());
1248        }
1249        size += unknownFields.getSerializedSize();
1250        memoizedSerializedSize = size;
1251        return size;
1252      }
1253
1254      private static final long serialVersionUID = 0L;
1255      public static org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam parseFrom(
1256          com.google.protobuf.ByteString data)
1257          throws com.google.protobuf.InvalidProtocolBufferException {
1258        return PARSER.parseFrom(data);
1259      }
1260      public static org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam parseFrom(
1261          com.google.protobuf.ByteString data,
1262          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1263          throws com.google.protobuf.InvalidProtocolBufferException {
1264        return PARSER.parseFrom(data, extensionRegistry);
1265      }
1266      public static org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam parseFrom(byte[] data)
1267          throws com.google.protobuf.InvalidProtocolBufferException {
1268        return PARSER.parseFrom(data);
1269      }
1270      public static org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam parseFrom(
1271          byte[] data,
1272          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1273          throws com.google.protobuf.InvalidProtocolBufferException {
1274        return PARSER.parseFrom(data, extensionRegistry);
1275      }
1276      public static org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam parseFrom(java.io.InputStream input)
1277          throws java.io.IOException {
1278        return PARSER.parseFrom(input);
1279      }
1280      public static org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam parseFrom(
1281          java.io.InputStream input,
1282          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1283          throws java.io.IOException {
1284        return PARSER.parseFrom(input, extensionRegistry);
1285      }
1286      public static org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam parseDelimitedFrom(java.io.InputStream input)
1287          throws java.io.IOException {
1288        return PARSER.parseDelimitedFrom(input);
1289      }
1290      public static org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam parseDelimitedFrom(
1291          java.io.InputStream input,
1292          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1293          throws java.io.IOException {
1294        return PARSER.parseDelimitedFrom(input, extensionRegistry);
1295      }
1296      public static org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam parseFrom(
1297          com.google.protobuf.CodedInputStream input)
1298          throws java.io.IOException {
1299        return PARSER.parseFrom(input);
1300      }
1301      public static org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam parseFrom(
1302          com.google.protobuf.CodedInputStream input,
1303          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1304          throws java.io.IOException {
1305        return PARSER.parseFrom(input, extensionRegistry);
1306      }
1307
1308      public Builder newBuilderForType() { return newBuilder(); }
1309      public static Builder newBuilder() {
1310        return DEFAULT_INSTANCE.toBuilder();
1311      }
1312      public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam prototype) {
1313        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
1314      }
1315      public Builder toBuilder() {
1316        return this == DEFAULT_INSTANCE
1317            ? new Builder() : new Builder().mergeFrom(this);
1318      }
1319
1320      @java.lang.Override
1321      protected Builder newBuilderForType(
1322          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
1323        Builder builder = new Builder(parent);
1324        return builder;
1325      }
1326      /**
1327       * Protobuf type {@code ActiveRule.ActiveRuleParam}
1328       *
1329       * <pre>
1330       * TODO replace by map
1331       * </pre>
1332       */
1333      public static final class Builder extends
1334          com.google.protobuf.GeneratedMessage.Builder<Builder> implements
1335          // @@protoc_insertion_point(builder_implements:ActiveRule.ActiveRuleParam)
1336          org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParamOrBuilder {
1337        public static final com.google.protobuf.Descriptors.Descriptor
1338            getDescriptor() {
1339          return org.sonar.batch.protocol.output.BatchReport.internal_static_ActiveRule_ActiveRuleParam_descriptor;
1340        }
1341
1342        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
1343            internalGetFieldAccessorTable() {
1344          return org.sonar.batch.protocol.output.BatchReport.internal_static_ActiveRule_ActiveRuleParam_fieldAccessorTable
1345              .ensureFieldAccessorsInitialized(
1346                  org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.class, org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.Builder.class);
1347        }
1348
1349        // Construct using org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.newBuilder()
1350        private Builder() {
1351          maybeForceBuilderInitialization();
1352        }
1353
1354        private Builder(
1355            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
1356          super(parent);
1357          maybeForceBuilderInitialization();
1358        }
1359        private void maybeForceBuilderInitialization() {
1360          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
1361          }
1362        }
1363        public Builder clear() {
1364          super.clear();
1365          key_ = "";
1366          bitField0_ = (bitField0_ & ~0x00000001);
1367          value_ = "";
1368          bitField0_ = (bitField0_ & ~0x00000002);
1369          return this;
1370        }
1371
1372        public com.google.protobuf.Descriptors.Descriptor
1373            getDescriptorForType() {
1374          return org.sonar.batch.protocol.output.BatchReport.internal_static_ActiveRule_ActiveRuleParam_descriptor;
1375        }
1376
1377        public org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam getDefaultInstanceForType() {
1378          return org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.getDefaultInstance();
1379        }
1380
1381        public org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam build() {
1382          org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam result = buildPartial();
1383          if (!result.isInitialized()) {
1384            throw newUninitializedMessageException(result);
1385          }
1386          return result;
1387        }
1388
1389        public org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam buildPartial() {
1390          org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam result = new org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam(this);
1391          int from_bitField0_ = bitField0_;
1392          int to_bitField0_ = 0;
1393          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
1394            to_bitField0_ |= 0x00000001;
1395          }
1396          result.key_ = key_;
1397          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
1398            to_bitField0_ |= 0x00000002;
1399          }
1400          result.value_ = value_;
1401          result.bitField0_ = to_bitField0_;
1402          onBuilt();
1403          return result;
1404        }
1405
1406        public Builder mergeFrom(com.google.protobuf.Message other) {
1407          if (other instanceof org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam) {
1408            return mergeFrom((org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam)other);
1409          } else {
1410            super.mergeFrom(other);
1411            return this;
1412          }
1413        }
1414
1415        public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam other) {
1416          if (other == org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.getDefaultInstance()) return this;
1417          if (other.hasKey()) {
1418            bitField0_ |= 0x00000001;
1419            key_ = other.key_;
1420            onChanged();
1421          }
1422          if (other.hasValue()) {
1423            bitField0_ |= 0x00000002;
1424            value_ = other.value_;
1425            onChanged();
1426          }
1427          this.mergeUnknownFields(other.unknownFields);
1428          onChanged();
1429          return this;
1430        }
1431
1432        public final boolean isInitialized() {
1433          return true;
1434        }
1435
1436        public Builder mergeFrom(
1437            com.google.protobuf.CodedInputStream input,
1438            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1439            throws java.io.IOException {
1440          org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam parsedMessage = null;
1441          try {
1442            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
1443          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
1444            parsedMessage = (org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam) e.getUnfinishedMessage();
1445            throw e;
1446          } finally {
1447            if (parsedMessage != null) {
1448              mergeFrom(parsedMessage);
1449            }
1450          }
1451          return this;
1452        }
1453        private int bitField0_;
1454
1455        private java.lang.Object key_ = "";
1456        /**
1457         * <code>optional string key = 1;</code>
1458         */
1459        public boolean hasKey() {
1460          return ((bitField0_ & 0x00000001) == 0x00000001);
1461        }
1462        /**
1463         * <code>optional string key = 1;</code>
1464         */
1465        public java.lang.String getKey() {
1466          java.lang.Object ref = key_;
1467          if (!(ref instanceof java.lang.String)) {
1468            com.google.protobuf.ByteString bs =
1469                (com.google.protobuf.ByteString) ref;
1470            java.lang.String s = bs.toStringUtf8();
1471            if (bs.isValidUtf8()) {
1472              key_ = s;
1473            }
1474            return s;
1475          } else {
1476            return (java.lang.String) ref;
1477          }
1478        }
1479        /**
1480         * <code>optional string key = 1;</code>
1481         */
1482        public com.google.protobuf.ByteString
1483            getKeyBytes() {
1484          java.lang.Object ref = key_;
1485          if (ref instanceof String) {
1486            com.google.protobuf.ByteString b = 
1487                com.google.protobuf.ByteString.copyFromUtf8(
1488                    (java.lang.String) ref);
1489            key_ = b;
1490            return b;
1491          } else {
1492            return (com.google.protobuf.ByteString) ref;
1493          }
1494        }
1495        /**
1496         * <code>optional string key = 1;</code>
1497         */
1498        public Builder setKey(
1499            java.lang.String value) {
1500          if (value == null) {
1501    throw new NullPointerException();
1502  }
1503  bitField0_ |= 0x00000001;
1504          key_ = value;
1505          onChanged();
1506          return this;
1507        }
1508        /**
1509         * <code>optional string key = 1;</code>
1510         */
1511        public Builder clearKey() {
1512          bitField0_ = (bitField0_ & ~0x00000001);
1513          key_ = getDefaultInstance().getKey();
1514          onChanged();
1515          return this;
1516        }
1517        /**
1518         * <code>optional string key = 1;</code>
1519         */
1520        public Builder setKeyBytes(
1521            com.google.protobuf.ByteString value) {
1522          if (value == null) {
1523    throw new NullPointerException();
1524  }
1525  bitField0_ |= 0x00000001;
1526          key_ = value;
1527          onChanged();
1528          return this;
1529        }
1530
1531        private java.lang.Object value_ = "";
1532        /**
1533         * <code>optional string value = 2;</code>
1534         */
1535        public boolean hasValue() {
1536          return ((bitField0_ & 0x00000002) == 0x00000002);
1537        }
1538        /**
1539         * <code>optional string value = 2;</code>
1540         */
1541        public java.lang.String getValue() {
1542          java.lang.Object ref = value_;
1543          if (!(ref instanceof java.lang.String)) {
1544            com.google.protobuf.ByteString bs =
1545                (com.google.protobuf.ByteString) ref;
1546            java.lang.String s = bs.toStringUtf8();
1547            if (bs.isValidUtf8()) {
1548              value_ = s;
1549            }
1550            return s;
1551          } else {
1552            return (java.lang.String) ref;
1553          }
1554        }
1555        /**
1556         * <code>optional string value = 2;</code>
1557         */
1558        public com.google.protobuf.ByteString
1559            getValueBytes() {
1560          java.lang.Object ref = value_;
1561          if (ref instanceof String) {
1562            com.google.protobuf.ByteString b = 
1563                com.google.protobuf.ByteString.copyFromUtf8(
1564                    (java.lang.String) ref);
1565            value_ = b;
1566            return b;
1567          } else {
1568            return (com.google.protobuf.ByteString) ref;
1569          }
1570        }
1571        /**
1572         * <code>optional string value = 2;</code>
1573         */
1574        public Builder setValue(
1575            java.lang.String value) {
1576          if (value == null) {
1577    throw new NullPointerException();
1578  }
1579  bitField0_ |= 0x00000002;
1580          value_ = value;
1581          onChanged();
1582          return this;
1583        }
1584        /**
1585         * <code>optional string value = 2;</code>
1586         */
1587        public Builder clearValue() {
1588          bitField0_ = (bitField0_ & ~0x00000002);
1589          value_ = getDefaultInstance().getValue();
1590          onChanged();
1591          return this;
1592        }
1593        /**
1594         * <code>optional string value = 2;</code>
1595         */
1596        public Builder setValueBytes(
1597            com.google.protobuf.ByteString value) {
1598          if (value == null) {
1599    throw new NullPointerException();
1600  }
1601  bitField0_ |= 0x00000002;
1602          value_ = value;
1603          onChanged();
1604          return this;
1605        }
1606
1607        // @@protoc_insertion_point(builder_scope:ActiveRule.ActiveRuleParam)
1608      }
1609
1610      // @@protoc_insertion_point(class_scope:ActiveRule.ActiveRuleParam)
1611      private static final org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam DEFAULT_INSTANCE;
1612      static {
1613        DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam();
1614      }
1615
1616      public static org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam getDefaultInstance() {
1617        return DEFAULT_INSTANCE;
1618      }
1619
1620      public static final com.google.protobuf.Parser<ActiveRuleParam> PARSER =
1621          new com.google.protobuf.AbstractParser<ActiveRuleParam>() {
1622        public ActiveRuleParam parsePartialFrom(
1623            com.google.protobuf.CodedInputStream input,
1624            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1625            throws com.google.protobuf.InvalidProtocolBufferException {
1626          try {
1627            return new ActiveRuleParam(input, extensionRegistry);
1628          } catch (RuntimeException e) {
1629            if (e.getCause() instanceof
1630                com.google.protobuf.InvalidProtocolBufferException) {
1631              throw (com.google.protobuf.InvalidProtocolBufferException)
1632                  e.getCause();
1633            }
1634            throw e;
1635          }
1636        }
1637      };
1638
1639      @java.lang.Override
1640      public com.google.protobuf.Parser<ActiveRuleParam> getParserForType() {
1641        return PARSER;
1642      }
1643
1644      public org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam getDefaultInstanceForType() {
1645        return DEFAULT_INSTANCE;
1646      }
1647
1648    }
1649
1650    private int bitField0_;
1651    public static final int RULE_REPOSITORY_FIELD_NUMBER = 1;
1652    private volatile java.lang.Object ruleRepository_;
1653    /**
1654     * <code>optional string rule_repository = 1;</code>
1655     */
1656    public boolean hasRuleRepository() {
1657      return ((bitField0_ & 0x00000001) == 0x00000001);
1658    }
1659    /**
1660     * <code>optional string rule_repository = 1;</code>
1661     */
1662    public java.lang.String getRuleRepository() {
1663      java.lang.Object ref = ruleRepository_;
1664      if (ref instanceof java.lang.String) {
1665        return (java.lang.String) ref;
1666      } else {
1667        com.google.protobuf.ByteString bs = 
1668            (com.google.protobuf.ByteString) ref;
1669        java.lang.String s = bs.toStringUtf8();
1670        if (bs.isValidUtf8()) {
1671          ruleRepository_ = s;
1672        }
1673        return s;
1674      }
1675    }
1676    /**
1677     * <code>optional string rule_repository = 1;</code>
1678     */
1679    public com.google.protobuf.ByteString
1680        getRuleRepositoryBytes() {
1681      java.lang.Object ref = ruleRepository_;
1682      if (ref instanceof java.lang.String) {
1683        com.google.protobuf.ByteString b = 
1684            com.google.protobuf.ByteString.copyFromUtf8(
1685                (java.lang.String) ref);
1686        ruleRepository_ = b;
1687        return b;
1688      } else {
1689        return (com.google.protobuf.ByteString) ref;
1690      }
1691    }
1692
1693    public static final int RULE_KEY_FIELD_NUMBER = 2;
1694    private volatile java.lang.Object ruleKey_;
1695    /**
1696     * <code>optional string rule_key = 2;</code>
1697     */
1698    public boolean hasRuleKey() {
1699      return ((bitField0_ & 0x00000002) == 0x00000002);
1700    }
1701    /**
1702     * <code>optional string rule_key = 2;</code>
1703     */
1704    public java.lang.String getRuleKey() {
1705      java.lang.Object ref = ruleKey_;
1706      if (ref instanceof java.lang.String) {
1707        return (java.lang.String) ref;
1708      } else {
1709        com.google.protobuf.ByteString bs = 
1710            (com.google.protobuf.ByteString) ref;
1711        java.lang.String s = bs.toStringUtf8();
1712        if (bs.isValidUtf8()) {
1713          ruleKey_ = s;
1714        }
1715        return s;
1716      }
1717    }
1718    /**
1719     * <code>optional string rule_key = 2;</code>
1720     */
1721    public com.google.protobuf.ByteString
1722        getRuleKeyBytes() {
1723      java.lang.Object ref = ruleKey_;
1724      if (ref instanceof java.lang.String) {
1725        com.google.protobuf.ByteString b = 
1726            com.google.protobuf.ByteString.copyFromUtf8(
1727                (java.lang.String) ref);
1728        ruleKey_ = b;
1729        return b;
1730      } else {
1731        return (com.google.protobuf.ByteString) ref;
1732      }
1733    }
1734
1735    public static final int SEVERITY_FIELD_NUMBER = 3;
1736    private int severity_;
1737    /**
1738     * <code>optional .Severity severity = 3;</code>
1739     */
1740    public boolean hasSeverity() {
1741      return ((bitField0_ & 0x00000004) == 0x00000004);
1742    }
1743    /**
1744     * <code>optional .Severity severity = 3;</code>
1745     */
1746    public org.sonar.batch.protocol.Constants.Severity getSeverity() {
1747      org.sonar.batch.protocol.Constants.Severity result = org.sonar.batch.protocol.Constants.Severity.valueOf(severity_);
1748      return result == null ? org.sonar.batch.protocol.Constants.Severity.INFO : result;
1749    }
1750
1751    public static final int PARAM_FIELD_NUMBER = 4;
1752    private java.util.List<org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam> param_;
1753    /**
1754     * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
1755     */
1756    public java.util.List<org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam> getParamList() {
1757      return param_;
1758    }
1759    /**
1760     * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
1761     */
1762    public java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParamOrBuilder> 
1763        getParamOrBuilderList() {
1764      return param_;
1765    }
1766    /**
1767     * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
1768     */
1769    public int getParamCount() {
1770      return param_.size();
1771    }
1772    /**
1773     * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
1774     */
1775    public org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam getParam(int index) {
1776      return param_.get(index);
1777    }
1778    /**
1779     * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
1780     */
1781    public org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParamOrBuilder getParamOrBuilder(
1782        int index) {
1783      return param_.get(index);
1784    }
1785
1786    private byte memoizedIsInitialized = -1;
1787    public final boolean isInitialized() {
1788      byte isInitialized = memoizedIsInitialized;
1789      if (isInitialized == 1) return true;
1790      if (isInitialized == 0) return false;
1791
1792      memoizedIsInitialized = 1;
1793      return true;
1794    }
1795
1796    public void writeTo(com.google.protobuf.CodedOutputStream output)
1797                        throws java.io.IOException {
1798      if (((bitField0_ & 0x00000001) == 0x00000001)) {
1799        output.writeBytes(1, getRuleRepositoryBytes());
1800      }
1801      if (((bitField0_ & 0x00000002) == 0x00000002)) {
1802        output.writeBytes(2, getRuleKeyBytes());
1803      }
1804      if (((bitField0_ & 0x00000004) == 0x00000004)) {
1805        output.writeEnum(3, severity_);
1806      }
1807      for (int i = 0; i < param_.size(); i++) {
1808        output.writeMessage(4, param_.get(i));
1809      }
1810      unknownFields.writeTo(output);
1811    }
1812
1813    private int memoizedSerializedSize = -1;
1814    public int getSerializedSize() {
1815      int size = memoizedSerializedSize;
1816      if (size != -1) return size;
1817
1818      size = 0;
1819      if (((bitField0_ & 0x00000001) == 0x00000001)) {
1820        size += com.google.protobuf.CodedOutputStream
1821          .computeBytesSize(1, getRuleRepositoryBytes());
1822      }
1823      if (((bitField0_ & 0x00000002) == 0x00000002)) {
1824        size += com.google.protobuf.CodedOutputStream
1825          .computeBytesSize(2, getRuleKeyBytes());
1826      }
1827      if (((bitField0_ & 0x00000004) == 0x00000004)) {
1828        size += com.google.protobuf.CodedOutputStream
1829          .computeEnumSize(3, severity_);
1830      }
1831      for (int i = 0; i < param_.size(); i++) {
1832        size += com.google.protobuf.CodedOutputStream
1833          .computeMessageSize(4, param_.get(i));
1834      }
1835      size += unknownFields.getSerializedSize();
1836      memoizedSerializedSize = size;
1837      return size;
1838    }
1839
1840    private static final long serialVersionUID = 0L;
1841    public static org.sonar.batch.protocol.output.BatchReport.ActiveRule parseFrom(
1842        com.google.protobuf.ByteString data)
1843        throws com.google.protobuf.InvalidProtocolBufferException {
1844      return PARSER.parseFrom(data);
1845    }
1846    public static org.sonar.batch.protocol.output.BatchReport.ActiveRule parseFrom(
1847        com.google.protobuf.ByteString data,
1848        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1849        throws com.google.protobuf.InvalidProtocolBufferException {
1850      return PARSER.parseFrom(data, extensionRegistry);
1851    }
1852    public static org.sonar.batch.protocol.output.BatchReport.ActiveRule parseFrom(byte[] data)
1853        throws com.google.protobuf.InvalidProtocolBufferException {
1854      return PARSER.parseFrom(data);
1855    }
1856    public static org.sonar.batch.protocol.output.BatchReport.ActiveRule parseFrom(
1857        byte[] data,
1858        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1859        throws com.google.protobuf.InvalidProtocolBufferException {
1860      return PARSER.parseFrom(data, extensionRegistry);
1861    }
1862    public static org.sonar.batch.protocol.output.BatchReport.ActiveRule parseFrom(java.io.InputStream input)
1863        throws java.io.IOException {
1864      return PARSER.parseFrom(input);
1865    }
1866    public static org.sonar.batch.protocol.output.BatchReport.ActiveRule parseFrom(
1867        java.io.InputStream input,
1868        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1869        throws java.io.IOException {
1870      return PARSER.parseFrom(input, extensionRegistry);
1871    }
1872    public static org.sonar.batch.protocol.output.BatchReport.ActiveRule parseDelimitedFrom(java.io.InputStream input)
1873        throws java.io.IOException {
1874      return PARSER.parseDelimitedFrom(input);
1875    }
1876    public static org.sonar.batch.protocol.output.BatchReport.ActiveRule parseDelimitedFrom(
1877        java.io.InputStream input,
1878        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1879        throws java.io.IOException {
1880      return PARSER.parseDelimitedFrom(input, extensionRegistry);
1881    }
1882    public static org.sonar.batch.protocol.output.BatchReport.ActiveRule parseFrom(
1883        com.google.protobuf.CodedInputStream input)
1884        throws java.io.IOException {
1885      return PARSER.parseFrom(input);
1886    }
1887    public static org.sonar.batch.protocol.output.BatchReport.ActiveRule parseFrom(
1888        com.google.protobuf.CodedInputStream input,
1889        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1890        throws java.io.IOException {
1891      return PARSER.parseFrom(input, extensionRegistry);
1892    }
1893
1894    public Builder newBuilderForType() { return newBuilder(); }
1895    public static Builder newBuilder() {
1896      return DEFAULT_INSTANCE.toBuilder();
1897    }
1898    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.ActiveRule prototype) {
1899      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
1900    }
1901    public Builder toBuilder() {
1902      return this == DEFAULT_INSTANCE
1903          ? new Builder() : new Builder().mergeFrom(this);
1904    }
1905
1906    @java.lang.Override
1907    protected Builder newBuilderForType(
1908        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
1909      Builder builder = new Builder(parent);
1910      return builder;
1911    }
1912    /**
1913     * Protobuf type {@code ActiveRule}
1914     */
1915    public static final class Builder extends
1916        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
1917        // @@protoc_insertion_point(builder_implements:ActiveRule)
1918        org.sonar.batch.protocol.output.BatchReport.ActiveRuleOrBuilder {
1919      public static final com.google.protobuf.Descriptors.Descriptor
1920          getDescriptor() {
1921        return org.sonar.batch.protocol.output.BatchReport.internal_static_ActiveRule_descriptor;
1922      }
1923
1924      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
1925          internalGetFieldAccessorTable() {
1926        return org.sonar.batch.protocol.output.BatchReport.internal_static_ActiveRule_fieldAccessorTable
1927            .ensureFieldAccessorsInitialized(
1928                org.sonar.batch.protocol.output.BatchReport.ActiveRule.class, org.sonar.batch.protocol.output.BatchReport.ActiveRule.Builder.class);
1929      }
1930
1931      // Construct using org.sonar.batch.protocol.output.BatchReport.ActiveRule.newBuilder()
1932      private Builder() {
1933        maybeForceBuilderInitialization();
1934      }
1935
1936      private Builder(
1937          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
1938        super(parent);
1939        maybeForceBuilderInitialization();
1940      }
1941      private void maybeForceBuilderInitialization() {
1942        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
1943          getParamFieldBuilder();
1944        }
1945      }
1946      public Builder clear() {
1947        super.clear();
1948        ruleRepository_ = "";
1949        bitField0_ = (bitField0_ & ~0x00000001);
1950        ruleKey_ = "";
1951        bitField0_ = (bitField0_ & ~0x00000002);
1952        severity_ = 0;
1953        bitField0_ = (bitField0_ & ~0x00000004);
1954        if (paramBuilder_ == null) {
1955          param_ = java.util.Collections.emptyList();
1956          bitField0_ = (bitField0_ & ~0x00000008);
1957        } else {
1958          paramBuilder_.clear();
1959        }
1960        return this;
1961      }
1962
1963      public com.google.protobuf.Descriptors.Descriptor
1964          getDescriptorForType() {
1965        return org.sonar.batch.protocol.output.BatchReport.internal_static_ActiveRule_descriptor;
1966      }
1967
1968      public org.sonar.batch.protocol.output.BatchReport.ActiveRule getDefaultInstanceForType() {
1969        return org.sonar.batch.protocol.output.BatchReport.ActiveRule.getDefaultInstance();
1970      }
1971
1972      public org.sonar.batch.protocol.output.BatchReport.ActiveRule build() {
1973        org.sonar.batch.protocol.output.BatchReport.ActiveRule result = buildPartial();
1974        if (!result.isInitialized()) {
1975          throw newUninitializedMessageException(result);
1976        }
1977        return result;
1978      }
1979
1980      public org.sonar.batch.protocol.output.BatchReport.ActiveRule buildPartial() {
1981        org.sonar.batch.protocol.output.BatchReport.ActiveRule result = new org.sonar.batch.protocol.output.BatchReport.ActiveRule(this);
1982        int from_bitField0_ = bitField0_;
1983        int to_bitField0_ = 0;
1984        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
1985          to_bitField0_ |= 0x00000001;
1986        }
1987        result.ruleRepository_ = ruleRepository_;
1988        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
1989          to_bitField0_ |= 0x00000002;
1990        }
1991        result.ruleKey_ = ruleKey_;
1992        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
1993          to_bitField0_ |= 0x00000004;
1994        }
1995        result.severity_ = severity_;
1996        if (paramBuilder_ == null) {
1997          if (((bitField0_ & 0x00000008) == 0x00000008)) {
1998            param_ = java.util.Collections.unmodifiableList(param_);
1999            bitField0_ = (bitField0_ & ~0x00000008);
2000          }
2001          result.param_ = param_;
2002        } else {
2003          result.param_ = paramBuilder_.build();
2004        }
2005        result.bitField0_ = to_bitField0_;
2006        onBuilt();
2007        return result;
2008      }
2009
2010      public Builder mergeFrom(com.google.protobuf.Message other) {
2011        if (other instanceof org.sonar.batch.protocol.output.BatchReport.ActiveRule) {
2012          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.ActiveRule)other);
2013        } else {
2014          super.mergeFrom(other);
2015          return this;
2016        }
2017      }
2018
2019      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.ActiveRule other) {
2020        if (other == org.sonar.batch.protocol.output.BatchReport.ActiveRule.getDefaultInstance()) return this;
2021        if (other.hasRuleRepository()) {
2022          bitField0_ |= 0x00000001;
2023          ruleRepository_ = other.ruleRepository_;
2024          onChanged();
2025        }
2026        if (other.hasRuleKey()) {
2027          bitField0_ |= 0x00000002;
2028          ruleKey_ = other.ruleKey_;
2029          onChanged();
2030        }
2031        if (other.hasSeverity()) {
2032          setSeverity(other.getSeverity());
2033        }
2034        if (paramBuilder_ == null) {
2035          if (!other.param_.isEmpty()) {
2036            if (param_.isEmpty()) {
2037              param_ = other.param_;
2038              bitField0_ = (bitField0_ & ~0x00000008);
2039            } else {
2040              ensureParamIsMutable();
2041              param_.addAll(other.param_);
2042            }
2043            onChanged();
2044          }
2045        } else {
2046          if (!other.param_.isEmpty()) {
2047            if (paramBuilder_.isEmpty()) {
2048              paramBuilder_.dispose();
2049              paramBuilder_ = null;
2050              param_ = other.param_;
2051              bitField0_ = (bitField0_ & ~0x00000008);
2052              paramBuilder_ = 
2053                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
2054                   getParamFieldBuilder() : null;
2055            } else {
2056              paramBuilder_.addAllMessages(other.param_);
2057            }
2058          }
2059        }
2060        this.mergeUnknownFields(other.unknownFields);
2061        onChanged();
2062        return this;
2063      }
2064
2065      public final boolean isInitialized() {
2066        return true;
2067      }
2068
2069      public Builder mergeFrom(
2070          com.google.protobuf.CodedInputStream input,
2071          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2072          throws java.io.IOException {
2073        org.sonar.batch.protocol.output.BatchReport.ActiveRule parsedMessage = null;
2074        try {
2075          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
2076        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
2077          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.ActiveRule) e.getUnfinishedMessage();
2078          throw e;
2079        } finally {
2080          if (parsedMessage != null) {
2081            mergeFrom(parsedMessage);
2082          }
2083        }
2084        return this;
2085      }
2086      private int bitField0_;
2087
2088      private java.lang.Object ruleRepository_ = "";
2089      /**
2090       * <code>optional string rule_repository = 1;</code>
2091       */
2092      public boolean hasRuleRepository() {
2093        return ((bitField0_ & 0x00000001) == 0x00000001);
2094      }
2095      /**
2096       * <code>optional string rule_repository = 1;</code>
2097       */
2098      public java.lang.String getRuleRepository() {
2099        java.lang.Object ref = ruleRepository_;
2100        if (!(ref instanceof java.lang.String)) {
2101          com.google.protobuf.ByteString bs =
2102              (com.google.protobuf.ByteString) ref;
2103          java.lang.String s = bs.toStringUtf8();
2104          if (bs.isValidUtf8()) {
2105            ruleRepository_ = s;
2106          }
2107          return s;
2108        } else {
2109          return (java.lang.String) ref;
2110        }
2111      }
2112      /**
2113       * <code>optional string rule_repository = 1;</code>
2114       */
2115      public com.google.protobuf.ByteString
2116          getRuleRepositoryBytes() {
2117        java.lang.Object ref = ruleRepository_;
2118        if (ref instanceof String) {
2119          com.google.protobuf.ByteString b = 
2120              com.google.protobuf.ByteString.copyFromUtf8(
2121                  (java.lang.String) ref);
2122          ruleRepository_ = b;
2123          return b;
2124        } else {
2125          return (com.google.protobuf.ByteString) ref;
2126        }
2127      }
2128      /**
2129       * <code>optional string rule_repository = 1;</code>
2130       */
2131      public Builder setRuleRepository(
2132          java.lang.String value) {
2133        if (value == null) {
2134    throw new NullPointerException();
2135  }
2136  bitField0_ |= 0x00000001;
2137        ruleRepository_ = value;
2138        onChanged();
2139        return this;
2140      }
2141      /**
2142       * <code>optional string rule_repository = 1;</code>
2143       */
2144      public Builder clearRuleRepository() {
2145        bitField0_ = (bitField0_ & ~0x00000001);
2146        ruleRepository_ = getDefaultInstance().getRuleRepository();
2147        onChanged();
2148        return this;
2149      }
2150      /**
2151       * <code>optional string rule_repository = 1;</code>
2152       */
2153      public Builder setRuleRepositoryBytes(
2154          com.google.protobuf.ByteString value) {
2155        if (value == null) {
2156    throw new NullPointerException();
2157  }
2158  bitField0_ |= 0x00000001;
2159        ruleRepository_ = value;
2160        onChanged();
2161        return this;
2162      }
2163
2164      private java.lang.Object ruleKey_ = "";
2165      /**
2166       * <code>optional string rule_key = 2;</code>
2167       */
2168      public boolean hasRuleKey() {
2169        return ((bitField0_ & 0x00000002) == 0x00000002);
2170      }
2171      /**
2172       * <code>optional string rule_key = 2;</code>
2173       */
2174      public java.lang.String getRuleKey() {
2175        java.lang.Object ref = ruleKey_;
2176        if (!(ref instanceof java.lang.String)) {
2177          com.google.protobuf.ByteString bs =
2178              (com.google.protobuf.ByteString) ref;
2179          java.lang.String s = bs.toStringUtf8();
2180          if (bs.isValidUtf8()) {
2181            ruleKey_ = s;
2182          }
2183          return s;
2184        } else {
2185          return (java.lang.String) ref;
2186        }
2187      }
2188      /**
2189       * <code>optional string rule_key = 2;</code>
2190       */
2191      public com.google.protobuf.ByteString
2192          getRuleKeyBytes() {
2193        java.lang.Object ref = ruleKey_;
2194        if (ref instanceof String) {
2195          com.google.protobuf.ByteString b = 
2196              com.google.protobuf.ByteString.copyFromUtf8(
2197                  (java.lang.String) ref);
2198          ruleKey_ = b;
2199          return b;
2200        } else {
2201          return (com.google.protobuf.ByteString) ref;
2202        }
2203      }
2204      /**
2205       * <code>optional string rule_key = 2;</code>
2206       */
2207      public Builder setRuleKey(
2208          java.lang.String value) {
2209        if (value == null) {
2210    throw new NullPointerException();
2211  }
2212  bitField0_ |= 0x00000002;
2213        ruleKey_ = value;
2214        onChanged();
2215        return this;
2216      }
2217      /**
2218       * <code>optional string rule_key = 2;</code>
2219       */
2220      public Builder clearRuleKey() {
2221        bitField0_ = (bitField0_ & ~0x00000002);
2222        ruleKey_ = getDefaultInstance().getRuleKey();
2223        onChanged();
2224        return this;
2225      }
2226      /**
2227       * <code>optional string rule_key = 2;</code>
2228       */
2229      public Builder setRuleKeyBytes(
2230          com.google.protobuf.ByteString value) {
2231        if (value == null) {
2232    throw new NullPointerException();
2233  }
2234  bitField0_ |= 0x00000002;
2235        ruleKey_ = value;
2236        onChanged();
2237        return this;
2238      }
2239
2240      private int severity_ = 0;
2241      /**
2242       * <code>optional .Severity severity = 3;</code>
2243       */
2244      public boolean hasSeverity() {
2245        return ((bitField0_ & 0x00000004) == 0x00000004);
2246      }
2247      /**
2248       * <code>optional .Severity severity = 3;</code>
2249       */
2250      public org.sonar.batch.protocol.Constants.Severity getSeverity() {
2251        org.sonar.batch.protocol.Constants.Severity result = org.sonar.batch.protocol.Constants.Severity.valueOf(severity_);
2252        return result == null ? org.sonar.batch.protocol.Constants.Severity.INFO : result;
2253      }
2254      /**
2255       * <code>optional .Severity severity = 3;</code>
2256       */
2257      public Builder setSeverity(org.sonar.batch.protocol.Constants.Severity value) {
2258        if (value == null) {
2259          throw new NullPointerException();
2260        }
2261        bitField0_ |= 0x00000004;
2262        severity_ = value.getNumber();
2263        onChanged();
2264        return this;
2265      }
2266      /**
2267       * <code>optional .Severity severity = 3;</code>
2268       */
2269      public Builder clearSeverity() {
2270        bitField0_ = (bitField0_ & ~0x00000004);
2271        severity_ = 0;
2272        onChanged();
2273        return this;
2274      }
2275
2276      private java.util.List<org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam> param_ =
2277        java.util.Collections.emptyList();
2278      private void ensureParamIsMutable() {
2279        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
2280          param_ = new java.util.ArrayList<org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam>(param_);
2281          bitField0_ |= 0x00000008;
2282         }
2283      }
2284
2285      private com.google.protobuf.RepeatedFieldBuilder<
2286          org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam, org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.Builder, org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParamOrBuilder> paramBuilder_;
2287
2288      /**
2289       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2290       */
2291      public java.util.List<org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam> getParamList() {
2292        if (paramBuilder_ == null) {
2293          return java.util.Collections.unmodifiableList(param_);
2294        } else {
2295          return paramBuilder_.getMessageList();
2296        }
2297      }
2298      /**
2299       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2300       */
2301      public int getParamCount() {
2302        if (paramBuilder_ == null) {
2303          return param_.size();
2304        } else {
2305          return paramBuilder_.getCount();
2306        }
2307      }
2308      /**
2309       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2310       */
2311      public org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam getParam(int index) {
2312        if (paramBuilder_ == null) {
2313          return param_.get(index);
2314        } else {
2315          return paramBuilder_.getMessage(index);
2316        }
2317      }
2318      /**
2319       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2320       */
2321      public Builder setParam(
2322          int index, org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam value) {
2323        if (paramBuilder_ == null) {
2324          if (value == null) {
2325            throw new NullPointerException();
2326          }
2327          ensureParamIsMutable();
2328          param_.set(index, value);
2329          onChanged();
2330        } else {
2331          paramBuilder_.setMessage(index, value);
2332        }
2333        return this;
2334      }
2335      /**
2336       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2337       */
2338      public Builder setParam(
2339          int index, org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.Builder builderForValue) {
2340        if (paramBuilder_ == null) {
2341          ensureParamIsMutable();
2342          param_.set(index, builderForValue.build());
2343          onChanged();
2344        } else {
2345          paramBuilder_.setMessage(index, builderForValue.build());
2346        }
2347        return this;
2348      }
2349      /**
2350       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2351       */
2352      public Builder addParam(org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam value) {
2353        if (paramBuilder_ == null) {
2354          if (value == null) {
2355            throw new NullPointerException();
2356          }
2357          ensureParamIsMutable();
2358          param_.add(value);
2359          onChanged();
2360        } else {
2361          paramBuilder_.addMessage(value);
2362        }
2363        return this;
2364      }
2365      /**
2366       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2367       */
2368      public Builder addParam(
2369          int index, org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam value) {
2370        if (paramBuilder_ == null) {
2371          if (value == null) {
2372            throw new NullPointerException();
2373          }
2374          ensureParamIsMutable();
2375          param_.add(index, value);
2376          onChanged();
2377        } else {
2378          paramBuilder_.addMessage(index, value);
2379        }
2380        return this;
2381      }
2382      /**
2383       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2384       */
2385      public Builder addParam(
2386          org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.Builder builderForValue) {
2387        if (paramBuilder_ == null) {
2388          ensureParamIsMutable();
2389          param_.add(builderForValue.build());
2390          onChanged();
2391        } else {
2392          paramBuilder_.addMessage(builderForValue.build());
2393        }
2394        return this;
2395      }
2396      /**
2397       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2398       */
2399      public Builder addParam(
2400          int index, org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.Builder builderForValue) {
2401        if (paramBuilder_ == null) {
2402          ensureParamIsMutable();
2403          param_.add(index, builderForValue.build());
2404          onChanged();
2405        } else {
2406          paramBuilder_.addMessage(index, builderForValue.build());
2407        }
2408        return this;
2409      }
2410      /**
2411       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2412       */
2413      public Builder addAllParam(
2414          java.lang.Iterable<? extends org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam> values) {
2415        if (paramBuilder_ == null) {
2416          ensureParamIsMutable();
2417          com.google.protobuf.AbstractMessageLite.Builder.addAll(
2418              values, param_);
2419          onChanged();
2420        } else {
2421          paramBuilder_.addAllMessages(values);
2422        }
2423        return this;
2424      }
2425      /**
2426       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2427       */
2428      public Builder clearParam() {
2429        if (paramBuilder_ == null) {
2430          param_ = java.util.Collections.emptyList();
2431          bitField0_ = (bitField0_ & ~0x00000008);
2432          onChanged();
2433        } else {
2434          paramBuilder_.clear();
2435        }
2436        return this;
2437      }
2438      /**
2439       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2440       */
2441      public Builder removeParam(int index) {
2442        if (paramBuilder_ == null) {
2443          ensureParamIsMutable();
2444          param_.remove(index);
2445          onChanged();
2446        } else {
2447          paramBuilder_.remove(index);
2448        }
2449        return this;
2450      }
2451      /**
2452       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2453       */
2454      public org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.Builder getParamBuilder(
2455          int index) {
2456        return getParamFieldBuilder().getBuilder(index);
2457      }
2458      /**
2459       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2460       */
2461      public org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParamOrBuilder getParamOrBuilder(
2462          int index) {
2463        if (paramBuilder_ == null) {
2464          return param_.get(index);  } else {
2465          return paramBuilder_.getMessageOrBuilder(index);
2466        }
2467      }
2468      /**
2469       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2470       */
2471      public java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParamOrBuilder> 
2472           getParamOrBuilderList() {
2473        if (paramBuilder_ != null) {
2474          return paramBuilder_.getMessageOrBuilderList();
2475        } else {
2476          return java.util.Collections.unmodifiableList(param_);
2477        }
2478      }
2479      /**
2480       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2481       */
2482      public org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.Builder addParamBuilder() {
2483        return getParamFieldBuilder().addBuilder(
2484            org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.getDefaultInstance());
2485      }
2486      /**
2487       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2488       */
2489      public org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.Builder addParamBuilder(
2490          int index) {
2491        return getParamFieldBuilder().addBuilder(
2492            index, org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.getDefaultInstance());
2493      }
2494      /**
2495       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2496       */
2497      public java.util.List<org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.Builder> 
2498           getParamBuilderList() {
2499        return getParamFieldBuilder().getBuilderList();
2500      }
2501      private com.google.protobuf.RepeatedFieldBuilder<
2502          org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam, org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.Builder, org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParamOrBuilder> 
2503          getParamFieldBuilder() {
2504        if (paramBuilder_ == null) {
2505          paramBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
2506              org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam, org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.Builder, org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParamOrBuilder>(
2507                  param_,
2508                  ((bitField0_ & 0x00000008) == 0x00000008),
2509                  getParentForChildren(),
2510                  isClean());
2511          param_ = null;
2512        }
2513        return paramBuilder_;
2514      }
2515
2516      // @@protoc_insertion_point(builder_scope:ActiveRule)
2517    }
2518
2519    // @@protoc_insertion_point(class_scope:ActiveRule)
2520    private static final org.sonar.batch.protocol.output.BatchReport.ActiveRule DEFAULT_INSTANCE;
2521    static {
2522      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.ActiveRule();
2523    }
2524
2525    public static org.sonar.batch.protocol.output.BatchReport.ActiveRule getDefaultInstance() {
2526      return DEFAULT_INSTANCE;
2527    }
2528
2529    public static final com.google.protobuf.Parser<ActiveRule> PARSER =
2530        new com.google.protobuf.AbstractParser<ActiveRule>() {
2531      public ActiveRule parsePartialFrom(
2532          com.google.protobuf.CodedInputStream input,
2533          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2534          throws com.google.protobuf.InvalidProtocolBufferException {
2535        try {
2536          return new ActiveRule(input, extensionRegistry);
2537        } catch (RuntimeException e) {
2538          if (e.getCause() instanceof
2539              com.google.protobuf.InvalidProtocolBufferException) {
2540            throw (com.google.protobuf.InvalidProtocolBufferException)
2541                e.getCause();
2542          }
2543          throw e;
2544        }
2545      }
2546    };
2547
2548    @java.lang.Override
2549    public com.google.protobuf.Parser<ActiveRule> getParserForType() {
2550      return PARSER;
2551    }
2552
2553    public org.sonar.batch.protocol.output.BatchReport.ActiveRule getDefaultInstanceForType() {
2554      return DEFAULT_INSTANCE;
2555    }
2556
2557  }
2558
2559  public interface ComponentLinkOrBuilder extends
2560      // @@protoc_insertion_point(interface_extends:ComponentLink)
2561      com.google.protobuf.MessageOrBuilder {
2562
2563    /**
2564     * <code>optional .ComponentLinkType type = 1;</code>
2565     */
2566    boolean hasType();
2567    /**
2568     * <code>optional .ComponentLinkType type = 1;</code>
2569     */
2570    org.sonar.batch.protocol.Constants.ComponentLinkType getType();
2571
2572    /**
2573     * <code>optional string href = 2;</code>
2574     */
2575    boolean hasHref();
2576    /**
2577     * <code>optional string href = 2;</code>
2578     */
2579    java.lang.String getHref();
2580    /**
2581     * <code>optional string href = 2;</code>
2582     */
2583    com.google.protobuf.ByteString
2584        getHrefBytes();
2585  }
2586  /**
2587   * Protobuf type {@code ComponentLink}
2588   */
2589  public  static final class ComponentLink extends
2590      com.google.protobuf.GeneratedMessage implements
2591      // @@protoc_insertion_point(message_implements:ComponentLink)
2592      ComponentLinkOrBuilder {
2593    // Use ComponentLink.newBuilder() to construct.
2594    private ComponentLink(com.google.protobuf.GeneratedMessage.Builder builder) {
2595      super(builder);
2596    }
2597    private ComponentLink() {
2598      type_ = 0;
2599      href_ = "";
2600    }
2601
2602    @java.lang.Override
2603    public final com.google.protobuf.UnknownFieldSet
2604    getUnknownFields() {
2605      return this.unknownFields;
2606    }
2607    private ComponentLink(
2608        com.google.protobuf.CodedInputStream input,
2609        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
2610      this();
2611      int mutable_bitField0_ = 0;
2612      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
2613          com.google.protobuf.UnknownFieldSet.newBuilder();
2614      try {
2615        boolean done = false;
2616        while (!done) {
2617          int tag = input.readTag();
2618          switch (tag) {
2619            case 0:
2620              done = true;
2621              break;
2622            default: {
2623              if (!parseUnknownField(input, unknownFields,
2624                                     extensionRegistry, tag)) {
2625                done = true;
2626              }
2627              break;
2628            }
2629            case 8: {
2630              int rawValue = input.readEnum();
2631              org.sonar.batch.protocol.Constants.ComponentLinkType value = org.sonar.batch.protocol.Constants.ComponentLinkType.valueOf(rawValue);
2632              if (value == null) {
2633                unknownFields.mergeVarintField(1, rawValue);
2634              } else {
2635                bitField0_ |= 0x00000001;
2636                type_ = rawValue;
2637              }
2638              break;
2639            }
2640            case 18: {
2641              com.google.protobuf.ByteString bs = input.readBytes();
2642              bitField0_ |= 0x00000002;
2643              href_ = bs;
2644              break;
2645            }
2646          }
2647        }
2648      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
2649        throw new RuntimeException(e.setUnfinishedMessage(this));
2650      } catch (java.io.IOException e) {
2651        throw new RuntimeException(
2652            new com.google.protobuf.InvalidProtocolBufferException(
2653                e.getMessage()).setUnfinishedMessage(this));
2654      } finally {
2655        this.unknownFields = unknownFields.build();
2656        makeExtensionsImmutable();
2657      }
2658    }
2659    public static final com.google.protobuf.Descriptors.Descriptor
2660        getDescriptor() {
2661      return org.sonar.batch.protocol.output.BatchReport.internal_static_ComponentLink_descriptor;
2662    }
2663
2664    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
2665        internalGetFieldAccessorTable() {
2666      return org.sonar.batch.protocol.output.BatchReport.internal_static_ComponentLink_fieldAccessorTable
2667          .ensureFieldAccessorsInitialized(
2668              org.sonar.batch.protocol.output.BatchReport.ComponentLink.class, org.sonar.batch.protocol.output.BatchReport.ComponentLink.Builder.class);
2669    }
2670
2671    private int bitField0_;
2672    public static final int TYPE_FIELD_NUMBER = 1;
2673    private int type_;
2674    /**
2675     * <code>optional .ComponentLinkType type = 1;</code>
2676     */
2677    public boolean hasType() {
2678      return ((bitField0_ & 0x00000001) == 0x00000001);
2679    }
2680    /**
2681     * <code>optional .ComponentLinkType type = 1;</code>
2682     */
2683    public org.sonar.batch.protocol.Constants.ComponentLinkType getType() {
2684      org.sonar.batch.protocol.Constants.ComponentLinkType result = org.sonar.batch.protocol.Constants.ComponentLinkType.valueOf(type_);
2685      return result == null ? org.sonar.batch.protocol.Constants.ComponentLinkType.HOME : result;
2686    }
2687
2688    public static final int HREF_FIELD_NUMBER = 2;
2689    private volatile java.lang.Object href_;
2690    /**
2691     * <code>optional string href = 2;</code>
2692     */
2693    public boolean hasHref() {
2694      return ((bitField0_ & 0x00000002) == 0x00000002);
2695    }
2696    /**
2697     * <code>optional string href = 2;</code>
2698     */
2699    public java.lang.String getHref() {
2700      java.lang.Object ref = href_;
2701      if (ref instanceof java.lang.String) {
2702        return (java.lang.String) ref;
2703      } else {
2704        com.google.protobuf.ByteString bs = 
2705            (com.google.protobuf.ByteString) ref;
2706        java.lang.String s = bs.toStringUtf8();
2707        if (bs.isValidUtf8()) {
2708          href_ = s;
2709        }
2710        return s;
2711      }
2712    }
2713    /**
2714     * <code>optional string href = 2;</code>
2715     */
2716    public com.google.protobuf.ByteString
2717        getHrefBytes() {
2718      java.lang.Object ref = href_;
2719      if (ref instanceof java.lang.String) {
2720        com.google.protobuf.ByteString b = 
2721            com.google.protobuf.ByteString.copyFromUtf8(
2722                (java.lang.String) ref);
2723        href_ = b;
2724        return b;
2725      } else {
2726        return (com.google.protobuf.ByteString) ref;
2727      }
2728    }
2729
2730    private byte memoizedIsInitialized = -1;
2731    public final boolean isInitialized() {
2732      byte isInitialized = memoizedIsInitialized;
2733      if (isInitialized == 1) return true;
2734      if (isInitialized == 0) return false;
2735
2736      memoizedIsInitialized = 1;
2737      return true;
2738    }
2739
2740    public void writeTo(com.google.protobuf.CodedOutputStream output)
2741                        throws java.io.IOException {
2742      if (((bitField0_ & 0x00000001) == 0x00000001)) {
2743        output.writeEnum(1, type_);
2744      }
2745      if (((bitField0_ & 0x00000002) == 0x00000002)) {
2746        output.writeBytes(2, getHrefBytes());
2747      }
2748      unknownFields.writeTo(output);
2749    }
2750
2751    private int memoizedSerializedSize = -1;
2752    public int getSerializedSize() {
2753      int size = memoizedSerializedSize;
2754      if (size != -1) return size;
2755
2756      size = 0;
2757      if (((bitField0_ & 0x00000001) == 0x00000001)) {
2758        size += com.google.protobuf.CodedOutputStream
2759          .computeEnumSize(1, type_);
2760      }
2761      if (((bitField0_ & 0x00000002) == 0x00000002)) {
2762        size += com.google.protobuf.CodedOutputStream
2763          .computeBytesSize(2, getHrefBytes());
2764      }
2765      size += unknownFields.getSerializedSize();
2766      memoizedSerializedSize = size;
2767      return size;
2768    }
2769
2770    private static final long serialVersionUID = 0L;
2771    public static org.sonar.batch.protocol.output.BatchReport.ComponentLink parseFrom(
2772        com.google.protobuf.ByteString data)
2773        throws com.google.protobuf.InvalidProtocolBufferException {
2774      return PARSER.parseFrom(data);
2775    }
2776    public static org.sonar.batch.protocol.output.BatchReport.ComponentLink parseFrom(
2777        com.google.protobuf.ByteString data,
2778        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2779        throws com.google.protobuf.InvalidProtocolBufferException {
2780      return PARSER.parseFrom(data, extensionRegistry);
2781    }
2782    public static org.sonar.batch.protocol.output.BatchReport.ComponentLink parseFrom(byte[] data)
2783        throws com.google.protobuf.InvalidProtocolBufferException {
2784      return PARSER.parseFrom(data);
2785    }
2786    public static org.sonar.batch.protocol.output.BatchReport.ComponentLink parseFrom(
2787        byte[] data,
2788        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2789        throws com.google.protobuf.InvalidProtocolBufferException {
2790      return PARSER.parseFrom(data, extensionRegistry);
2791    }
2792    public static org.sonar.batch.protocol.output.BatchReport.ComponentLink parseFrom(java.io.InputStream input)
2793        throws java.io.IOException {
2794      return PARSER.parseFrom(input);
2795    }
2796    public static org.sonar.batch.protocol.output.BatchReport.ComponentLink parseFrom(
2797        java.io.InputStream input,
2798        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2799        throws java.io.IOException {
2800      return PARSER.parseFrom(input, extensionRegistry);
2801    }
2802    public static org.sonar.batch.protocol.output.BatchReport.ComponentLink parseDelimitedFrom(java.io.InputStream input)
2803        throws java.io.IOException {
2804      return PARSER.parseDelimitedFrom(input);
2805    }
2806    public static org.sonar.batch.protocol.output.BatchReport.ComponentLink parseDelimitedFrom(
2807        java.io.InputStream input,
2808        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2809        throws java.io.IOException {
2810      return PARSER.parseDelimitedFrom(input, extensionRegistry);
2811    }
2812    public static org.sonar.batch.protocol.output.BatchReport.ComponentLink parseFrom(
2813        com.google.protobuf.CodedInputStream input)
2814        throws java.io.IOException {
2815      return PARSER.parseFrom(input);
2816    }
2817    public static org.sonar.batch.protocol.output.BatchReport.ComponentLink parseFrom(
2818        com.google.protobuf.CodedInputStream input,
2819        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2820        throws java.io.IOException {
2821      return PARSER.parseFrom(input, extensionRegistry);
2822    }
2823
2824    public Builder newBuilderForType() { return newBuilder(); }
2825    public static Builder newBuilder() {
2826      return DEFAULT_INSTANCE.toBuilder();
2827    }
2828    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.ComponentLink prototype) {
2829      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
2830    }
2831    public Builder toBuilder() {
2832      return this == DEFAULT_INSTANCE
2833          ? new Builder() : new Builder().mergeFrom(this);
2834    }
2835
2836    @java.lang.Override
2837    protected Builder newBuilderForType(
2838        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
2839      Builder builder = new Builder(parent);
2840      return builder;
2841    }
2842    /**
2843     * Protobuf type {@code ComponentLink}
2844     */
2845    public static final class Builder extends
2846        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
2847        // @@protoc_insertion_point(builder_implements:ComponentLink)
2848        org.sonar.batch.protocol.output.BatchReport.ComponentLinkOrBuilder {
2849      public static final com.google.protobuf.Descriptors.Descriptor
2850          getDescriptor() {
2851        return org.sonar.batch.protocol.output.BatchReport.internal_static_ComponentLink_descriptor;
2852      }
2853
2854      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
2855          internalGetFieldAccessorTable() {
2856        return org.sonar.batch.protocol.output.BatchReport.internal_static_ComponentLink_fieldAccessorTable
2857            .ensureFieldAccessorsInitialized(
2858                org.sonar.batch.protocol.output.BatchReport.ComponentLink.class, org.sonar.batch.protocol.output.BatchReport.ComponentLink.Builder.class);
2859      }
2860
2861      // Construct using org.sonar.batch.protocol.output.BatchReport.ComponentLink.newBuilder()
2862      private Builder() {
2863        maybeForceBuilderInitialization();
2864      }
2865
2866      private Builder(
2867          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
2868        super(parent);
2869        maybeForceBuilderInitialization();
2870      }
2871      private void maybeForceBuilderInitialization() {
2872        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
2873        }
2874      }
2875      public Builder clear() {
2876        super.clear();
2877        type_ = 0;
2878        bitField0_ = (bitField0_ & ~0x00000001);
2879        href_ = "";
2880        bitField0_ = (bitField0_ & ~0x00000002);
2881        return this;
2882      }
2883
2884      public com.google.protobuf.Descriptors.Descriptor
2885          getDescriptorForType() {
2886        return org.sonar.batch.protocol.output.BatchReport.internal_static_ComponentLink_descriptor;
2887      }
2888
2889      public org.sonar.batch.protocol.output.BatchReport.ComponentLink getDefaultInstanceForType() {
2890        return org.sonar.batch.protocol.output.BatchReport.ComponentLink.getDefaultInstance();
2891      }
2892
2893      public org.sonar.batch.protocol.output.BatchReport.ComponentLink build() {
2894        org.sonar.batch.protocol.output.BatchReport.ComponentLink result = buildPartial();
2895        if (!result.isInitialized()) {
2896          throw newUninitializedMessageException(result);
2897        }
2898        return result;
2899      }
2900
2901      public org.sonar.batch.protocol.output.BatchReport.ComponentLink buildPartial() {
2902        org.sonar.batch.protocol.output.BatchReport.ComponentLink result = new org.sonar.batch.protocol.output.BatchReport.ComponentLink(this);
2903        int from_bitField0_ = bitField0_;
2904        int to_bitField0_ = 0;
2905        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
2906          to_bitField0_ |= 0x00000001;
2907        }
2908        result.type_ = type_;
2909        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
2910          to_bitField0_ |= 0x00000002;
2911        }
2912        result.href_ = href_;
2913        result.bitField0_ = to_bitField0_;
2914        onBuilt();
2915        return result;
2916      }
2917
2918      public Builder mergeFrom(com.google.protobuf.Message other) {
2919        if (other instanceof org.sonar.batch.protocol.output.BatchReport.ComponentLink) {
2920          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.ComponentLink)other);
2921        } else {
2922          super.mergeFrom(other);
2923          return this;
2924        }
2925      }
2926
2927      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.ComponentLink other) {
2928        if (other == org.sonar.batch.protocol.output.BatchReport.ComponentLink.getDefaultInstance()) return this;
2929        if (other.hasType()) {
2930          setType(other.getType());
2931        }
2932        if (other.hasHref()) {
2933          bitField0_ |= 0x00000002;
2934          href_ = other.href_;
2935          onChanged();
2936        }
2937        this.mergeUnknownFields(other.unknownFields);
2938        onChanged();
2939        return this;
2940      }
2941
2942      public final boolean isInitialized() {
2943        return true;
2944      }
2945
2946      public Builder mergeFrom(
2947          com.google.protobuf.CodedInputStream input,
2948          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2949          throws java.io.IOException {
2950        org.sonar.batch.protocol.output.BatchReport.ComponentLink parsedMessage = null;
2951        try {
2952          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
2953        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
2954          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.ComponentLink) e.getUnfinishedMessage();
2955          throw e;
2956        } finally {
2957          if (parsedMessage != null) {
2958            mergeFrom(parsedMessage);
2959          }
2960        }
2961        return this;
2962      }
2963      private int bitField0_;
2964
2965      private int type_ = 0;
2966      /**
2967       * <code>optional .ComponentLinkType type = 1;</code>
2968       */
2969      public boolean hasType() {
2970        return ((bitField0_ & 0x00000001) == 0x00000001);
2971      }
2972      /**
2973       * <code>optional .ComponentLinkType type = 1;</code>
2974       */
2975      public org.sonar.batch.protocol.Constants.ComponentLinkType getType() {
2976        org.sonar.batch.protocol.Constants.ComponentLinkType result = org.sonar.batch.protocol.Constants.ComponentLinkType.valueOf(type_);
2977        return result == null ? org.sonar.batch.protocol.Constants.ComponentLinkType.HOME : result;
2978      }
2979      /**
2980       * <code>optional .ComponentLinkType type = 1;</code>
2981       */
2982      public Builder setType(org.sonar.batch.protocol.Constants.ComponentLinkType value) {
2983        if (value == null) {
2984          throw new NullPointerException();
2985        }
2986        bitField0_ |= 0x00000001;
2987        type_ = value.getNumber();
2988        onChanged();
2989        return this;
2990      }
2991      /**
2992       * <code>optional .ComponentLinkType type = 1;</code>
2993       */
2994      public Builder clearType() {
2995        bitField0_ = (bitField0_ & ~0x00000001);
2996        type_ = 0;
2997        onChanged();
2998        return this;
2999      }
3000
3001      private java.lang.Object href_ = "";
3002      /**
3003       * <code>optional string href = 2;</code>
3004       */
3005      public boolean hasHref() {
3006        return ((bitField0_ & 0x00000002) == 0x00000002);
3007      }
3008      /**
3009       * <code>optional string href = 2;</code>
3010       */
3011      public java.lang.String getHref() {
3012        java.lang.Object ref = href_;
3013        if (!(ref instanceof java.lang.String)) {
3014          com.google.protobuf.ByteString bs =
3015              (com.google.protobuf.ByteString) ref;
3016          java.lang.String s = bs.toStringUtf8();
3017          if (bs.isValidUtf8()) {
3018            href_ = s;
3019          }
3020          return s;
3021        } else {
3022          return (java.lang.String) ref;
3023        }
3024      }
3025      /**
3026       * <code>optional string href = 2;</code>
3027       */
3028      public com.google.protobuf.ByteString
3029          getHrefBytes() {
3030        java.lang.Object ref = href_;
3031        if (ref instanceof String) {
3032          com.google.protobuf.ByteString b = 
3033              com.google.protobuf.ByteString.copyFromUtf8(
3034                  (java.lang.String) ref);
3035          href_ = b;
3036          return b;
3037        } else {
3038          return (com.google.protobuf.ByteString) ref;
3039        }
3040      }
3041      /**
3042       * <code>optional string href = 2;</code>
3043       */
3044      public Builder setHref(
3045          java.lang.String value) {
3046        if (value == null) {
3047    throw new NullPointerException();
3048  }
3049  bitField0_ |= 0x00000002;
3050        href_ = value;
3051        onChanged();
3052        return this;
3053      }
3054      /**
3055       * <code>optional string href = 2;</code>
3056       */
3057      public Builder clearHref() {
3058        bitField0_ = (bitField0_ & ~0x00000002);
3059        href_ = getDefaultInstance().getHref();
3060        onChanged();
3061        return this;
3062      }
3063      /**
3064       * <code>optional string href = 2;</code>
3065       */
3066      public Builder setHrefBytes(
3067          com.google.protobuf.ByteString value) {
3068        if (value == null) {
3069    throw new NullPointerException();
3070  }
3071  bitField0_ |= 0x00000002;
3072        href_ = value;
3073        onChanged();
3074        return this;
3075      }
3076
3077      // @@protoc_insertion_point(builder_scope:ComponentLink)
3078    }
3079
3080    // @@protoc_insertion_point(class_scope:ComponentLink)
3081    private static final org.sonar.batch.protocol.output.BatchReport.ComponentLink DEFAULT_INSTANCE;
3082    static {
3083      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.ComponentLink();
3084    }
3085
3086    public static org.sonar.batch.protocol.output.BatchReport.ComponentLink getDefaultInstance() {
3087      return DEFAULT_INSTANCE;
3088    }
3089
3090    public static final com.google.protobuf.Parser<ComponentLink> PARSER =
3091        new com.google.protobuf.AbstractParser<ComponentLink>() {
3092      public ComponentLink parsePartialFrom(
3093          com.google.protobuf.CodedInputStream input,
3094          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3095          throws com.google.protobuf.InvalidProtocolBufferException {
3096        try {
3097          return new ComponentLink(input, extensionRegistry);
3098        } catch (RuntimeException e) {
3099          if (e.getCause() instanceof
3100              com.google.protobuf.InvalidProtocolBufferException) {
3101            throw (com.google.protobuf.InvalidProtocolBufferException)
3102                e.getCause();
3103          }
3104          throw e;
3105        }
3106      }
3107    };
3108
3109    @java.lang.Override
3110    public com.google.protobuf.Parser<ComponentLink> getParserForType() {
3111      return PARSER;
3112    }
3113
3114    public org.sonar.batch.protocol.output.BatchReport.ComponentLink getDefaultInstanceForType() {
3115      return DEFAULT_INSTANCE;
3116    }
3117
3118  }
3119
3120  public interface ComponentOrBuilder extends
3121      // @@protoc_insertion_point(interface_extends:Component)
3122      com.google.protobuf.MessageOrBuilder {
3123
3124    /**
3125     * <code>optional int32 ref = 1;</code>
3126     */
3127    boolean hasRef();
3128    /**
3129     * <code>optional int32 ref = 1;</code>
3130     */
3131    int getRef();
3132
3133    /**
3134     * <code>optional string path = 2;</code>
3135     */
3136    boolean hasPath();
3137    /**
3138     * <code>optional string path = 2;</code>
3139     */
3140    java.lang.String getPath();
3141    /**
3142     * <code>optional string path = 2;</code>
3143     */
3144    com.google.protobuf.ByteString
3145        getPathBytes();
3146
3147    /**
3148     * <code>optional string name = 3;</code>
3149     */
3150    boolean hasName();
3151    /**
3152     * <code>optional string name = 3;</code>
3153     */
3154    java.lang.String getName();
3155    /**
3156     * <code>optional string name = 3;</code>
3157     */
3158    com.google.protobuf.ByteString
3159        getNameBytes();
3160
3161    /**
3162     * <code>optional .ComponentType type = 4;</code>
3163     */
3164    boolean hasType();
3165    /**
3166     * <code>optional .ComponentType type = 4;</code>
3167     */
3168    org.sonar.batch.protocol.Constants.ComponentType getType();
3169
3170    /**
3171     * <code>optional bool is_test = 5;</code>
3172     */
3173    boolean hasIsTest();
3174    /**
3175     * <code>optional bool is_test = 5;</code>
3176     */
3177    boolean getIsTest();
3178
3179    /**
3180     * <code>optional string language = 6;</code>
3181     */
3182    boolean hasLanguage();
3183    /**
3184     * <code>optional string language = 6;</code>
3185     */
3186    java.lang.String getLanguage();
3187    /**
3188     * <code>optional string language = 6;</code>
3189     */
3190    com.google.protobuf.ByteString
3191        getLanguageBytes();
3192
3193    /**
3194     * <code>repeated int32 child_ref = 7 [packed = true];</code>
3195     */
3196    java.util.List<java.lang.Integer> getChildRefList();
3197    /**
3198     * <code>repeated int32 child_ref = 7 [packed = true];</code>
3199     */
3200    int getChildRefCount();
3201    /**
3202     * <code>repeated int32 child_ref = 7 [packed = true];</code>
3203     */
3204    int getChildRef(int index);
3205
3206    /**
3207     * <code>repeated .ComponentLink link = 8;</code>
3208     */
3209    java.util.List<org.sonar.batch.protocol.output.BatchReport.ComponentLink> 
3210        getLinkList();
3211    /**
3212     * <code>repeated .ComponentLink link = 8;</code>
3213     */
3214    org.sonar.batch.protocol.output.BatchReport.ComponentLink getLink(int index);
3215    /**
3216     * <code>repeated .ComponentLink link = 8;</code>
3217     */
3218    int getLinkCount();
3219    /**
3220     * <code>repeated .ComponentLink link = 8;</code>
3221     */
3222    java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.ComponentLinkOrBuilder> 
3223        getLinkOrBuilderList();
3224    /**
3225     * <code>repeated .ComponentLink link = 8;</code>
3226     */
3227    org.sonar.batch.protocol.output.BatchReport.ComponentLinkOrBuilder getLinkOrBuilder(
3228        int index);
3229
3230    /**
3231     * <code>optional string version = 9;</code>
3232     *
3233     * <pre>
3234     * Only available on PROJECT and MODULE types
3235     * </pre>
3236     */
3237    boolean hasVersion();
3238    /**
3239     * <code>optional string version = 9;</code>
3240     *
3241     * <pre>
3242     * Only available on PROJECT and MODULE types
3243     * </pre>
3244     */
3245    java.lang.String getVersion();
3246    /**
3247     * <code>optional string version = 9;</code>
3248     *
3249     * <pre>
3250     * Only available on PROJECT and MODULE types
3251     * </pre>
3252     */
3253    com.google.protobuf.ByteString
3254        getVersionBytes();
3255
3256    /**
3257     * <code>optional string key = 10;</code>
3258     *
3259     * <pre>
3260     * Only available on PROJECT and MODULE types
3261     * TODO rename this property -&gt; batchKey ? moduleKey ?
3262     * </pre>
3263     */
3264    boolean hasKey();
3265    /**
3266     * <code>optional string key = 10;</code>
3267     *
3268     * <pre>
3269     * Only available on PROJECT and MODULE types
3270     * TODO rename this property -&gt; batchKey ? moduleKey ?
3271     * </pre>
3272     */
3273    java.lang.String getKey();
3274    /**
3275     * <code>optional string key = 10;</code>
3276     *
3277     * <pre>
3278     * Only available on PROJECT and MODULE types
3279     * TODO rename this property -&gt; batchKey ? moduleKey ?
3280     * </pre>
3281     */
3282    com.google.protobuf.ByteString
3283        getKeyBytes();
3284
3285    /**
3286     * <code>optional int32 lines = 11;</code>
3287     *
3288     * <pre>
3289     * Only available on FILE type
3290     * </pre>
3291     */
3292    boolean hasLines();
3293    /**
3294     * <code>optional int32 lines = 11;</code>
3295     *
3296     * <pre>
3297     * Only available on FILE type
3298     * </pre>
3299     */
3300    int getLines();
3301
3302    /**
3303     * <code>optional string description = 12;</code>
3304     *
3305     * <pre>
3306     * Only available on PROJECT and MODULE types
3307     * </pre>
3308     */
3309    boolean hasDescription();
3310    /**
3311     * <code>optional string description = 12;</code>
3312     *
3313     * <pre>
3314     * Only available on PROJECT and MODULE types
3315     * </pre>
3316     */
3317    java.lang.String getDescription();
3318    /**
3319     * <code>optional string description = 12;</code>
3320     *
3321     * <pre>
3322     * Only available on PROJECT and MODULE types
3323     * </pre>
3324     */
3325    com.google.protobuf.ByteString
3326        getDescriptionBytes();
3327  }
3328  /**
3329   * Protobuf type {@code Component}
3330   */
3331  public  static final class Component extends
3332      com.google.protobuf.GeneratedMessage implements
3333      // @@protoc_insertion_point(message_implements:Component)
3334      ComponentOrBuilder {
3335    // Use Component.newBuilder() to construct.
3336    private Component(com.google.protobuf.GeneratedMessage.Builder builder) {
3337      super(builder);
3338    }
3339    private Component() {
3340      ref_ = 0;
3341      path_ = "";
3342      name_ = "";
3343      type_ = 0;
3344      isTest_ = false;
3345      language_ = "";
3346      childRef_ = java.util.Collections.emptyList();
3347      link_ = java.util.Collections.emptyList();
3348      version_ = "";
3349      key_ = "";
3350      lines_ = 0;
3351      description_ = "";
3352    }
3353
3354    @java.lang.Override
3355    public final com.google.protobuf.UnknownFieldSet
3356    getUnknownFields() {
3357      return this.unknownFields;
3358    }
3359    private Component(
3360        com.google.protobuf.CodedInputStream input,
3361        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
3362      this();
3363      int mutable_bitField0_ = 0;
3364      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
3365          com.google.protobuf.UnknownFieldSet.newBuilder();
3366      try {
3367        boolean done = false;
3368        while (!done) {
3369          int tag = input.readTag();
3370          switch (tag) {
3371            case 0:
3372              done = true;
3373              break;
3374            default: {
3375              if (!parseUnknownField(input, unknownFields,
3376                                     extensionRegistry, tag)) {
3377                done = true;
3378              }
3379              break;
3380            }
3381            case 8: {
3382              bitField0_ |= 0x00000001;
3383              ref_ = input.readInt32();
3384              break;
3385            }
3386            case 18: {
3387              com.google.protobuf.ByteString bs = input.readBytes();
3388              bitField0_ |= 0x00000002;
3389              path_ = bs;
3390              break;
3391            }
3392            case 26: {
3393              com.google.protobuf.ByteString bs = input.readBytes();
3394              bitField0_ |= 0x00000004;
3395              name_ = bs;
3396              break;
3397            }
3398            case 32: {
3399              int rawValue = input.readEnum();
3400              org.sonar.batch.protocol.Constants.ComponentType value = org.sonar.batch.protocol.Constants.ComponentType.valueOf(rawValue);
3401              if (value == null) {
3402                unknownFields.mergeVarintField(4, rawValue);
3403              } else {
3404                bitField0_ |= 0x00000008;
3405                type_ = rawValue;
3406              }
3407              break;
3408            }
3409            case 40: {
3410              bitField0_ |= 0x00000010;
3411              isTest_ = input.readBool();
3412              break;
3413            }
3414            case 50: {
3415              com.google.protobuf.ByteString bs = input.readBytes();
3416              bitField0_ |= 0x00000020;
3417              language_ = bs;
3418              break;
3419            }
3420            case 56: {
3421              if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
3422                childRef_ = new java.util.ArrayList<java.lang.Integer>();
3423                mutable_bitField0_ |= 0x00000040;
3424              }
3425              childRef_.add(input.readInt32());
3426              break;
3427            }
3428            case 58: {
3429              int length = input.readRawVarint32();
3430              int limit = input.pushLimit(length);
3431              if (!((mutable_bitField0_ & 0x00000040) == 0x00000040) && input.getBytesUntilLimit() > 0) {
3432                childRef_ = new java.util.ArrayList<java.lang.Integer>();
3433                mutable_bitField0_ |= 0x00000040;
3434              }
3435              while (input.getBytesUntilLimit() > 0) {
3436                childRef_.add(input.readInt32());
3437              }
3438              input.popLimit(limit);
3439              break;
3440            }
3441            case 66: {
3442              if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
3443                link_ = new java.util.ArrayList<org.sonar.batch.protocol.output.BatchReport.ComponentLink>();
3444                mutable_bitField0_ |= 0x00000080;
3445              }
3446              link_.add(input.readMessage(org.sonar.batch.protocol.output.BatchReport.ComponentLink.PARSER, extensionRegistry));
3447              break;
3448            }
3449            case 74: {
3450              com.google.protobuf.ByteString bs = input.readBytes();
3451              bitField0_ |= 0x00000040;
3452              version_ = bs;
3453              break;
3454            }
3455            case 82: {
3456              com.google.protobuf.ByteString bs = input.readBytes();
3457              bitField0_ |= 0x00000080;
3458              key_ = bs;
3459              break;
3460            }
3461            case 88: {
3462              bitField0_ |= 0x00000100;
3463              lines_ = input.readInt32();
3464              break;
3465            }
3466            case 98: {
3467              com.google.protobuf.ByteString bs = input.readBytes();
3468              bitField0_ |= 0x00000200;
3469              description_ = bs;
3470              break;
3471            }
3472          }
3473        }
3474      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
3475        throw new RuntimeException(e.setUnfinishedMessage(this));
3476      } catch (java.io.IOException e) {
3477        throw new RuntimeException(
3478            new com.google.protobuf.InvalidProtocolBufferException(
3479                e.getMessage()).setUnfinishedMessage(this));
3480      } finally {
3481        if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
3482          childRef_ = java.util.Collections.unmodifiableList(childRef_);
3483        }
3484        if (((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
3485          link_ = java.util.Collections.unmodifiableList(link_);
3486        }
3487        this.unknownFields = unknownFields.build();
3488        makeExtensionsImmutable();
3489      }
3490    }
3491    public static final com.google.protobuf.Descriptors.Descriptor
3492        getDescriptor() {
3493      return org.sonar.batch.protocol.output.BatchReport.internal_static_Component_descriptor;
3494    }
3495
3496    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
3497        internalGetFieldAccessorTable() {
3498      return org.sonar.batch.protocol.output.BatchReport.internal_static_Component_fieldAccessorTable
3499          .ensureFieldAccessorsInitialized(
3500              org.sonar.batch.protocol.output.BatchReport.Component.class, org.sonar.batch.protocol.output.BatchReport.Component.Builder.class);
3501    }
3502
3503    private int bitField0_;
3504    public static final int REF_FIELD_NUMBER = 1;
3505    private int ref_;
3506    /**
3507     * <code>optional int32 ref = 1;</code>
3508     */
3509    public boolean hasRef() {
3510      return ((bitField0_ & 0x00000001) == 0x00000001);
3511    }
3512    /**
3513     * <code>optional int32 ref = 1;</code>
3514     */
3515    public int getRef() {
3516      return ref_;
3517    }
3518
3519    public static final int PATH_FIELD_NUMBER = 2;
3520    private volatile java.lang.Object path_;
3521    /**
3522     * <code>optional string path = 2;</code>
3523     */
3524    public boolean hasPath() {
3525      return ((bitField0_ & 0x00000002) == 0x00000002);
3526    }
3527    /**
3528     * <code>optional string path = 2;</code>
3529     */
3530    public java.lang.String getPath() {
3531      java.lang.Object ref = path_;
3532      if (ref instanceof java.lang.String) {
3533        return (java.lang.String) ref;
3534      } else {
3535        com.google.protobuf.ByteString bs = 
3536            (com.google.protobuf.ByteString) ref;
3537        java.lang.String s = bs.toStringUtf8();
3538        if (bs.isValidUtf8()) {
3539          path_ = s;
3540        }
3541        return s;
3542      }
3543    }
3544    /**
3545     * <code>optional string path = 2;</code>
3546     */
3547    public com.google.protobuf.ByteString
3548        getPathBytes() {
3549      java.lang.Object ref = path_;
3550      if (ref instanceof java.lang.String) {
3551        com.google.protobuf.ByteString b = 
3552            com.google.protobuf.ByteString.copyFromUtf8(
3553                (java.lang.String) ref);
3554        path_ = b;
3555        return b;
3556      } else {
3557        return (com.google.protobuf.ByteString) ref;
3558      }
3559    }
3560
3561    public static final int NAME_FIELD_NUMBER = 3;
3562    private volatile java.lang.Object name_;
3563    /**
3564     * <code>optional string name = 3;</code>
3565     */
3566    public boolean hasName() {
3567      return ((bitField0_ & 0x00000004) == 0x00000004);
3568    }
3569    /**
3570     * <code>optional string name = 3;</code>
3571     */
3572    public java.lang.String getName() {
3573      java.lang.Object ref = name_;
3574      if (ref instanceof java.lang.String) {
3575        return (java.lang.String) ref;
3576      } else {
3577        com.google.protobuf.ByteString bs = 
3578            (com.google.protobuf.ByteString) ref;
3579        java.lang.String s = bs.toStringUtf8();
3580        if (bs.isValidUtf8()) {
3581          name_ = s;
3582        }
3583        return s;
3584      }
3585    }
3586    /**
3587     * <code>optional string name = 3;</code>
3588     */
3589    public com.google.protobuf.ByteString
3590        getNameBytes() {
3591      java.lang.Object ref = name_;
3592      if (ref instanceof java.lang.String) {
3593        com.google.protobuf.ByteString b = 
3594            com.google.protobuf.ByteString.copyFromUtf8(
3595                (java.lang.String) ref);
3596        name_ = b;
3597        return b;
3598      } else {
3599        return (com.google.protobuf.ByteString) ref;
3600      }
3601    }
3602
3603    public static final int TYPE_FIELD_NUMBER = 4;
3604    private int type_;
3605    /**
3606     * <code>optional .ComponentType type = 4;</code>
3607     */
3608    public boolean hasType() {
3609      return ((bitField0_ & 0x00000008) == 0x00000008);
3610    }
3611    /**
3612     * <code>optional .ComponentType type = 4;</code>
3613     */
3614    public org.sonar.batch.protocol.Constants.ComponentType getType() {
3615      org.sonar.batch.protocol.Constants.ComponentType result = org.sonar.batch.protocol.Constants.ComponentType.valueOf(type_);
3616      return result == null ? org.sonar.batch.protocol.Constants.ComponentType.PROJECT : result;
3617    }
3618
3619    public static final int IS_TEST_FIELD_NUMBER = 5;
3620    private boolean isTest_;
3621    /**
3622     * <code>optional bool is_test = 5;</code>
3623     */
3624    public boolean hasIsTest() {
3625      return ((bitField0_ & 0x00000010) == 0x00000010);
3626    }
3627    /**
3628     * <code>optional bool is_test = 5;</code>
3629     */
3630    public boolean getIsTest() {
3631      return isTest_;
3632    }
3633
3634    public static final int LANGUAGE_FIELD_NUMBER = 6;
3635    private volatile java.lang.Object language_;
3636    /**
3637     * <code>optional string language = 6;</code>
3638     */
3639    public boolean hasLanguage() {
3640      return ((bitField0_ & 0x00000020) == 0x00000020);
3641    }
3642    /**
3643     * <code>optional string language = 6;</code>
3644     */
3645    public java.lang.String getLanguage() {
3646      java.lang.Object ref = language_;
3647      if (ref instanceof java.lang.String) {
3648        return (java.lang.String) ref;
3649      } else {
3650        com.google.protobuf.ByteString bs = 
3651            (com.google.protobuf.ByteString) ref;
3652        java.lang.String s = bs.toStringUtf8();
3653        if (bs.isValidUtf8()) {
3654          language_ = s;
3655        }
3656        return s;
3657      }
3658    }
3659    /**
3660     * <code>optional string language = 6;</code>
3661     */
3662    public com.google.protobuf.ByteString
3663        getLanguageBytes() {
3664      java.lang.Object ref = language_;
3665      if (ref instanceof java.lang.String) {
3666        com.google.protobuf.ByteString b = 
3667            com.google.protobuf.ByteString.copyFromUtf8(
3668                (java.lang.String) ref);
3669        language_ = b;
3670        return b;
3671      } else {
3672        return (com.google.protobuf.ByteString) ref;
3673      }
3674    }
3675
3676    public static final int CHILD_REF_FIELD_NUMBER = 7;
3677    private java.util.List<java.lang.Integer> childRef_;
3678    /**
3679     * <code>repeated int32 child_ref = 7 [packed = true];</code>
3680     */
3681    public java.util.List<java.lang.Integer>
3682        getChildRefList() {
3683      return childRef_;
3684    }
3685    /**
3686     * <code>repeated int32 child_ref = 7 [packed = true];</code>
3687     */
3688    public int getChildRefCount() {
3689      return childRef_.size();
3690    }
3691    /**
3692     * <code>repeated int32 child_ref = 7 [packed = true];</code>
3693     */
3694    public int getChildRef(int index) {
3695      return childRef_.get(index);
3696    }
3697    private int childRefMemoizedSerializedSize = -1;
3698
3699    public static final int LINK_FIELD_NUMBER = 8;
3700    private java.util.List<org.sonar.batch.protocol.output.BatchReport.ComponentLink> link_;
3701    /**
3702     * <code>repeated .ComponentLink link = 8;</code>
3703     */
3704    public java.util.List<org.sonar.batch.protocol.output.BatchReport.ComponentLink> getLinkList() {
3705      return link_;
3706    }
3707    /**
3708     * <code>repeated .ComponentLink link = 8;</code>
3709     */
3710    public java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.ComponentLinkOrBuilder> 
3711        getLinkOrBuilderList() {
3712      return link_;
3713    }
3714    /**
3715     * <code>repeated .ComponentLink link = 8;</code>
3716     */
3717    public int getLinkCount() {
3718      return link_.size();
3719    }
3720    /**
3721     * <code>repeated .ComponentLink link = 8;</code>
3722     */
3723    public org.sonar.batch.protocol.output.BatchReport.ComponentLink getLink(int index) {
3724      return link_.get(index);
3725    }
3726    /**
3727     * <code>repeated .ComponentLink link = 8;</code>
3728     */
3729    public org.sonar.batch.protocol.output.BatchReport.ComponentLinkOrBuilder getLinkOrBuilder(
3730        int index) {
3731      return link_.get(index);
3732    }
3733
3734    public static final int VERSION_FIELD_NUMBER = 9;
3735    private volatile java.lang.Object version_;
3736    /**
3737     * <code>optional string version = 9;</code>
3738     *
3739     * <pre>
3740     * Only available on PROJECT and MODULE types
3741     * </pre>
3742     */
3743    public boolean hasVersion() {
3744      return ((bitField0_ & 0x00000040) == 0x00000040);
3745    }
3746    /**
3747     * <code>optional string version = 9;</code>
3748     *
3749     * <pre>
3750     * Only available on PROJECT and MODULE types
3751     * </pre>
3752     */
3753    public java.lang.String getVersion() {
3754      java.lang.Object ref = version_;
3755      if (ref instanceof java.lang.String) {
3756        return (java.lang.String) ref;
3757      } else {
3758        com.google.protobuf.ByteString bs = 
3759            (com.google.protobuf.ByteString) ref;
3760        java.lang.String s = bs.toStringUtf8();
3761        if (bs.isValidUtf8()) {
3762          version_ = s;
3763        }
3764        return s;
3765      }
3766    }
3767    /**
3768     * <code>optional string version = 9;</code>
3769     *
3770     * <pre>
3771     * Only available on PROJECT and MODULE types
3772     * </pre>
3773     */
3774    public com.google.protobuf.ByteString
3775        getVersionBytes() {
3776      java.lang.Object ref = version_;
3777      if (ref instanceof java.lang.String) {
3778        com.google.protobuf.ByteString b = 
3779            com.google.protobuf.ByteString.copyFromUtf8(
3780                (java.lang.String) ref);
3781        version_ = b;
3782        return b;
3783      } else {
3784        return (com.google.protobuf.ByteString) ref;
3785      }
3786    }
3787
3788    public static final int KEY_FIELD_NUMBER = 10;
3789    private volatile java.lang.Object key_;
3790    /**
3791     * <code>optional string key = 10;</code>
3792     *
3793     * <pre>
3794     * Only available on PROJECT and MODULE types
3795     * TODO rename this property -&gt; batchKey ? moduleKey ?
3796     * </pre>
3797     */
3798    public boolean hasKey() {
3799      return ((bitField0_ & 0x00000080) == 0x00000080);
3800    }
3801    /**
3802     * <code>optional string key = 10;</code>
3803     *
3804     * <pre>
3805     * Only available on PROJECT and MODULE types
3806     * TODO rename this property -&gt; batchKey ? moduleKey ?
3807     * </pre>
3808     */
3809    public java.lang.String getKey() {
3810      java.lang.Object ref = key_;
3811      if (ref instanceof java.lang.String) {
3812        return (java.lang.String) ref;
3813      } else {
3814        com.google.protobuf.ByteString bs = 
3815            (com.google.protobuf.ByteString) ref;
3816        java.lang.String s = bs.toStringUtf8();
3817        if (bs.isValidUtf8()) {
3818          key_ = s;
3819        }
3820        return s;
3821      }
3822    }
3823    /**
3824     * <code>optional string key = 10;</code>
3825     *
3826     * <pre>
3827     * Only available on PROJECT and MODULE types
3828     * TODO rename this property -&gt; batchKey ? moduleKey ?
3829     * </pre>
3830     */
3831    public com.google.protobuf.ByteString
3832        getKeyBytes() {
3833      java.lang.Object ref = key_;
3834      if (ref instanceof java.lang.String) {
3835        com.google.protobuf.ByteString b = 
3836            com.google.protobuf.ByteString.copyFromUtf8(
3837                (java.lang.String) ref);
3838        key_ = b;
3839        return b;
3840      } else {
3841        return (com.google.protobuf.ByteString) ref;
3842      }
3843    }
3844
3845    public static final int LINES_FIELD_NUMBER = 11;
3846    private int lines_;
3847    /**
3848     * <code>optional int32 lines = 11;</code>
3849     *
3850     * <pre>
3851     * Only available on FILE type
3852     * </pre>
3853     */
3854    public boolean hasLines() {
3855      return ((bitField0_ & 0x00000100) == 0x00000100);
3856    }
3857    /**
3858     * <code>optional int32 lines = 11;</code>
3859     *
3860     * <pre>
3861     * Only available on FILE type
3862     * </pre>
3863     */
3864    public int getLines() {
3865      return lines_;
3866    }
3867
3868    public static final int DESCRIPTION_FIELD_NUMBER = 12;
3869    private volatile java.lang.Object description_;
3870    /**
3871     * <code>optional string description = 12;</code>
3872     *
3873     * <pre>
3874     * Only available on PROJECT and MODULE types
3875     * </pre>
3876     */
3877    public boolean hasDescription() {
3878      return ((bitField0_ & 0x00000200) == 0x00000200);
3879    }
3880    /**
3881     * <code>optional string description = 12;</code>
3882     *
3883     * <pre>
3884     * Only available on PROJECT and MODULE types
3885     * </pre>
3886     */
3887    public java.lang.String getDescription() {
3888      java.lang.Object ref = description_;
3889      if (ref instanceof java.lang.String) {
3890        return (java.lang.String) ref;
3891      } else {
3892        com.google.protobuf.ByteString bs = 
3893            (com.google.protobuf.ByteString) ref;
3894        java.lang.String s = bs.toStringUtf8();
3895        if (bs.isValidUtf8()) {
3896          description_ = s;
3897        }
3898        return s;
3899      }
3900    }
3901    /**
3902     * <code>optional string description = 12;</code>
3903     *
3904     * <pre>
3905     * Only available on PROJECT and MODULE types
3906     * </pre>
3907     */
3908    public com.google.protobuf.ByteString
3909        getDescriptionBytes() {
3910      java.lang.Object ref = description_;
3911      if (ref instanceof java.lang.String) {
3912        com.google.protobuf.ByteString b = 
3913            com.google.protobuf.ByteString.copyFromUtf8(
3914                (java.lang.String) ref);
3915        description_ = b;
3916        return b;
3917      } else {
3918        return (com.google.protobuf.ByteString) ref;
3919      }
3920    }
3921
3922    private byte memoizedIsInitialized = -1;
3923    public final boolean isInitialized() {
3924      byte isInitialized = memoizedIsInitialized;
3925      if (isInitialized == 1) return true;
3926      if (isInitialized == 0) return false;
3927
3928      memoizedIsInitialized = 1;
3929      return true;
3930    }
3931
3932    public void writeTo(com.google.protobuf.CodedOutputStream output)
3933                        throws java.io.IOException {
3934      getSerializedSize();
3935      if (((bitField0_ & 0x00000001) == 0x00000001)) {
3936        output.writeInt32(1, ref_);
3937      }
3938      if (((bitField0_ & 0x00000002) == 0x00000002)) {
3939        output.writeBytes(2, getPathBytes());
3940      }
3941      if (((bitField0_ & 0x00000004) == 0x00000004)) {
3942        output.writeBytes(3, getNameBytes());
3943      }
3944      if (((bitField0_ & 0x00000008) == 0x00000008)) {
3945        output.writeEnum(4, type_);
3946      }
3947      if (((bitField0_ & 0x00000010) == 0x00000010)) {
3948        output.writeBool(5, isTest_);
3949      }
3950      if (((bitField0_ & 0x00000020) == 0x00000020)) {
3951        output.writeBytes(6, getLanguageBytes());
3952      }
3953      if (getChildRefList().size() > 0) {
3954        output.writeRawVarint32(58);
3955        output.writeRawVarint32(childRefMemoizedSerializedSize);
3956      }
3957      for (int i = 0; i < childRef_.size(); i++) {
3958        output.writeInt32NoTag(childRef_.get(i));
3959      }
3960      for (int i = 0; i < link_.size(); i++) {
3961        output.writeMessage(8, link_.get(i));
3962      }
3963      if (((bitField0_ & 0x00000040) == 0x00000040)) {
3964        output.writeBytes(9, getVersionBytes());
3965      }
3966      if (((bitField0_ & 0x00000080) == 0x00000080)) {
3967        output.writeBytes(10, getKeyBytes());
3968      }
3969      if (((bitField0_ & 0x00000100) == 0x00000100)) {
3970        output.writeInt32(11, lines_);
3971      }
3972      if (((bitField0_ & 0x00000200) == 0x00000200)) {
3973        output.writeBytes(12, getDescriptionBytes());
3974      }
3975      unknownFields.writeTo(output);
3976    }
3977
3978    private int memoizedSerializedSize = -1;
3979    public int getSerializedSize() {
3980      int size = memoizedSerializedSize;
3981      if (size != -1) return size;
3982
3983      size = 0;
3984      if (((bitField0_ & 0x00000001) == 0x00000001)) {
3985        size += com.google.protobuf.CodedOutputStream
3986          .computeInt32Size(1, ref_);
3987      }
3988      if (((bitField0_ & 0x00000002) == 0x00000002)) {
3989        size += com.google.protobuf.CodedOutputStream
3990          .computeBytesSize(2, getPathBytes());
3991      }
3992      if (((bitField0_ & 0x00000004) == 0x00000004)) {
3993        size += com.google.protobuf.CodedOutputStream
3994          .computeBytesSize(3, getNameBytes());
3995      }
3996      if (((bitField0_ & 0x00000008) == 0x00000008)) {
3997        size += com.google.protobuf.CodedOutputStream
3998          .computeEnumSize(4, type_);
3999      }
4000      if (((bitField0_ & 0x00000010) == 0x00000010)) {
4001        size += com.google.protobuf.CodedOutputStream
4002          .computeBoolSize(5, isTest_);
4003      }
4004      if (((bitField0_ & 0x00000020) == 0x00000020)) {
4005        size += com.google.protobuf.CodedOutputStream
4006          .computeBytesSize(6, getLanguageBytes());
4007      }
4008      {
4009        int dataSize = 0;
4010        for (int i = 0; i < childRef_.size(); i++) {
4011          dataSize += com.google.protobuf.CodedOutputStream
4012            .computeInt32SizeNoTag(childRef_.get(i));
4013        }
4014        size += dataSize;
4015        if (!getChildRefList().isEmpty()) {
4016          size += 1;
4017          size += com.google.protobuf.CodedOutputStream
4018              .computeInt32SizeNoTag(dataSize);
4019        }
4020        childRefMemoizedSerializedSize = dataSize;
4021      }
4022      for (int i = 0; i < link_.size(); i++) {
4023        size += com.google.protobuf.CodedOutputStream
4024          .computeMessageSize(8, link_.get(i));
4025      }
4026      if (((bitField0_ & 0x00000040) == 0x00000040)) {
4027        size += com.google.protobuf.CodedOutputStream
4028          .computeBytesSize(9, getVersionBytes());
4029      }
4030      if (((bitField0_ & 0x00000080) == 0x00000080)) {
4031        size += com.google.protobuf.CodedOutputStream
4032          .computeBytesSize(10, getKeyBytes());
4033      }
4034      if (((bitField0_ & 0x00000100) == 0x00000100)) {
4035        size += com.google.protobuf.CodedOutputStream
4036          .computeInt32Size(11, lines_);
4037      }
4038      if (((bitField0_ & 0x00000200) == 0x00000200)) {
4039        size += com.google.protobuf.CodedOutputStream
4040          .computeBytesSize(12, getDescriptionBytes());
4041      }
4042      size += unknownFields.getSerializedSize();
4043      memoizedSerializedSize = size;
4044      return size;
4045    }
4046
4047    private static final long serialVersionUID = 0L;
4048    public static org.sonar.batch.protocol.output.BatchReport.Component parseFrom(
4049        com.google.protobuf.ByteString data)
4050        throws com.google.protobuf.InvalidProtocolBufferException {
4051      return PARSER.parseFrom(data);
4052    }
4053    public static org.sonar.batch.protocol.output.BatchReport.Component parseFrom(
4054        com.google.protobuf.ByteString data,
4055        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
4056        throws com.google.protobuf.InvalidProtocolBufferException {
4057      return PARSER.parseFrom(data, extensionRegistry);
4058    }
4059    public static org.sonar.batch.protocol.output.BatchReport.Component parseFrom(byte[] data)
4060        throws com.google.protobuf.InvalidProtocolBufferException {
4061      return PARSER.parseFrom(data);
4062    }
4063    public static org.sonar.batch.protocol.output.BatchReport.Component parseFrom(
4064        byte[] data,
4065        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
4066        throws com.google.protobuf.InvalidProtocolBufferException {
4067      return PARSER.parseFrom(data, extensionRegistry);
4068    }
4069    public static org.sonar.batch.protocol.output.BatchReport.Component parseFrom(java.io.InputStream input)
4070        throws java.io.IOException {
4071      return PARSER.parseFrom(input);
4072    }
4073    public static org.sonar.batch.protocol.output.BatchReport.Component parseFrom(
4074        java.io.InputStream input,
4075        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
4076        throws java.io.IOException {
4077      return PARSER.parseFrom(input, extensionRegistry);
4078    }
4079    public static org.sonar.batch.protocol.output.BatchReport.Component parseDelimitedFrom(java.io.InputStream input)
4080        throws java.io.IOException {
4081      return PARSER.parseDelimitedFrom(input);
4082    }
4083    public static org.sonar.batch.protocol.output.BatchReport.Component parseDelimitedFrom(
4084        java.io.InputStream input,
4085        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
4086        throws java.io.IOException {
4087      return PARSER.parseDelimitedFrom(input, extensionRegistry);
4088    }
4089    public static org.sonar.batch.protocol.output.BatchReport.Component parseFrom(
4090        com.google.protobuf.CodedInputStream input)
4091        throws java.io.IOException {
4092      return PARSER.parseFrom(input);
4093    }
4094    public static org.sonar.batch.protocol.output.BatchReport.Component parseFrom(
4095        com.google.protobuf.CodedInputStream input,
4096        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
4097        throws java.io.IOException {
4098      return PARSER.parseFrom(input, extensionRegistry);
4099    }
4100
4101    public Builder newBuilderForType() { return newBuilder(); }
4102    public static Builder newBuilder() {
4103      return DEFAULT_INSTANCE.toBuilder();
4104    }
4105    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.Component prototype) {
4106      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
4107    }
4108    public Builder toBuilder() {
4109      return this == DEFAULT_INSTANCE
4110          ? new Builder() : new Builder().mergeFrom(this);
4111    }
4112
4113    @java.lang.Override
4114    protected Builder newBuilderForType(
4115        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
4116      Builder builder = new Builder(parent);
4117      return builder;
4118    }
4119    /**
4120     * Protobuf type {@code Component}
4121     */
4122    public static final class Builder extends
4123        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
4124        // @@protoc_insertion_point(builder_implements:Component)
4125        org.sonar.batch.protocol.output.BatchReport.ComponentOrBuilder {
4126      public static final com.google.protobuf.Descriptors.Descriptor
4127          getDescriptor() {
4128        return org.sonar.batch.protocol.output.BatchReport.internal_static_Component_descriptor;
4129      }
4130
4131      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
4132          internalGetFieldAccessorTable() {
4133        return org.sonar.batch.protocol.output.BatchReport.internal_static_Component_fieldAccessorTable
4134            .ensureFieldAccessorsInitialized(
4135                org.sonar.batch.protocol.output.BatchReport.Component.class, org.sonar.batch.protocol.output.BatchReport.Component.Builder.class);
4136      }
4137
4138      // Construct using org.sonar.batch.protocol.output.BatchReport.Component.newBuilder()
4139      private Builder() {
4140        maybeForceBuilderInitialization();
4141      }
4142
4143      private Builder(
4144          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
4145        super(parent);
4146        maybeForceBuilderInitialization();
4147      }
4148      private void maybeForceBuilderInitialization() {
4149        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
4150          getLinkFieldBuilder();
4151        }
4152      }
4153      public Builder clear() {
4154        super.clear();
4155        ref_ = 0;
4156        bitField0_ = (bitField0_ & ~0x00000001);
4157        path_ = "";
4158        bitField0_ = (bitField0_ & ~0x00000002);
4159        name_ = "";
4160        bitField0_ = (bitField0_ & ~0x00000004);
4161        type_ = 0;
4162        bitField0_ = (bitField0_ & ~0x00000008);
4163        isTest_ = false;
4164        bitField0_ = (bitField0_ & ~0x00000010);
4165        language_ = "";
4166        bitField0_ = (bitField0_ & ~0x00000020);
4167        childRef_ = java.util.Collections.emptyList();
4168        bitField0_ = (bitField0_ & ~0x00000040);
4169        if (linkBuilder_ == null) {
4170          link_ = java.util.Collections.emptyList();
4171          bitField0_ = (bitField0_ & ~0x00000080);
4172        } else {
4173          linkBuilder_.clear();
4174        }
4175        version_ = "";
4176        bitField0_ = (bitField0_ & ~0x00000100);
4177        key_ = "";
4178        bitField0_ = (bitField0_ & ~0x00000200);
4179        lines_ = 0;
4180        bitField0_ = (bitField0_ & ~0x00000400);
4181        description_ = "";
4182        bitField0_ = (bitField0_ & ~0x00000800);
4183        return this;
4184      }
4185
4186      public com.google.protobuf.Descriptors.Descriptor
4187          getDescriptorForType() {
4188        return org.sonar.batch.protocol.output.BatchReport.internal_static_Component_descriptor;
4189      }
4190
4191      public org.sonar.batch.protocol.output.BatchReport.Component getDefaultInstanceForType() {
4192        return org.sonar.batch.protocol.output.BatchReport.Component.getDefaultInstance();
4193      }
4194
4195      public org.sonar.batch.protocol.output.BatchReport.Component build() {
4196        org.sonar.batch.protocol.output.BatchReport.Component result = buildPartial();
4197        if (!result.isInitialized()) {
4198          throw newUninitializedMessageException(result);
4199        }
4200        return result;
4201      }
4202
4203      public org.sonar.batch.protocol.output.BatchReport.Component buildPartial() {
4204        org.sonar.batch.protocol.output.BatchReport.Component result = new org.sonar.batch.protocol.output.BatchReport.Component(this);
4205        int from_bitField0_ = bitField0_;
4206        int to_bitField0_ = 0;
4207        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
4208          to_bitField0_ |= 0x00000001;
4209        }
4210        result.ref_ = ref_;
4211        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
4212          to_bitField0_ |= 0x00000002;
4213        }
4214        result.path_ = path_;
4215        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
4216          to_bitField0_ |= 0x00000004;
4217        }
4218        result.name_ = name_;
4219        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
4220          to_bitField0_ |= 0x00000008;
4221        }
4222        result.type_ = type_;
4223        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
4224          to_bitField0_ |= 0x00000010;
4225        }
4226        result.isTest_ = isTest_;
4227        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
4228          to_bitField0_ |= 0x00000020;
4229        }
4230        result.language_ = language_;
4231        if (((bitField0_ & 0x00000040) == 0x00000040)) {
4232          childRef_ = java.util.Collections.unmodifiableList(childRef_);
4233          bitField0_ = (bitField0_ & ~0x00000040);
4234        }
4235        result.childRef_ = childRef_;
4236        if (linkBuilder_ == null) {
4237          if (((bitField0_ & 0x00000080) == 0x00000080)) {
4238            link_ = java.util.Collections.unmodifiableList(link_);
4239            bitField0_ = (bitField0_ & ~0x00000080);
4240          }
4241          result.link_ = link_;
4242        } else {
4243          result.link_ = linkBuilder_.build();
4244        }
4245        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
4246          to_bitField0_ |= 0x00000040;
4247        }
4248        result.version_ = version_;
4249        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
4250          to_bitField0_ |= 0x00000080;
4251        }
4252        result.key_ = key_;
4253        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
4254          to_bitField0_ |= 0x00000100;
4255        }
4256        result.lines_ = lines_;
4257        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
4258          to_bitField0_ |= 0x00000200;
4259        }
4260        result.description_ = description_;
4261        result.bitField0_ = to_bitField0_;
4262        onBuilt();
4263        return result;
4264      }
4265
4266      public Builder mergeFrom(com.google.protobuf.Message other) {
4267        if (other instanceof org.sonar.batch.protocol.output.BatchReport.Component) {
4268          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.Component)other);
4269        } else {
4270          super.mergeFrom(other);
4271          return this;
4272        }
4273      }
4274
4275      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.Component other) {
4276        if (other == org.sonar.batch.protocol.output.BatchReport.Component.getDefaultInstance()) return this;
4277        if (other.hasRef()) {
4278          setRef(other.getRef());
4279        }
4280        if (other.hasPath()) {
4281          bitField0_ |= 0x00000002;
4282          path_ = other.path_;
4283          onChanged();
4284        }
4285        if (other.hasName()) {
4286          bitField0_ |= 0x00000004;
4287          name_ = other.name_;
4288          onChanged();
4289        }
4290        if (other.hasType()) {
4291          setType(other.getType());
4292        }
4293        if (other.hasIsTest()) {
4294          setIsTest(other.getIsTest());
4295        }
4296        if (other.hasLanguage()) {
4297          bitField0_ |= 0x00000020;
4298          language_ = other.language_;
4299          onChanged();
4300        }
4301        if (!other.childRef_.isEmpty()) {
4302          if (childRef_.isEmpty()) {
4303            childRef_ = other.childRef_;
4304            bitField0_ = (bitField0_ & ~0x00000040);
4305          } else {
4306            ensureChildRefIsMutable();
4307            childRef_.addAll(other.childRef_);
4308          }
4309          onChanged();
4310        }
4311        if (linkBuilder_ == null) {
4312          if (!other.link_.isEmpty()) {
4313            if (link_.isEmpty()) {
4314              link_ = other.link_;
4315              bitField0_ = (bitField0_ & ~0x00000080);
4316            } else {
4317              ensureLinkIsMutable();
4318              link_.addAll(other.link_);
4319            }
4320            onChanged();
4321          }
4322        } else {
4323          if (!other.link_.isEmpty()) {
4324            if (linkBuilder_.isEmpty()) {
4325              linkBuilder_.dispose();
4326              linkBuilder_ = null;
4327              link_ = other.link_;
4328              bitField0_ = (bitField0_ & ~0x00000080);
4329              linkBuilder_ = 
4330                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
4331                   getLinkFieldBuilder() : null;
4332            } else {
4333              linkBuilder_.addAllMessages(other.link_);
4334            }
4335          }
4336        }
4337        if (other.hasVersion()) {
4338          bitField0_ |= 0x00000100;
4339          version_ = other.version_;
4340          onChanged();
4341        }
4342        if (other.hasKey()) {
4343          bitField0_ |= 0x00000200;
4344          key_ = other.key_;
4345          onChanged();
4346        }
4347        if (other.hasLines()) {
4348          setLines(other.getLines());
4349        }
4350        if (other.hasDescription()) {
4351          bitField0_ |= 0x00000800;
4352          description_ = other.description_;
4353          onChanged();
4354        }
4355        this.mergeUnknownFields(other.unknownFields);
4356        onChanged();
4357        return this;
4358      }
4359
4360      public final boolean isInitialized() {
4361        return true;
4362      }
4363
4364      public Builder mergeFrom(
4365          com.google.protobuf.CodedInputStream input,
4366          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
4367          throws java.io.IOException {
4368        org.sonar.batch.protocol.output.BatchReport.Component parsedMessage = null;
4369        try {
4370          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
4371        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
4372          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.Component) e.getUnfinishedMessage();
4373          throw e;
4374        } finally {
4375          if (parsedMessage != null) {
4376            mergeFrom(parsedMessage);
4377          }
4378        }
4379        return this;
4380      }
4381      private int bitField0_;
4382
4383      private int ref_ ;
4384      /**
4385       * <code>optional int32 ref = 1;</code>
4386       */
4387      public boolean hasRef() {
4388        return ((bitField0_ & 0x00000001) == 0x00000001);
4389      }
4390      /**
4391       * <code>optional int32 ref = 1;</code>
4392       */
4393      public int getRef() {
4394        return ref_;
4395      }
4396      /**
4397       * <code>optional int32 ref = 1;</code>
4398       */
4399      public Builder setRef(int value) {
4400        bitField0_ |= 0x00000001;
4401        ref_ = value;
4402        onChanged();
4403        return this;
4404      }
4405      /**
4406       * <code>optional int32 ref = 1;</code>
4407       */
4408      public Builder clearRef() {
4409        bitField0_ = (bitField0_ & ~0x00000001);
4410        ref_ = 0;
4411        onChanged();
4412        return this;
4413      }
4414
4415      private java.lang.Object path_ = "";
4416      /**
4417       * <code>optional string path = 2;</code>
4418       */
4419      public boolean hasPath() {
4420        return ((bitField0_ & 0x00000002) == 0x00000002);
4421      }
4422      /**
4423       * <code>optional string path = 2;</code>
4424       */
4425      public java.lang.String getPath() {
4426        java.lang.Object ref = path_;
4427        if (!(ref instanceof java.lang.String)) {
4428          com.google.protobuf.ByteString bs =
4429              (com.google.protobuf.ByteString) ref;
4430          java.lang.String s = bs.toStringUtf8();
4431          if (bs.isValidUtf8()) {
4432            path_ = s;
4433          }
4434          return s;
4435        } else {
4436          return (java.lang.String) ref;
4437        }
4438      }
4439      /**
4440       * <code>optional string path = 2;</code>
4441       */
4442      public com.google.protobuf.ByteString
4443          getPathBytes() {
4444        java.lang.Object ref = path_;
4445        if (ref instanceof String) {
4446          com.google.protobuf.ByteString b = 
4447              com.google.protobuf.ByteString.copyFromUtf8(
4448                  (java.lang.String) ref);
4449          path_ = b;
4450          return b;
4451        } else {
4452          return (com.google.protobuf.ByteString) ref;
4453        }
4454      }
4455      /**
4456       * <code>optional string path = 2;</code>
4457       */
4458      public Builder setPath(
4459          java.lang.String value) {
4460        if (value == null) {
4461    throw new NullPointerException();
4462  }
4463  bitField0_ |= 0x00000002;
4464        path_ = value;
4465        onChanged();
4466        return this;
4467      }
4468      /**
4469       * <code>optional string path = 2;</code>
4470       */
4471      public Builder clearPath() {
4472        bitField0_ = (bitField0_ & ~0x00000002);
4473        path_ = getDefaultInstance().getPath();
4474        onChanged();
4475        return this;
4476      }
4477      /**
4478       * <code>optional string path = 2;</code>
4479       */
4480      public Builder setPathBytes(
4481          com.google.protobuf.ByteString value) {
4482        if (value == null) {
4483    throw new NullPointerException();
4484  }
4485  bitField0_ |= 0x00000002;
4486        path_ = value;
4487        onChanged();
4488        return this;
4489      }
4490
4491      private java.lang.Object name_ = "";
4492      /**
4493       * <code>optional string name = 3;</code>
4494       */
4495      public boolean hasName() {
4496        return ((bitField0_ & 0x00000004) == 0x00000004);
4497      }
4498      /**
4499       * <code>optional string name = 3;</code>
4500       */
4501      public java.lang.String getName() {
4502        java.lang.Object ref = name_;
4503        if (!(ref instanceof java.lang.String)) {
4504          com.google.protobuf.ByteString bs =
4505              (com.google.protobuf.ByteString) ref;
4506          java.lang.String s = bs.toStringUtf8();
4507          if (bs.isValidUtf8()) {
4508            name_ = s;
4509          }
4510          return s;
4511        } else {
4512          return (java.lang.String) ref;
4513        }
4514      }
4515      /**
4516       * <code>optional string name = 3;</code>
4517       */
4518      public com.google.protobuf.ByteString
4519          getNameBytes() {
4520        java.lang.Object ref = name_;
4521        if (ref instanceof String) {
4522          com.google.protobuf.ByteString b = 
4523              com.google.protobuf.ByteString.copyFromUtf8(
4524                  (java.lang.String) ref);
4525          name_ = b;
4526          return b;
4527        } else {
4528          return (com.google.protobuf.ByteString) ref;
4529        }
4530      }
4531      /**
4532       * <code>optional string name = 3;</code>
4533       */
4534      public Builder setName(
4535          java.lang.String value) {
4536        if (value == null) {
4537    throw new NullPointerException();
4538  }
4539  bitField0_ |= 0x00000004;
4540        name_ = value;
4541        onChanged();
4542        return this;
4543      }
4544      /**
4545       * <code>optional string name = 3;</code>
4546       */
4547      public Builder clearName() {
4548        bitField0_ = (bitField0_ & ~0x00000004);
4549        name_ = getDefaultInstance().getName();
4550        onChanged();
4551        return this;
4552      }
4553      /**
4554       * <code>optional string name = 3;</code>
4555       */
4556      public Builder setNameBytes(
4557          com.google.protobuf.ByteString value) {
4558        if (value == null) {
4559    throw new NullPointerException();
4560  }
4561  bitField0_ |= 0x00000004;
4562        name_ = value;
4563        onChanged();
4564        return this;
4565      }
4566
4567      private int type_ = 0;
4568      /**
4569       * <code>optional .ComponentType type = 4;</code>
4570       */
4571      public boolean hasType() {
4572        return ((bitField0_ & 0x00000008) == 0x00000008);
4573      }
4574      /**
4575       * <code>optional .ComponentType type = 4;</code>
4576       */
4577      public org.sonar.batch.protocol.Constants.ComponentType getType() {
4578        org.sonar.batch.protocol.Constants.ComponentType result = org.sonar.batch.protocol.Constants.ComponentType.valueOf(type_);
4579        return result == null ? org.sonar.batch.protocol.Constants.ComponentType.PROJECT : result;
4580      }
4581      /**
4582       * <code>optional .ComponentType type = 4;</code>
4583       */
4584      public Builder setType(org.sonar.batch.protocol.Constants.ComponentType value) {
4585        if (value == null) {
4586          throw new NullPointerException();
4587        }
4588        bitField0_ |= 0x00000008;
4589        type_ = value.getNumber();
4590        onChanged();
4591        return this;
4592      }
4593      /**
4594       * <code>optional .ComponentType type = 4;</code>
4595       */
4596      public Builder clearType() {
4597        bitField0_ = (bitField0_ & ~0x00000008);
4598        type_ = 0;
4599        onChanged();
4600        return this;
4601      }
4602
4603      private boolean isTest_ ;
4604      /**
4605       * <code>optional bool is_test = 5;</code>
4606       */
4607      public boolean hasIsTest() {
4608        return ((bitField0_ & 0x00000010) == 0x00000010);
4609      }
4610      /**
4611       * <code>optional bool is_test = 5;</code>
4612       */
4613      public boolean getIsTest() {
4614        return isTest_;
4615      }
4616      /**
4617       * <code>optional bool is_test = 5;</code>
4618       */
4619      public Builder setIsTest(boolean value) {
4620        bitField0_ |= 0x00000010;
4621        isTest_ = value;
4622        onChanged();
4623        return this;
4624      }
4625      /**
4626       * <code>optional bool is_test = 5;</code>
4627       */
4628      public Builder clearIsTest() {
4629        bitField0_ = (bitField0_ & ~0x00000010);
4630        isTest_ = false;
4631        onChanged();
4632        return this;
4633      }
4634
4635      private java.lang.Object language_ = "";
4636      /**
4637       * <code>optional string language = 6;</code>
4638       */
4639      public boolean hasLanguage() {
4640        return ((bitField0_ & 0x00000020) == 0x00000020);
4641      }
4642      /**
4643       * <code>optional string language = 6;</code>
4644       */
4645      public java.lang.String getLanguage() {
4646        java.lang.Object ref = language_;
4647        if (!(ref instanceof java.lang.String)) {
4648          com.google.protobuf.ByteString bs =
4649              (com.google.protobuf.ByteString) ref;
4650          java.lang.String s = bs.toStringUtf8();
4651          if (bs.isValidUtf8()) {
4652            language_ = s;
4653          }
4654          return s;
4655        } else {
4656          return (java.lang.String) ref;
4657        }
4658      }
4659      /**
4660       * <code>optional string language = 6;</code>
4661       */
4662      public com.google.protobuf.ByteString
4663          getLanguageBytes() {
4664        java.lang.Object ref = language_;
4665        if (ref instanceof String) {
4666          com.google.protobuf.ByteString b = 
4667              com.google.protobuf.ByteString.copyFromUtf8(
4668                  (java.lang.String) ref);
4669          language_ = b;
4670          return b;
4671        } else {
4672          return (com.google.protobuf.ByteString) ref;
4673        }
4674      }
4675      /**
4676       * <code>optional string language = 6;</code>
4677       */
4678      public Builder setLanguage(
4679          java.lang.String value) {
4680        if (value == null) {
4681    throw new NullPointerException();
4682  }
4683  bitField0_ |= 0x00000020;
4684        language_ = value;
4685        onChanged();
4686        return this;
4687      }
4688      /**
4689       * <code>optional string language = 6;</code>
4690       */
4691      public Builder clearLanguage() {
4692        bitField0_ = (bitField0_ & ~0x00000020);
4693        language_ = getDefaultInstance().getLanguage();
4694        onChanged();
4695        return this;
4696      }
4697      /**
4698       * <code>optional string language = 6;</code>
4699       */
4700      public Builder setLanguageBytes(
4701          com.google.protobuf.ByteString value) {
4702        if (value == null) {
4703    throw new NullPointerException();
4704  }
4705  bitField0_ |= 0x00000020;
4706        language_ = value;
4707        onChanged();
4708        return this;
4709      }
4710
4711      private java.util.List<java.lang.Integer> childRef_ = java.util.Collections.emptyList();
4712      private void ensureChildRefIsMutable() {
4713        if (!((bitField0_ & 0x00000040) == 0x00000040)) {
4714          childRef_ = new java.util.ArrayList<java.lang.Integer>(childRef_);
4715          bitField0_ |= 0x00000040;
4716         }
4717      }
4718      /**
4719       * <code>repeated int32 child_ref = 7 [packed = true];</code>
4720       */
4721      public java.util.List<java.lang.Integer>
4722          getChildRefList() {
4723        return java.util.Collections.unmodifiableList(childRef_);
4724      }
4725      /**
4726       * <code>repeated int32 child_ref = 7 [packed = true];</code>
4727       */
4728      public int getChildRefCount() {
4729        return childRef_.size();
4730      }
4731      /**
4732       * <code>repeated int32 child_ref = 7 [packed = true];</code>
4733       */
4734      public int getChildRef(int index) {
4735        return childRef_.get(index);
4736      }
4737      /**
4738       * <code>repeated int32 child_ref = 7 [packed = true];</code>
4739       */
4740      public Builder setChildRef(
4741          int index, int value) {
4742        ensureChildRefIsMutable();
4743        childRef_.set(index, value);
4744        onChanged();
4745        return this;
4746      }
4747      /**
4748       * <code>repeated int32 child_ref = 7 [packed = true];</code>
4749       */
4750      public Builder addChildRef(int value) {
4751        ensureChildRefIsMutable();
4752        childRef_.add(value);
4753        onChanged();
4754        return this;
4755      }
4756      /**
4757       * <code>repeated int32 child_ref = 7 [packed = true];</code>
4758       */
4759      public Builder addAllChildRef(
4760          java.lang.Iterable<? extends java.lang.Integer> values) {
4761        ensureChildRefIsMutable();
4762        com.google.protobuf.AbstractMessageLite.Builder.addAll(
4763            values, childRef_);
4764        onChanged();
4765        return this;
4766      }
4767      /**
4768       * <code>repeated int32 child_ref = 7 [packed = true];</code>
4769       */
4770      public Builder clearChildRef() {
4771        childRef_ = java.util.Collections.emptyList();
4772        bitField0_ = (bitField0_ & ~0x00000040);
4773        onChanged();
4774        return this;
4775      }
4776
4777      private java.util.List<org.sonar.batch.protocol.output.BatchReport.ComponentLink> link_ =
4778        java.util.Collections.emptyList();
4779      private void ensureLinkIsMutable() {
4780        if (!((bitField0_ & 0x00000080) == 0x00000080)) {
4781          link_ = new java.util.ArrayList<org.sonar.batch.protocol.output.BatchReport.ComponentLink>(link_);
4782          bitField0_ |= 0x00000080;
4783         }
4784      }
4785
4786      private com.google.protobuf.RepeatedFieldBuilder<
4787          org.sonar.batch.protocol.output.BatchReport.ComponentLink, org.sonar.batch.protocol.output.BatchReport.ComponentLink.Builder, org.sonar.batch.protocol.output.BatchReport.ComponentLinkOrBuilder> linkBuilder_;
4788
4789      /**
4790       * <code>repeated .ComponentLink link = 8;</code>
4791       */
4792      public java.util.List<org.sonar.batch.protocol.output.BatchReport.ComponentLink> getLinkList() {
4793        if (linkBuilder_ == null) {
4794          return java.util.Collections.unmodifiableList(link_);
4795        } else {
4796          return linkBuilder_.getMessageList();
4797        }
4798      }
4799      /**
4800       * <code>repeated .ComponentLink link = 8;</code>
4801       */
4802      public int getLinkCount() {
4803        if (linkBuilder_ == null) {
4804          return link_.size();
4805        } else {
4806          return linkBuilder_.getCount();
4807        }
4808      }
4809      /**
4810       * <code>repeated .ComponentLink link = 8;</code>
4811       */
4812      public org.sonar.batch.protocol.output.BatchReport.ComponentLink getLink(int index) {
4813        if (linkBuilder_ == null) {
4814          return link_.get(index);
4815        } else {
4816          return linkBuilder_.getMessage(index);
4817        }
4818      }
4819      /**
4820       * <code>repeated .ComponentLink link = 8;</code>
4821       */
4822      public Builder setLink(
4823          int index, org.sonar.batch.protocol.output.BatchReport.ComponentLink value) {
4824        if (linkBuilder_ == null) {
4825          if (value == null) {
4826            throw new NullPointerException();
4827          }
4828          ensureLinkIsMutable();
4829          link_.set(index, value);
4830          onChanged();
4831        } else {
4832          linkBuilder_.setMessage(index, value);
4833        }
4834        return this;
4835      }
4836      /**
4837       * <code>repeated .ComponentLink link = 8;</code>
4838       */
4839      public Builder setLink(
4840          int index, org.sonar.batch.protocol.output.BatchReport.ComponentLink.Builder builderForValue) {
4841        if (linkBuilder_ == null) {
4842          ensureLinkIsMutable();
4843          link_.set(index, builderForValue.build());
4844          onChanged();
4845        } else {
4846          linkBuilder_.setMessage(index, builderForValue.build());
4847        }
4848        return this;
4849      }
4850      /**
4851       * <code>repeated .ComponentLink link = 8;</code>
4852       */
4853      public Builder addLink(org.sonar.batch.protocol.output.BatchReport.ComponentLink value) {
4854        if (linkBuilder_ == null) {
4855          if (value == null) {
4856            throw new NullPointerException();
4857          }
4858          ensureLinkIsMutable();
4859          link_.add(value);
4860          onChanged();
4861        } else {
4862          linkBuilder_.addMessage(value);
4863        }
4864        return this;
4865      }
4866      /**
4867       * <code>repeated .ComponentLink link = 8;</code>
4868       */
4869      public Builder addLink(
4870          int index, org.sonar.batch.protocol.output.BatchReport.ComponentLink value) {
4871        if (linkBuilder_ == null) {
4872          if (value == null) {
4873            throw new NullPointerException();
4874          }
4875          ensureLinkIsMutable();
4876          link_.add(index, value);
4877          onChanged();
4878        } else {
4879          linkBuilder_.addMessage(index, value);
4880        }
4881        return this;
4882      }
4883      /**
4884       * <code>repeated .ComponentLink link = 8;</code>
4885       */
4886      public Builder addLink(
4887          org.sonar.batch.protocol.output.BatchReport.ComponentLink.Builder builderForValue) {
4888        if (linkBuilder_ == null) {
4889          ensureLinkIsMutable();
4890          link_.add(builderForValue.build());
4891          onChanged();
4892        } else {
4893          linkBuilder_.addMessage(builderForValue.build());
4894        }
4895        return this;
4896      }
4897      /**
4898       * <code>repeated .ComponentLink link = 8;</code>
4899       */
4900      public Builder addLink(
4901          int index, org.sonar.batch.protocol.output.BatchReport.ComponentLink.Builder builderForValue) {
4902        if (linkBuilder_ == null) {
4903          ensureLinkIsMutable();
4904          link_.add(index, builderForValue.build());
4905          onChanged();
4906        } else {
4907          linkBuilder_.addMessage(index, builderForValue.build());
4908        }
4909        return this;
4910      }
4911      /**
4912       * <code>repeated .ComponentLink link = 8;</code>
4913       */
4914      public Builder addAllLink(
4915          java.lang.Iterable<? extends org.sonar.batch.protocol.output.BatchReport.ComponentLink> values) {
4916        if (linkBuilder_ == null) {
4917          ensureLinkIsMutable();
4918          com.google.protobuf.AbstractMessageLite.Builder.addAll(
4919              values, link_);
4920          onChanged();
4921        } else {
4922          linkBuilder_.addAllMessages(values);
4923        }
4924        return this;
4925      }
4926      /**
4927       * <code>repeated .ComponentLink link = 8;</code>
4928       */
4929      public Builder clearLink() {
4930        if (linkBuilder_ == null) {
4931          link_ = java.util.Collections.emptyList();
4932          bitField0_ = (bitField0_ & ~0x00000080);
4933          onChanged();
4934        } else {
4935          linkBuilder_.clear();
4936        }
4937        return this;
4938      }
4939      /**
4940       * <code>repeated .ComponentLink link = 8;</code>
4941       */
4942      public Builder removeLink(int index) {
4943        if (linkBuilder_ == null) {
4944          ensureLinkIsMutable();
4945          link_.remove(index);
4946          onChanged();
4947        } else {
4948          linkBuilder_.remove(index);
4949        }
4950        return this;
4951      }
4952      /**
4953       * <code>repeated .ComponentLink link = 8;</code>
4954       */
4955      public org.sonar.batch.protocol.output.BatchReport.ComponentLink.Builder getLinkBuilder(
4956          int index) {
4957        return getLinkFieldBuilder().getBuilder(index);
4958      }
4959      /**
4960       * <code>repeated .ComponentLink link = 8;</code>
4961       */
4962      public org.sonar.batch.protocol.output.BatchReport.ComponentLinkOrBuilder getLinkOrBuilder(
4963          int index) {
4964        if (linkBuilder_ == null) {
4965          return link_.get(index);  } else {
4966          return linkBuilder_.getMessageOrBuilder(index);
4967        }
4968      }
4969      /**
4970       * <code>repeated .ComponentLink link = 8;</code>
4971       */
4972      public java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.ComponentLinkOrBuilder> 
4973           getLinkOrBuilderList() {
4974        if (linkBuilder_ != null) {
4975          return linkBuilder_.getMessageOrBuilderList();
4976        } else {
4977          return java.util.Collections.unmodifiableList(link_);
4978        }
4979      }
4980      /**
4981       * <code>repeated .ComponentLink link = 8;</code>
4982       */
4983      public org.sonar.batch.protocol.output.BatchReport.ComponentLink.Builder addLinkBuilder() {
4984        return getLinkFieldBuilder().addBuilder(
4985            org.sonar.batch.protocol.output.BatchReport.ComponentLink.getDefaultInstance());
4986      }
4987      /**
4988       * <code>repeated .ComponentLink link = 8;</code>
4989       */
4990      public org.sonar.batch.protocol.output.BatchReport.ComponentLink.Builder addLinkBuilder(
4991          int index) {
4992        return getLinkFieldBuilder().addBuilder(
4993            index, org.sonar.batch.protocol.output.BatchReport.ComponentLink.getDefaultInstance());
4994      }
4995      /**
4996       * <code>repeated .ComponentLink link = 8;</code>
4997       */
4998      public java.util.List<org.sonar.batch.protocol.output.BatchReport.ComponentLink.Builder> 
4999           getLinkBuilderList() {
5000        return getLinkFieldBuilder().getBuilderList();
5001      }
5002      private com.google.protobuf.RepeatedFieldBuilder<
5003          org.sonar.batch.protocol.output.BatchReport.ComponentLink, org.sonar.batch.protocol.output.BatchReport.ComponentLink.Builder, org.sonar.batch.protocol.output.BatchReport.ComponentLinkOrBuilder> 
5004          getLinkFieldBuilder() {
5005        if (linkBuilder_ == null) {
5006          linkBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
5007              org.sonar.batch.protocol.output.BatchReport.ComponentLink, org.sonar.batch.protocol.output.BatchReport.ComponentLink.Builder, org.sonar.batch.protocol.output.BatchReport.ComponentLinkOrBuilder>(
5008                  link_,
5009                  ((bitField0_ & 0x00000080) == 0x00000080),
5010                  getParentForChildren(),
5011                  isClean());
5012          link_ = null;
5013        }
5014        return linkBuilder_;
5015      }
5016
5017      private java.lang.Object version_ = "";
5018      /**
5019       * <code>optional string version = 9;</code>
5020       *
5021       * <pre>
5022       * Only available on PROJECT and MODULE types
5023       * </pre>
5024       */
5025      public boolean hasVersion() {
5026        return ((bitField0_ & 0x00000100) == 0x00000100);
5027      }
5028      /**
5029       * <code>optional string version = 9;</code>
5030       *
5031       * <pre>
5032       * Only available on PROJECT and MODULE types
5033       * </pre>
5034       */
5035      public java.lang.String getVersion() {
5036        java.lang.Object ref = version_;
5037        if (!(ref instanceof java.lang.String)) {
5038          com.google.protobuf.ByteString bs =
5039              (com.google.protobuf.ByteString) ref;
5040          java.lang.String s = bs.toStringUtf8();
5041          if (bs.isValidUtf8()) {
5042            version_ = s;
5043          }
5044          return s;
5045        } else {
5046          return (java.lang.String) ref;
5047        }
5048      }
5049      /**
5050       * <code>optional string version = 9;</code>
5051       *
5052       * <pre>
5053       * Only available on PROJECT and MODULE types
5054       * </pre>
5055       */
5056      public com.google.protobuf.ByteString
5057          getVersionBytes() {
5058        java.lang.Object ref = version_;
5059        if (ref instanceof String) {
5060          com.google.protobuf.ByteString b = 
5061              com.google.protobuf.ByteString.copyFromUtf8(
5062                  (java.lang.String) ref);
5063          version_ = b;
5064          return b;
5065        } else {
5066          return (com.google.protobuf.ByteString) ref;
5067        }
5068      }
5069      /**
5070       * <code>optional string version = 9;</code>
5071       *
5072       * <pre>
5073       * Only available on PROJECT and MODULE types
5074       * </pre>
5075       */
5076      public Builder setVersion(
5077          java.lang.String value) {
5078        if (value == null) {
5079    throw new NullPointerException();
5080  }
5081  bitField0_ |= 0x00000100;
5082        version_ = value;
5083        onChanged();
5084        return this;
5085      }
5086      /**
5087       * <code>optional string version = 9;</code>
5088       *
5089       * <pre>
5090       * Only available on PROJECT and MODULE types
5091       * </pre>
5092       */
5093      public Builder clearVersion() {
5094        bitField0_ = (bitField0_ & ~0x00000100);
5095        version_ = getDefaultInstance().getVersion();
5096        onChanged();
5097        return this;
5098      }
5099      /**
5100       * <code>optional string version = 9;</code>
5101       *
5102       * <pre>
5103       * Only available on PROJECT and MODULE types
5104       * </pre>
5105       */
5106      public Builder setVersionBytes(
5107          com.google.protobuf.ByteString value) {
5108        if (value == null) {
5109    throw new NullPointerException();
5110  }
5111  bitField0_ |= 0x00000100;
5112        version_ = value;
5113        onChanged();
5114        return this;
5115      }
5116
5117      private java.lang.Object key_ = "";
5118      /**
5119       * <code>optional string key = 10;</code>
5120       *
5121       * <pre>
5122       * Only available on PROJECT and MODULE types
5123       * TODO rename this property -&gt; batchKey ? moduleKey ?
5124       * </pre>
5125       */
5126      public boolean hasKey() {
5127        return ((bitField0_ & 0x00000200) == 0x00000200);
5128      }
5129      /**
5130       * <code>optional string key = 10;</code>
5131       *
5132       * <pre>
5133       * Only available on PROJECT and MODULE types
5134       * TODO rename this property -&gt; batchKey ? moduleKey ?
5135       * </pre>
5136       */
5137      public java.lang.String getKey() {
5138        java.lang.Object ref = key_;
5139        if (!(ref instanceof java.lang.String)) {
5140          com.google.protobuf.ByteString bs =
5141              (com.google.protobuf.ByteString) ref;
5142          java.lang.String s = bs.toStringUtf8();
5143          if (bs.isValidUtf8()) {
5144            key_ = s;
5145          }
5146          return s;
5147        } else {
5148          return (java.lang.String) ref;
5149        }
5150      }
5151      /**
5152       * <code>optional string key = 10;</code>
5153       *
5154       * <pre>
5155       * Only available on PROJECT and MODULE types
5156       * TODO rename this property -&gt; batchKey ? moduleKey ?
5157       * </pre>
5158       */
5159      public com.google.protobuf.ByteString
5160          getKeyBytes() {
5161        java.lang.Object ref = key_;
5162        if (ref instanceof String) {
5163          com.google.protobuf.ByteString b = 
5164              com.google.protobuf.ByteString.copyFromUtf8(
5165                  (java.lang.String) ref);
5166          key_ = b;
5167          return b;
5168        } else {
5169          return (com.google.protobuf.ByteString) ref;
5170        }
5171      }
5172      /**
5173       * <code>optional string key = 10;</code>
5174       *
5175       * <pre>
5176       * Only available on PROJECT and MODULE types
5177       * TODO rename this property -&gt; batchKey ? moduleKey ?
5178       * </pre>
5179       */
5180      public Builder setKey(
5181          java.lang.String value) {
5182        if (value == null) {
5183    throw new NullPointerException();
5184  }
5185  bitField0_ |= 0x00000200;
5186        key_ = value;
5187        onChanged();
5188        return this;
5189      }
5190      /**
5191       * <code>optional string key = 10;</code>
5192       *
5193       * <pre>
5194       * Only available on PROJECT and MODULE types
5195       * TODO rename this property -&gt; batchKey ? moduleKey ?
5196       * </pre>
5197       */
5198      public Builder clearKey() {
5199        bitField0_ = (bitField0_ & ~0x00000200);
5200        key_ = getDefaultInstance().getKey();
5201        onChanged();
5202        return this;
5203      }
5204      /**
5205       * <code>optional string key = 10;</code>
5206       *
5207       * <pre>
5208       * Only available on PROJECT and MODULE types
5209       * TODO rename this property -&gt; batchKey ? moduleKey ?
5210       * </pre>
5211       */
5212      public Builder setKeyBytes(
5213          com.google.protobuf.ByteString value) {
5214        if (value == null) {
5215    throw new NullPointerException();
5216  }
5217  bitField0_ |= 0x00000200;
5218        key_ = value;
5219        onChanged();
5220        return this;
5221      }
5222
5223      private int lines_ ;
5224      /**
5225       * <code>optional int32 lines = 11;</code>
5226       *
5227       * <pre>
5228       * Only available on FILE type
5229       * </pre>
5230       */
5231      public boolean hasLines() {
5232        return ((bitField0_ & 0x00000400) == 0x00000400);
5233      }
5234      /**
5235       * <code>optional int32 lines = 11;</code>
5236       *
5237       * <pre>
5238       * Only available on FILE type
5239       * </pre>
5240       */
5241      public int getLines() {
5242        return lines_;
5243      }
5244      /**
5245       * <code>optional int32 lines = 11;</code>
5246       *
5247       * <pre>
5248       * Only available on FILE type
5249       * </pre>
5250       */
5251      public Builder setLines(int value) {
5252        bitField0_ |= 0x00000400;
5253        lines_ = value;
5254        onChanged();
5255        return this;
5256      }
5257      /**
5258       * <code>optional int32 lines = 11;</code>
5259       *
5260       * <pre>
5261       * Only available on FILE type
5262       * </pre>
5263       */
5264      public Builder clearLines() {
5265        bitField0_ = (bitField0_ & ~0x00000400);
5266        lines_ = 0;
5267        onChanged();
5268        return this;
5269      }
5270
5271      private java.lang.Object description_ = "";
5272      /**
5273       * <code>optional string description = 12;</code>
5274       *
5275       * <pre>
5276       * Only available on PROJECT and MODULE types
5277       * </pre>
5278       */
5279      public boolean hasDescription() {
5280        return ((bitField0_ & 0x00000800) == 0x00000800);
5281      }
5282      /**
5283       * <code>optional string description = 12;</code>
5284       *
5285       * <pre>
5286       * Only available on PROJECT and MODULE types
5287       * </pre>
5288       */
5289      public java.lang.String getDescription() {
5290        java.lang.Object ref = description_;
5291        if (!(ref instanceof java.lang.String)) {
5292          com.google.protobuf.ByteString bs =
5293              (com.google.protobuf.ByteString) ref;
5294          java.lang.String s = bs.toStringUtf8();
5295          if (bs.isValidUtf8()) {
5296            description_ = s;
5297          }
5298          return s;
5299        } else {
5300          return (java.lang.String) ref;
5301        }
5302      }
5303      /**
5304       * <code>optional string description = 12;</code>
5305       *
5306       * <pre>
5307       * Only available on PROJECT and MODULE types
5308       * </pre>
5309       */
5310      public com.google.protobuf.ByteString
5311          getDescriptionBytes() {
5312        java.lang.Object ref = description_;
5313        if (ref instanceof String) {
5314          com.google.protobuf.ByteString b = 
5315              com.google.protobuf.ByteString.copyFromUtf8(
5316                  (java.lang.String) ref);
5317          description_ = b;
5318          return b;
5319        } else {
5320          return (com.google.protobuf.ByteString) ref;
5321        }
5322      }
5323      /**
5324       * <code>optional string description = 12;</code>
5325       *
5326       * <pre>
5327       * Only available on PROJECT and MODULE types
5328       * </pre>
5329       */
5330      public Builder setDescription(
5331          java.lang.String value) {
5332        if (value == null) {
5333    throw new NullPointerException();
5334  }
5335  bitField0_ |= 0x00000800;
5336        description_ = value;
5337        onChanged();
5338        return this;
5339      }
5340      /**
5341       * <code>optional string description = 12;</code>
5342       *
5343       * <pre>
5344       * Only available on PROJECT and MODULE types
5345       * </pre>
5346       */
5347      public Builder clearDescription() {
5348        bitField0_ = (bitField0_ & ~0x00000800);
5349        description_ = getDefaultInstance().getDescription();
5350        onChanged();
5351        return this;
5352      }
5353      /**
5354       * <code>optional string description = 12;</code>
5355       *
5356       * <pre>
5357       * Only available on PROJECT and MODULE types
5358       * </pre>
5359       */
5360      public Builder setDescriptionBytes(
5361          com.google.protobuf.ByteString value) {
5362        if (value == null) {
5363    throw new NullPointerException();
5364  }
5365  bitField0_ |= 0x00000800;
5366        description_ = value;
5367        onChanged();
5368        return this;
5369      }
5370
5371      // @@protoc_insertion_point(builder_scope:Component)
5372    }
5373
5374    // @@protoc_insertion_point(class_scope:Component)
5375    private static final org.sonar.batch.protocol.output.BatchReport.Component DEFAULT_INSTANCE;
5376    static {
5377      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.Component();
5378    }
5379
5380    public static org.sonar.batch.protocol.output.BatchReport.Component getDefaultInstance() {
5381      return DEFAULT_INSTANCE;
5382    }
5383
5384    public static final com.google.protobuf.Parser<Component> PARSER =
5385        new com.google.protobuf.AbstractParser<Component>() {
5386      public Component parsePartialFrom(
5387          com.google.protobuf.CodedInputStream input,
5388          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
5389          throws com.google.protobuf.InvalidProtocolBufferException {
5390        try {
5391          return new Component(input, extensionRegistry);
5392        } catch (RuntimeException e) {
5393          if (e.getCause() instanceof
5394              com.google.protobuf.InvalidProtocolBufferException) {
5395            throw (com.google.protobuf.InvalidProtocolBufferException)
5396                e.getCause();
5397          }
5398          throw e;
5399        }
5400      }
5401    };
5402
5403    @java.lang.Override
5404    public com.google.protobuf.Parser<Component> getParserForType() {
5405      return PARSER;
5406    }
5407
5408    public org.sonar.batch.protocol.output.BatchReport.Component getDefaultInstanceForType() {
5409      return DEFAULT_INSTANCE;
5410    }
5411
5412  }
5413
5414  public interface MeasureOrBuilder extends
5415      // @@protoc_insertion_point(interface_extends:Measure)
5416      com.google.protobuf.MessageOrBuilder {
5417
5418    /**
5419     * <code>optional .MeasureValueType value_type = 1;</code>
5420     */
5421    boolean hasValueType();
5422    /**
5423     * <code>optional .MeasureValueType value_type = 1;</code>
5424     */
5425    org.sonar.batch.protocol.Constants.MeasureValueType getValueType();
5426
5427    /**
5428     * <code>optional bool boolean_value = 2;</code>
5429     *
5430     * <pre>
5431     * all values may be unset for "new_xxx" measures (only variations are populated)
5432     * </pre>
5433     */
5434    boolean hasBooleanValue();
5435    /**
5436     * <code>optional bool boolean_value = 2;</code>
5437     *
5438     * <pre>
5439     * all values may be unset for "new_xxx" measures (only variations are populated)
5440     * </pre>
5441     */
5442    boolean getBooleanValue();
5443
5444    /**
5445     * <code>optional int32 int_value = 3;</code>
5446     */
5447    boolean hasIntValue();
5448    /**
5449     * <code>optional int32 int_value = 3;</code>
5450     */
5451    int getIntValue();
5452
5453    /**
5454     * <code>optional int64 long_value = 4;</code>
5455     */
5456    boolean hasLongValue();
5457    /**
5458     * <code>optional int64 long_value = 4;</code>
5459     */
5460    long getLongValue();
5461
5462    /**
5463     * <code>optional double double_value = 5;</code>
5464     */
5465    boolean hasDoubleValue();
5466    /**
5467     * <code>optional double double_value = 5;</code>
5468     */
5469    double getDoubleValue();
5470
5471    /**
5472     * <code>optional string string_value = 6;</code>
5473     */
5474    boolean hasStringValue();
5475    /**
5476     * <code>optional string string_value = 6;</code>
5477     */
5478    java.lang.String getStringValue();
5479    /**
5480     * <code>optional string string_value = 6;</code>
5481     */
5482    com.google.protobuf.ByteString
5483        getStringValueBytes();
5484
5485    /**
5486     * <code>optional string metric_key = 7;</code>
5487     */
5488    boolean hasMetricKey();
5489    /**
5490     * <code>optional string metric_key = 7;</code>
5491     */
5492    java.lang.String getMetricKey();
5493    /**
5494     * <code>optional string metric_key = 7;</code>
5495     */
5496    com.google.protobuf.ByteString
5497        getMetricKeyBytes();
5498  }
5499  /**
5500   * Protobuf type {@code Measure}
5501   */
5502  public  static final class Measure extends
5503      com.google.protobuf.GeneratedMessage implements
5504      // @@protoc_insertion_point(message_implements:Measure)
5505      MeasureOrBuilder {
5506    // Use Measure.newBuilder() to construct.
5507    private Measure(com.google.protobuf.GeneratedMessage.Builder builder) {
5508      super(builder);
5509    }
5510    private Measure() {
5511      valueType_ = 0;
5512      booleanValue_ = false;
5513      intValue_ = 0;
5514      longValue_ = 0L;
5515      doubleValue_ = 0D;
5516      stringValue_ = "";
5517      metricKey_ = "";
5518    }
5519
5520    @java.lang.Override
5521    public final com.google.protobuf.UnknownFieldSet
5522    getUnknownFields() {
5523      return this.unknownFields;
5524    }
5525    private Measure(
5526        com.google.protobuf.CodedInputStream input,
5527        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
5528      this();
5529      int mutable_bitField0_ = 0;
5530      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
5531          com.google.protobuf.UnknownFieldSet.newBuilder();
5532      try {
5533        boolean done = false;
5534        while (!done) {
5535          int tag = input.readTag();
5536          switch (tag) {
5537            case 0:
5538              done = true;
5539              break;
5540            default: {
5541              if (!parseUnknownField(input, unknownFields,
5542                                     extensionRegistry, tag)) {
5543                done = true;
5544              }
5545              break;
5546            }
5547            case 8: {
5548              int rawValue = input.readEnum();
5549              org.sonar.batch.protocol.Constants.MeasureValueType value = org.sonar.batch.protocol.Constants.MeasureValueType.valueOf(rawValue);
5550              if (value == null) {
5551                unknownFields.mergeVarintField(1, rawValue);
5552              } else {
5553                bitField0_ |= 0x00000001;
5554                valueType_ = rawValue;
5555              }
5556              break;
5557            }
5558            case 16: {
5559              bitField0_ |= 0x00000002;
5560              booleanValue_ = input.readBool();
5561              break;
5562            }
5563            case 24: {
5564              bitField0_ |= 0x00000004;
5565              intValue_ = input.readInt32();
5566              break;
5567            }
5568            case 32: {
5569              bitField0_ |= 0x00000008;
5570              longValue_ = input.readInt64();
5571              break;
5572            }
5573            case 41: {
5574              bitField0_ |= 0x00000010;
5575              doubleValue_ = input.readDouble();
5576              break;
5577            }
5578            case 50: {
5579              com.google.protobuf.ByteString bs = input.readBytes();
5580              bitField0_ |= 0x00000020;
5581              stringValue_ = bs;
5582              break;
5583            }
5584            case 58: {
5585              com.google.protobuf.ByteString bs = input.readBytes();
5586              bitField0_ |= 0x00000040;
5587              metricKey_ = bs;
5588              break;
5589            }
5590          }
5591        }
5592      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
5593        throw new RuntimeException(e.setUnfinishedMessage(this));
5594      } catch (java.io.IOException e) {
5595        throw new RuntimeException(
5596            new com.google.protobuf.InvalidProtocolBufferException(
5597                e.getMessage()).setUnfinishedMessage(this));
5598      } finally {
5599        this.unknownFields = unknownFields.build();
5600        makeExtensionsImmutable();
5601      }
5602    }
5603    public static final com.google.protobuf.Descriptors.Descriptor
5604        getDescriptor() {
5605      return org.sonar.batch.protocol.output.BatchReport.internal_static_Measure_descriptor;
5606    }
5607
5608    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
5609        internalGetFieldAccessorTable() {
5610      return org.sonar.batch.protocol.output.BatchReport.internal_static_Measure_fieldAccessorTable
5611          .ensureFieldAccessorsInitialized(
5612              org.sonar.batch.protocol.output.BatchReport.Measure.class, org.sonar.batch.protocol.output.BatchReport.Measure.Builder.class);
5613    }
5614
5615    private int bitField0_;
5616    public static final int VALUE_TYPE_FIELD_NUMBER = 1;
5617    private int valueType_;
5618    /**
5619     * <code>optional .MeasureValueType value_type = 1;</code>
5620     */
5621    public boolean hasValueType() {
5622      return ((bitField0_ & 0x00000001) == 0x00000001);
5623    }
5624    /**
5625     * <code>optional .MeasureValueType value_type = 1;</code>
5626     */
5627    public org.sonar.batch.protocol.Constants.MeasureValueType getValueType() {
5628      org.sonar.batch.protocol.Constants.MeasureValueType result = org.sonar.batch.protocol.Constants.MeasureValueType.valueOf(valueType_);
5629      return result == null ? org.sonar.batch.protocol.Constants.MeasureValueType.INT : result;
5630    }
5631
5632    public static final int BOOLEAN_VALUE_FIELD_NUMBER = 2;
5633    private boolean booleanValue_;
5634    /**
5635     * <code>optional bool boolean_value = 2;</code>
5636     *
5637     * <pre>
5638     * all values may be unset for "new_xxx" measures (only variations are populated)
5639     * </pre>
5640     */
5641    public boolean hasBooleanValue() {
5642      return ((bitField0_ & 0x00000002) == 0x00000002);
5643    }
5644    /**
5645     * <code>optional bool boolean_value = 2;</code>
5646     *
5647     * <pre>
5648     * all values may be unset for "new_xxx" measures (only variations are populated)
5649     * </pre>
5650     */
5651    public boolean getBooleanValue() {
5652      return booleanValue_;
5653    }
5654
5655    public static final int INT_VALUE_FIELD_NUMBER = 3;
5656    private int intValue_;
5657    /**
5658     * <code>optional int32 int_value = 3;</code>
5659     */
5660    public boolean hasIntValue() {
5661      return ((bitField0_ & 0x00000004) == 0x00000004);
5662    }
5663    /**
5664     * <code>optional int32 int_value = 3;</code>
5665     */
5666    public int getIntValue() {
5667      return intValue_;
5668    }
5669
5670    public static final int LONG_VALUE_FIELD_NUMBER = 4;
5671    private long longValue_;
5672    /**
5673     * <code>optional int64 long_value = 4;</code>
5674     */
5675    public boolean hasLongValue() {
5676      return ((bitField0_ & 0x00000008) == 0x00000008);
5677    }
5678    /**
5679     * <code>optional int64 long_value = 4;</code>
5680     */
5681    public long getLongValue() {
5682      return longValue_;
5683    }
5684
5685    public static final int DOUBLE_VALUE_FIELD_NUMBER = 5;
5686    private double doubleValue_;
5687    /**
5688     * <code>optional double double_value = 5;</code>
5689     */
5690    public boolean hasDoubleValue() {
5691      return ((bitField0_ & 0x00000010) == 0x00000010);
5692    }
5693    /**
5694     * <code>optional double double_value = 5;</code>
5695     */
5696    public double getDoubleValue() {
5697      return doubleValue_;
5698    }
5699
5700    public static final int STRING_VALUE_FIELD_NUMBER = 6;
5701    private volatile java.lang.Object stringValue_;
5702    /**
5703     * <code>optional string string_value = 6;</code>
5704     */
5705    public boolean hasStringValue() {
5706      return ((bitField0_ & 0x00000020) == 0x00000020);
5707    }
5708    /**
5709     * <code>optional string string_value = 6;</code>
5710     */
5711    public java.lang.String getStringValue() {
5712      java.lang.Object ref = stringValue_;
5713      if (ref instanceof java.lang.String) {
5714        return (java.lang.String) ref;
5715      } else {
5716        com.google.protobuf.ByteString bs = 
5717            (com.google.protobuf.ByteString) ref;
5718        java.lang.String s = bs.toStringUtf8();
5719        if (bs.isValidUtf8()) {
5720          stringValue_ = s;
5721        }
5722        return s;
5723      }
5724    }
5725    /**
5726     * <code>optional string string_value = 6;</code>
5727     */
5728    public com.google.protobuf.ByteString
5729        getStringValueBytes() {
5730      java.lang.Object ref = stringValue_;
5731      if (ref instanceof java.lang.String) {
5732        com.google.protobuf.ByteString b = 
5733            com.google.protobuf.ByteString.copyFromUtf8(
5734                (java.lang.String) ref);
5735        stringValue_ = b;
5736        return b;
5737      } else {
5738        return (com.google.protobuf.ByteString) ref;
5739      }
5740    }
5741
5742    public static final int METRIC_KEY_FIELD_NUMBER = 7;
5743    private volatile java.lang.Object metricKey_;
5744    /**
5745     * <code>optional string metric_key = 7;</code>
5746     */
5747    public boolean hasMetricKey() {
5748      return ((bitField0_ & 0x00000040) == 0x00000040);
5749    }
5750    /**
5751     * <code>optional string metric_key = 7;</code>
5752     */
5753    public java.lang.String getMetricKey() {
5754      java.lang.Object ref = metricKey_;
5755      if (ref instanceof java.lang.String) {
5756        return (java.lang.String) ref;
5757      } else {
5758        com.google.protobuf.ByteString bs = 
5759            (com.google.protobuf.ByteString) ref;
5760        java.lang.String s = bs.toStringUtf8();
5761        if (bs.isValidUtf8()) {
5762          metricKey_ = s;
5763        }
5764        return s;
5765      }
5766    }
5767    /**
5768     * <code>optional string metric_key = 7;</code>
5769     */
5770    public com.google.protobuf.ByteString
5771        getMetricKeyBytes() {
5772      java.lang.Object ref = metricKey_;
5773      if (ref instanceof java.lang.String) {
5774        com.google.protobuf.ByteString b = 
5775            com.google.protobuf.ByteString.copyFromUtf8(
5776                (java.lang.String) ref);
5777        metricKey_ = b;
5778        return b;
5779      } else {
5780        return (com.google.protobuf.ByteString) ref;
5781      }
5782    }
5783
5784    private byte memoizedIsInitialized = -1;
5785    public final boolean isInitialized() {
5786      byte isInitialized = memoizedIsInitialized;
5787      if (isInitialized == 1) return true;
5788      if (isInitialized == 0) return false;
5789
5790      memoizedIsInitialized = 1;
5791      return true;
5792    }
5793
5794    public void writeTo(com.google.protobuf.CodedOutputStream output)
5795                        throws java.io.IOException {
5796      if (((bitField0_ & 0x00000001) == 0x00000001)) {
5797        output.writeEnum(1, valueType_);
5798      }
5799      if (((bitField0_ & 0x00000002) == 0x00000002)) {
5800        output.writeBool(2, booleanValue_);
5801      }
5802      if (((bitField0_ & 0x00000004) == 0x00000004)) {
5803        output.writeInt32(3, intValue_);
5804      }
5805      if (((bitField0_ & 0x00000008) == 0x00000008)) {
5806        output.writeInt64(4, longValue_);
5807      }
5808      if (((bitField0_ & 0x00000010) == 0x00000010)) {
5809        output.writeDouble(5, doubleValue_);
5810      }
5811      if (((bitField0_ & 0x00000020) == 0x00000020)) {
5812        output.writeBytes(6, getStringValueBytes());
5813      }
5814      if (((bitField0_ & 0x00000040) == 0x00000040)) {
5815        output.writeBytes(7, getMetricKeyBytes());
5816      }
5817      unknownFields.writeTo(output);
5818    }
5819
5820    private int memoizedSerializedSize = -1;
5821    public int getSerializedSize() {
5822      int size = memoizedSerializedSize;
5823      if (size != -1) return size;
5824
5825      size = 0;
5826      if (((bitField0_ & 0x00000001) == 0x00000001)) {
5827        size += com.google.protobuf.CodedOutputStream
5828          .computeEnumSize(1, valueType_);
5829      }
5830      if (((bitField0_ & 0x00000002) == 0x00000002)) {
5831        size += com.google.protobuf.CodedOutputStream
5832          .computeBoolSize(2, booleanValue_);
5833      }
5834      if (((bitField0_ & 0x00000004) == 0x00000004)) {
5835        size += com.google.protobuf.CodedOutputStream
5836          .computeInt32Size(3, intValue_);
5837      }
5838      if (((bitField0_ & 0x00000008) == 0x00000008)) {
5839        size += com.google.protobuf.CodedOutputStream
5840          .computeInt64Size(4, longValue_);
5841      }
5842      if (((bitField0_ & 0x00000010) == 0x00000010)) {
5843        size += com.google.protobuf.CodedOutputStream
5844          .computeDoubleSize(5, doubleValue_);
5845      }
5846      if (((bitField0_ & 0x00000020) == 0x00000020)) {
5847        size += com.google.protobuf.CodedOutputStream
5848          .computeBytesSize(6, getStringValueBytes());
5849      }
5850      if (((bitField0_ & 0x00000040) == 0x00000040)) {
5851        size += com.google.protobuf.CodedOutputStream
5852          .computeBytesSize(7, getMetricKeyBytes());
5853      }
5854      size += unknownFields.getSerializedSize();
5855      memoizedSerializedSize = size;
5856      return size;
5857    }
5858
5859    private static final long serialVersionUID = 0L;
5860    public static org.sonar.batch.protocol.output.BatchReport.Measure parseFrom(
5861        com.google.protobuf.ByteString data)
5862        throws com.google.protobuf.InvalidProtocolBufferException {
5863      return PARSER.parseFrom(data);
5864    }
5865    public static org.sonar.batch.protocol.output.BatchReport.Measure parseFrom(
5866        com.google.protobuf.ByteString data,
5867        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
5868        throws com.google.protobuf.InvalidProtocolBufferException {
5869      return PARSER.parseFrom(data, extensionRegistry);
5870    }
5871    public static org.sonar.batch.protocol.output.BatchReport.Measure parseFrom(byte[] data)
5872        throws com.google.protobuf.InvalidProtocolBufferException {
5873      return PARSER.parseFrom(data);
5874    }
5875    public static org.sonar.batch.protocol.output.BatchReport.Measure parseFrom(
5876        byte[] data,
5877        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
5878        throws com.google.protobuf.InvalidProtocolBufferException {
5879      return PARSER.parseFrom(data, extensionRegistry);
5880    }
5881    public static org.sonar.batch.protocol.output.BatchReport.Measure parseFrom(java.io.InputStream input)
5882        throws java.io.IOException {
5883      return PARSER.parseFrom(input);
5884    }
5885    public static org.sonar.batch.protocol.output.BatchReport.Measure parseFrom(
5886        java.io.InputStream input,
5887        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
5888        throws java.io.IOException {
5889      return PARSER.parseFrom(input, extensionRegistry);
5890    }
5891    public static org.sonar.batch.protocol.output.BatchReport.Measure parseDelimitedFrom(java.io.InputStream input)
5892        throws java.io.IOException {
5893      return PARSER.parseDelimitedFrom(input);
5894    }
5895    public static org.sonar.batch.protocol.output.BatchReport.Measure parseDelimitedFrom(
5896        java.io.InputStream input,
5897        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
5898        throws java.io.IOException {
5899      return PARSER.parseDelimitedFrom(input, extensionRegistry);
5900    }
5901    public static org.sonar.batch.protocol.output.BatchReport.Measure parseFrom(
5902        com.google.protobuf.CodedInputStream input)
5903        throws java.io.IOException {
5904      return PARSER.parseFrom(input);
5905    }
5906    public static org.sonar.batch.protocol.output.BatchReport.Measure parseFrom(
5907        com.google.protobuf.CodedInputStream input,
5908        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
5909        throws java.io.IOException {
5910      return PARSER.parseFrom(input, extensionRegistry);
5911    }
5912
5913    public Builder newBuilderForType() { return newBuilder(); }
5914    public static Builder newBuilder() {
5915      return DEFAULT_INSTANCE.toBuilder();
5916    }
5917    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.Measure prototype) {
5918      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
5919    }
5920    public Builder toBuilder() {
5921      return this == DEFAULT_INSTANCE
5922          ? new Builder() : new Builder().mergeFrom(this);
5923    }
5924
5925    @java.lang.Override
5926    protected Builder newBuilderForType(
5927        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
5928      Builder builder = new Builder(parent);
5929      return builder;
5930    }
5931    /**
5932     * Protobuf type {@code Measure}
5933     */
5934    public static final class Builder extends
5935        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
5936        // @@protoc_insertion_point(builder_implements:Measure)
5937        org.sonar.batch.protocol.output.BatchReport.MeasureOrBuilder {
5938      public static final com.google.protobuf.Descriptors.Descriptor
5939          getDescriptor() {
5940        return org.sonar.batch.protocol.output.BatchReport.internal_static_Measure_descriptor;
5941      }
5942
5943      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
5944          internalGetFieldAccessorTable() {
5945        return org.sonar.batch.protocol.output.BatchReport.internal_static_Measure_fieldAccessorTable
5946            .ensureFieldAccessorsInitialized(
5947                org.sonar.batch.protocol.output.BatchReport.Measure.class, org.sonar.batch.protocol.output.BatchReport.Measure.Builder.class);
5948      }
5949
5950      // Construct using org.sonar.batch.protocol.output.BatchReport.Measure.newBuilder()
5951      private Builder() {
5952        maybeForceBuilderInitialization();
5953      }
5954
5955      private Builder(
5956          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
5957        super(parent);
5958        maybeForceBuilderInitialization();
5959      }
5960      private void maybeForceBuilderInitialization() {
5961        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
5962        }
5963      }
5964      public Builder clear() {
5965        super.clear();
5966        valueType_ = 0;
5967        bitField0_ = (bitField0_ & ~0x00000001);
5968        booleanValue_ = false;
5969        bitField0_ = (bitField0_ & ~0x00000002);
5970        intValue_ = 0;
5971        bitField0_ = (bitField0_ & ~0x00000004);
5972        longValue_ = 0L;
5973        bitField0_ = (bitField0_ & ~0x00000008);
5974        doubleValue_ = 0D;
5975        bitField0_ = (bitField0_ & ~0x00000010);
5976        stringValue_ = "";
5977        bitField0_ = (bitField0_ & ~0x00000020);
5978        metricKey_ = "";
5979        bitField0_ = (bitField0_ & ~0x00000040);
5980        return this;
5981      }
5982
5983      public com.google.protobuf.Descriptors.Descriptor
5984          getDescriptorForType() {
5985        return org.sonar.batch.protocol.output.BatchReport.internal_static_Measure_descriptor;
5986      }
5987
5988      public org.sonar.batch.protocol.output.BatchReport.Measure getDefaultInstanceForType() {
5989        return org.sonar.batch.protocol.output.BatchReport.Measure.getDefaultInstance();
5990      }
5991
5992      public org.sonar.batch.protocol.output.BatchReport.Measure build() {
5993        org.sonar.batch.protocol.output.BatchReport.Measure result = buildPartial();
5994        if (!result.isInitialized()) {
5995          throw newUninitializedMessageException(result);
5996        }
5997        return result;
5998      }
5999
6000      public org.sonar.batch.protocol.output.BatchReport.Measure buildPartial() {
6001        org.sonar.batch.protocol.output.BatchReport.Measure result = new org.sonar.batch.protocol.output.BatchReport.Measure(this);
6002        int from_bitField0_ = bitField0_;
6003        int to_bitField0_ = 0;
6004        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
6005          to_bitField0_ |= 0x00000001;
6006        }
6007        result.valueType_ = valueType_;
6008        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
6009          to_bitField0_ |= 0x00000002;
6010        }
6011        result.booleanValue_ = booleanValue_;
6012        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
6013          to_bitField0_ |= 0x00000004;
6014        }
6015        result.intValue_ = intValue_;
6016        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
6017          to_bitField0_ |= 0x00000008;
6018        }
6019        result.longValue_ = longValue_;
6020        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
6021          to_bitField0_ |= 0x00000010;
6022        }
6023        result.doubleValue_ = doubleValue_;
6024        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
6025          to_bitField0_ |= 0x00000020;
6026        }
6027        result.stringValue_ = stringValue_;
6028        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
6029          to_bitField0_ |= 0x00000040;
6030        }
6031        result.metricKey_ = metricKey_;
6032        result.bitField0_ = to_bitField0_;
6033        onBuilt();
6034        return result;
6035      }
6036
6037      public Builder mergeFrom(com.google.protobuf.Message other) {
6038        if (other instanceof org.sonar.batch.protocol.output.BatchReport.Measure) {
6039          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.Measure)other);
6040        } else {
6041          super.mergeFrom(other);
6042          return this;
6043        }
6044      }
6045
6046      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.Measure other) {
6047        if (other == org.sonar.batch.protocol.output.BatchReport.Measure.getDefaultInstance()) return this;
6048        if (other.hasValueType()) {
6049          setValueType(other.getValueType());
6050        }
6051        if (other.hasBooleanValue()) {
6052          setBooleanValue(other.getBooleanValue());
6053        }
6054        if (other.hasIntValue()) {
6055          setIntValue(other.getIntValue());
6056        }
6057        if (other.hasLongValue()) {
6058          setLongValue(other.getLongValue());
6059        }
6060        if (other.hasDoubleValue()) {
6061          setDoubleValue(other.getDoubleValue());
6062        }
6063        if (other.hasStringValue()) {
6064          bitField0_ |= 0x00000020;
6065          stringValue_ = other.stringValue_;
6066          onChanged();
6067        }
6068        if (other.hasMetricKey()) {
6069          bitField0_ |= 0x00000040;
6070          metricKey_ = other.metricKey_;
6071          onChanged();
6072        }
6073        this.mergeUnknownFields(other.unknownFields);
6074        onChanged();
6075        return this;
6076      }
6077
6078      public final boolean isInitialized() {
6079        return true;
6080      }
6081
6082      public Builder mergeFrom(
6083          com.google.protobuf.CodedInputStream input,
6084          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
6085          throws java.io.IOException {
6086        org.sonar.batch.protocol.output.BatchReport.Measure parsedMessage = null;
6087        try {
6088          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
6089        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
6090          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.Measure) e.getUnfinishedMessage();
6091          throw e;
6092        } finally {
6093          if (parsedMessage != null) {
6094            mergeFrom(parsedMessage);
6095          }
6096        }
6097        return this;
6098      }
6099      private int bitField0_;
6100
6101      private int valueType_ = 0;
6102      /**
6103       * <code>optional .MeasureValueType value_type = 1;</code>
6104       */
6105      public boolean hasValueType() {
6106        return ((bitField0_ & 0x00000001) == 0x00000001);
6107      }
6108      /**
6109       * <code>optional .MeasureValueType value_type = 1;</code>
6110       */
6111      public org.sonar.batch.protocol.Constants.MeasureValueType getValueType() {
6112        org.sonar.batch.protocol.Constants.MeasureValueType result = org.sonar.batch.protocol.Constants.MeasureValueType.valueOf(valueType_);
6113        return result == null ? org.sonar.batch.protocol.Constants.MeasureValueType.INT : result;
6114      }
6115      /**
6116       * <code>optional .MeasureValueType value_type = 1;</code>
6117       */
6118      public Builder setValueType(org.sonar.batch.protocol.Constants.MeasureValueType value) {
6119        if (value == null) {
6120          throw new NullPointerException();
6121        }
6122        bitField0_ |= 0x00000001;
6123        valueType_ = value.getNumber();
6124        onChanged();
6125        return this;
6126      }
6127      /**
6128       * <code>optional .MeasureValueType value_type = 1;</code>
6129       */
6130      public Builder clearValueType() {
6131        bitField0_ = (bitField0_ & ~0x00000001);
6132        valueType_ = 0;
6133        onChanged();
6134        return this;
6135      }
6136
6137      private boolean booleanValue_ ;
6138      /**
6139       * <code>optional bool boolean_value = 2;</code>
6140       *
6141       * <pre>
6142       * all values may be unset for "new_xxx" measures (only variations are populated)
6143       * </pre>
6144       */
6145      public boolean hasBooleanValue() {
6146        return ((bitField0_ & 0x00000002) == 0x00000002);
6147      }
6148      /**
6149       * <code>optional bool boolean_value = 2;</code>
6150       *
6151       * <pre>
6152       * all values may be unset for "new_xxx" measures (only variations are populated)
6153       * </pre>
6154       */
6155      public boolean getBooleanValue() {
6156        return booleanValue_;
6157      }
6158      /**
6159       * <code>optional bool boolean_value = 2;</code>
6160       *
6161       * <pre>
6162       * all values may be unset for "new_xxx" measures (only variations are populated)
6163       * </pre>
6164       */
6165      public Builder setBooleanValue(boolean value) {
6166        bitField0_ |= 0x00000002;
6167        booleanValue_ = value;
6168        onChanged();
6169        return this;
6170      }
6171      /**
6172       * <code>optional bool boolean_value = 2;</code>
6173       *
6174       * <pre>
6175       * all values may be unset for "new_xxx" measures (only variations are populated)
6176       * </pre>
6177       */
6178      public Builder clearBooleanValue() {
6179        bitField0_ = (bitField0_ & ~0x00000002);
6180        booleanValue_ = false;
6181        onChanged();
6182        return this;
6183      }
6184
6185      private int intValue_ ;
6186      /**
6187       * <code>optional int32 int_value = 3;</code>
6188       */
6189      public boolean hasIntValue() {
6190        return ((bitField0_ & 0x00000004) == 0x00000004);
6191      }
6192      /**
6193       * <code>optional int32 int_value = 3;</code>
6194       */
6195      public int getIntValue() {
6196        return intValue_;
6197      }
6198      /**
6199       * <code>optional int32 int_value = 3;</code>
6200       */
6201      public Builder setIntValue(int value) {
6202        bitField0_ |= 0x00000004;
6203        intValue_ = value;
6204        onChanged();
6205        return this;
6206      }
6207      /**
6208       * <code>optional int32 int_value = 3;</code>
6209       */
6210      public Builder clearIntValue() {
6211        bitField0_ = (bitField0_ & ~0x00000004);
6212        intValue_ = 0;
6213        onChanged();
6214        return this;
6215      }
6216
6217      private long longValue_ ;
6218      /**
6219       * <code>optional int64 long_value = 4;</code>
6220       */
6221      public boolean hasLongValue() {
6222        return ((bitField0_ & 0x00000008) == 0x00000008);
6223      }
6224      /**
6225       * <code>optional int64 long_value = 4;</code>
6226       */
6227      public long getLongValue() {
6228        return longValue_;
6229      }
6230      /**
6231       * <code>optional int64 long_value = 4;</code>
6232       */
6233      public Builder setLongValue(long value) {
6234        bitField0_ |= 0x00000008;
6235        longValue_ = value;
6236        onChanged();
6237        return this;
6238      }
6239      /**
6240       * <code>optional int64 long_value = 4;</code>
6241       */
6242      public Builder clearLongValue() {
6243        bitField0_ = (bitField0_ & ~0x00000008);
6244        longValue_ = 0L;
6245        onChanged();
6246        return this;
6247      }
6248
6249      private double doubleValue_ ;
6250      /**
6251       * <code>optional double double_value = 5;</code>
6252       */
6253      public boolean hasDoubleValue() {
6254        return ((bitField0_ & 0x00000010) == 0x00000010);
6255      }
6256      /**
6257       * <code>optional double double_value = 5;</code>
6258       */
6259      public double getDoubleValue() {
6260        return doubleValue_;
6261      }
6262      /**
6263       * <code>optional double double_value = 5;</code>
6264       */
6265      public Builder setDoubleValue(double value) {
6266        bitField0_ |= 0x00000010;
6267        doubleValue_ = value;
6268        onChanged();
6269        return this;
6270      }
6271      /**
6272       * <code>optional double double_value = 5;</code>
6273       */
6274      public Builder clearDoubleValue() {
6275        bitField0_ = (bitField0_ & ~0x00000010);
6276        doubleValue_ = 0D;
6277        onChanged();
6278        return this;
6279      }
6280
6281      private java.lang.Object stringValue_ = "";
6282      /**
6283       * <code>optional string string_value = 6;</code>
6284       */
6285      public boolean hasStringValue() {
6286        return ((bitField0_ & 0x00000020) == 0x00000020);
6287      }
6288      /**
6289       * <code>optional string string_value = 6;</code>
6290       */
6291      public java.lang.String getStringValue() {
6292        java.lang.Object ref = stringValue_;
6293        if (!(ref instanceof java.lang.String)) {
6294          com.google.protobuf.ByteString bs =
6295              (com.google.protobuf.ByteString) ref;
6296          java.lang.String s = bs.toStringUtf8();
6297          if (bs.isValidUtf8()) {
6298            stringValue_ = s;
6299          }
6300          return s;
6301        } else {
6302          return (java.lang.String) ref;
6303        }
6304      }
6305      /**
6306       * <code>optional string string_value = 6;</code>
6307       */
6308      public com.google.protobuf.ByteString
6309          getStringValueBytes() {
6310        java.lang.Object ref = stringValue_;
6311        if (ref instanceof String) {
6312          com.google.protobuf.ByteString b = 
6313              com.google.protobuf.ByteString.copyFromUtf8(
6314                  (java.lang.String) ref);
6315          stringValue_ = b;
6316          return b;
6317        } else {
6318          return (com.google.protobuf.ByteString) ref;
6319        }
6320      }
6321      /**
6322       * <code>optional string string_value = 6;</code>
6323       */
6324      public Builder setStringValue(
6325          java.lang.String value) {
6326        if (value == null) {
6327    throw new NullPointerException();
6328  }
6329  bitField0_ |= 0x00000020;
6330        stringValue_ = value;
6331        onChanged();
6332        return this;
6333      }
6334      /**
6335       * <code>optional string string_value = 6;</code>
6336       */
6337      public Builder clearStringValue() {
6338        bitField0_ = (bitField0_ & ~0x00000020);
6339        stringValue_ = getDefaultInstance().getStringValue();
6340        onChanged();
6341        return this;
6342      }
6343      /**
6344       * <code>optional string string_value = 6;</code>
6345       */
6346      public Builder setStringValueBytes(
6347          com.google.protobuf.ByteString value) {
6348        if (value == null) {
6349    throw new NullPointerException();
6350  }
6351  bitField0_ |= 0x00000020;
6352        stringValue_ = value;
6353        onChanged();
6354        return this;
6355      }
6356
6357      private java.lang.Object metricKey_ = "";
6358      /**
6359       * <code>optional string metric_key = 7;</code>
6360       */
6361      public boolean hasMetricKey() {
6362        return ((bitField0_ & 0x00000040) == 0x00000040);
6363      }
6364      /**
6365       * <code>optional string metric_key = 7;</code>
6366       */
6367      public java.lang.String getMetricKey() {
6368        java.lang.Object ref = metricKey_;
6369        if (!(ref instanceof java.lang.String)) {
6370          com.google.protobuf.ByteString bs =
6371              (com.google.protobuf.ByteString) ref;
6372          java.lang.String s = bs.toStringUtf8();
6373          if (bs.isValidUtf8()) {
6374            metricKey_ = s;
6375          }
6376          return s;
6377        } else {
6378          return (java.lang.String) ref;
6379        }
6380      }
6381      /**
6382       * <code>optional string metric_key = 7;</code>
6383       */
6384      public com.google.protobuf.ByteString
6385          getMetricKeyBytes() {
6386        java.lang.Object ref = metricKey_;
6387        if (ref instanceof String) {
6388          com.google.protobuf.ByteString b = 
6389              com.google.protobuf.ByteString.copyFromUtf8(
6390                  (java.lang.String) ref);
6391          metricKey_ = b;
6392          return b;
6393        } else {
6394          return (com.google.protobuf.ByteString) ref;
6395        }
6396      }
6397      /**
6398       * <code>optional string metric_key = 7;</code>
6399       */
6400      public Builder setMetricKey(
6401          java.lang.String value) {
6402        if (value == null) {
6403    throw new NullPointerException();
6404  }
6405  bitField0_ |= 0x00000040;
6406        metricKey_ = value;
6407        onChanged();
6408        return this;
6409      }
6410      /**
6411       * <code>optional string metric_key = 7;</code>
6412       */
6413      public Builder clearMetricKey() {
6414        bitField0_ = (bitField0_ & ~0x00000040);
6415        metricKey_ = getDefaultInstance().getMetricKey();
6416        onChanged();
6417        return this;
6418      }
6419      /**
6420       * <code>optional string metric_key = 7;</code>
6421       */
6422      public Builder setMetricKeyBytes(
6423          com.google.protobuf.ByteString value) {
6424        if (value == null) {
6425    throw new NullPointerException();
6426  }
6427  bitField0_ |= 0x00000040;
6428        metricKey_ = value;
6429        onChanged();
6430        return this;
6431      }
6432
6433      // @@protoc_insertion_point(builder_scope:Measure)
6434    }
6435
6436    // @@protoc_insertion_point(class_scope:Measure)
6437    private static final org.sonar.batch.protocol.output.BatchReport.Measure DEFAULT_INSTANCE;
6438    static {
6439      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.Measure();
6440    }
6441
6442    public static org.sonar.batch.protocol.output.BatchReport.Measure getDefaultInstance() {
6443      return DEFAULT_INSTANCE;
6444    }
6445
6446    public static final com.google.protobuf.Parser<Measure> PARSER =
6447        new com.google.protobuf.AbstractParser<Measure>() {
6448      public Measure parsePartialFrom(
6449          com.google.protobuf.CodedInputStream input,
6450          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
6451          throws com.google.protobuf.InvalidProtocolBufferException {
6452        try {
6453          return new Measure(input, extensionRegistry);
6454        } catch (RuntimeException e) {
6455          if (e.getCause() instanceof
6456              com.google.protobuf.InvalidProtocolBufferException) {
6457            throw (com.google.protobuf.InvalidProtocolBufferException)
6458                e.getCause();
6459          }
6460          throw e;
6461        }
6462      }
6463    };
6464
6465    @java.lang.Override
6466    public com.google.protobuf.Parser<Measure> getParserForType() {
6467      return PARSER;
6468    }
6469
6470    public org.sonar.batch.protocol.output.BatchReport.Measure getDefaultInstanceForType() {
6471      return DEFAULT_INSTANCE;
6472    }
6473
6474  }
6475
6476  public interface IssueOrBuilder extends
6477      // @@protoc_insertion_point(interface_extends:Issue)
6478      com.google.protobuf.MessageOrBuilder {
6479
6480    /**
6481     * <code>optional string rule_repository = 1;</code>
6482     */
6483    boolean hasRuleRepository();
6484    /**
6485     * <code>optional string rule_repository = 1;</code>
6486     */
6487    java.lang.String getRuleRepository();
6488    /**
6489     * <code>optional string rule_repository = 1;</code>
6490     */
6491    com.google.protobuf.ByteString
6492        getRuleRepositoryBytes();
6493
6494    /**
6495     * <code>optional string rule_key = 2;</code>
6496     */
6497    boolean hasRuleKey();
6498    /**
6499     * <code>optional string rule_key = 2;</code>
6500     */
6501    java.lang.String getRuleKey();
6502    /**
6503     * <code>optional string rule_key = 2;</code>
6504     */
6505    com.google.protobuf.ByteString
6506        getRuleKeyBytes();
6507
6508    /**
6509     * <code>optional int32 line = 3;</code>
6510     *
6511     * <pre>
6512     * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
6513     *TODO To be removed. Use first line of text_range instead
6514     * </pre>
6515     */
6516    boolean hasLine();
6517    /**
6518     * <code>optional int32 line = 3;</code>
6519     *
6520     * <pre>
6521     * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
6522     *TODO To be removed. Use first line of text_range instead
6523     * </pre>
6524     */
6525    int getLine();
6526
6527    /**
6528     * <code>optional string msg = 4;</code>
6529     */
6530    boolean hasMsg();
6531    /**
6532     * <code>optional string msg = 4;</code>
6533     */
6534    java.lang.String getMsg();
6535    /**
6536     * <code>optional string msg = 4;</code>
6537     */
6538    com.google.protobuf.ByteString
6539        getMsgBytes();
6540
6541    /**
6542     * <code>optional .Severity severity = 5;</code>
6543     */
6544    boolean hasSeverity();
6545    /**
6546     * <code>optional .Severity severity = 5;</code>
6547     */
6548    org.sonar.batch.protocol.Constants.Severity getSeverity();
6549
6550    /**
6551     * <code>optional double effort_to_fix = 6;</code>
6552     */
6553    boolean hasEffortToFix();
6554    /**
6555     * <code>optional double effort_to_fix = 6;</code>
6556     */
6557    double getEffortToFix();
6558
6559    /**
6560     * <code>optional .TextRange text_range = 7;</code>
6561     *
6562     * <pre>
6563     * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
6564     * </pre>
6565     */
6566    boolean hasTextRange();
6567    /**
6568     * <code>optional .TextRange text_range = 7;</code>
6569     *
6570     * <pre>
6571     * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
6572     * </pre>
6573     */
6574    org.sonar.batch.protocol.output.BatchReport.TextRange getTextRange();
6575    /**
6576     * <code>optional .TextRange text_range = 7;</code>
6577     *
6578     * <pre>
6579     * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
6580     * </pre>
6581     */
6582    org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getTextRangeOrBuilder();
6583
6584    /**
6585     * <code>repeated .Flow flow = 8;</code>
6586     */
6587    java.util.List<org.sonar.batch.protocol.output.BatchReport.Flow> 
6588        getFlowList();
6589    /**
6590     * <code>repeated .Flow flow = 8;</code>
6591     */
6592    org.sonar.batch.protocol.output.BatchReport.Flow getFlow(int index);
6593    /**
6594     * <code>repeated .Flow flow = 8;</code>
6595     */
6596    int getFlowCount();
6597    /**
6598     * <code>repeated .Flow flow = 8;</code>
6599     */
6600    java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.FlowOrBuilder> 
6601        getFlowOrBuilderList();
6602    /**
6603     * <code>repeated .Flow flow = 8;</code>
6604     */
6605    org.sonar.batch.protocol.output.BatchReport.FlowOrBuilder getFlowOrBuilder(
6606        int index);
6607  }
6608  /**
6609   * Protobuf type {@code Issue}
6610   */
6611  public  static final class Issue extends
6612      com.google.protobuf.GeneratedMessage implements
6613      // @@protoc_insertion_point(message_implements:Issue)
6614      IssueOrBuilder {
6615    // Use Issue.newBuilder() to construct.
6616    private Issue(com.google.protobuf.GeneratedMessage.Builder builder) {
6617      super(builder);
6618    }
6619    private Issue() {
6620      ruleRepository_ = "";
6621      ruleKey_ = "";
6622      line_ = 0;
6623      msg_ = "";
6624      severity_ = 0;
6625      effortToFix_ = 0D;
6626      flow_ = java.util.Collections.emptyList();
6627    }
6628
6629    @java.lang.Override
6630    public final com.google.protobuf.UnknownFieldSet
6631    getUnknownFields() {
6632      return this.unknownFields;
6633    }
6634    private Issue(
6635        com.google.protobuf.CodedInputStream input,
6636        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
6637      this();
6638      int mutable_bitField0_ = 0;
6639      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
6640          com.google.protobuf.UnknownFieldSet.newBuilder();
6641      try {
6642        boolean done = false;
6643        while (!done) {
6644          int tag = input.readTag();
6645          switch (tag) {
6646            case 0:
6647              done = true;
6648              break;
6649            default: {
6650              if (!parseUnknownField(input, unknownFields,
6651                                     extensionRegistry, tag)) {
6652                done = true;
6653              }
6654              break;
6655            }
6656            case 10: {
6657              com.google.protobuf.ByteString bs = input.readBytes();
6658              bitField0_ |= 0x00000001;
6659              ruleRepository_ = bs;
6660              break;
6661            }
6662            case 18: {
6663              com.google.protobuf.ByteString bs = input.readBytes();
6664              bitField0_ |= 0x00000002;
6665              ruleKey_ = bs;
6666              break;
6667            }
6668            case 24: {
6669              bitField0_ |= 0x00000004;
6670              line_ = input.readInt32();
6671              break;
6672            }
6673            case 34: {
6674              com.google.protobuf.ByteString bs = input.readBytes();
6675              bitField0_ |= 0x00000008;
6676              msg_ = bs;
6677              break;
6678            }
6679            case 40: {
6680              int rawValue = input.readEnum();
6681              org.sonar.batch.protocol.Constants.Severity value = org.sonar.batch.protocol.Constants.Severity.valueOf(rawValue);
6682              if (value == null) {
6683                unknownFields.mergeVarintField(5, rawValue);
6684              } else {
6685                bitField0_ |= 0x00000010;
6686                severity_ = rawValue;
6687              }
6688              break;
6689            }
6690            case 49: {
6691              bitField0_ |= 0x00000020;
6692              effortToFix_ = input.readDouble();
6693              break;
6694            }
6695            case 58: {
6696              org.sonar.batch.protocol.output.BatchReport.TextRange.Builder subBuilder = null;
6697              if (((bitField0_ & 0x00000040) == 0x00000040)) {
6698                subBuilder = textRange_.toBuilder();
6699              }
6700              textRange_ = input.readMessage(org.sonar.batch.protocol.output.BatchReport.TextRange.PARSER, extensionRegistry);
6701              if (subBuilder != null) {
6702                subBuilder.mergeFrom(textRange_);
6703                textRange_ = subBuilder.buildPartial();
6704              }
6705              bitField0_ |= 0x00000040;
6706              break;
6707            }
6708            case 66: {
6709              if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
6710                flow_ = new java.util.ArrayList<org.sonar.batch.protocol.output.BatchReport.Flow>();
6711                mutable_bitField0_ |= 0x00000080;
6712              }
6713              flow_.add(input.readMessage(org.sonar.batch.protocol.output.BatchReport.Flow.PARSER, extensionRegistry));
6714              break;
6715            }
6716          }
6717        }
6718      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
6719        throw new RuntimeException(e.setUnfinishedMessage(this));
6720      } catch (java.io.IOException e) {
6721        throw new RuntimeException(
6722            new com.google.protobuf.InvalidProtocolBufferException(
6723                e.getMessage()).setUnfinishedMessage(this));
6724      } finally {
6725        if (((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
6726          flow_ = java.util.Collections.unmodifiableList(flow_);
6727        }
6728        this.unknownFields = unknownFields.build();
6729        makeExtensionsImmutable();
6730      }
6731    }
6732    public static final com.google.protobuf.Descriptors.Descriptor
6733        getDescriptor() {
6734      return org.sonar.batch.protocol.output.BatchReport.internal_static_Issue_descriptor;
6735    }
6736
6737    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
6738        internalGetFieldAccessorTable() {
6739      return org.sonar.batch.protocol.output.BatchReport.internal_static_Issue_fieldAccessorTable
6740          .ensureFieldAccessorsInitialized(
6741              org.sonar.batch.protocol.output.BatchReport.Issue.class, org.sonar.batch.protocol.output.BatchReport.Issue.Builder.class);
6742    }
6743
6744    private int bitField0_;
6745    public static final int RULE_REPOSITORY_FIELD_NUMBER = 1;
6746    private volatile java.lang.Object ruleRepository_;
6747    /**
6748     * <code>optional string rule_repository = 1;</code>
6749     */
6750    public boolean hasRuleRepository() {
6751      return ((bitField0_ & 0x00000001) == 0x00000001);
6752    }
6753    /**
6754     * <code>optional string rule_repository = 1;</code>
6755     */
6756    public java.lang.String getRuleRepository() {
6757      java.lang.Object ref = ruleRepository_;
6758      if (ref instanceof java.lang.String) {
6759        return (java.lang.String) ref;
6760      } else {
6761        com.google.protobuf.ByteString bs = 
6762            (com.google.protobuf.ByteString) ref;
6763        java.lang.String s = bs.toStringUtf8();
6764        if (bs.isValidUtf8()) {
6765          ruleRepository_ = s;
6766        }
6767        return s;
6768      }
6769    }
6770    /**
6771     * <code>optional string rule_repository = 1;</code>
6772     */
6773    public com.google.protobuf.ByteString
6774        getRuleRepositoryBytes() {
6775      java.lang.Object ref = ruleRepository_;
6776      if (ref instanceof java.lang.String) {
6777        com.google.protobuf.ByteString b = 
6778            com.google.protobuf.ByteString.copyFromUtf8(
6779                (java.lang.String) ref);
6780        ruleRepository_ = b;
6781        return b;
6782      } else {
6783        return (com.google.protobuf.ByteString) ref;
6784      }
6785    }
6786
6787    public static final int RULE_KEY_FIELD_NUMBER = 2;
6788    private volatile java.lang.Object ruleKey_;
6789    /**
6790     * <code>optional string rule_key = 2;</code>
6791     */
6792    public boolean hasRuleKey() {
6793      return ((bitField0_ & 0x00000002) == 0x00000002);
6794    }
6795    /**
6796     * <code>optional string rule_key = 2;</code>
6797     */
6798    public java.lang.String getRuleKey() {
6799      java.lang.Object ref = ruleKey_;
6800      if (ref instanceof java.lang.String) {
6801        return (java.lang.String) ref;
6802      } else {
6803        com.google.protobuf.ByteString bs = 
6804            (com.google.protobuf.ByteString) ref;
6805        java.lang.String s = bs.toStringUtf8();
6806        if (bs.isValidUtf8()) {
6807          ruleKey_ = s;
6808        }
6809        return s;
6810      }
6811    }
6812    /**
6813     * <code>optional string rule_key = 2;</code>
6814     */
6815    public com.google.protobuf.ByteString
6816        getRuleKeyBytes() {
6817      java.lang.Object ref = ruleKey_;
6818      if (ref instanceof java.lang.String) {
6819        com.google.protobuf.ByteString b = 
6820            com.google.protobuf.ByteString.copyFromUtf8(
6821                (java.lang.String) ref);
6822        ruleKey_ = b;
6823        return b;
6824      } else {
6825        return (com.google.protobuf.ByteString) ref;
6826      }
6827    }
6828
6829    public static final int LINE_FIELD_NUMBER = 3;
6830    private int line_;
6831    /**
6832     * <code>optional int32 line = 3;</code>
6833     *
6834     * <pre>
6835     * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
6836     *TODO To be removed. Use first line of text_range instead
6837     * </pre>
6838     */
6839    public boolean hasLine() {
6840      return ((bitField0_ & 0x00000004) == 0x00000004);
6841    }
6842    /**
6843     * <code>optional int32 line = 3;</code>
6844     *
6845     * <pre>
6846     * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
6847     *TODO To be removed. Use first line of text_range instead
6848     * </pre>
6849     */
6850    public int getLine() {
6851      return line_;
6852    }
6853
6854    public static final int MSG_FIELD_NUMBER = 4;
6855    private volatile java.lang.Object msg_;
6856    /**
6857     * <code>optional string msg = 4;</code>
6858     */
6859    public boolean hasMsg() {
6860      return ((bitField0_ & 0x00000008) == 0x00000008);
6861    }
6862    /**
6863     * <code>optional string msg = 4;</code>
6864     */
6865    public java.lang.String getMsg() {
6866      java.lang.Object ref = msg_;
6867      if (ref instanceof java.lang.String) {
6868        return (java.lang.String) ref;
6869      } else {
6870        com.google.protobuf.ByteString bs = 
6871            (com.google.protobuf.ByteString) ref;
6872        java.lang.String s = bs.toStringUtf8();
6873        if (bs.isValidUtf8()) {
6874          msg_ = s;
6875        }
6876        return s;
6877      }
6878    }
6879    /**
6880     * <code>optional string msg = 4;</code>
6881     */
6882    public com.google.protobuf.ByteString
6883        getMsgBytes() {
6884      java.lang.Object ref = msg_;
6885      if (ref instanceof java.lang.String) {
6886        com.google.protobuf.ByteString b = 
6887            com.google.protobuf.ByteString.copyFromUtf8(
6888                (java.lang.String) ref);
6889        msg_ = b;
6890        return b;
6891      } else {
6892        return (com.google.protobuf.ByteString) ref;
6893      }
6894    }
6895
6896    public static final int SEVERITY_FIELD_NUMBER = 5;
6897    private int severity_;
6898    /**
6899     * <code>optional .Severity severity = 5;</code>
6900     */
6901    public boolean hasSeverity() {
6902      return ((bitField0_ & 0x00000010) == 0x00000010);
6903    }
6904    /**
6905     * <code>optional .Severity severity = 5;</code>
6906     */
6907    public org.sonar.batch.protocol.Constants.Severity getSeverity() {
6908      org.sonar.batch.protocol.Constants.Severity result = org.sonar.batch.protocol.Constants.Severity.valueOf(severity_);
6909      return result == null ? org.sonar.batch.protocol.Constants.Severity.INFO : result;
6910    }
6911
6912    public static final int EFFORT_TO_FIX_FIELD_NUMBER = 6;
6913    private double effortToFix_;
6914    /**
6915     * <code>optional double effort_to_fix = 6;</code>
6916     */
6917    public boolean hasEffortToFix() {
6918      return ((bitField0_ & 0x00000020) == 0x00000020);
6919    }
6920    /**
6921     * <code>optional double effort_to_fix = 6;</code>
6922     */
6923    public double getEffortToFix() {
6924      return effortToFix_;
6925    }
6926
6927    public static final int TEXT_RANGE_FIELD_NUMBER = 7;
6928    private org.sonar.batch.protocol.output.BatchReport.TextRange textRange_;
6929    /**
6930     * <code>optional .TextRange text_range = 7;</code>
6931     *
6932     * <pre>
6933     * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
6934     * </pre>
6935     */
6936    public boolean hasTextRange() {
6937      return ((bitField0_ & 0x00000040) == 0x00000040);
6938    }
6939    /**
6940     * <code>optional .TextRange text_range = 7;</code>
6941     *
6942     * <pre>
6943     * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
6944     * </pre>
6945     */
6946    public org.sonar.batch.protocol.output.BatchReport.TextRange getTextRange() {
6947      return textRange_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : textRange_;
6948    }
6949    /**
6950     * <code>optional .TextRange text_range = 7;</code>
6951     *
6952     * <pre>
6953     * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
6954     * </pre>
6955     */
6956    public org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getTextRangeOrBuilder() {
6957      return textRange_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : textRange_;
6958    }
6959
6960    public static final int FLOW_FIELD_NUMBER = 8;
6961    private java.util.List<org.sonar.batch.protocol.output.BatchReport.Flow> flow_;
6962    /**
6963     * <code>repeated .Flow flow = 8;</code>
6964     */
6965    public java.util.List<org.sonar.batch.protocol.output.BatchReport.Flow> getFlowList() {
6966      return flow_;
6967    }
6968    /**
6969     * <code>repeated .Flow flow = 8;</code>
6970     */
6971    public java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.FlowOrBuilder> 
6972        getFlowOrBuilderList() {
6973      return flow_;
6974    }
6975    /**
6976     * <code>repeated .Flow flow = 8;</code>
6977     */
6978    public int getFlowCount() {
6979      return flow_.size();
6980    }
6981    /**
6982     * <code>repeated .Flow flow = 8;</code>
6983     */
6984    public org.sonar.batch.protocol.output.BatchReport.Flow getFlow(int index) {
6985      return flow_.get(index);
6986    }
6987    /**
6988     * <code>repeated .Flow flow = 8;</code>
6989     */
6990    public org.sonar.batch.protocol.output.BatchReport.FlowOrBuilder getFlowOrBuilder(
6991        int index) {
6992      return flow_.get(index);
6993    }
6994
6995    private byte memoizedIsInitialized = -1;
6996    public final boolean isInitialized() {
6997      byte isInitialized = memoizedIsInitialized;
6998      if (isInitialized == 1) return true;
6999      if (isInitialized == 0) return false;
7000
7001      memoizedIsInitialized = 1;
7002      return true;
7003    }
7004
7005    public void writeTo(com.google.protobuf.CodedOutputStream output)
7006                        throws java.io.IOException {
7007      if (((bitField0_ & 0x00000001) == 0x00000001)) {
7008        output.writeBytes(1, getRuleRepositoryBytes());
7009      }
7010      if (((bitField0_ & 0x00000002) == 0x00000002)) {
7011        output.writeBytes(2, getRuleKeyBytes());
7012      }
7013      if (((bitField0_ & 0x00000004) == 0x00000004)) {
7014        output.writeInt32(3, line_);
7015      }
7016      if (((bitField0_ & 0x00000008) == 0x00000008)) {
7017        output.writeBytes(4, getMsgBytes());
7018      }
7019      if (((bitField0_ & 0x00000010) == 0x00000010)) {
7020        output.writeEnum(5, severity_);
7021      }
7022      if (((bitField0_ & 0x00000020) == 0x00000020)) {
7023        output.writeDouble(6, effortToFix_);
7024      }
7025      if (((bitField0_ & 0x00000040) == 0x00000040)) {
7026        output.writeMessage(7, getTextRange());
7027      }
7028      for (int i = 0; i < flow_.size(); i++) {
7029        output.writeMessage(8, flow_.get(i));
7030      }
7031      unknownFields.writeTo(output);
7032    }
7033
7034    private int memoizedSerializedSize = -1;
7035    public int getSerializedSize() {
7036      int size = memoizedSerializedSize;
7037      if (size != -1) return size;
7038
7039      size = 0;
7040      if (((bitField0_ & 0x00000001) == 0x00000001)) {
7041        size += com.google.protobuf.CodedOutputStream
7042          .computeBytesSize(1, getRuleRepositoryBytes());
7043      }
7044      if (((bitField0_ & 0x00000002) == 0x00000002)) {
7045        size += com.google.protobuf.CodedOutputStream
7046          .computeBytesSize(2, getRuleKeyBytes());
7047      }
7048      if (((bitField0_ & 0x00000004) == 0x00000004)) {
7049        size += com.google.protobuf.CodedOutputStream
7050          .computeInt32Size(3, line_);
7051      }
7052      if (((bitField0_ & 0x00000008) == 0x00000008)) {
7053        size += com.google.protobuf.CodedOutputStream
7054          .computeBytesSize(4, getMsgBytes());
7055      }
7056      if (((bitField0_ & 0x00000010) == 0x00000010)) {
7057        size += com.google.protobuf.CodedOutputStream
7058          .computeEnumSize(5, severity_);
7059      }
7060      if (((bitField0_ & 0x00000020) == 0x00000020)) {
7061        size += com.google.protobuf.CodedOutputStream
7062          .computeDoubleSize(6, effortToFix_);
7063      }
7064      if (((bitField0_ & 0x00000040) == 0x00000040)) {
7065        size += com.google.protobuf.CodedOutputStream
7066          .computeMessageSize(7, getTextRange());
7067      }
7068      for (int i = 0; i < flow_.size(); i++) {
7069        size += com.google.protobuf.CodedOutputStream
7070          .computeMessageSize(8, flow_.get(i));
7071      }
7072      size += unknownFields.getSerializedSize();
7073      memoizedSerializedSize = size;
7074      return size;
7075    }
7076
7077    private static final long serialVersionUID = 0L;
7078    public static org.sonar.batch.protocol.output.BatchReport.Issue parseFrom(
7079        com.google.protobuf.ByteString data)
7080        throws com.google.protobuf.InvalidProtocolBufferException {
7081      return PARSER.parseFrom(data);
7082    }
7083    public static org.sonar.batch.protocol.output.BatchReport.Issue parseFrom(
7084        com.google.protobuf.ByteString data,
7085        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7086        throws com.google.protobuf.InvalidProtocolBufferException {
7087      return PARSER.parseFrom(data, extensionRegistry);
7088    }
7089    public static org.sonar.batch.protocol.output.BatchReport.Issue parseFrom(byte[] data)
7090        throws com.google.protobuf.InvalidProtocolBufferException {
7091      return PARSER.parseFrom(data);
7092    }
7093    public static org.sonar.batch.protocol.output.BatchReport.Issue parseFrom(
7094        byte[] data,
7095        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7096        throws com.google.protobuf.InvalidProtocolBufferException {
7097      return PARSER.parseFrom(data, extensionRegistry);
7098    }
7099    public static org.sonar.batch.protocol.output.BatchReport.Issue parseFrom(java.io.InputStream input)
7100        throws java.io.IOException {
7101      return PARSER.parseFrom(input);
7102    }
7103    public static org.sonar.batch.protocol.output.BatchReport.Issue parseFrom(
7104        java.io.InputStream input,
7105        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7106        throws java.io.IOException {
7107      return PARSER.parseFrom(input, extensionRegistry);
7108    }
7109    public static org.sonar.batch.protocol.output.BatchReport.Issue parseDelimitedFrom(java.io.InputStream input)
7110        throws java.io.IOException {
7111      return PARSER.parseDelimitedFrom(input);
7112    }
7113    public static org.sonar.batch.protocol.output.BatchReport.Issue parseDelimitedFrom(
7114        java.io.InputStream input,
7115        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7116        throws java.io.IOException {
7117      return PARSER.parseDelimitedFrom(input, extensionRegistry);
7118    }
7119    public static org.sonar.batch.protocol.output.BatchReport.Issue parseFrom(
7120        com.google.protobuf.CodedInputStream input)
7121        throws java.io.IOException {
7122      return PARSER.parseFrom(input);
7123    }
7124    public static org.sonar.batch.protocol.output.BatchReport.Issue parseFrom(
7125        com.google.protobuf.CodedInputStream input,
7126        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7127        throws java.io.IOException {
7128      return PARSER.parseFrom(input, extensionRegistry);
7129    }
7130
7131    public Builder newBuilderForType() { return newBuilder(); }
7132    public static Builder newBuilder() {
7133      return DEFAULT_INSTANCE.toBuilder();
7134    }
7135    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.Issue prototype) {
7136      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
7137    }
7138    public Builder toBuilder() {
7139      return this == DEFAULT_INSTANCE
7140          ? new Builder() : new Builder().mergeFrom(this);
7141    }
7142
7143    @java.lang.Override
7144    protected Builder newBuilderForType(
7145        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
7146      Builder builder = new Builder(parent);
7147      return builder;
7148    }
7149    /**
7150     * Protobuf type {@code Issue}
7151     */
7152    public static final class Builder extends
7153        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
7154        // @@protoc_insertion_point(builder_implements:Issue)
7155        org.sonar.batch.protocol.output.BatchReport.IssueOrBuilder {
7156      public static final com.google.protobuf.Descriptors.Descriptor
7157          getDescriptor() {
7158        return org.sonar.batch.protocol.output.BatchReport.internal_static_Issue_descriptor;
7159      }
7160
7161      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
7162          internalGetFieldAccessorTable() {
7163        return org.sonar.batch.protocol.output.BatchReport.internal_static_Issue_fieldAccessorTable
7164            .ensureFieldAccessorsInitialized(
7165                org.sonar.batch.protocol.output.BatchReport.Issue.class, org.sonar.batch.protocol.output.BatchReport.Issue.Builder.class);
7166      }
7167
7168      // Construct using org.sonar.batch.protocol.output.BatchReport.Issue.newBuilder()
7169      private Builder() {
7170        maybeForceBuilderInitialization();
7171      }
7172
7173      private Builder(
7174          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
7175        super(parent);
7176        maybeForceBuilderInitialization();
7177      }
7178      private void maybeForceBuilderInitialization() {
7179        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
7180          getTextRangeFieldBuilder();
7181          getFlowFieldBuilder();
7182        }
7183      }
7184      public Builder clear() {
7185        super.clear();
7186        ruleRepository_ = "";
7187        bitField0_ = (bitField0_ & ~0x00000001);
7188        ruleKey_ = "";
7189        bitField0_ = (bitField0_ & ~0x00000002);
7190        line_ = 0;
7191        bitField0_ = (bitField0_ & ~0x00000004);
7192        msg_ = "";
7193        bitField0_ = (bitField0_ & ~0x00000008);
7194        severity_ = 0;
7195        bitField0_ = (bitField0_ & ~0x00000010);
7196        effortToFix_ = 0D;
7197        bitField0_ = (bitField0_ & ~0x00000020);
7198        if (textRangeBuilder_ == null) {
7199          textRange_ = null;
7200        } else {
7201          textRangeBuilder_.clear();
7202        }
7203        bitField0_ = (bitField0_ & ~0x00000040);
7204        if (flowBuilder_ == null) {
7205          flow_ = java.util.Collections.emptyList();
7206          bitField0_ = (bitField0_ & ~0x00000080);
7207        } else {
7208          flowBuilder_.clear();
7209        }
7210        return this;
7211      }
7212
7213      public com.google.protobuf.Descriptors.Descriptor
7214          getDescriptorForType() {
7215        return org.sonar.batch.protocol.output.BatchReport.internal_static_Issue_descriptor;
7216      }
7217
7218      public org.sonar.batch.protocol.output.BatchReport.Issue getDefaultInstanceForType() {
7219        return org.sonar.batch.protocol.output.BatchReport.Issue.getDefaultInstance();
7220      }
7221
7222      public org.sonar.batch.protocol.output.BatchReport.Issue build() {
7223        org.sonar.batch.protocol.output.BatchReport.Issue result = buildPartial();
7224        if (!result.isInitialized()) {
7225          throw newUninitializedMessageException(result);
7226        }
7227        return result;
7228      }
7229
7230      public org.sonar.batch.protocol.output.BatchReport.Issue buildPartial() {
7231        org.sonar.batch.protocol.output.BatchReport.Issue result = new org.sonar.batch.protocol.output.BatchReport.Issue(this);
7232        int from_bitField0_ = bitField0_;
7233        int to_bitField0_ = 0;
7234        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
7235          to_bitField0_ |= 0x00000001;
7236        }
7237        result.ruleRepository_ = ruleRepository_;
7238        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
7239          to_bitField0_ |= 0x00000002;
7240        }
7241        result.ruleKey_ = ruleKey_;
7242        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
7243          to_bitField0_ |= 0x00000004;
7244        }
7245        result.line_ = line_;
7246        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
7247          to_bitField0_ |= 0x00000008;
7248        }
7249        result.msg_ = msg_;
7250        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
7251          to_bitField0_ |= 0x00000010;
7252        }
7253        result.severity_ = severity_;
7254        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
7255          to_bitField0_ |= 0x00000020;
7256        }
7257        result.effortToFix_ = effortToFix_;
7258        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
7259          to_bitField0_ |= 0x00000040;
7260        }
7261        if (textRangeBuilder_ == null) {
7262          result.textRange_ = textRange_;
7263        } else {
7264          result.textRange_ = textRangeBuilder_.build();
7265        }
7266        if (flowBuilder_ == null) {
7267          if (((bitField0_ & 0x00000080) == 0x00000080)) {
7268            flow_ = java.util.Collections.unmodifiableList(flow_);
7269            bitField0_ = (bitField0_ & ~0x00000080);
7270          }
7271          result.flow_ = flow_;
7272        } else {
7273          result.flow_ = flowBuilder_.build();
7274        }
7275        result.bitField0_ = to_bitField0_;
7276        onBuilt();
7277        return result;
7278      }
7279
7280      public Builder mergeFrom(com.google.protobuf.Message other) {
7281        if (other instanceof org.sonar.batch.protocol.output.BatchReport.Issue) {
7282          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.Issue)other);
7283        } else {
7284          super.mergeFrom(other);
7285          return this;
7286        }
7287      }
7288
7289      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.Issue other) {
7290        if (other == org.sonar.batch.protocol.output.BatchReport.Issue.getDefaultInstance()) return this;
7291        if (other.hasRuleRepository()) {
7292          bitField0_ |= 0x00000001;
7293          ruleRepository_ = other.ruleRepository_;
7294          onChanged();
7295        }
7296        if (other.hasRuleKey()) {
7297          bitField0_ |= 0x00000002;
7298          ruleKey_ = other.ruleKey_;
7299          onChanged();
7300        }
7301        if (other.hasLine()) {
7302          setLine(other.getLine());
7303        }
7304        if (other.hasMsg()) {
7305          bitField0_ |= 0x00000008;
7306          msg_ = other.msg_;
7307          onChanged();
7308        }
7309        if (other.hasSeverity()) {
7310          setSeverity(other.getSeverity());
7311        }
7312        if (other.hasEffortToFix()) {
7313          setEffortToFix(other.getEffortToFix());
7314        }
7315        if (other.hasTextRange()) {
7316          mergeTextRange(other.getTextRange());
7317        }
7318        if (flowBuilder_ == null) {
7319          if (!other.flow_.isEmpty()) {
7320            if (flow_.isEmpty()) {
7321              flow_ = other.flow_;
7322              bitField0_ = (bitField0_ & ~0x00000080);
7323            } else {
7324              ensureFlowIsMutable();
7325              flow_.addAll(other.flow_);
7326            }
7327            onChanged();
7328          }
7329        } else {
7330          if (!other.flow_.isEmpty()) {
7331            if (flowBuilder_.isEmpty()) {
7332              flowBuilder_.dispose();
7333              flowBuilder_ = null;
7334              flow_ = other.flow_;
7335              bitField0_ = (bitField0_ & ~0x00000080);
7336              flowBuilder_ = 
7337                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
7338                   getFlowFieldBuilder() : null;
7339            } else {
7340              flowBuilder_.addAllMessages(other.flow_);
7341            }
7342          }
7343        }
7344        this.mergeUnknownFields(other.unknownFields);
7345        onChanged();
7346        return this;
7347      }
7348
7349      public final boolean isInitialized() {
7350        return true;
7351      }
7352
7353      public Builder mergeFrom(
7354          com.google.protobuf.CodedInputStream input,
7355          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7356          throws java.io.IOException {
7357        org.sonar.batch.protocol.output.BatchReport.Issue parsedMessage = null;
7358        try {
7359          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
7360        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
7361          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.Issue) e.getUnfinishedMessage();
7362          throw e;
7363        } finally {
7364          if (parsedMessage != null) {
7365            mergeFrom(parsedMessage);
7366          }
7367        }
7368        return this;
7369      }
7370      private int bitField0_;
7371
7372      private java.lang.Object ruleRepository_ = "";
7373      /**
7374       * <code>optional string rule_repository = 1;</code>
7375       */
7376      public boolean hasRuleRepository() {
7377        return ((bitField0_ & 0x00000001) == 0x00000001);
7378      }
7379      /**
7380       * <code>optional string rule_repository = 1;</code>
7381       */
7382      public java.lang.String getRuleRepository() {
7383        java.lang.Object ref = ruleRepository_;
7384        if (!(ref instanceof java.lang.String)) {
7385          com.google.protobuf.ByteString bs =
7386              (com.google.protobuf.ByteString) ref;
7387          java.lang.String s = bs.toStringUtf8();
7388          if (bs.isValidUtf8()) {
7389            ruleRepository_ = s;
7390          }
7391          return s;
7392        } else {
7393          return (java.lang.String) ref;
7394        }
7395      }
7396      /**
7397       * <code>optional string rule_repository = 1;</code>
7398       */
7399      public com.google.protobuf.ByteString
7400          getRuleRepositoryBytes() {
7401        java.lang.Object ref = ruleRepository_;
7402        if (ref instanceof String) {
7403          com.google.protobuf.ByteString b = 
7404              com.google.protobuf.ByteString.copyFromUtf8(
7405                  (java.lang.String) ref);
7406          ruleRepository_ = b;
7407          return b;
7408        } else {
7409          return (com.google.protobuf.ByteString) ref;
7410        }
7411      }
7412      /**
7413       * <code>optional string rule_repository = 1;</code>
7414       */
7415      public Builder setRuleRepository(
7416          java.lang.String value) {
7417        if (value == null) {
7418    throw new NullPointerException();
7419  }
7420  bitField0_ |= 0x00000001;
7421        ruleRepository_ = value;
7422        onChanged();
7423        return this;
7424      }
7425      /**
7426       * <code>optional string rule_repository = 1;</code>
7427       */
7428      public Builder clearRuleRepository() {
7429        bitField0_ = (bitField0_ & ~0x00000001);
7430        ruleRepository_ = getDefaultInstance().getRuleRepository();
7431        onChanged();
7432        return this;
7433      }
7434      /**
7435       * <code>optional string rule_repository = 1;</code>
7436       */
7437      public Builder setRuleRepositoryBytes(
7438          com.google.protobuf.ByteString value) {
7439        if (value == null) {
7440    throw new NullPointerException();
7441  }
7442  bitField0_ |= 0x00000001;
7443        ruleRepository_ = value;
7444        onChanged();
7445        return this;
7446      }
7447
7448      private java.lang.Object ruleKey_ = "";
7449      /**
7450       * <code>optional string rule_key = 2;</code>
7451       */
7452      public boolean hasRuleKey() {
7453        return ((bitField0_ & 0x00000002) == 0x00000002);
7454      }
7455      /**
7456       * <code>optional string rule_key = 2;</code>
7457       */
7458      public java.lang.String getRuleKey() {
7459        java.lang.Object ref = ruleKey_;
7460        if (!(ref instanceof java.lang.String)) {
7461          com.google.protobuf.ByteString bs =
7462              (com.google.protobuf.ByteString) ref;
7463          java.lang.String s = bs.toStringUtf8();
7464          if (bs.isValidUtf8()) {
7465            ruleKey_ = s;
7466          }
7467          return s;
7468        } else {
7469          return (java.lang.String) ref;
7470        }
7471      }
7472      /**
7473       * <code>optional string rule_key = 2;</code>
7474       */
7475      public com.google.protobuf.ByteString
7476          getRuleKeyBytes() {
7477        java.lang.Object ref = ruleKey_;
7478        if (ref instanceof String) {
7479          com.google.protobuf.ByteString b = 
7480              com.google.protobuf.ByteString.copyFromUtf8(
7481                  (java.lang.String) ref);
7482          ruleKey_ = b;
7483          return b;
7484        } else {
7485          return (com.google.protobuf.ByteString) ref;
7486        }
7487      }
7488      /**
7489       * <code>optional string rule_key = 2;</code>
7490       */
7491      public Builder setRuleKey(
7492          java.lang.String value) {
7493        if (value == null) {
7494    throw new NullPointerException();
7495  }
7496  bitField0_ |= 0x00000002;
7497        ruleKey_ = value;
7498        onChanged();
7499        return this;
7500      }
7501      /**
7502       * <code>optional string rule_key = 2;</code>
7503       */
7504      public Builder clearRuleKey() {
7505        bitField0_ = (bitField0_ & ~0x00000002);
7506        ruleKey_ = getDefaultInstance().getRuleKey();
7507        onChanged();
7508        return this;
7509      }
7510      /**
7511       * <code>optional string rule_key = 2;</code>
7512       */
7513      public Builder setRuleKeyBytes(
7514          com.google.protobuf.ByteString value) {
7515        if (value == null) {
7516    throw new NullPointerException();
7517  }
7518  bitField0_ |= 0x00000002;
7519        ruleKey_ = value;
7520        onChanged();
7521        return this;
7522      }
7523
7524      private int line_ ;
7525      /**
7526       * <code>optional int32 line = 3;</code>
7527       *
7528       * <pre>
7529       * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
7530       *TODO To be removed. Use first line of text_range instead
7531       * </pre>
7532       */
7533      public boolean hasLine() {
7534        return ((bitField0_ & 0x00000004) == 0x00000004);
7535      }
7536      /**
7537       * <code>optional int32 line = 3;</code>
7538       *
7539       * <pre>
7540       * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
7541       *TODO To be removed. Use first line of text_range instead
7542       * </pre>
7543       */
7544      public int getLine() {
7545        return line_;
7546      }
7547      /**
7548       * <code>optional int32 line = 3;</code>
7549       *
7550       * <pre>
7551       * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
7552       *TODO To be removed. Use first line of text_range instead
7553       * </pre>
7554       */
7555      public Builder setLine(int value) {
7556        bitField0_ |= 0x00000004;
7557        line_ = value;
7558        onChanged();
7559        return this;
7560      }
7561      /**
7562       * <code>optional int32 line = 3;</code>
7563       *
7564       * <pre>
7565       * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
7566       *TODO To be removed. Use first line of text_range instead
7567       * </pre>
7568       */
7569      public Builder clearLine() {
7570        bitField0_ = (bitField0_ & ~0x00000004);
7571        line_ = 0;
7572        onChanged();
7573        return this;
7574      }
7575
7576      private java.lang.Object msg_ = "";
7577      /**
7578       * <code>optional string msg = 4;</code>
7579       */
7580      public boolean hasMsg() {
7581        return ((bitField0_ & 0x00000008) == 0x00000008);
7582      }
7583      /**
7584       * <code>optional string msg = 4;</code>
7585       */
7586      public java.lang.String getMsg() {
7587        java.lang.Object ref = msg_;
7588        if (!(ref instanceof java.lang.String)) {
7589          com.google.protobuf.ByteString bs =
7590              (com.google.protobuf.ByteString) ref;
7591          java.lang.String s = bs.toStringUtf8();
7592          if (bs.isValidUtf8()) {
7593            msg_ = s;
7594          }
7595          return s;
7596        } else {
7597          return (java.lang.String) ref;
7598        }
7599      }
7600      /**
7601       * <code>optional string msg = 4;</code>
7602       */
7603      public com.google.protobuf.ByteString
7604          getMsgBytes() {
7605        java.lang.Object ref = msg_;
7606        if (ref instanceof String) {
7607          com.google.protobuf.ByteString b = 
7608              com.google.protobuf.ByteString.copyFromUtf8(
7609                  (java.lang.String) ref);
7610          msg_ = b;
7611          return b;
7612        } else {
7613          return (com.google.protobuf.ByteString) ref;
7614        }
7615      }
7616      /**
7617       * <code>optional string msg = 4;</code>
7618       */
7619      public Builder setMsg(
7620          java.lang.String value) {
7621        if (value == null) {
7622    throw new NullPointerException();
7623  }
7624  bitField0_ |= 0x00000008;
7625        msg_ = value;
7626        onChanged();
7627        return this;
7628      }
7629      /**
7630       * <code>optional string msg = 4;</code>
7631       */
7632      public Builder clearMsg() {
7633        bitField0_ = (bitField0_ & ~0x00000008);
7634        msg_ = getDefaultInstance().getMsg();
7635        onChanged();
7636        return this;
7637      }
7638      /**
7639       * <code>optional string msg = 4;</code>
7640       */
7641      public Builder setMsgBytes(
7642          com.google.protobuf.ByteString value) {
7643        if (value == null) {
7644    throw new NullPointerException();
7645  }
7646  bitField0_ |= 0x00000008;
7647        msg_ = value;
7648        onChanged();
7649        return this;
7650      }
7651
7652      private int severity_ = 0;
7653      /**
7654       * <code>optional .Severity severity = 5;</code>
7655       */
7656      public boolean hasSeverity() {
7657        return ((bitField0_ & 0x00000010) == 0x00000010);
7658      }
7659      /**
7660       * <code>optional .Severity severity = 5;</code>
7661       */
7662      public org.sonar.batch.protocol.Constants.Severity getSeverity() {
7663        org.sonar.batch.protocol.Constants.Severity result = org.sonar.batch.protocol.Constants.Severity.valueOf(severity_);
7664        return result == null ? org.sonar.batch.protocol.Constants.Severity.INFO : result;
7665      }
7666      /**
7667       * <code>optional .Severity severity = 5;</code>
7668       */
7669      public Builder setSeverity(org.sonar.batch.protocol.Constants.Severity value) {
7670        if (value == null) {
7671          throw new NullPointerException();
7672        }
7673        bitField0_ |= 0x00000010;
7674        severity_ = value.getNumber();
7675        onChanged();
7676        return this;
7677      }
7678      /**
7679       * <code>optional .Severity severity = 5;</code>
7680       */
7681      public Builder clearSeverity() {
7682        bitField0_ = (bitField0_ & ~0x00000010);
7683        severity_ = 0;
7684        onChanged();
7685        return this;
7686      }
7687
7688      private double effortToFix_ ;
7689      /**
7690       * <code>optional double effort_to_fix = 6;</code>
7691       */
7692      public boolean hasEffortToFix() {
7693        return ((bitField0_ & 0x00000020) == 0x00000020);
7694      }
7695      /**
7696       * <code>optional double effort_to_fix = 6;</code>
7697       */
7698      public double getEffortToFix() {
7699        return effortToFix_;
7700      }
7701      /**
7702       * <code>optional double effort_to_fix = 6;</code>
7703       */
7704      public Builder setEffortToFix(double value) {
7705        bitField0_ |= 0x00000020;
7706        effortToFix_ = value;
7707        onChanged();
7708        return this;
7709      }
7710      /**
7711       * <code>optional double effort_to_fix = 6;</code>
7712       */
7713      public Builder clearEffortToFix() {
7714        bitField0_ = (bitField0_ & ~0x00000020);
7715        effortToFix_ = 0D;
7716        onChanged();
7717        return this;
7718      }
7719
7720      private org.sonar.batch.protocol.output.BatchReport.TextRange textRange_ = null;
7721      private com.google.protobuf.SingleFieldBuilder<
7722          org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> textRangeBuilder_;
7723      /**
7724       * <code>optional .TextRange text_range = 7;</code>
7725       *
7726       * <pre>
7727       * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
7728       * </pre>
7729       */
7730      public boolean hasTextRange() {
7731        return ((bitField0_ & 0x00000040) == 0x00000040);
7732      }
7733      /**
7734       * <code>optional .TextRange text_range = 7;</code>
7735       *
7736       * <pre>
7737       * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
7738       * </pre>
7739       */
7740      public org.sonar.batch.protocol.output.BatchReport.TextRange getTextRange() {
7741        if (textRangeBuilder_ == null) {
7742          return textRange_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : textRange_;
7743        } else {
7744          return textRangeBuilder_.getMessage();
7745        }
7746      }
7747      /**
7748       * <code>optional .TextRange text_range = 7;</code>
7749       *
7750       * <pre>
7751       * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
7752       * </pre>
7753       */
7754      public Builder setTextRange(org.sonar.batch.protocol.output.BatchReport.TextRange value) {
7755        if (textRangeBuilder_ == null) {
7756          if (value == null) {
7757            throw new NullPointerException();
7758          }
7759          textRange_ = value;
7760          onChanged();
7761        } else {
7762          textRangeBuilder_.setMessage(value);
7763        }
7764        bitField0_ |= 0x00000040;
7765        return this;
7766      }
7767      /**
7768       * <code>optional .TextRange text_range = 7;</code>
7769       *
7770       * <pre>
7771       * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
7772       * </pre>
7773       */
7774      public Builder setTextRange(
7775          org.sonar.batch.protocol.output.BatchReport.TextRange.Builder builderForValue) {
7776        if (textRangeBuilder_ == null) {
7777          textRange_ = builderForValue.build();
7778          onChanged();
7779        } else {
7780          textRangeBuilder_.setMessage(builderForValue.build());
7781        }
7782        bitField0_ |= 0x00000040;
7783        return this;
7784      }
7785      /**
7786       * <code>optional .TextRange text_range = 7;</code>
7787       *
7788       * <pre>
7789       * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
7790       * </pre>
7791       */
7792      public Builder mergeTextRange(org.sonar.batch.protocol.output.BatchReport.TextRange value) {
7793        if (textRangeBuilder_ == null) {
7794          if (((bitField0_ & 0x00000040) == 0x00000040) &&
7795              textRange_ != null &&
7796              textRange_ != org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance()) {
7797            textRange_ =
7798              org.sonar.batch.protocol.output.BatchReport.TextRange.newBuilder(textRange_).mergeFrom(value).buildPartial();
7799          } else {
7800            textRange_ = value;
7801          }
7802          onChanged();
7803        } else {
7804          textRangeBuilder_.mergeFrom(value);
7805        }
7806        bitField0_ |= 0x00000040;
7807        return this;
7808      }
7809      /**
7810       * <code>optional .TextRange text_range = 7;</code>
7811       *
7812       * <pre>
7813       * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
7814       * </pre>
7815       */
7816      public Builder clearTextRange() {
7817        if (textRangeBuilder_ == null) {
7818          textRange_ = null;
7819          onChanged();
7820        } else {
7821          textRangeBuilder_.clear();
7822        }
7823        bitField0_ = (bitField0_ & ~0x00000040);
7824        return this;
7825      }
7826      /**
7827       * <code>optional .TextRange text_range = 7;</code>
7828       *
7829       * <pre>
7830       * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
7831       * </pre>
7832       */
7833      public org.sonar.batch.protocol.output.BatchReport.TextRange.Builder getTextRangeBuilder() {
7834        bitField0_ |= 0x00000040;
7835        onChanged();
7836        return getTextRangeFieldBuilder().getBuilder();
7837      }
7838      /**
7839       * <code>optional .TextRange text_range = 7;</code>
7840       *
7841       * <pre>
7842       * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
7843       * </pre>
7844       */
7845      public org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getTextRangeOrBuilder() {
7846        if (textRangeBuilder_ != null) {
7847          return textRangeBuilder_.getMessageOrBuilder();
7848        } else {
7849          return textRange_ == null ?
7850              org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : textRange_;
7851        }
7852      }
7853      /**
7854       * <code>optional .TextRange text_range = 7;</code>
7855       *
7856       * <pre>
7857       * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
7858       * </pre>
7859       */
7860      private com.google.protobuf.SingleFieldBuilder<
7861          org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> 
7862          getTextRangeFieldBuilder() {
7863        if (textRangeBuilder_ == null) {
7864          textRangeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
7865              org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder>(
7866                  getTextRange(),
7867                  getParentForChildren(),
7868                  isClean());
7869          textRange_ = null;
7870        }
7871        return textRangeBuilder_;
7872      }
7873
7874      private java.util.List<org.sonar.batch.protocol.output.BatchReport.Flow> flow_ =
7875        java.util.Collections.emptyList();
7876      private void ensureFlowIsMutable() {
7877        if (!((bitField0_ & 0x00000080) == 0x00000080)) {
7878          flow_ = new java.util.ArrayList<org.sonar.batch.protocol.output.BatchReport.Flow>(flow_);
7879          bitField0_ |= 0x00000080;
7880         }
7881      }
7882
7883      private com.google.protobuf.RepeatedFieldBuilder<
7884          org.sonar.batch.protocol.output.BatchReport.Flow, org.sonar.batch.protocol.output.BatchReport.Flow.Builder, org.sonar.batch.protocol.output.BatchReport.FlowOrBuilder> flowBuilder_;
7885
7886      /**
7887       * <code>repeated .Flow flow = 8;</code>
7888       */
7889      public java.util.List<org.sonar.batch.protocol.output.BatchReport.Flow> getFlowList() {
7890        if (flowBuilder_ == null) {
7891          return java.util.Collections.unmodifiableList(flow_);
7892        } else {
7893          return flowBuilder_.getMessageList();
7894        }
7895      }
7896      /**
7897       * <code>repeated .Flow flow = 8;</code>
7898       */
7899      public int getFlowCount() {
7900        if (flowBuilder_ == null) {
7901          return flow_.size();
7902        } else {
7903          return flowBuilder_.getCount();
7904        }
7905      }
7906      /**
7907       * <code>repeated .Flow flow = 8;</code>
7908       */
7909      public org.sonar.batch.protocol.output.BatchReport.Flow getFlow(int index) {
7910        if (flowBuilder_ == null) {
7911          return flow_.get(index);
7912        } else {
7913          return flowBuilder_.getMessage(index);
7914        }
7915      }
7916      /**
7917       * <code>repeated .Flow flow = 8;</code>
7918       */
7919      public Builder setFlow(
7920          int index, org.sonar.batch.protocol.output.BatchReport.Flow value) {
7921        if (flowBuilder_ == null) {
7922          if (value == null) {
7923            throw new NullPointerException();
7924          }
7925          ensureFlowIsMutable();
7926          flow_.set(index, value);
7927          onChanged();
7928        } else {
7929          flowBuilder_.setMessage(index, value);
7930        }
7931        return this;
7932      }
7933      /**
7934       * <code>repeated .Flow flow = 8;</code>
7935       */
7936      public Builder setFlow(
7937          int index, org.sonar.batch.protocol.output.BatchReport.Flow.Builder builderForValue) {
7938        if (flowBuilder_ == null) {
7939          ensureFlowIsMutable();
7940          flow_.set(index, builderForValue.build());
7941          onChanged();
7942        } else {
7943          flowBuilder_.setMessage(index, builderForValue.build());
7944        }
7945        return this;
7946      }
7947      /**
7948       * <code>repeated .Flow flow = 8;</code>
7949       */
7950      public Builder addFlow(org.sonar.batch.protocol.output.BatchReport.Flow value) {
7951        if (flowBuilder_ == null) {
7952          if (value == null) {
7953            throw new NullPointerException();
7954          }
7955          ensureFlowIsMutable();
7956          flow_.add(value);
7957          onChanged();
7958        } else {
7959          flowBuilder_.addMessage(value);
7960        }
7961        return this;
7962      }
7963      /**
7964       * <code>repeated .Flow flow = 8;</code>
7965       */
7966      public Builder addFlow(
7967          int index, org.sonar.batch.protocol.output.BatchReport.Flow value) {
7968        if (flowBuilder_ == null) {
7969          if (value == null) {
7970            throw new NullPointerException();
7971          }
7972          ensureFlowIsMutable();
7973          flow_.add(index, value);
7974          onChanged();
7975        } else {
7976          flowBuilder_.addMessage(index, value);
7977        }
7978        return this;
7979      }
7980      /**
7981       * <code>repeated .Flow flow = 8;</code>
7982       */
7983      public Builder addFlow(
7984          org.sonar.batch.protocol.output.BatchReport.Flow.Builder builderForValue) {
7985        if (flowBuilder_ == null) {
7986          ensureFlowIsMutable();
7987          flow_.add(builderForValue.build());
7988          onChanged();
7989        } else {
7990          flowBuilder_.addMessage(builderForValue.build());
7991        }
7992        return this;
7993      }
7994      /**
7995       * <code>repeated .Flow flow = 8;</code>
7996       */
7997      public Builder addFlow(
7998          int index, org.sonar.batch.protocol.output.BatchReport.Flow.Builder builderForValue) {
7999        if (flowBuilder_ == null) {
8000          ensureFlowIsMutable();
8001          flow_.add(index, builderForValue.build());
8002          onChanged();
8003        } else {
8004          flowBuilder_.addMessage(index, builderForValue.build());
8005        }
8006        return this;
8007      }
8008      /**
8009       * <code>repeated .Flow flow = 8;</code>
8010       */
8011      public Builder addAllFlow(
8012          java.lang.Iterable<? extends org.sonar.batch.protocol.output.BatchReport.Flow> values) {
8013        if (flowBuilder_ == null) {
8014          ensureFlowIsMutable();
8015          com.google.protobuf.AbstractMessageLite.Builder.addAll(
8016              values, flow_);
8017          onChanged();
8018        } else {
8019          flowBuilder_.addAllMessages(values);
8020        }
8021        return this;
8022      }
8023      /**
8024       * <code>repeated .Flow flow = 8;</code>
8025       */
8026      public Builder clearFlow() {
8027        if (flowBuilder_ == null) {
8028          flow_ = java.util.Collections.emptyList();
8029          bitField0_ = (bitField0_ & ~0x00000080);
8030          onChanged();
8031        } else {
8032          flowBuilder_.clear();
8033        }
8034        return this;
8035      }
8036      /**
8037       * <code>repeated .Flow flow = 8;</code>
8038       */
8039      public Builder removeFlow(int index) {
8040        if (flowBuilder_ == null) {
8041          ensureFlowIsMutable();
8042          flow_.remove(index);
8043          onChanged();
8044        } else {
8045          flowBuilder_.remove(index);
8046        }
8047        return this;
8048      }
8049      /**
8050       * <code>repeated .Flow flow = 8;</code>
8051       */
8052      public org.sonar.batch.protocol.output.BatchReport.Flow.Builder getFlowBuilder(
8053          int index) {
8054        return getFlowFieldBuilder().getBuilder(index);
8055      }
8056      /**
8057       * <code>repeated .Flow flow = 8;</code>
8058       */
8059      public org.sonar.batch.protocol.output.BatchReport.FlowOrBuilder getFlowOrBuilder(
8060          int index) {
8061        if (flowBuilder_ == null) {
8062          return flow_.get(index);  } else {
8063          return flowBuilder_.getMessageOrBuilder(index);
8064        }
8065      }
8066      /**
8067       * <code>repeated .Flow flow = 8;</code>
8068       */
8069      public java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.FlowOrBuilder> 
8070           getFlowOrBuilderList() {
8071        if (flowBuilder_ != null) {
8072          return flowBuilder_.getMessageOrBuilderList();
8073        } else {
8074          return java.util.Collections.unmodifiableList(flow_);
8075        }
8076      }
8077      /**
8078       * <code>repeated .Flow flow = 8;</code>
8079       */
8080      public org.sonar.batch.protocol.output.BatchReport.Flow.Builder addFlowBuilder() {
8081        return getFlowFieldBuilder().addBuilder(
8082            org.sonar.batch.protocol.output.BatchReport.Flow.getDefaultInstance());
8083      }
8084      /**
8085       * <code>repeated .Flow flow = 8;</code>
8086       */
8087      public org.sonar.batch.protocol.output.BatchReport.Flow.Builder addFlowBuilder(
8088          int index) {
8089        return getFlowFieldBuilder().addBuilder(
8090            index, org.sonar.batch.protocol.output.BatchReport.Flow.getDefaultInstance());
8091      }
8092      /**
8093       * <code>repeated .Flow flow = 8;</code>
8094       */
8095      public java.util.List<org.sonar.batch.protocol.output.BatchReport.Flow.Builder> 
8096           getFlowBuilderList() {
8097        return getFlowFieldBuilder().getBuilderList();
8098      }
8099      private com.google.protobuf.RepeatedFieldBuilder<
8100          org.sonar.batch.protocol.output.BatchReport.Flow, org.sonar.batch.protocol.output.BatchReport.Flow.Builder, org.sonar.batch.protocol.output.BatchReport.FlowOrBuilder> 
8101          getFlowFieldBuilder() {
8102        if (flowBuilder_ == null) {
8103          flowBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
8104              org.sonar.batch.protocol.output.BatchReport.Flow, org.sonar.batch.protocol.output.BatchReport.Flow.Builder, org.sonar.batch.protocol.output.BatchReport.FlowOrBuilder>(
8105                  flow_,
8106                  ((bitField0_ & 0x00000080) == 0x00000080),
8107                  getParentForChildren(),
8108                  isClean());
8109          flow_ = null;
8110        }
8111        return flowBuilder_;
8112      }
8113
8114      // @@protoc_insertion_point(builder_scope:Issue)
8115    }
8116
8117    // @@protoc_insertion_point(class_scope:Issue)
8118    private static final org.sonar.batch.protocol.output.BatchReport.Issue DEFAULT_INSTANCE;
8119    static {
8120      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.Issue();
8121    }
8122
8123    public static org.sonar.batch.protocol.output.BatchReport.Issue getDefaultInstance() {
8124      return DEFAULT_INSTANCE;
8125    }
8126
8127    public static final com.google.protobuf.Parser<Issue> PARSER =
8128        new com.google.protobuf.AbstractParser<Issue>() {
8129      public Issue parsePartialFrom(
8130          com.google.protobuf.CodedInputStream input,
8131          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8132          throws com.google.protobuf.InvalidProtocolBufferException {
8133        try {
8134          return new Issue(input, extensionRegistry);
8135        } catch (RuntimeException e) {
8136          if (e.getCause() instanceof
8137              com.google.protobuf.InvalidProtocolBufferException) {
8138            throw (com.google.protobuf.InvalidProtocolBufferException)
8139                e.getCause();
8140          }
8141          throw e;
8142        }
8143      }
8144    };
8145
8146    @java.lang.Override
8147    public com.google.protobuf.Parser<Issue> getParserForType() {
8148      return PARSER;
8149    }
8150
8151    public org.sonar.batch.protocol.output.BatchReport.Issue getDefaultInstanceForType() {
8152      return DEFAULT_INSTANCE;
8153    }
8154
8155  }
8156
8157  public interface IssueLocationOrBuilder extends
8158      // @@protoc_insertion_point(interface_extends:IssueLocation)
8159      com.google.protobuf.MessageOrBuilder {
8160
8161    /**
8162     * <code>optional int32 component_ref = 1;</code>
8163     */
8164    boolean hasComponentRef();
8165    /**
8166     * <code>optional int32 component_ref = 1;</code>
8167     */
8168    int getComponentRef();
8169
8170    /**
8171     * <code>optional .TextRange text_range = 2;</code>
8172     *
8173     * <pre>
8174     * Only when component is a file. Can be empty for a file if this is an issue global to the file.
8175     * </pre>
8176     */
8177    boolean hasTextRange();
8178    /**
8179     * <code>optional .TextRange text_range = 2;</code>
8180     *
8181     * <pre>
8182     * Only when component is a file. Can be empty for a file if this is an issue global to the file.
8183     * </pre>
8184     */
8185    org.sonar.batch.protocol.output.BatchReport.TextRange getTextRange();
8186    /**
8187     * <code>optional .TextRange text_range = 2;</code>
8188     *
8189     * <pre>
8190     * Only when component is a file. Can be empty for a file if this is an issue global to the file.
8191     * </pre>
8192     */
8193    org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getTextRangeOrBuilder();
8194
8195    /**
8196     * <code>optional string msg = 3;</code>
8197     */
8198    boolean hasMsg();
8199    /**
8200     * <code>optional string msg = 3;</code>
8201     */
8202    java.lang.String getMsg();
8203    /**
8204     * <code>optional string msg = 3;</code>
8205     */
8206    com.google.protobuf.ByteString
8207        getMsgBytes();
8208  }
8209  /**
8210   * Protobuf type {@code IssueLocation}
8211   */
8212  public  static final class IssueLocation extends
8213      com.google.protobuf.GeneratedMessage implements
8214      // @@protoc_insertion_point(message_implements:IssueLocation)
8215      IssueLocationOrBuilder {
8216    // Use IssueLocation.newBuilder() to construct.
8217    private IssueLocation(com.google.protobuf.GeneratedMessage.Builder builder) {
8218      super(builder);
8219    }
8220    private IssueLocation() {
8221      componentRef_ = 0;
8222      msg_ = "";
8223    }
8224
8225    @java.lang.Override
8226    public final com.google.protobuf.UnknownFieldSet
8227    getUnknownFields() {
8228      return this.unknownFields;
8229    }
8230    private IssueLocation(
8231        com.google.protobuf.CodedInputStream input,
8232        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
8233      this();
8234      int mutable_bitField0_ = 0;
8235      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
8236          com.google.protobuf.UnknownFieldSet.newBuilder();
8237      try {
8238        boolean done = false;
8239        while (!done) {
8240          int tag = input.readTag();
8241          switch (tag) {
8242            case 0:
8243              done = true;
8244              break;
8245            default: {
8246              if (!parseUnknownField(input, unknownFields,
8247                                     extensionRegistry, tag)) {
8248                done = true;
8249              }
8250              break;
8251            }
8252            case 8: {
8253              bitField0_ |= 0x00000001;
8254              componentRef_ = input.readInt32();
8255              break;
8256            }
8257            case 18: {
8258              org.sonar.batch.protocol.output.BatchReport.TextRange.Builder subBuilder = null;
8259              if (((bitField0_ & 0x00000002) == 0x00000002)) {
8260                subBuilder = textRange_.toBuilder();
8261              }
8262              textRange_ = input.readMessage(org.sonar.batch.protocol.output.BatchReport.TextRange.PARSER, extensionRegistry);
8263              if (subBuilder != null) {
8264                subBuilder.mergeFrom(textRange_);
8265                textRange_ = subBuilder.buildPartial();
8266              }
8267              bitField0_ |= 0x00000002;
8268              break;
8269            }
8270            case 26: {
8271              com.google.protobuf.ByteString bs = input.readBytes();
8272              bitField0_ |= 0x00000004;
8273              msg_ = bs;
8274              break;
8275            }
8276          }
8277        }
8278      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
8279        throw new RuntimeException(e.setUnfinishedMessage(this));
8280      } catch (java.io.IOException e) {
8281        throw new RuntimeException(
8282            new com.google.protobuf.InvalidProtocolBufferException(
8283                e.getMessage()).setUnfinishedMessage(this));
8284      } finally {
8285        this.unknownFields = unknownFields.build();
8286        makeExtensionsImmutable();
8287      }
8288    }
8289    public static final com.google.protobuf.Descriptors.Descriptor
8290        getDescriptor() {
8291      return org.sonar.batch.protocol.output.BatchReport.internal_static_IssueLocation_descriptor;
8292    }
8293
8294    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
8295        internalGetFieldAccessorTable() {
8296      return org.sonar.batch.protocol.output.BatchReport.internal_static_IssueLocation_fieldAccessorTable
8297          .ensureFieldAccessorsInitialized(
8298              org.sonar.batch.protocol.output.BatchReport.IssueLocation.class, org.sonar.batch.protocol.output.BatchReport.IssueLocation.Builder.class);
8299    }
8300
8301    private int bitField0_;
8302    public static final int COMPONENT_REF_FIELD_NUMBER = 1;
8303    private int componentRef_;
8304    /**
8305     * <code>optional int32 component_ref = 1;</code>
8306     */
8307    public boolean hasComponentRef() {
8308      return ((bitField0_ & 0x00000001) == 0x00000001);
8309    }
8310    /**
8311     * <code>optional int32 component_ref = 1;</code>
8312     */
8313    public int getComponentRef() {
8314      return componentRef_;
8315    }
8316
8317    public static final int TEXT_RANGE_FIELD_NUMBER = 2;
8318    private org.sonar.batch.protocol.output.BatchReport.TextRange textRange_;
8319    /**
8320     * <code>optional .TextRange text_range = 2;</code>
8321     *
8322     * <pre>
8323     * Only when component is a file. Can be empty for a file if this is an issue global to the file.
8324     * </pre>
8325     */
8326    public boolean hasTextRange() {
8327      return ((bitField0_ & 0x00000002) == 0x00000002);
8328    }
8329    /**
8330     * <code>optional .TextRange text_range = 2;</code>
8331     *
8332     * <pre>
8333     * Only when component is a file. Can be empty for a file if this is an issue global to the file.
8334     * </pre>
8335     */
8336    public org.sonar.batch.protocol.output.BatchReport.TextRange getTextRange() {
8337      return textRange_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : textRange_;
8338    }
8339    /**
8340     * <code>optional .TextRange text_range = 2;</code>
8341     *
8342     * <pre>
8343     * Only when component is a file. Can be empty for a file if this is an issue global to the file.
8344     * </pre>
8345     */
8346    public org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getTextRangeOrBuilder() {
8347      return textRange_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : textRange_;
8348    }
8349
8350    public static final int MSG_FIELD_NUMBER = 3;
8351    private volatile java.lang.Object msg_;
8352    /**
8353     * <code>optional string msg = 3;</code>
8354     */
8355    public boolean hasMsg() {
8356      return ((bitField0_ & 0x00000004) == 0x00000004);
8357    }
8358    /**
8359     * <code>optional string msg = 3;</code>
8360     */
8361    public java.lang.String getMsg() {
8362      java.lang.Object ref = msg_;
8363      if (ref instanceof java.lang.String) {
8364        return (java.lang.String) ref;
8365      } else {
8366        com.google.protobuf.ByteString bs = 
8367            (com.google.protobuf.ByteString) ref;
8368        java.lang.String s = bs.toStringUtf8();
8369        if (bs.isValidUtf8()) {
8370          msg_ = s;
8371        }
8372        return s;
8373      }
8374    }
8375    /**
8376     * <code>optional string msg = 3;</code>
8377     */
8378    public com.google.protobuf.ByteString
8379        getMsgBytes() {
8380      java.lang.Object ref = msg_;
8381      if (ref instanceof java.lang.String) {
8382        com.google.protobuf.ByteString b = 
8383            com.google.protobuf.ByteString.copyFromUtf8(
8384                (java.lang.String) ref);
8385        msg_ = b;
8386        return b;
8387      } else {
8388        return (com.google.protobuf.ByteString) ref;
8389      }
8390    }
8391
8392    private byte memoizedIsInitialized = -1;
8393    public final boolean isInitialized() {
8394      byte isInitialized = memoizedIsInitialized;
8395      if (isInitialized == 1) return true;
8396      if (isInitialized == 0) return false;
8397
8398      memoizedIsInitialized = 1;
8399      return true;
8400    }
8401
8402    public void writeTo(com.google.protobuf.CodedOutputStream output)
8403                        throws java.io.IOException {
8404      if (((bitField0_ & 0x00000001) == 0x00000001)) {
8405        output.writeInt32(1, componentRef_);
8406      }
8407      if (((bitField0_ & 0x00000002) == 0x00000002)) {
8408        output.writeMessage(2, getTextRange());
8409      }
8410      if (((bitField0_ & 0x00000004) == 0x00000004)) {
8411        output.writeBytes(3, getMsgBytes());
8412      }
8413      unknownFields.writeTo(output);
8414    }
8415
8416    private int memoizedSerializedSize = -1;
8417    public int getSerializedSize() {
8418      int size = memoizedSerializedSize;
8419      if (size != -1) return size;
8420
8421      size = 0;
8422      if (((bitField0_ & 0x00000001) == 0x00000001)) {
8423        size += com.google.protobuf.CodedOutputStream
8424          .computeInt32Size(1, componentRef_);
8425      }
8426      if (((bitField0_ & 0x00000002) == 0x00000002)) {
8427        size += com.google.protobuf.CodedOutputStream
8428          .computeMessageSize(2, getTextRange());
8429      }
8430      if (((bitField0_ & 0x00000004) == 0x00000004)) {
8431        size += com.google.protobuf.CodedOutputStream
8432          .computeBytesSize(3, getMsgBytes());
8433      }
8434      size += unknownFields.getSerializedSize();
8435      memoizedSerializedSize = size;
8436      return size;
8437    }
8438
8439    private static final long serialVersionUID = 0L;
8440    public static org.sonar.batch.protocol.output.BatchReport.IssueLocation parseFrom(
8441        com.google.protobuf.ByteString data)
8442        throws com.google.protobuf.InvalidProtocolBufferException {
8443      return PARSER.parseFrom(data);
8444    }
8445    public static org.sonar.batch.protocol.output.BatchReport.IssueLocation parseFrom(
8446        com.google.protobuf.ByteString data,
8447        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8448        throws com.google.protobuf.InvalidProtocolBufferException {
8449      return PARSER.parseFrom(data, extensionRegistry);
8450    }
8451    public static org.sonar.batch.protocol.output.BatchReport.IssueLocation parseFrom(byte[] data)
8452        throws com.google.protobuf.InvalidProtocolBufferException {
8453      return PARSER.parseFrom(data);
8454    }
8455    public static org.sonar.batch.protocol.output.BatchReport.IssueLocation parseFrom(
8456        byte[] data,
8457        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8458        throws com.google.protobuf.InvalidProtocolBufferException {
8459      return PARSER.parseFrom(data, extensionRegistry);
8460    }
8461    public static org.sonar.batch.protocol.output.BatchReport.IssueLocation parseFrom(java.io.InputStream input)
8462        throws java.io.IOException {
8463      return PARSER.parseFrom(input);
8464    }
8465    public static org.sonar.batch.protocol.output.BatchReport.IssueLocation parseFrom(
8466        java.io.InputStream input,
8467        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8468        throws java.io.IOException {
8469      return PARSER.parseFrom(input, extensionRegistry);
8470    }
8471    public static org.sonar.batch.protocol.output.BatchReport.IssueLocation parseDelimitedFrom(java.io.InputStream input)
8472        throws java.io.IOException {
8473      return PARSER.parseDelimitedFrom(input);
8474    }
8475    public static org.sonar.batch.protocol.output.BatchReport.IssueLocation parseDelimitedFrom(
8476        java.io.InputStream input,
8477        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8478        throws java.io.IOException {
8479      return PARSER.parseDelimitedFrom(input, extensionRegistry);
8480    }
8481    public static org.sonar.batch.protocol.output.BatchReport.IssueLocation parseFrom(
8482        com.google.protobuf.CodedInputStream input)
8483        throws java.io.IOException {
8484      return PARSER.parseFrom(input);
8485    }
8486    public static org.sonar.batch.protocol.output.BatchReport.IssueLocation parseFrom(
8487        com.google.protobuf.CodedInputStream input,
8488        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8489        throws java.io.IOException {
8490      return PARSER.parseFrom(input, extensionRegistry);
8491    }
8492
8493    public Builder newBuilderForType() { return newBuilder(); }
8494    public static Builder newBuilder() {
8495      return DEFAULT_INSTANCE.toBuilder();
8496    }
8497    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.IssueLocation prototype) {
8498      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
8499    }
8500    public Builder toBuilder() {
8501      return this == DEFAULT_INSTANCE
8502          ? new Builder() : new Builder().mergeFrom(this);
8503    }
8504
8505    @java.lang.Override
8506    protected Builder newBuilderForType(
8507        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
8508      Builder builder = new Builder(parent);
8509      return builder;
8510    }
8511    /**
8512     * Protobuf type {@code IssueLocation}
8513     */
8514    public static final class Builder extends
8515        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
8516        // @@protoc_insertion_point(builder_implements:IssueLocation)
8517        org.sonar.batch.protocol.output.BatchReport.IssueLocationOrBuilder {
8518      public static final com.google.protobuf.Descriptors.Descriptor
8519          getDescriptor() {
8520        return org.sonar.batch.protocol.output.BatchReport.internal_static_IssueLocation_descriptor;
8521      }
8522
8523      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
8524          internalGetFieldAccessorTable() {
8525        return org.sonar.batch.protocol.output.BatchReport.internal_static_IssueLocation_fieldAccessorTable
8526            .ensureFieldAccessorsInitialized(
8527                org.sonar.batch.protocol.output.BatchReport.IssueLocation.class, org.sonar.batch.protocol.output.BatchReport.IssueLocation.Builder.class);
8528      }
8529
8530      // Construct using org.sonar.batch.protocol.output.BatchReport.IssueLocation.newBuilder()
8531      private Builder() {
8532        maybeForceBuilderInitialization();
8533      }
8534
8535      private Builder(
8536          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
8537        super(parent);
8538        maybeForceBuilderInitialization();
8539      }
8540      private void maybeForceBuilderInitialization() {
8541        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
8542          getTextRangeFieldBuilder();
8543        }
8544      }
8545      public Builder clear() {
8546        super.clear();
8547        componentRef_ = 0;
8548        bitField0_ = (bitField0_ & ~0x00000001);
8549        if (textRangeBuilder_ == null) {
8550          textRange_ = null;
8551        } else {
8552          textRangeBuilder_.clear();
8553        }
8554        bitField0_ = (bitField0_ & ~0x00000002);
8555        msg_ = "";
8556        bitField0_ = (bitField0_ & ~0x00000004);
8557        return this;
8558      }
8559
8560      public com.google.protobuf.Descriptors.Descriptor
8561          getDescriptorForType() {
8562        return org.sonar.batch.protocol.output.BatchReport.internal_static_IssueLocation_descriptor;
8563      }
8564
8565      public org.sonar.batch.protocol.output.BatchReport.IssueLocation getDefaultInstanceForType() {
8566        return org.sonar.batch.protocol.output.BatchReport.IssueLocation.getDefaultInstance();
8567      }
8568
8569      public org.sonar.batch.protocol.output.BatchReport.IssueLocation build() {
8570        org.sonar.batch.protocol.output.BatchReport.IssueLocation result = buildPartial();
8571        if (!result.isInitialized()) {
8572          throw newUninitializedMessageException(result);
8573        }
8574        return result;
8575      }
8576
8577      public org.sonar.batch.protocol.output.BatchReport.IssueLocation buildPartial() {
8578        org.sonar.batch.protocol.output.BatchReport.IssueLocation result = new org.sonar.batch.protocol.output.BatchReport.IssueLocation(this);
8579        int from_bitField0_ = bitField0_;
8580        int to_bitField0_ = 0;
8581        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
8582          to_bitField0_ |= 0x00000001;
8583        }
8584        result.componentRef_ = componentRef_;
8585        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
8586          to_bitField0_ |= 0x00000002;
8587        }
8588        if (textRangeBuilder_ == null) {
8589          result.textRange_ = textRange_;
8590        } else {
8591          result.textRange_ = textRangeBuilder_.build();
8592        }
8593        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
8594          to_bitField0_ |= 0x00000004;
8595        }
8596        result.msg_ = msg_;
8597        result.bitField0_ = to_bitField0_;
8598        onBuilt();
8599        return result;
8600      }
8601
8602      public Builder mergeFrom(com.google.protobuf.Message other) {
8603        if (other instanceof org.sonar.batch.protocol.output.BatchReport.IssueLocation) {
8604          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.IssueLocation)other);
8605        } else {
8606          super.mergeFrom(other);
8607          return this;
8608        }
8609      }
8610
8611      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.IssueLocation other) {
8612        if (other == org.sonar.batch.protocol.output.BatchReport.IssueLocation.getDefaultInstance()) return this;
8613        if (other.hasComponentRef()) {
8614          setComponentRef(other.getComponentRef());
8615        }
8616        if (other.hasTextRange()) {
8617          mergeTextRange(other.getTextRange());
8618        }
8619        if (other.hasMsg()) {
8620          bitField0_ |= 0x00000004;
8621          msg_ = other.msg_;
8622          onChanged();
8623        }
8624        this.mergeUnknownFields(other.unknownFields);
8625        onChanged();
8626        return this;
8627      }
8628
8629      public final boolean isInitialized() {
8630        return true;
8631      }
8632
8633      public Builder mergeFrom(
8634          com.google.protobuf.CodedInputStream input,
8635          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8636          throws java.io.IOException {
8637        org.sonar.batch.protocol.output.BatchReport.IssueLocation parsedMessage = null;
8638        try {
8639          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
8640        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
8641          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.IssueLocation) e.getUnfinishedMessage();
8642          throw e;
8643        } finally {
8644          if (parsedMessage != null) {
8645            mergeFrom(parsedMessage);
8646          }
8647        }
8648        return this;
8649      }
8650      private int bitField0_;
8651
8652      private int componentRef_ ;
8653      /**
8654       * <code>optional int32 component_ref = 1;</code>
8655       */
8656      public boolean hasComponentRef() {
8657        return ((bitField0_ & 0x00000001) == 0x00000001);
8658      }
8659      /**
8660       * <code>optional int32 component_ref = 1;</code>
8661       */
8662      public int getComponentRef() {
8663        return componentRef_;
8664      }
8665      /**
8666       * <code>optional int32 component_ref = 1;</code>
8667       */
8668      public Builder setComponentRef(int value) {
8669        bitField0_ |= 0x00000001;
8670        componentRef_ = value;
8671        onChanged();
8672        return this;
8673      }
8674      /**
8675       * <code>optional int32 component_ref = 1;</code>
8676       */
8677      public Builder clearComponentRef() {
8678        bitField0_ = (bitField0_ & ~0x00000001);
8679        componentRef_ = 0;
8680        onChanged();
8681        return this;
8682      }
8683
8684      private org.sonar.batch.protocol.output.BatchReport.TextRange textRange_ = null;
8685      private com.google.protobuf.SingleFieldBuilder<
8686          org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> textRangeBuilder_;
8687      /**
8688       * <code>optional .TextRange text_range = 2;</code>
8689       *
8690       * <pre>
8691       * Only when component is a file. Can be empty for a file if this is an issue global to the file.
8692       * </pre>
8693       */
8694      public boolean hasTextRange() {
8695        return ((bitField0_ & 0x00000002) == 0x00000002);
8696      }
8697      /**
8698       * <code>optional .TextRange text_range = 2;</code>
8699       *
8700       * <pre>
8701       * Only when component is a file. Can be empty for a file if this is an issue global to the file.
8702       * </pre>
8703       */
8704      public org.sonar.batch.protocol.output.BatchReport.TextRange getTextRange() {
8705        if (textRangeBuilder_ == null) {
8706          return textRange_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : textRange_;
8707        } else {
8708          return textRangeBuilder_.getMessage();
8709        }
8710      }
8711      /**
8712       * <code>optional .TextRange text_range = 2;</code>
8713       *
8714       * <pre>
8715       * Only when component is a file. Can be empty for a file if this is an issue global to the file.
8716       * </pre>
8717       */
8718      public Builder setTextRange(org.sonar.batch.protocol.output.BatchReport.TextRange value) {
8719        if (textRangeBuilder_ == null) {
8720          if (value == null) {
8721            throw new NullPointerException();
8722          }
8723          textRange_ = value;
8724          onChanged();
8725        } else {
8726          textRangeBuilder_.setMessage(value);
8727        }
8728        bitField0_ |= 0x00000002;
8729        return this;
8730      }
8731      /**
8732       * <code>optional .TextRange text_range = 2;</code>
8733       *
8734       * <pre>
8735       * Only when component is a file. Can be empty for a file if this is an issue global to the file.
8736       * </pre>
8737       */
8738      public Builder setTextRange(
8739          org.sonar.batch.protocol.output.BatchReport.TextRange.Builder builderForValue) {
8740        if (textRangeBuilder_ == null) {
8741          textRange_ = builderForValue.build();
8742          onChanged();
8743        } else {
8744          textRangeBuilder_.setMessage(builderForValue.build());
8745        }
8746        bitField0_ |= 0x00000002;
8747        return this;
8748      }
8749      /**
8750       * <code>optional .TextRange text_range = 2;</code>
8751       *
8752       * <pre>
8753       * Only when component is a file. Can be empty for a file if this is an issue global to the file.
8754       * </pre>
8755       */
8756      public Builder mergeTextRange(org.sonar.batch.protocol.output.BatchReport.TextRange value) {
8757        if (textRangeBuilder_ == null) {
8758          if (((bitField0_ & 0x00000002) == 0x00000002) &&
8759              textRange_ != null &&
8760              textRange_ != org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance()) {
8761            textRange_ =
8762              org.sonar.batch.protocol.output.BatchReport.TextRange.newBuilder(textRange_).mergeFrom(value).buildPartial();
8763          } else {
8764            textRange_ = value;
8765          }
8766          onChanged();
8767        } else {
8768          textRangeBuilder_.mergeFrom(value);
8769        }
8770        bitField0_ |= 0x00000002;
8771        return this;
8772      }
8773      /**
8774       * <code>optional .TextRange text_range = 2;</code>
8775       *
8776       * <pre>
8777       * Only when component is a file. Can be empty for a file if this is an issue global to the file.
8778       * </pre>
8779       */
8780      public Builder clearTextRange() {
8781        if (textRangeBuilder_ == null) {
8782          textRange_ = null;
8783          onChanged();
8784        } else {
8785          textRangeBuilder_.clear();
8786        }
8787        bitField0_ = (bitField0_ & ~0x00000002);
8788        return this;
8789      }
8790      /**
8791       * <code>optional .TextRange text_range = 2;</code>
8792       *
8793       * <pre>
8794       * Only when component is a file. Can be empty for a file if this is an issue global to the file.
8795       * </pre>
8796       */
8797      public org.sonar.batch.protocol.output.BatchReport.TextRange.Builder getTextRangeBuilder() {
8798        bitField0_ |= 0x00000002;
8799        onChanged();
8800        return getTextRangeFieldBuilder().getBuilder();
8801      }
8802      /**
8803       * <code>optional .TextRange text_range = 2;</code>
8804       *
8805       * <pre>
8806       * Only when component is a file. Can be empty for a file if this is an issue global to the file.
8807       * </pre>
8808       */
8809      public org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getTextRangeOrBuilder() {
8810        if (textRangeBuilder_ != null) {
8811          return textRangeBuilder_.getMessageOrBuilder();
8812        } else {
8813          return textRange_ == null ?
8814              org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : textRange_;
8815        }
8816      }
8817      /**
8818       * <code>optional .TextRange text_range = 2;</code>
8819       *
8820       * <pre>
8821       * Only when component is a file. Can be empty for a file if this is an issue global to the file.
8822       * </pre>
8823       */
8824      private com.google.protobuf.SingleFieldBuilder<
8825          org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> 
8826          getTextRangeFieldBuilder() {
8827        if (textRangeBuilder_ == null) {
8828          textRangeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
8829              org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder>(
8830                  getTextRange(),
8831                  getParentForChildren(),
8832                  isClean());
8833          textRange_ = null;
8834        }
8835        return textRangeBuilder_;
8836      }
8837
8838      private java.lang.Object msg_ = "";
8839      /**
8840       * <code>optional string msg = 3;</code>
8841       */
8842      public boolean hasMsg() {
8843        return ((bitField0_ & 0x00000004) == 0x00000004);
8844      }
8845      /**
8846       * <code>optional string msg = 3;</code>
8847       */
8848      public java.lang.String getMsg() {
8849        java.lang.Object ref = msg_;
8850        if (!(ref instanceof java.lang.String)) {
8851          com.google.protobuf.ByteString bs =
8852              (com.google.protobuf.ByteString) ref;
8853          java.lang.String s = bs.toStringUtf8();
8854          if (bs.isValidUtf8()) {
8855            msg_ = s;
8856          }
8857          return s;
8858        } else {
8859          return (java.lang.String) ref;
8860        }
8861      }
8862      /**
8863       * <code>optional string msg = 3;</code>
8864       */
8865      public com.google.protobuf.ByteString
8866          getMsgBytes() {
8867        java.lang.Object ref = msg_;
8868        if (ref instanceof String) {
8869          com.google.protobuf.ByteString b = 
8870              com.google.protobuf.ByteString.copyFromUtf8(
8871                  (java.lang.String) ref);
8872          msg_ = b;
8873          return b;
8874        } else {
8875          return (com.google.protobuf.ByteString) ref;
8876        }
8877      }
8878      /**
8879       * <code>optional string msg = 3;</code>
8880       */
8881      public Builder setMsg(
8882          java.lang.String value) {
8883        if (value == null) {
8884    throw new NullPointerException();
8885  }
8886  bitField0_ |= 0x00000004;
8887        msg_ = value;
8888        onChanged();
8889        return this;
8890      }
8891      /**
8892       * <code>optional string msg = 3;</code>
8893       */
8894      public Builder clearMsg() {
8895        bitField0_ = (bitField0_ & ~0x00000004);
8896        msg_ = getDefaultInstance().getMsg();
8897        onChanged();
8898        return this;
8899      }
8900      /**
8901       * <code>optional string msg = 3;</code>
8902       */
8903      public Builder setMsgBytes(
8904          com.google.protobuf.ByteString value) {
8905        if (value == null) {
8906    throw new NullPointerException();
8907  }
8908  bitField0_ |= 0x00000004;
8909        msg_ = value;
8910        onChanged();
8911        return this;
8912      }
8913
8914      // @@protoc_insertion_point(builder_scope:IssueLocation)
8915    }
8916
8917    // @@protoc_insertion_point(class_scope:IssueLocation)
8918    private static final org.sonar.batch.protocol.output.BatchReport.IssueLocation DEFAULT_INSTANCE;
8919    static {
8920      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.IssueLocation();
8921    }
8922
8923    public static org.sonar.batch.protocol.output.BatchReport.IssueLocation getDefaultInstance() {
8924      return DEFAULT_INSTANCE;
8925    }
8926
8927    public static final com.google.protobuf.Parser<IssueLocation> PARSER =
8928        new com.google.protobuf.AbstractParser<IssueLocation>() {
8929      public IssueLocation parsePartialFrom(
8930          com.google.protobuf.CodedInputStream input,
8931          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8932          throws com.google.protobuf.InvalidProtocolBufferException {
8933        try {
8934          return new IssueLocation(input, extensionRegistry);
8935        } catch (RuntimeException e) {
8936          if (e.getCause() instanceof
8937              com.google.protobuf.InvalidProtocolBufferException) {
8938            throw (com.google.protobuf.InvalidProtocolBufferException)
8939                e.getCause();
8940          }
8941          throw e;
8942        }
8943      }
8944    };
8945
8946    @java.lang.Override
8947    public com.google.protobuf.Parser<IssueLocation> getParserForType() {
8948      return PARSER;
8949    }
8950
8951    public org.sonar.batch.protocol.output.BatchReport.IssueLocation getDefaultInstanceForType() {
8952      return DEFAULT_INSTANCE;
8953    }
8954
8955  }
8956
8957  public interface FlowOrBuilder extends
8958      // @@protoc_insertion_point(interface_extends:Flow)
8959      com.google.protobuf.MessageOrBuilder {
8960
8961    /**
8962     * <code>repeated .IssueLocation location = 1;</code>
8963     */
8964    java.util.List<org.sonar.batch.protocol.output.BatchReport.IssueLocation> 
8965        getLocationList();
8966    /**
8967     * <code>repeated .IssueLocation location = 1;</code>
8968     */
8969    org.sonar.batch.protocol.output.BatchReport.IssueLocation getLocation(int index);
8970    /**
8971     * <code>repeated .IssueLocation location = 1;</code>
8972     */
8973    int getLocationCount();
8974    /**
8975     * <code>repeated .IssueLocation location = 1;</code>
8976     */
8977    java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.IssueLocationOrBuilder> 
8978        getLocationOrBuilderList();
8979    /**
8980     * <code>repeated .IssueLocation location = 1;</code>
8981     */
8982    org.sonar.batch.protocol.output.BatchReport.IssueLocationOrBuilder getLocationOrBuilder(
8983        int index);
8984  }
8985  /**
8986   * Protobuf type {@code Flow}
8987   */
8988  public  static final class Flow extends
8989      com.google.protobuf.GeneratedMessage implements
8990      // @@protoc_insertion_point(message_implements:Flow)
8991      FlowOrBuilder {
8992    // Use Flow.newBuilder() to construct.
8993    private Flow(com.google.protobuf.GeneratedMessage.Builder builder) {
8994      super(builder);
8995    }
8996    private Flow() {
8997      location_ = java.util.Collections.emptyList();
8998    }
8999
9000    @java.lang.Override
9001    public final com.google.protobuf.UnknownFieldSet
9002    getUnknownFields() {
9003      return this.unknownFields;
9004    }
9005    private Flow(
9006        com.google.protobuf.CodedInputStream input,
9007        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
9008      this();
9009      int mutable_bitField0_ = 0;
9010      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
9011          com.google.protobuf.UnknownFieldSet.newBuilder();
9012      try {
9013        boolean done = false;
9014        while (!done) {
9015          int tag = input.readTag();
9016          switch (tag) {
9017            case 0:
9018              done = true;
9019              break;
9020            default: {
9021              if (!parseUnknownField(input, unknownFields,
9022                                     extensionRegistry, tag)) {
9023                done = true;
9024              }
9025              break;
9026            }
9027            case 10: {
9028              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
9029                location_ = new java.util.ArrayList<org.sonar.batch.protocol.output.BatchReport.IssueLocation>();
9030                mutable_bitField0_ |= 0x00000001;
9031              }
9032              location_.add(input.readMessage(org.sonar.batch.protocol.output.BatchReport.IssueLocation.PARSER, extensionRegistry));
9033              break;
9034            }
9035          }
9036        }
9037      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
9038        throw new RuntimeException(e.setUnfinishedMessage(this));
9039      } catch (java.io.IOException e) {
9040        throw new RuntimeException(
9041            new com.google.protobuf.InvalidProtocolBufferException(
9042                e.getMessage()).setUnfinishedMessage(this));
9043      } finally {
9044        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
9045          location_ = java.util.Collections.unmodifiableList(location_);
9046        }
9047        this.unknownFields = unknownFields.build();
9048        makeExtensionsImmutable();
9049      }
9050    }
9051    public static final com.google.protobuf.Descriptors.Descriptor
9052        getDescriptor() {
9053      return org.sonar.batch.protocol.output.BatchReport.internal_static_Flow_descriptor;
9054    }
9055
9056    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
9057        internalGetFieldAccessorTable() {
9058      return org.sonar.batch.protocol.output.BatchReport.internal_static_Flow_fieldAccessorTable
9059          .ensureFieldAccessorsInitialized(
9060              org.sonar.batch.protocol.output.BatchReport.Flow.class, org.sonar.batch.protocol.output.BatchReport.Flow.Builder.class);
9061    }
9062
9063    public static final int LOCATION_FIELD_NUMBER = 1;
9064    private java.util.List<org.sonar.batch.protocol.output.BatchReport.IssueLocation> location_;
9065    /**
9066     * <code>repeated .IssueLocation location = 1;</code>
9067     */
9068    public java.util.List<org.sonar.batch.protocol.output.BatchReport.IssueLocation> getLocationList() {
9069      return location_;
9070    }
9071    /**
9072     * <code>repeated .IssueLocation location = 1;</code>
9073     */
9074    public java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.IssueLocationOrBuilder> 
9075        getLocationOrBuilderList() {
9076      return location_;
9077    }
9078    /**
9079     * <code>repeated .IssueLocation location = 1;</code>
9080     */
9081    public int getLocationCount() {
9082      return location_.size();
9083    }
9084    /**
9085     * <code>repeated .IssueLocation location = 1;</code>
9086     */
9087    public org.sonar.batch.protocol.output.BatchReport.IssueLocation getLocation(int index) {
9088      return location_.get(index);
9089    }
9090    /**
9091     * <code>repeated .IssueLocation location = 1;</code>
9092     */
9093    public org.sonar.batch.protocol.output.BatchReport.IssueLocationOrBuilder getLocationOrBuilder(
9094        int index) {
9095      return location_.get(index);
9096    }
9097
9098    private byte memoizedIsInitialized = -1;
9099    public final boolean isInitialized() {
9100      byte isInitialized = memoizedIsInitialized;
9101      if (isInitialized == 1) return true;
9102      if (isInitialized == 0) return false;
9103
9104      memoizedIsInitialized = 1;
9105      return true;
9106    }
9107
9108    public void writeTo(com.google.protobuf.CodedOutputStream output)
9109                        throws java.io.IOException {
9110      for (int i = 0; i < location_.size(); i++) {
9111        output.writeMessage(1, location_.get(i));
9112      }
9113      unknownFields.writeTo(output);
9114    }
9115
9116    private int memoizedSerializedSize = -1;
9117    public int getSerializedSize() {
9118      int size = memoizedSerializedSize;
9119      if (size != -1) return size;
9120
9121      size = 0;
9122      for (int i = 0; i < location_.size(); i++) {
9123        size += com.google.protobuf.CodedOutputStream
9124          .computeMessageSize(1, location_.get(i));
9125      }
9126      size += unknownFields.getSerializedSize();
9127      memoizedSerializedSize = size;
9128      return size;
9129    }
9130
9131    private static final long serialVersionUID = 0L;
9132    public static org.sonar.batch.protocol.output.BatchReport.Flow parseFrom(
9133        com.google.protobuf.ByteString data)
9134        throws com.google.protobuf.InvalidProtocolBufferException {
9135      return PARSER.parseFrom(data);
9136    }
9137    public static org.sonar.batch.protocol.output.BatchReport.Flow parseFrom(
9138        com.google.protobuf.ByteString data,
9139        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9140        throws com.google.protobuf.InvalidProtocolBufferException {
9141      return PARSER.parseFrom(data, extensionRegistry);
9142    }
9143    public static org.sonar.batch.protocol.output.BatchReport.Flow parseFrom(byte[] data)
9144        throws com.google.protobuf.InvalidProtocolBufferException {
9145      return PARSER.parseFrom(data);
9146    }
9147    public static org.sonar.batch.protocol.output.BatchReport.Flow parseFrom(
9148        byte[] data,
9149        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9150        throws com.google.protobuf.InvalidProtocolBufferException {
9151      return PARSER.parseFrom(data, extensionRegistry);
9152    }
9153    public static org.sonar.batch.protocol.output.BatchReport.Flow parseFrom(java.io.InputStream input)
9154        throws java.io.IOException {
9155      return PARSER.parseFrom(input);
9156    }
9157    public static org.sonar.batch.protocol.output.BatchReport.Flow parseFrom(
9158        java.io.InputStream input,
9159        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9160        throws java.io.IOException {
9161      return PARSER.parseFrom(input, extensionRegistry);
9162    }
9163    public static org.sonar.batch.protocol.output.BatchReport.Flow parseDelimitedFrom(java.io.InputStream input)
9164        throws java.io.IOException {
9165      return PARSER.parseDelimitedFrom(input);
9166    }
9167    public static org.sonar.batch.protocol.output.BatchReport.Flow parseDelimitedFrom(
9168        java.io.InputStream input,
9169        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9170        throws java.io.IOException {
9171      return PARSER.parseDelimitedFrom(input, extensionRegistry);
9172    }
9173    public static org.sonar.batch.protocol.output.BatchReport.Flow parseFrom(
9174        com.google.protobuf.CodedInputStream input)
9175        throws java.io.IOException {
9176      return PARSER.parseFrom(input);
9177    }
9178    public static org.sonar.batch.protocol.output.BatchReport.Flow parseFrom(
9179        com.google.protobuf.CodedInputStream input,
9180        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9181        throws java.io.IOException {
9182      return PARSER.parseFrom(input, extensionRegistry);
9183    }
9184
9185    public Builder newBuilderForType() { return newBuilder(); }
9186    public static Builder newBuilder() {
9187      return DEFAULT_INSTANCE.toBuilder();
9188    }
9189    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.Flow prototype) {
9190      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
9191    }
9192    public Builder toBuilder() {
9193      return this == DEFAULT_INSTANCE
9194          ? new Builder() : new Builder().mergeFrom(this);
9195    }
9196
9197    @java.lang.Override
9198    protected Builder newBuilderForType(
9199        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
9200      Builder builder = new Builder(parent);
9201      return builder;
9202    }
9203    /**
9204     * Protobuf type {@code Flow}
9205     */
9206    public static final class Builder extends
9207        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
9208        // @@protoc_insertion_point(builder_implements:Flow)
9209        org.sonar.batch.protocol.output.BatchReport.FlowOrBuilder {
9210      public static final com.google.protobuf.Descriptors.Descriptor
9211          getDescriptor() {
9212        return org.sonar.batch.protocol.output.BatchReport.internal_static_Flow_descriptor;
9213      }
9214
9215      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
9216          internalGetFieldAccessorTable() {
9217        return org.sonar.batch.protocol.output.BatchReport.internal_static_Flow_fieldAccessorTable
9218            .ensureFieldAccessorsInitialized(
9219                org.sonar.batch.protocol.output.BatchReport.Flow.class, org.sonar.batch.protocol.output.BatchReport.Flow.Builder.class);
9220      }
9221
9222      // Construct using org.sonar.batch.protocol.output.BatchReport.Flow.newBuilder()
9223      private Builder() {
9224        maybeForceBuilderInitialization();
9225      }
9226
9227      private Builder(
9228          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
9229        super(parent);
9230        maybeForceBuilderInitialization();
9231      }
9232      private void maybeForceBuilderInitialization() {
9233        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
9234          getLocationFieldBuilder();
9235        }
9236      }
9237      public Builder clear() {
9238        super.clear();
9239        if (locationBuilder_ == null) {
9240          location_ = java.util.Collections.emptyList();
9241          bitField0_ = (bitField0_ & ~0x00000001);
9242        } else {
9243          locationBuilder_.clear();
9244        }
9245        return this;
9246      }
9247
9248      public com.google.protobuf.Descriptors.Descriptor
9249          getDescriptorForType() {
9250        return org.sonar.batch.protocol.output.BatchReport.internal_static_Flow_descriptor;
9251      }
9252
9253      public org.sonar.batch.protocol.output.BatchReport.Flow getDefaultInstanceForType() {
9254        return org.sonar.batch.protocol.output.BatchReport.Flow.getDefaultInstance();
9255      }
9256
9257      public org.sonar.batch.protocol.output.BatchReport.Flow build() {
9258        org.sonar.batch.protocol.output.BatchReport.Flow result = buildPartial();
9259        if (!result.isInitialized()) {
9260          throw newUninitializedMessageException(result);
9261        }
9262        return result;
9263      }
9264
9265      public org.sonar.batch.protocol.output.BatchReport.Flow buildPartial() {
9266        org.sonar.batch.protocol.output.BatchReport.Flow result = new org.sonar.batch.protocol.output.BatchReport.Flow(this);
9267        int from_bitField0_ = bitField0_;
9268        if (locationBuilder_ == null) {
9269          if (((bitField0_ & 0x00000001) == 0x00000001)) {
9270            location_ = java.util.Collections.unmodifiableList(location_);
9271            bitField0_ = (bitField0_ & ~0x00000001);
9272          }
9273          result.location_ = location_;
9274        } else {
9275          result.location_ = locationBuilder_.build();
9276        }
9277        onBuilt();
9278        return result;
9279      }
9280
9281      public Builder mergeFrom(com.google.protobuf.Message other) {
9282        if (other instanceof org.sonar.batch.protocol.output.BatchReport.Flow) {
9283          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.Flow)other);
9284        } else {
9285          super.mergeFrom(other);
9286          return this;
9287        }
9288      }
9289
9290      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.Flow other) {
9291        if (other == org.sonar.batch.protocol.output.BatchReport.Flow.getDefaultInstance()) return this;
9292        if (locationBuilder_ == null) {
9293          if (!other.location_.isEmpty()) {
9294            if (location_.isEmpty()) {
9295              location_ = other.location_;
9296              bitField0_ = (bitField0_ & ~0x00000001);
9297            } else {
9298              ensureLocationIsMutable();
9299              location_.addAll(other.location_);
9300            }
9301            onChanged();
9302          }
9303        } else {
9304          if (!other.location_.isEmpty()) {
9305            if (locationBuilder_.isEmpty()) {
9306              locationBuilder_.dispose();
9307              locationBuilder_ = null;
9308              location_ = other.location_;
9309              bitField0_ = (bitField0_ & ~0x00000001);
9310              locationBuilder_ = 
9311                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
9312                   getLocationFieldBuilder() : null;
9313            } else {
9314              locationBuilder_.addAllMessages(other.location_);
9315            }
9316          }
9317        }
9318        this.mergeUnknownFields(other.unknownFields);
9319        onChanged();
9320        return this;
9321      }
9322
9323      public final boolean isInitialized() {
9324        return true;
9325      }
9326
9327      public Builder mergeFrom(
9328          com.google.protobuf.CodedInputStream input,
9329          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9330          throws java.io.IOException {
9331        org.sonar.batch.protocol.output.BatchReport.Flow parsedMessage = null;
9332        try {
9333          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
9334        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
9335          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.Flow) e.getUnfinishedMessage();
9336          throw e;
9337        } finally {
9338          if (parsedMessage != null) {
9339            mergeFrom(parsedMessage);
9340          }
9341        }
9342        return this;
9343      }
9344      private int bitField0_;
9345
9346      private java.util.List<org.sonar.batch.protocol.output.BatchReport.IssueLocation> location_ =
9347        java.util.Collections.emptyList();
9348      private void ensureLocationIsMutable() {
9349        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
9350          location_ = new java.util.ArrayList<org.sonar.batch.protocol.output.BatchReport.IssueLocation>(location_);
9351          bitField0_ |= 0x00000001;
9352         }
9353      }
9354
9355      private com.google.protobuf.RepeatedFieldBuilder<
9356          org.sonar.batch.protocol.output.BatchReport.IssueLocation, org.sonar.batch.protocol.output.BatchReport.IssueLocation.Builder, org.sonar.batch.protocol.output.BatchReport.IssueLocationOrBuilder> locationBuilder_;
9357
9358      /**
9359       * <code>repeated .IssueLocation location = 1;</code>
9360       */
9361      public java.util.List<org.sonar.batch.protocol.output.BatchReport.IssueLocation> getLocationList() {
9362        if (locationBuilder_ == null) {
9363          return java.util.Collections.unmodifiableList(location_);
9364        } else {
9365          return locationBuilder_.getMessageList();
9366        }
9367      }
9368      /**
9369       * <code>repeated .IssueLocation location = 1;</code>
9370       */
9371      public int getLocationCount() {
9372        if (locationBuilder_ == null) {
9373          return location_.size();
9374        } else {
9375          return locationBuilder_.getCount();
9376        }
9377      }
9378      /**
9379       * <code>repeated .IssueLocation location = 1;</code>
9380       */
9381      public org.sonar.batch.protocol.output.BatchReport.IssueLocation getLocation(int index) {
9382        if (locationBuilder_ == null) {
9383          return location_.get(index);
9384        } else {
9385          return locationBuilder_.getMessage(index);
9386        }
9387      }
9388      /**
9389       * <code>repeated .IssueLocation location = 1;</code>
9390       */
9391      public Builder setLocation(
9392          int index, org.sonar.batch.protocol.output.BatchReport.IssueLocation value) {
9393        if (locationBuilder_ == null) {
9394          if (value == null) {
9395            throw new NullPointerException();
9396          }
9397          ensureLocationIsMutable();
9398          location_.set(index, value);
9399          onChanged();
9400        } else {
9401          locationBuilder_.setMessage(index, value);
9402        }
9403        return this;
9404      }
9405      /**
9406       * <code>repeated .IssueLocation location = 1;</code>
9407       */
9408      public Builder setLocation(
9409          int index, org.sonar.batch.protocol.output.BatchReport.IssueLocation.Builder builderForValue) {
9410        if (locationBuilder_ == null) {
9411          ensureLocationIsMutable();
9412          location_.set(index, builderForValue.build());
9413          onChanged();
9414        } else {
9415          locationBuilder_.setMessage(index, builderForValue.build());
9416        }
9417        return this;
9418      }
9419      /**
9420       * <code>repeated .IssueLocation location = 1;</code>
9421       */
9422      public Builder addLocation(org.sonar.batch.protocol.output.BatchReport.IssueLocation value) {
9423        if (locationBuilder_ == null) {
9424          if (value == null) {
9425            throw new NullPointerException();
9426          }
9427          ensureLocationIsMutable();
9428          location_.add(value);
9429          onChanged();
9430        } else {
9431          locationBuilder_.addMessage(value);
9432        }
9433        return this;
9434      }
9435      /**
9436       * <code>repeated .IssueLocation location = 1;</code>
9437       */
9438      public Builder addLocation(
9439          int index, org.sonar.batch.protocol.output.BatchReport.IssueLocation value) {
9440        if (locationBuilder_ == null) {
9441          if (value == null) {
9442            throw new NullPointerException();
9443          }
9444          ensureLocationIsMutable();
9445          location_.add(index, value);
9446          onChanged();
9447        } else {
9448          locationBuilder_.addMessage(index, value);
9449        }
9450        return this;
9451      }
9452      /**
9453       * <code>repeated .IssueLocation location = 1;</code>
9454       */
9455      public Builder addLocation(
9456          org.sonar.batch.protocol.output.BatchReport.IssueLocation.Builder builderForValue) {
9457        if (locationBuilder_ == null) {
9458          ensureLocationIsMutable();
9459          location_.add(builderForValue.build());
9460          onChanged();
9461        } else {
9462          locationBuilder_.addMessage(builderForValue.build());
9463        }
9464        return this;
9465      }
9466      /**
9467       * <code>repeated .IssueLocation location = 1;</code>
9468       */
9469      public Builder addLocation(
9470          int index, org.sonar.batch.protocol.output.BatchReport.IssueLocation.Builder builderForValue) {
9471        if (locationBuilder_ == null) {
9472          ensureLocationIsMutable();
9473          location_.add(index, builderForValue.build());
9474          onChanged();
9475        } else {
9476          locationBuilder_.addMessage(index, builderForValue.build());
9477        }
9478        return this;
9479      }
9480      /**
9481       * <code>repeated .IssueLocation location = 1;</code>
9482       */
9483      public Builder addAllLocation(
9484          java.lang.Iterable<? extends org.sonar.batch.protocol.output.BatchReport.IssueLocation> values) {
9485        if (locationBuilder_ == null) {
9486          ensureLocationIsMutable();
9487          com.google.protobuf.AbstractMessageLite.Builder.addAll(
9488              values, location_);
9489          onChanged();
9490        } else {
9491          locationBuilder_.addAllMessages(values);
9492        }
9493        return this;
9494      }
9495      /**
9496       * <code>repeated .IssueLocation location = 1;</code>
9497       */
9498      public Builder clearLocation() {
9499        if (locationBuilder_ == null) {
9500          location_ = java.util.Collections.emptyList();
9501          bitField0_ = (bitField0_ & ~0x00000001);
9502          onChanged();
9503        } else {
9504          locationBuilder_.clear();
9505        }
9506        return this;
9507      }
9508      /**
9509       * <code>repeated .IssueLocation location = 1;</code>
9510       */
9511      public Builder removeLocation(int index) {
9512        if (locationBuilder_ == null) {
9513          ensureLocationIsMutable();
9514          location_.remove(index);
9515          onChanged();
9516        } else {
9517          locationBuilder_.remove(index);
9518        }
9519        return this;
9520      }
9521      /**
9522       * <code>repeated .IssueLocation location = 1;</code>
9523       */
9524      public org.sonar.batch.protocol.output.BatchReport.IssueLocation.Builder getLocationBuilder(
9525          int index) {
9526        return getLocationFieldBuilder().getBuilder(index);
9527      }
9528      /**
9529       * <code>repeated .IssueLocation location = 1;</code>
9530       */
9531      public org.sonar.batch.protocol.output.BatchReport.IssueLocationOrBuilder getLocationOrBuilder(
9532          int index) {
9533        if (locationBuilder_ == null) {
9534          return location_.get(index);  } else {
9535          return locationBuilder_.getMessageOrBuilder(index);
9536        }
9537      }
9538      /**
9539       * <code>repeated .IssueLocation location = 1;</code>
9540       */
9541      public java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.IssueLocationOrBuilder> 
9542           getLocationOrBuilderList() {
9543        if (locationBuilder_ != null) {
9544          return locationBuilder_.getMessageOrBuilderList();
9545        } else {
9546          return java.util.Collections.unmodifiableList(location_);
9547        }
9548      }
9549      /**
9550       * <code>repeated .IssueLocation location = 1;</code>
9551       */
9552      public org.sonar.batch.protocol.output.BatchReport.IssueLocation.Builder addLocationBuilder() {
9553        return getLocationFieldBuilder().addBuilder(
9554            org.sonar.batch.protocol.output.BatchReport.IssueLocation.getDefaultInstance());
9555      }
9556      /**
9557       * <code>repeated .IssueLocation location = 1;</code>
9558       */
9559      public org.sonar.batch.protocol.output.BatchReport.IssueLocation.Builder addLocationBuilder(
9560          int index) {
9561        return getLocationFieldBuilder().addBuilder(
9562            index, org.sonar.batch.protocol.output.BatchReport.IssueLocation.getDefaultInstance());
9563      }
9564      /**
9565       * <code>repeated .IssueLocation location = 1;</code>
9566       */
9567      public java.util.List<org.sonar.batch.protocol.output.BatchReport.IssueLocation.Builder> 
9568           getLocationBuilderList() {
9569        return getLocationFieldBuilder().getBuilderList();
9570      }
9571      private com.google.protobuf.RepeatedFieldBuilder<
9572          org.sonar.batch.protocol.output.BatchReport.IssueLocation, org.sonar.batch.protocol.output.BatchReport.IssueLocation.Builder, org.sonar.batch.protocol.output.BatchReport.IssueLocationOrBuilder> 
9573          getLocationFieldBuilder() {
9574        if (locationBuilder_ == null) {
9575          locationBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
9576              org.sonar.batch.protocol.output.BatchReport.IssueLocation, org.sonar.batch.protocol.output.BatchReport.IssueLocation.Builder, org.sonar.batch.protocol.output.BatchReport.IssueLocationOrBuilder>(
9577                  location_,
9578                  ((bitField0_ & 0x00000001) == 0x00000001),
9579                  getParentForChildren(),
9580                  isClean());
9581          location_ = null;
9582        }
9583        return locationBuilder_;
9584      }
9585
9586      // @@protoc_insertion_point(builder_scope:Flow)
9587    }
9588
9589    // @@protoc_insertion_point(class_scope:Flow)
9590    private static final org.sonar.batch.protocol.output.BatchReport.Flow DEFAULT_INSTANCE;
9591    static {
9592      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.Flow();
9593    }
9594
9595    public static org.sonar.batch.protocol.output.BatchReport.Flow getDefaultInstance() {
9596      return DEFAULT_INSTANCE;
9597    }
9598
9599    public static final com.google.protobuf.Parser<Flow> PARSER =
9600        new com.google.protobuf.AbstractParser<Flow>() {
9601      public Flow parsePartialFrom(
9602          com.google.protobuf.CodedInputStream input,
9603          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9604          throws com.google.protobuf.InvalidProtocolBufferException {
9605        try {
9606          return new Flow(input, extensionRegistry);
9607        } catch (RuntimeException e) {
9608          if (e.getCause() instanceof
9609              com.google.protobuf.InvalidProtocolBufferException) {
9610            throw (com.google.protobuf.InvalidProtocolBufferException)
9611                e.getCause();
9612          }
9613          throw e;
9614        }
9615      }
9616    };
9617
9618    @java.lang.Override
9619    public com.google.protobuf.Parser<Flow> getParserForType() {
9620      return PARSER;
9621    }
9622
9623    public org.sonar.batch.protocol.output.BatchReport.Flow getDefaultInstanceForType() {
9624      return DEFAULT_INSTANCE;
9625    }
9626
9627  }
9628
9629  public interface ChangesetsOrBuilder extends
9630      // @@protoc_insertion_point(interface_extends:Changesets)
9631      com.google.protobuf.MessageOrBuilder {
9632
9633    /**
9634     * <code>optional int32 component_ref = 1;</code>
9635     */
9636    boolean hasComponentRef();
9637    /**
9638     * <code>optional int32 component_ref = 1;</code>
9639     */
9640    int getComponentRef();
9641
9642    /**
9643     * <code>repeated .Changesets.Changeset changeset = 2;</code>
9644     */
9645    java.util.List<org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset> 
9646        getChangesetList();
9647    /**
9648     * <code>repeated .Changesets.Changeset changeset = 2;</code>
9649     */
9650    org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset getChangeset(int index);
9651    /**
9652     * <code>repeated .Changesets.Changeset changeset = 2;</code>
9653     */
9654    int getChangesetCount();
9655    /**
9656     * <code>repeated .Changesets.Changeset changeset = 2;</code>
9657     */
9658    java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.Changesets.ChangesetOrBuilder> 
9659        getChangesetOrBuilderList();
9660    /**
9661     * <code>repeated .Changesets.Changeset changeset = 2;</code>
9662     */
9663    org.sonar.batch.protocol.output.BatchReport.Changesets.ChangesetOrBuilder getChangesetOrBuilder(
9664        int index);
9665
9666    /**
9667     * <code>repeated int32 changesetIndexByLine = 3 [packed = true];</code>
9668     *
9669     * <pre>
9670     * if changesetIndexByLine[5] = 2 then it means that changeset[2] is the last one on line 6
9671     * </pre>
9672     */
9673    java.util.List<java.lang.Integer> getChangesetIndexByLineList();
9674    /**
9675     * <code>repeated int32 changesetIndexByLine = 3 [packed = true];</code>
9676     *
9677     * <pre>
9678     * if changesetIndexByLine[5] = 2 then it means that changeset[2] is the last one on line 6
9679     * </pre>
9680     */
9681    int getChangesetIndexByLineCount();
9682    /**
9683     * <code>repeated int32 changesetIndexByLine = 3 [packed = true];</code>
9684     *
9685     * <pre>
9686     * if changesetIndexByLine[5] = 2 then it means that changeset[2] is the last one on line 6
9687     * </pre>
9688     */
9689    int getChangesetIndexByLine(int index);
9690  }
9691  /**
9692   * Protobuf type {@code Changesets}
9693   */
9694  public  static final class Changesets extends
9695      com.google.protobuf.GeneratedMessage implements
9696      // @@protoc_insertion_point(message_implements:Changesets)
9697      ChangesetsOrBuilder {
9698    // Use Changesets.newBuilder() to construct.
9699    private Changesets(com.google.protobuf.GeneratedMessage.Builder builder) {
9700      super(builder);
9701    }
9702    private Changesets() {
9703      componentRef_ = 0;
9704      changeset_ = java.util.Collections.emptyList();
9705      changesetIndexByLine_ = java.util.Collections.emptyList();
9706    }
9707
9708    @java.lang.Override
9709    public final com.google.protobuf.UnknownFieldSet
9710    getUnknownFields() {
9711      return this.unknownFields;
9712    }
9713    private Changesets(
9714        com.google.protobuf.CodedInputStream input,
9715        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
9716      this();
9717      int mutable_bitField0_ = 0;
9718      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
9719          com.google.protobuf.UnknownFieldSet.newBuilder();
9720      try {
9721        boolean done = false;
9722        while (!done) {
9723          int tag = input.readTag();
9724          switch (tag) {
9725            case 0:
9726              done = true;
9727              break;
9728            default: {
9729              if (!parseUnknownField(input, unknownFields,
9730                                     extensionRegistry, tag)) {
9731                done = true;
9732              }
9733              break;
9734            }
9735            case 8: {
9736              bitField0_ |= 0x00000001;
9737              componentRef_ = input.readInt32();
9738              break;
9739            }
9740            case 18: {
9741              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
9742                changeset_ = new java.util.ArrayList<org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset>();
9743                mutable_bitField0_ |= 0x00000002;
9744              }
9745              changeset_.add(input.readMessage(org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.PARSER, extensionRegistry));
9746              break;
9747            }
9748            case 24: {
9749              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
9750                changesetIndexByLine_ = new java.util.ArrayList<java.lang.Integer>();
9751                mutable_bitField0_ |= 0x00000004;
9752              }
9753              changesetIndexByLine_.add(input.readInt32());
9754              break;
9755            }
9756            case 26: {
9757              int length = input.readRawVarint32();
9758              int limit = input.pushLimit(length);
9759              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004) && input.getBytesUntilLimit() > 0) {
9760                changesetIndexByLine_ = new java.util.ArrayList<java.lang.Integer>();
9761                mutable_bitField0_ |= 0x00000004;
9762              }
9763              while (input.getBytesUntilLimit() > 0) {
9764                changesetIndexByLine_.add(input.readInt32());
9765              }
9766              input.popLimit(limit);
9767              break;
9768            }
9769          }
9770        }
9771      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
9772        throw new RuntimeException(e.setUnfinishedMessage(this));
9773      } catch (java.io.IOException e) {
9774        throw new RuntimeException(
9775            new com.google.protobuf.InvalidProtocolBufferException(
9776                e.getMessage()).setUnfinishedMessage(this));
9777      } finally {
9778        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
9779          changeset_ = java.util.Collections.unmodifiableList(changeset_);
9780        }
9781        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
9782          changesetIndexByLine_ = java.util.Collections.unmodifiableList(changesetIndexByLine_);
9783        }
9784        this.unknownFields = unknownFields.build();
9785        makeExtensionsImmutable();
9786      }
9787    }
9788    public static final com.google.protobuf.Descriptors.Descriptor
9789        getDescriptor() {
9790      return org.sonar.batch.protocol.output.BatchReport.internal_static_Changesets_descriptor;
9791    }
9792
9793    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
9794        internalGetFieldAccessorTable() {
9795      return org.sonar.batch.protocol.output.BatchReport.internal_static_Changesets_fieldAccessorTable
9796          .ensureFieldAccessorsInitialized(
9797              org.sonar.batch.protocol.output.BatchReport.Changesets.class, org.sonar.batch.protocol.output.BatchReport.Changesets.Builder.class);
9798    }
9799
9800    public interface ChangesetOrBuilder extends
9801        // @@protoc_insertion_point(interface_extends:Changesets.Changeset)
9802        com.google.protobuf.MessageOrBuilder {
9803
9804      /**
9805       * <code>optional string revision = 1;</code>
9806       */
9807      boolean hasRevision();
9808      /**
9809       * <code>optional string revision = 1;</code>
9810       */
9811      java.lang.String getRevision();
9812      /**
9813       * <code>optional string revision = 1;</code>
9814       */
9815      com.google.protobuf.ByteString
9816          getRevisionBytes();
9817
9818      /**
9819       * <code>optional string author = 2;</code>
9820       */
9821      boolean hasAuthor();
9822      /**
9823       * <code>optional string author = 2;</code>
9824       */
9825      java.lang.String getAuthor();
9826      /**
9827       * <code>optional string author = 2;</code>
9828       */
9829      com.google.protobuf.ByteString
9830          getAuthorBytes();
9831
9832      /**
9833       * <code>optional int64 date = 3;</code>
9834       */
9835      boolean hasDate();
9836      /**
9837       * <code>optional int64 date = 3;</code>
9838       */
9839      long getDate();
9840    }
9841    /**
9842     * Protobuf type {@code Changesets.Changeset}
9843     */
9844    public  static final class Changeset extends
9845        com.google.protobuf.GeneratedMessage implements
9846        // @@protoc_insertion_point(message_implements:Changesets.Changeset)
9847        ChangesetOrBuilder {
9848      // Use Changeset.newBuilder() to construct.
9849      private Changeset(com.google.protobuf.GeneratedMessage.Builder builder) {
9850        super(builder);
9851      }
9852      private Changeset() {
9853        revision_ = "";
9854        author_ = "";
9855        date_ = 0L;
9856      }
9857
9858      @java.lang.Override
9859      public final com.google.protobuf.UnknownFieldSet
9860      getUnknownFields() {
9861        return this.unknownFields;
9862      }
9863      private Changeset(
9864          com.google.protobuf.CodedInputStream input,
9865          com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
9866        this();
9867        int mutable_bitField0_ = 0;
9868        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
9869            com.google.protobuf.UnknownFieldSet.newBuilder();
9870        try {
9871          boolean done = false;
9872          while (!done) {
9873            int tag = input.readTag();
9874            switch (tag) {
9875              case 0:
9876                done = true;
9877                break;
9878              default: {
9879                if (!parseUnknownField(input, unknownFields,
9880                                       extensionRegistry, tag)) {
9881                  done = true;
9882                }
9883                break;
9884              }
9885              case 10: {
9886                com.google.protobuf.ByteString bs = input.readBytes();
9887                bitField0_ |= 0x00000001;
9888                revision_ = bs;
9889                break;
9890              }
9891              case 18: {
9892                com.google.protobuf.ByteString bs = input.readBytes();
9893                bitField0_ |= 0x00000002;
9894                author_ = bs;
9895                break;
9896              }
9897              case 24: {
9898                bitField0_ |= 0x00000004;
9899                date_ = input.readInt64();
9900                break;
9901              }
9902            }
9903          }
9904        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
9905          throw new RuntimeException(e.setUnfinishedMessage(this));
9906        } catch (java.io.IOException e) {
9907          throw new RuntimeException(
9908              new com.google.protobuf.InvalidProtocolBufferException(
9909                  e.getMessage()).setUnfinishedMessage(this));
9910        } finally {
9911          this.unknownFields = unknownFields.build();
9912          makeExtensionsImmutable();
9913        }
9914      }
9915      public static final com.google.protobuf.Descriptors.Descriptor
9916          getDescriptor() {
9917        return org.sonar.batch.protocol.output.BatchReport.internal_static_Changesets_Changeset_descriptor;
9918      }
9919
9920      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
9921          internalGetFieldAccessorTable() {
9922        return org.sonar.batch.protocol.output.BatchReport.internal_static_Changesets_Changeset_fieldAccessorTable
9923            .ensureFieldAccessorsInitialized(
9924                org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.class, org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.Builder.class);
9925      }
9926
9927      private int bitField0_;
9928      public static final int REVISION_FIELD_NUMBER = 1;
9929      private volatile java.lang.Object revision_;
9930      /**
9931       * <code>optional string revision = 1;</code>
9932       */
9933      public boolean hasRevision() {
9934        return ((bitField0_ & 0x00000001) == 0x00000001);
9935      }
9936      /**
9937       * <code>optional string revision = 1;</code>
9938       */
9939      public java.lang.String getRevision() {
9940        java.lang.Object ref = revision_;
9941        if (ref instanceof java.lang.String) {
9942          return (java.lang.String) ref;
9943        } else {
9944          com.google.protobuf.ByteString bs = 
9945              (com.google.protobuf.ByteString) ref;
9946          java.lang.String s = bs.toStringUtf8();
9947          if (bs.isValidUtf8()) {
9948            revision_ = s;
9949          }
9950          return s;
9951        }
9952      }
9953      /**
9954       * <code>optional string revision = 1;</code>
9955       */
9956      public com.google.protobuf.ByteString
9957          getRevisionBytes() {
9958        java.lang.Object ref = revision_;
9959        if (ref instanceof java.lang.String) {
9960          com.google.protobuf.ByteString b = 
9961              com.google.protobuf.ByteString.copyFromUtf8(
9962                  (java.lang.String) ref);
9963          revision_ = b;
9964          return b;
9965        } else {
9966          return (com.google.protobuf.ByteString) ref;
9967        }
9968      }
9969
9970      public static final int AUTHOR_FIELD_NUMBER = 2;
9971      private volatile java.lang.Object author_;
9972      /**
9973       * <code>optional string author = 2;</code>
9974       */
9975      public boolean hasAuthor() {
9976        return ((bitField0_ & 0x00000002) == 0x00000002);
9977      }
9978      /**
9979       * <code>optional string author = 2;</code>
9980       */
9981      public java.lang.String getAuthor() {
9982        java.lang.Object ref = author_;
9983        if (ref instanceof java.lang.String) {
9984          return (java.lang.String) ref;
9985        } else {
9986          com.google.protobuf.ByteString bs = 
9987              (com.google.protobuf.ByteString) ref;
9988          java.lang.String s = bs.toStringUtf8();
9989          if (bs.isValidUtf8()) {
9990            author_ = s;
9991          }
9992          return s;
9993        }
9994      }
9995      /**
9996       * <code>optional string author = 2;</code>
9997       */
9998      public com.google.protobuf.ByteString
9999          getAuthorBytes() {
10000        java.lang.Object ref = author_;
10001        if (ref instanceof java.lang.String) {
10002          com.google.protobuf.ByteString b = 
10003              com.google.protobuf.ByteString.copyFromUtf8(
10004                  (java.lang.String) ref);
10005          author_ = b;
10006          return b;
10007        } else {
10008          return (com.google.protobuf.ByteString) ref;
10009        }
10010      }
10011
10012      public static final int DATE_FIELD_NUMBER = 3;
10013      private long date_;
10014      /**
10015       * <code>optional int64 date = 3;</code>
10016       */
10017      public boolean hasDate() {
10018        return ((bitField0_ & 0x00000004) == 0x00000004);
10019      }
10020      /**
10021       * <code>optional int64 date = 3;</code>
10022       */
10023      public long getDate() {
10024        return date_;
10025      }
10026
10027      private byte memoizedIsInitialized = -1;
10028      public final boolean isInitialized() {
10029        byte isInitialized = memoizedIsInitialized;
10030        if (isInitialized == 1) return true;
10031        if (isInitialized == 0) return false;
10032
10033        memoizedIsInitialized = 1;
10034        return true;
10035      }
10036
10037      public void writeTo(com.google.protobuf.CodedOutputStream output)
10038                          throws java.io.IOException {
10039        if (((bitField0_ & 0x00000001) == 0x00000001)) {
10040          output.writeBytes(1, getRevisionBytes());
10041        }
10042        if (((bitField0_ & 0x00000002) == 0x00000002)) {
10043          output.writeBytes(2, getAuthorBytes());
10044        }
10045        if (((bitField0_ & 0x00000004) == 0x00000004)) {
10046          output.writeInt64(3, date_);
10047        }
10048        unknownFields.writeTo(output);
10049      }
10050
10051      private int memoizedSerializedSize = -1;
10052      public int getSerializedSize() {
10053        int size = memoizedSerializedSize;
10054        if (size != -1) return size;
10055
10056        size = 0;
10057        if (((bitField0_ & 0x00000001) == 0x00000001)) {
10058          size += com.google.protobuf.CodedOutputStream
10059            .computeBytesSize(1, getRevisionBytes());
10060        }
10061        if (((bitField0_ & 0x00000002) == 0x00000002)) {
10062          size += com.google.protobuf.CodedOutputStream
10063            .computeBytesSize(2, getAuthorBytes());
10064        }
10065        if (((bitField0_ & 0x00000004) == 0x00000004)) {
10066          size += com.google.protobuf.CodedOutputStream
10067            .computeInt64Size(3, date_);
10068        }
10069        size += unknownFields.getSerializedSize();
10070        memoizedSerializedSize = size;
10071        return size;
10072      }
10073
10074      private static final long serialVersionUID = 0L;
10075      public static org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset parseFrom(
10076          com.google.protobuf.ByteString data)
10077          throws com.google.protobuf.InvalidProtocolBufferException {
10078        return PARSER.parseFrom(data);
10079      }
10080      public static org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset parseFrom(
10081          com.google.protobuf.ByteString data,
10082          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10083          throws com.google.protobuf.InvalidProtocolBufferException {
10084        return PARSER.parseFrom(data, extensionRegistry);
10085      }
10086      public static org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset parseFrom(byte[] data)
10087          throws com.google.protobuf.InvalidProtocolBufferException {
10088        return PARSER.parseFrom(data);
10089      }
10090      public static org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset parseFrom(
10091          byte[] data,
10092          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10093          throws com.google.protobuf.InvalidProtocolBufferException {
10094        return PARSER.parseFrom(data, extensionRegistry);
10095      }
10096      public static org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset parseFrom(java.io.InputStream input)
10097          throws java.io.IOException {
10098        return PARSER.parseFrom(input);
10099      }
10100      public static org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset parseFrom(
10101          java.io.InputStream input,
10102          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10103          throws java.io.IOException {
10104        return PARSER.parseFrom(input, extensionRegistry);
10105      }
10106      public static org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset parseDelimitedFrom(java.io.InputStream input)
10107          throws java.io.IOException {
10108        return PARSER.parseDelimitedFrom(input);
10109      }
10110      public static org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset parseDelimitedFrom(
10111          java.io.InputStream input,
10112          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10113          throws java.io.IOException {
10114        return PARSER.parseDelimitedFrom(input, extensionRegistry);
10115      }
10116      public static org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset parseFrom(
10117          com.google.protobuf.CodedInputStream input)
10118          throws java.io.IOException {
10119        return PARSER.parseFrom(input);
10120      }
10121      public static org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset parseFrom(
10122          com.google.protobuf.CodedInputStream input,
10123          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10124          throws java.io.IOException {
10125        return PARSER.parseFrom(input, extensionRegistry);
10126      }
10127
10128      public Builder newBuilderForType() { return newBuilder(); }
10129      public static Builder newBuilder() {
10130        return DEFAULT_INSTANCE.toBuilder();
10131      }
10132      public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset prototype) {
10133        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
10134      }
10135      public Builder toBuilder() {
10136        return this == DEFAULT_INSTANCE
10137            ? new Builder() : new Builder().mergeFrom(this);
10138      }
10139
10140      @java.lang.Override
10141      protected Builder newBuilderForType(
10142          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
10143        Builder builder = new Builder(parent);
10144        return builder;
10145      }
10146      /**
10147       * Protobuf type {@code Changesets.Changeset}
10148       */
10149      public static final class Builder extends
10150          com.google.protobuf.GeneratedMessage.Builder<Builder> implements
10151          // @@protoc_insertion_point(builder_implements:Changesets.Changeset)
10152          org.sonar.batch.protocol.output.BatchReport.Changesets.ChangesetOrBuilder {
10153        public static final com.google.protobuf.Descriptors.Descriptor
10154            getDescriptor() {
10155          return org.sonar.batch.protocol.output.BatchReport.internal_static_Changesets_Changeset_descriptor;
10156        }
10157
10158        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
10159            internalGetFieldAccessorTable() {
10160          return org.sonar.batch.protocol.output.BatchReport.internal_static_Changesets_Changeset_fieldAccessorTable
10161              .ensureFieldAccessorsInitialized(
10162                  org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.class, org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.Builder.class);
10163        }
10164
10165        // Construct using org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.newBuilder()
10166        private Builder() {
10167          maybeForceBuilderInitialization();
10168        }
10169
10170        private Builder(
10171            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
10172          super(parent);
10173          maybeForceBuilderInitialization();
10174        }
10175        private void maybeForceBuilderInitialization() {
10176          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
10177          }
10178        }
10179        public Builder clear() {
10180          super.clear();
10181          revision_ = "";
10182          bitField0_ = (bitField0_ & ~0x00000001);
10183          author_ = "";
10184          bitField0_ = (bitField0_ & ~0x00000002);
10185          date_ = 0L;
10186          bitField0_ = (bitField0_ & ~0x00000004);
10187          return this;
10188        }
10189
10190        public com.google.protobuf.Descriptors.Descriptor
10191            getDescriptorForType() {
10192          return org.sonar.batch.protocol.output.BatchReport.internal_static_Changesets_Changeset_descriptor;
10193        }
10194
10195        public org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset getDefaultInstanceForType() {
10196          return org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.getDefaultInstance();
10197        }
10198
10199        public org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset build() {
10200          org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset result = buildPartial();
10201          if (!result.isInitialized()) {
10202            throw newUninitializedMessageException(result);
10203          }
10204          return result;
10205        }
10206
10207        public org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset buildPartial() {
10208          org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset result = new org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset(this);
10209          int from_bitField0_ = bitField0_;
10210          int to_bitField0_ = 0;
10211          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
10212            to_bitField0_ |= 0x00000001;
10213          }
10214          result.revision_ = revision_;
10215          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
10216            to_bitField0_ |= 0x00000002;
10217          }
10218          result.author_ = author_;
10219          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
10220            to_bitField0_ |= 0x00000004;
10221          }
10222          result.date_ = date_;
10223          result.bitField0_ = to_bitField0_;
10224          onBuilt();
10225          return result;
10226        }
10227
10228        public Builder mergeFrom(com.google.protobuf.Message other) {
10229          if (other instanceof org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset) {
10230            return mergeFrom((org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset)other);
10231          } else {
10232            super.mergeFrom(other);
10233            return this;
10234          }
10235        }
10236
10237        public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset other) {
10238          if (other == org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.getDefaultInstance()) return this;
10239          if (other.hasRevision()) {
10240            bitField0_ |= 0x00000001;
10241            revision_ = other.revision_;
10242            onChanged();
10243          }
10244          if (other.hasAuthor()) {
10245            bitField0_ |= 0x00000002;
10246            author_ = other.author_;
10247            onChanged();
10248          }
10249          if (other.hasDate()) {
10250            setDate(other.getDate());
10251          }
10252          this.mergeUnknownFields(other.unknownFields);
10253          onChanged();
10254          return this;
10255        }
10256
10257        public final boolean isInitialized() {
10258          return true;
10259        }
10260
10261        public Builder mergeFrom(
10262            com.google.protobuf.CodedInputStream input,
10263            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10264            throws java.io.IOException {
10265          org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset parsedMessage = null;
10266          try {
10267            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
10268          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
10269            parsedMessage = (org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset) e.getUnfinishedMessage();
10270            throw e;
10271          } finally {
10272            if (parsedMessage != null) {
10273              mergeFrom(parsedMessage);
10274            }
10275          }
10276          return this;
10277        }
10278        private int bitField0_;
10279
10280        private java.lang.Object revision_ = "";
10281        /**
10282         * <code>optional string revision = 1;</code>
10283         */
10284        public boolean hasRevision() {
10285          return ((bitField0_ & 0x00000001) == 0x00000001);
10286        }
10287        /**
10288         * <code>optional string revision = 1;</code>
10289         */
10290        public java.lang.String getRevision() {
10291          java.lang.Object ref = revision_;
10292          if (!(ref instanceof java.lang.String)) {
10293            com.google.protobuf.ByteString bs =
10294                (com.google.protobuf.ByteString) ref;
10295            java.lang.String s = bs.toStringUtf8();
10296            if (bs.isValidUtf8()) {
10297              revision_ = s;
10298            }
10299            return s;
10300          } else {
10301            return (java.lang.String) ref;
10302          }
10303        }
10304        /**
10305         * <code>optional string revision = 1;</code>
10306         */
10307        public com.google.protobuf.ByteString
10308            getRevisionBytes() {
10309          java.lang.Object ref = revision_;
10310          if (ref instanceof String) {
10311            com.google.protobuf.ByteString b = 
10312                com.google.protobuf.ByteString.copyFromUtf8(
10313                    (java.lang.String) ref);
10314            revision_ = b;
10315            return b;
10316          } else {
10317            return (com.google.protobuf.ByteString) ref;
10318          }
10319        }
10320        /**
10321         * <code>optional string revision = 1;</code>
10322         */
10323        public Builder setRevision(
10324            java.lang.String value) {
10325          if (value == null) {
10326    throw new NullPointerException();
10327  }
10328  bitField0_ |= 0x00000001;
10329          revision_ = value;
10330          onChanged();
10331          return this;
10332        }
10333        /**
10334         * <code>optional string revision = 1;</code>
10335         */
10336        public Builder clearRevision() {
10337          bitField0_ = (bitField0_ & ~0x00000001);
10338          revision_ = getDefaultInstance().getRevision();
10339          onChanged();
10340          return this;
10341        }
10342        /**
10343         * <code>optional string revision = 1;</code>
10344         */
10345        public Builder setRevisionBytes(
10346            com.google.protobuf.ByteString value) {
10347          if (value == null) {
10348    throw new NullPointerException();
10349  }
10350  bitField0_ |= 0x00000001;
10351          revision_ = value;
10352          onChanged();
10353          return this;
10354        }
10355
10356        private java.lang.Object author_ = "";
10357        /**
10358         * <code>optional string author = 2;</code>
10359         */
10360        public boolean hasAuthor() {
10361          return ((bitField0_ & 0x00000002) == 0x00000002);
10362        }
10363        /**
10364         * <code>optional string author = 2;</code>
10365         */
10366        public java.lang.String getAuthor() {
10367          java.lang.Object ref = author_;
10368          if (!(ref instanceof java.lang.String)) {
10369            com.google.protobuf.ByteString bs =
10370                (com.google.protobuf.ByteString) ref;
10371            java.lang.String s = bs.toStringUtf8();
10372            if (bs.isValidUtf8()) {
10373              author_ = s;
10374            }
10375            return s;
10376          } else {
10377            return (java.lang.String) ref;
10378          }
10379        }
10380        /**
10381         * <code>optional string author = 2;</code>
10382         */
10383        public com.google.protobuf.ByteString
10384            getAuthorBytes() {
10385          java.lang.Object ref = author_;
10386          if (ref instanceof String) {
10387            com.google.protobuf.ByteString b = 
10388                com.google.protobuf.ByteString.copyFromUtf8(
10389                    (java.lang.String) ref);
10390            author_ = b;
10391            return b;
10392          } else {
10393            return (com.google.protobuf.ByteString) ref;
10394          }
10395        }
10396        /**
10397         * <code>optional string author = 2;</code>
10398         */
10399        public Builder setAuthor(
10400            java.lang.String value) {
10401          if (value == null) {
10402    throw new NullPointerException();
10403  }
10404  bitField0_ |= 0x00000002;
10405          author_ = value;
10406          onChanged();
10407          return this;
10408        }
10409        /**
10410         * <code>optional string author = 2;</code>
10411         */
10412        public Builder clearAuthor() {
10413          bitField0_ = (bitField0_ & ~0x00000002);
10414          author_ = getDefaultInstance().getAuthor();
10415          onChanged();
10416          return this;
10417        }
10418        /**
10419         * <code>optional string author = 2;</code>
10420         */
10421        public Builder setAuthorBytes(
10422            com.google.protobuf.ByteString value) {
10423          if (value == null) {
10424    throw new NullPointerException();
10425  }
10426  bitField0_ |= 0x00000002;
10427          author_ = value;
10428          onChanged();
10429          return this;
10430        }
10431
10432        private long date_ ;
10433        /**
10434         * <code>optional int64 date = 3;</code>
10435         */
10436        public boolean hasDate() {
10437          return ((bitField0_ & 0x00000004) == 0x00000004);
10438        }
10439        /**
10440         * <code>optional int64 date = 3;</code>
10441         */
10442        public long getDate() {
10443          return date_;
10444        }
10445        /**
10446         * <code>optional int64 date = 3;</code>
10447         */
10448        public Builder setDate(long value) {
10449          bitField0_ |= 0x00000004;
10450          date_ = value;
10451          onChanged();
10452          return this;
10453        }
10454        /**
10455         * <code>optional int64 date = 3;</code>
10456         */
10457        public Builder clearDate() {
10458          bitField0_ = (bitField0_ & ~0x00000004);
10459          date_ = 0L;
10460          onChanged();
10461          return this;
10462        }
10463
10464        // @@protoc_insertion_point(builder_scope:Changesets.Changeset)
10465      }
10466
10467      // @@protoc_insertion_point(class_scope:Changesets.Changeset)
10468      private static final org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset DEFAULT_INSTANCE;
10469      static {
10470        DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset();
10471      }
10472
10473      public static org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset getDefaultInstance() {
10474        return DEFAULT_INSTANCE;
10475      }
10476
10477      public static final com.google.protobuf.Parser<Changeset> PARSER =
10478          new com.google.protobuf.AbstractParser<Changeset>() {
10479        public Changeset parsePartialFrom(
10480            com.google.protobuf.CodedInputStream input,
10481            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10482            throws com.google.protobuf.InvalidProtocolBufferException {
10483          try {
10484            return new Changeset(input, extensionRegistry);
10485          } catch (RuntimeException e) {
10486            if (e.getCause() instanceof
10487                com.google.protobuf.InvalidProtocolBufferException) {
10488              throw (com.google.protobuf.InvalidProtocolBufferException)
10489                  e.getCause();
10490            }
10491            throw e;
10492          }
10493        }
10494      };
10495
10496      @java.lang.Override
10497      public com.google.protobuf.Parser<Changeset> getParserForType() {
10498        return PARSER;
10499      }
10500
10501      public org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset getDefaultInstanceForType() {
10502        return DEFAULT_INSTANCE;
10503      }
10504
10505    }
10506
10507    private int bitField0_;
10508    public static final int COMPONENT_REF_FIELD_NUMBER = 1;
10509    private int componentRef_;
10510    /**
10511     * <code>optional int32 component_ref = 1;</code>
10512     */
10513    public boolean hasComponentRef() {
10514      return ((bitField0_ & 0x00000001) == 0x00000001);
10515    }
10516    /**
10517     * <code>optional int32 component_ref = 1;</code>
10518     */
10519    public int getComponentRef() {
10520      return componentRef_;
10521    }
10522
10523    public static final int CHANGESET_FIELD_NUMBER = 2;
10524    private java.util.List<org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset> changeset_;
10525    /**
10526     * <code>repeated .Changesets.Changeset changeset = 2;</code>
10527     */
10528    public java.util.List<org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset> getChangesetList() {
10529      return changeset_;
10530    }
10531    /**
10532     * <code>repeated .Changesets.Changeset changeset = 2;</code>
10533     */
10534    public java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.Changesets.ChangesetOrBuilder> 
10535        getChangesetOrBuilderList() {
10536      return changeset_;
10537    }
10538    /**
10539     * <code>repeated .Changesets.Changeset changeset = 2;</code>
10540     */
10541    public int getChangesetCount() {
10542      return changeset_.size();
10543    }
10544    /**
10545     * <code>repeated .Changesets.Changeset changeset = 2;</code>
10546     */
10547    public org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset getChangeset(int index) {
10548      return changeset_.get(index);
10549    }
10550    /**
10551     * <code>repeated .Changesets.Changeset changeset = 2;</code>
10552     */
10553    public org.sonar.batch.protocol.output.BatchReport.Changesets.ChangesetOrBuilder getChangesetOrBuilder(
10554        int index) {
10555      return changeset_.get(index);
10556    }
10557
10558    public static final int CHANGESETINDEXBYLINE_FIELD_NUMBER = 3;
10559    private java.util.List<java.lang.Integer> changesetIndexByLine_;
10560    /**
10561     * <code>repeated int32 changesetIndexByLine = 3 [packed = true];</code>
10562     *
10563     * <pre>
10564     * if changesetIndexByLine[5] = 2 then it means that changeset[2] is the last one on line 6
10565     * </pre>
10566     */
10567    public java.util.List<java.lang.Integer>
10568        getChangesetIndexByLineList() {
10569      return changesetIndexByLine_;
10570    }
10571    /**
10572     * <code>repeated int32 changesetIndexByLine = 3 [packed = true];</code>
10573     *
10574     * <pre>
10575     * if changesetIndexByLine[5] = 2 then it means that changeset[2] is the last one on line 6
10576     * </pre>
10577     */
10578    public int getChangesetIndexByLineCount() {
10579      return changesetIndexByLine_.size();
10580    }
10581    /**
10582     * <code>repeated int32 changesetIndexByLine = 3 [packed = true];</code>
10583     *
10584     * <pre>
10585     * if changesetIndexByLine[5] = 2 then it means that changeset[2] is the last one on line 6
10586     * </pre>
10587     */
10588    public int getChangesetIndexByLine(int index) {
10589      return changesetIndexByLine_.get(index);
10590    }
10591    private int changesetIndexByLineMemoizedSerializedSize = -1;
10592
10593    private byte memoizedIsInitialized = -1;
10594    public final boolean isInitialized() {
10595      byte isInitialized = memoizedIsInitialized;
10596      if (isInitialized == 1) return true;
10597      if (isInitialized == 0) return false;
10598
10599      memoizedIsInitialized = 1;
10600      return true;
10601    }
10602
10603    public void writeTo(com.google.protobuf.CodedOutputStream output)
10604                        throws java.io.IOException {
10605      getSerializedSize();
10606      if (((bitField0_ & 0x00000001) == 0x00000001)) {
10607        output.writeInt32(1, componentRef_);
10608      }
10609      for (int i = 0; i < changeset_.size(); i++) {
10610        output.writeMessage(2, changeset_.get(i));
10611      }
10612      if (getChangesetIndexByLineList().size() > 0) {
10613        output.writeRawVarint32(26);
10614        output.writeRawVarint32(changesetIndexByLineMemoizedSerializedSize);
10615      }
10616      for (int i = 0; i < changesetIndexByLine_.size(); i++) {
10617        output.writeInt32NoTag(changesetIndexByLine_.get(i));
10618      }
10619      unknownFields.writeTo(output);
10620    }
10621
10622    private int memoizedSerializedSize = -1;
10623    public int getSerializedSize() {
10624      int size = memoizedSerializedSize;
10625      if (size != -1) return size;
10626
10627      size = 0;
10628      if (((bitField0_ & 0x00000001) == 0x00000001)) {
10629        size += com.google.protobuf.CodedOutputStream
10630          .computeInt32Size(1, componentRef_);
10631      }
10632      for (int i = 0; i < changeset_.size(); i++) {
10633        size += com.google.protobuf.CodedOutputStream
10634          .computeMessageSize(2, changeset_.get(i));
10635      }
10636      {
10637        int dataSize = 0;
10638        for (int i = 0; i < changesetIndexByLine_.size(); i++) {
10639          dataSize += com.google.protobuf.CodedOutputStream
10640            .computeInt32SizeNoTag(changesetIndexByLine_.get(i));
10641        }
10642        size += dataSize;
10643        if (!getChangesetIndexByLineList().isEmpty()) {
10644          size += 1;
10645          size += com.google.protobuf.CodedOutputStream
10646              .computeInt32SizeNoTag(dataSize);
10647        }
10648        changesetIndexByLineMemoizedSerializedSize = dataSize;
10649      }
10650      size += unknownFields.getSerializedSize();
10651      memoizedSerializedSize = size;
10652      return size;
10653    }
10654
10655    private static final long serialVersionUID = 0L;
10656    public static org.sonar.batch.protocol.output.BatchReport.Changesets parseFrom(
10657        com.google.protobuf.ByteString data)
10658        throws com.google.protobuf.InvalidProtocolBufferException {
10659      return PARSER.parseFrom(data);
10660    }
10661    public static org.sonar.batch.protocol.output.BatchReport.Changesets parseFrom(
10662        com.google.protobuf.ByteString data,
10663        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10664        throws com.google.protobuf.InvalidProtocolBufferException {
10665      return PARSER.parseFrom(data, extensionRegistry);
10666    }
10667    public static org.sonar.batch.protocol.output.BatchReport.Changesets parseFrom(byte[] data)
10668        throws com.google.protobuf.InvalidProtocolBufferException {
10669      return PARSER.parseFrom(data);
10670    }
10671    public static org.sonar.batch.protocol.output.BatchReport.Changesets parseFrom(
10672        byte[] data,
10673        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10674        throws com.google.protobuf.InvalidProtocolBufferException {
10675      return PARSER.parseFrom(data, extensionRegistry);
10676    }
10677    public static org.sonar.batch.protocol.output.BatchReport.Changesets parseFrom(java.io.InputStream input)
10678        throws java.io.IOException {
10679      return PARSER.parseFrom(input);
10680    }
10681    public static org.sonar.batch.protocol.output.BatchReport.Changesets parseFrom(
10682        java.io.InputStream input,
10683        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10684        throws java.io.IOException {
10685      return PARSER.parseFrom(input, extensionRegistry);
10686    }
10687    public static org.sonar.batch.protocol.output.BatchReport.Changesets parseDelimitedFrom(java.io.InputStream input)
10688        throws java.io.IOException {
10689      return PARSER.parseDelimitedFrom(input);
10690    }
10691    public static org.sonar.batch.protocol.output.BatchReport.Changesets parseDelimitedFrom(
10692        java.io.InputStream input,
10693        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10694        throws java.io.IOException {
10695      return PARSER.parseDelimitedFrom(input, extensionRegistry);
10696    }
10697    public static org.sonar.batch.protocol.output.BatchReport.Changesets parseFrom(
10698        com.google.protobuf.CodedInputStream input)
10699        throws java.io.IOException {
10700      return PARSER.parseFrom(input);
10701    }
10702    public static org.sonar.batch.protocol.output.BatchReport.Changesets parseFrom(
10703        com.google.protobuf.CodedInputStream input,
10704        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10705        throws java.io.IOException {
10706      return PARSER.parseFrom(input, extensionRegistry);
10707    }
10708
10709    public Builder newBuilderForType() { return newBuilder(); }
10710    public static Builder newBuilder() {
10711      return DEFAULT_INSTANCE.toBuilder();
10712    }
10713    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.Changesets prototype) {
10714      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
10715    }
10716    public Builder toBuilder() {
10717      return this == DEFAULT_INSTANCE
10718          ? new Builder() : new Builder().mergeFrom(this);
10719    }
10720
10721    @java.lang.Override
10722    protected Builder newBuilderForType(
10723        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
10724      Builder builder = new Builder(parent);
10725      return builder;
10726    }
10727    /**
10728     * Protobuf type {@code Changesets}
10729     */
10730    public static final class Builder extends
10731        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
10732        // @@protoc_insertion_point(builder_implements:Changesets)
10733        org.sonar.batch.protocol.output.BatchReport.ChangesetsOrBuilder {
10734      public static final com.google.protobuf.Descriptors.Descriptor
10735          getDescriptor() {
10736        return org.sonar.batch.protocol.output.BatchReport.internal_static_Changesets_descriptor;
10737      }
10738
10739      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
10740          internalGetFieldAccessorTable() {
10741        return org.sonar.batch.protocol.output.BatchReport.internal_static_Changesets_fieldAccessorTable
10742            .ensureFieldAccessorsInitialized(
10743                org.sonar.batch.protocol.output.BatchReport.Changesets.class, org.sonar.batch.protocol.output.BatchReport.Changesets.Builder.class);
10744      }
10745
10746      // Construct using org.sonar.batch.protocol.output.BatchReport.Changesets.newBuilder()
10747      private Builder() {
10748        maybeForceBuilderInitialization();
10749      }
10750
10751      private Builder(
10752          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
10753        super(parent);
10754        maybeForceBuilderInitialization();
10755      }
10756      private void maybeForceBuilderInitialization() {
10757        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
10758          getChangesetFieldBuilder();
10759        }
10760      }
10761      public Builder clear() {
10762        super.clear();
10763        componentRef_ = 0;
10764        bitField0_ = (bitField0_ & ~0x00000001);
10765        if (changesetBuilder_ == null) {
10766          changeset_ = java.util.Collections.emptyList();
10767          bitField0_ = (bitField0_ & ~0x00000002);
10768        } else {
10769          changesetBuilder_.clear();
10770        }
10771        changesetIndexByLine_ = java.util.Collections.emptyList();
10772        bitField0_ = (bitField0_ & ~0x00000004);
10773        return this;
10774      }
10775
10776      public com.google.protobuf.Descriptors.Descriptor
10777          getDescriptorForType() {
10778        return org.sonar.batch.protocol.output.BatchReport.internal_static_Changesets_descriptor;
10779      }
10780
10781      public org.sonar.batch.protocol.output.BatchReport.Changesets getDefaultInstanceForType() {
10782        return org.sonar.batch.protocol.output.BatchReport.Changesets.getDefaultInstance();
10783      }
10784
10785      public org.sonar.batch.protocol.output.BatchReport.Changesets build() {
10786        org.sonar.batch.protocol.output.BatchReport.Changesets result = buildPartial();
10787        if (!result.isInitialized()) {
10788          throw newUninitializedMessageException(result);
10789        }
10790        return result;
10791      }
10792
10793      public org.sonar.batch.protocol.output.BatchReport.Changesets buildPartial() {
10794        org.sonar.batch.protocol.output.BatchReport.Changesets result = new org.sonar.batch.protocol.output.BatchReport.Changesets(this);
10795        int from_bitField0_ = bitField0_;
10796        int to_bitField0_ = 0;
10797        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
10798          to_bitField0_ |= 0x00000001;
10799        }
10800        result.componentRef_ = componentRef_;
10801        if (changesetBuilder_ == null) {
10802          if (((bitField0_ & 0x00000002) == 0x00000002)) {
10803            changeset_ = java.util.Collections.unmodifiableList(changeset_);
10804            bitField0_ = (bitField0_ & ~0x00000002);
10805          }
10806          result.changeset_ = changeset_;
10807        } else {
10808          result.changeset_ = changesetBuilder_.build();
10809        }
10810        if (((bitField0_ & 0x00000004) == 0x00000004)) {
10811          changesetIndexByLine_ = java.util.Collections.unmodifiableList(changesetIndexByLine_);
10812          bitField0_ = (bitField0_ & ~0x00000004);
10813        }
10814        result.changesetIndexByLine_ = changesetIndexByLine_;
10815        result.bitField0_ = to_bitField0_;
10816        onBuilt();
10817        return result;
10818      }
10819
10820      public Builder mergeFrom(com.google.protobuf.Message other) {
10821        if (other instanceof org.sonar.batch.protocol.output.BatchReport.Changesets) {
10822          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.Changesets)other);
10823        } else {
10824          super.mergeFrom(other);
10825          return this;
10826        }
10827      }
10828
10829      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.Changesets other) {
10830        if (other == org.sonar.batch.protocol.output.BatchReport.Changesets.getDefaultInstance()) return this;
10831        if (other.hasComponentRef()) {
10832          setComponentRef(other.getComponentRef());
10833        }
10834        if (changesetBuilder_ == null) {
10835          if (!other.changeset_.isEmpty()) {
10836            if (changeset_.isEmpty()) {
10837              changeset_ = other.changeset_;
10838              bitField0_ = (bitField0_ & ~0x00000002);
10839            } else {
10840              ensureChangesetIsMutable();
10841              changeset_.addAll(other.changeset_);
10842            }
10843            onChanged();
10844          }
10845        } else {
10846          if (!other.changeset_.isEmpty()) {
10847            if (changesetBuilder_.isEmpty()) {
10848              changesetBuilder_.dispose();
10849              changesetBuilder_ = null;
10850              changeset_ = other.changeset_;
10851              bitField0_ = (bitField0_ & ~0x00000002);
10852              changesetBuilder_ = 
10853                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
10854                   getChangesetFieldBuilder() : null;
10855            } else {
10856              changesetBuilder_.addAllMessages(other.changeset_);
10857            }
10858          }
10859        }
10860        if (!other.changesetIndexByLine_.isEmpty()) {
10861          if (changesetIndexByLine_.isEmpty()) {
10862            changesetIndexByLine_ = other.changesetIndexByLine_;
10863            bitField0_ = (bitField0_ & ~0x00000004);
10864          } else {
10865            ensureChangesetIndexByLineIsMutable();
10866            changesetIndexByLine_.addAll(other.changesetIndexByLine_);
10867          }
10868          onChanged();
10869        }
10870        this.mergeUnknownFields(other.unknownFields);
10871        onChanged();
10872        return this;
10873      }
10874
10875      public final boolean isInitialized() {
10876        return true;
10877      }
10878
10879      public Builder mergeFrom(
10880          com.google.protobuf.CodedInputStream input,
10881          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10882          throws java.io.IOException {
10883        org.sonar.batch.protocol.output.BatchReport.Changesets parsedMessage = null;
10884        try {
10885          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
10886        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
10887          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.Changesets) e.getUnfinishedMessage();
10888          throw e;
10889        } finally {
10890          if (parsedMessage != null) {
10891            mergeFrom(parsedMessage);
10892          }
10893        }
10894        return this;
10895      }
10896      private int bitField0_;
10897
10898      private int componentRef_ ;
10899      /**
10900       * <code>optional int32 component_ref = 1;</code>
10901       */
10902      public boolean hasComponentRef() {
10903        return ((bitField0_ & 0x00000001) == 0x00000001);
10904      }
10905      /**
10906       * <code>optional int32 component_ref = 1;</code>
10907       */
10908      public int getComponentRef() {
10909        return componentRef_;
10910      }
10911      /**
10912       * <code>optional int32 component_ref = 1;</code>
10913       */
10914      public Builder setComponentRef(int value) {
10915        bitField0_ |= 0x00000001;
10916        componentRef_ = value;
10917        onChanged();
10918        return this;
10919      }
10920      /**
10921       * <code>optional int32 component_ref = 1;</code>
10922       */
10923      public Builder clearComponentRef() {
10924        bitField0_ = (bitField0_ & ~0x00000001);
10925        componentRef_ = 0;
10926        onChanged();
10927        return this;
10928      }
10929
10930      private java.util.List<org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset> changeset_ =
10931        java.util.Collections.emptyList();
10932      private void ensureChangesetIsMutable() {
10933        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
10934          changeset_ = new java.util.ArrayList<org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset>(changeset_);
10935          bitField0_ |= 0x00000002;
10936         }
10937      }
10938
10939      private com.google.protobuf.RepeatedFieldBuilder<
10940          org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset, org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.Builder, org.sonar.batch.protocol.output.BatchReport.Changesets.ChangesetOrBuilder> changesetBuilder_;
10941
10942      /**
10943       * <code>repeated .Changesets.Changeset changeset = 2;</code>
10944       */
10945      public java.util.List<org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset> getChangesetList() {
10946        if (changesetBuilder_ == null) {
10947          return java.util.Collections.unmodifiableList(changeset_);
10948        } else {
10949          return changesetBuilder_.getMessageList();
10950        }
10951      }
10952      /**
10953       * <code>repeated .Changesets.Changeset changeset = 2;</code>
10954       */
10955      public int getChangesetCount() {
10956        if (changesetBuilder_ == null) {
10957          return changeset_.size();
10958        } else {
10959          return changesetBuilder_.getCount();
10960        }
10961      }
10962      /**
10963       * <code>repeated .Changesets.Changeset changeset = 2;</code>
10964       */
10965      public org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset getChangeset(int index) {
10966        if (changesetBuilder_ == null) {
10967          return changeset_.get(index);
10968        } else {
10969          return changesetBuilder_.getMessage(index);
10970        }
10971      }
10972      /**
10973       * <code>repeated .Changesets.Changeset changeset = 2;</code>
10974       */
10975      public Builder setChangeset(
10976          int index, org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset value) {
10977        if (changesetBuilder_ == null) {
10978          if (value == null) {
10979            throw new NullPointerException();
10980          }
10981          ensureChangesetIsMutable();
10982          changeset_.set(index, value);
10983          onChanged();
10984        } else {
10985          changesetBuilder_.setMessage(index, value);
10986        }
10987        return this;
10988      }
10989      /**
10990       * <code>repeated .Changesets.Changeset changeset = 2;</code>
10991       */
10992      public Builder setChangeset(
10993          int index, org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.Builder builderForValue) {
10994        if (changesetBuilder_ == null) {
10995          ensureChangesetIsMutable();
10996          changeset_.set(index, builderForValue.build());
10997          onChanged();
10998        } else {
10999          changesetBuilder_.setMessage(index, builderForValue.build());
11000        }
11001        return this;
11002      }
11003      /**
11004       * <code>repeated .Changesets.Changeset changeset = 2;</code>
11005       */
11006      public Builder addChangeset(org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset value) {
11007        if (changesetBuilder_ == null) {
11008          if (value == null) {
11009            throw new NullPointerException();
11010          }
11011          ensureChangesetIsMutable();
11012          changeset_.add(value);
11013          onChanged();
11014        } else {
11015          changesetBuilder_.addMessage(value);
11016        }
11017        return this;
11018      }
11019      /**
11020       * <code>repeated .Changesets.Changeset changeset = 2;</code>
11021       */
11022      public Builder addChangeset(
11023          int index, org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset value) {
11024        if (changesetBuilder_ == null) {
11025          if (value == null) {
11026            throw new NullPointerException();
11027          }
11028          ensureChangesetIsMutable();
11029          changeset_.add(index, value);
11030          onChanged();
11031        } else {
11032          changesetBuilder_.addMessage(index, value);
11033        }
11034        return this;
11035      }
11036      /**
11037       * <code>repeated .Changesets.Changeset changeset = 2;</code>
11038       */
11039      public Builder addChangeset(
11040          org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.Builder builderForValue) {
11041        if (changesetBuilder_ == null) {
11042          ensureChangesetIsMutable();
11043          changeset_.add(builderForValue.build());
11044          onChanged();
11045        } else {
11046          changesetBuilder_.addMessage(builderForValue.build());
11047        }
11048        return this;
11049      }
11050      /**
11051       * <code>repeated .Changesets.Changeset changeset = 2;</code>
11052       */
11053      public Builder addChangeset(
11054          int index, org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.Builder builderForValue) {
11055        if (changesetBuilder_ == null) {
11056          ensureChangesetIsMutable();
11057          changeset_.add(index, builderForValue.build());
11058          onChanged();
11059        } else {
11060          changesetBuilder_.addMessage(index, builderForValue.build());
11061        }
11062        return this;
11063      }
11064      /**
11065       * <code>repeated .Changesets.Changeset changeset = 2;</code>
11066       */
11067      public Builder addAllChangeset(
11068          java.lang.Iterable<? extends org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset> values) {
11069        if (changesetBuilder_ == null) {
11070          ensureChangesetIsMutable();
11071          com.google.protobuf.AbstractMessageLite.Builder.addAll(
11072              values, changeset_);
11073          onChanged();
11074        } else {
11075          changesetBuilder_.addAllMessages(values);
11076        }
11077        return this;
11078      }
11079      /**
11080       * <code>repeated .Changesets.Changeset changeset = 2;</code>
11081       */
11082      public Builder clearChangeset() {
11083        if (changesetBuilder_ == null) {
11084          changeset_ = java.util.Collections.emptyList();
11085          bitField0_ = (bitField0_ & ~0x00000002);
11086          onChanged();
11087        } else {
11088          changesetBuilder_.clear();
11089        }
11090        return this;
11091      }
11092      /**
11093       * <code>repeated .Changesets.Changeset changeset = 2;</code>
11094       */
11095      public Builder removeChangeset(int index) {
11096        if (changesetBuilder_ == null) {
11097          ensureChangesetIsMutable();
11098          changeset_.remove(index);
11099          onChanged();
11100        } else {
11101          changesetBuilder_.remove(index);
11102        }
11103        return this;
11104      }
11105      /**
11106       * <code>repeated .Changesets.Changeset changeset = 2;</code>
11107       */
11108      public org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.Builder getChangesetBuilder(
11109          int index) {
11110        return getChangesetFieldBuilder().getBuilder(index);
11111      }
11112      /**
11113       * <code>repeated .Changesets.Changeset changeset = 2;</code>
11114       */
11115      public org.sonar.batch.protocol.output.BatchReport.Changesets.ChangesetOrBuilder getChangesetOrBuilder(
11116          int index) {
11117        if (changesetBuilder_ == null) {
11118          return changeset_.get(index);  } else {
11119          return changesetBuilder_.getMessageOrBuilder(index);
11120        }
11121      }
11122      /**
11123       * <code>repeated .Changesets.Changeset changeset = 2;</code>
11124       */
11125      public java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.Changesets.ChangesetOrBuilder> 
11126           getChangesetOrBuilderList() {
11127        if (changesetBuilder_ != null) {
11128          return changesetBuilder_.getMessageOrBuilderList();
11129        } else {
11130          return java.util.Collections.unmodifiableList(changeset_);
11131        }
11132      }
11133      /**
11134       * <code>repeated .Changesets.Changeset changeset = 2;</code>
11135       */
11136      public org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.Builder addChangesetBuilder() {
11137        return getChangesetFieldBuilder().addBuilder(
11138            org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.getDefaultInstance());
11139      }
11140      /**
11141       * <code>repeated .Changesets.Changeset changeset = 2;</code>
11142       */
11143      public org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.Builder addChangesetBuilder(
11144          int index) {
11145        return getChangesetFieldBuilder().addBuilder(
11146            index, org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.getDefaultInstance());
11147      }
11148      /**
11149       * <code>repeated .Changesets.Changeset changeset = 2;</code>
11150       */
11151      public java.util.List<org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.Builder> 
11152           getChangesetBuilderList() {
11153        return getChangesetFieldBuilder().getBuilderList();
11154      }
11155      private com.google.protobuf.RepeatedFieldBuilder<
11156          org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset, org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.Builder, org.sonar.batch.protocol.output.BatchReport.Changesets.ChangesetOrBuilder> 
11157          getChangesetFieldBuilder() {
11158        if (changesetBuilder_ == null) {
11159          changesetBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
11160              org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset, org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.Builder, org.sonar.batch.protocol.output.BatchReport.Changesets.ChangesetOrBuilder>(
11161                  changeset_,
11162                  ((bitField0_ & 0x00000002) == 0x00000002),
11163                  getParentForChildren(),
11164                  isClean());
11165          changeset_ = null;
11166        }
11167        return changesetBuilder_;
11168      }
11169
11170      private java.util.List<java.lang.Integer> changesetIndexByLine_ = java.util.Collections.emptyList();
11171      private void ensureChangesetIndexByLineIsMutable() {
11172        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
11173          changesetIndexByLine_ = new java.util.ArrayList<java.lang.Integer>(changesetIndexByLine_);
11174          bitField0_ |= 0x00000004;
11175         }
11176      }
11177      /**
11178       * <code>repeated int32 changesetIndexByLine = 3 [packed = true];</code>
11179       *
11180       * <pre>
11181       * if changesetIndexByLine[5] = 2 then it means that changeset[2] is the last one on line 6
11182       * </pre>
11183       */
11184      public java.util.List<java.lang.Integer>
11185          getChangesetIndexByLineList() {
11186        return java.util.Collections.unmodifiableList(changesetIndexByLine_);
11187      }
11188      /**
11189       * <code>repeated int32 changesetIndexByLine = 3 [packed = true];</code>
11190       *
11191       * <pre>
11192       * if changesetIndexByLine[5] = 2 then it means that changeset[2] is the last one on line 6
11193       * </pre>
11194       */
11195      public int getChangesetIndexByLineCount() {
11196        return changesetIndexByLine_.size();
11197      }
11198      /**
11199       * <code>repeated int32 changesetIndexByLine = 3 [packed = true];</code>
11200       *
11201       * <pre>
11202       * if changesetIndexByLine[5] = 2 then it means that changeset[2] is the last one on line 6
11203       * </pre>
11204       */
11205      public int getChangesetIndexByLine(int index) {
11206        return changesetIndexByLine_.get(index);
11207      }
11208      /**
11209       * <code>repeated int32 changesetIndexByLine = 3 [packed = true];</code>
11210       *
11211       * <pre>
11212       * if changesetIndexByLine[5] = 2 then it means that changeset[2] is the last one on line 6
11213       * </pre>
11214       */
11215      public Builder setChangesetIndexByLine(
11216          int index, int value) {
11217        ensureChangesetIndexByLineIsMutable();
11218        changesetIndexByLine_.set(index, value);
11219        onChanged();
11220        return this;
11221      }
11222      /**
11223       * <code>repeated int32 changesetIndexByLine = 3 [packed = true];</code>
11224       *
11225       * <pre>
11226       * if changesetIndexByLine[5] = 2 then it means that changeset[2] is the last one on line 6
11227       * </pre>
11228       */
11229      public Builder addChangesetIndexByLine(int value) {
11230        ensureChangesetIndexByLineIsMutable();
11231        changesetIndexByLine_.add(value);
11232        onChanged();
11233        return this;
11234      }
11235      /**
11236       * <code>repeated int32 changesetIndexByLine = 3 [packed = true];</code>
11237       *
11238       * <pre>
11239       * if changesetIndexByLine[5] = 2 then it means that changeset[2] is the last one on line 6
11240       * </pre>
11241       */
11242      public Builder addAllChangesetIndexByLine(
11243          java.lang.Iterable<? extends java.lang.Integer> values) {
11244        ensureChangesetIndexByLineIsMutable();
11245        com.google.protobuf.AbstractMessageLite.Builder.addAll(
11246            values, changesetIndexByLine_);
11247        onChanged();
11248        return this;
11249      }
11250      /**
11251       * <code>repeated int32 changesetIndexByLine = 3 [packed = true];</code>
11252       *
11253       * <pre>
11254       * if changesetIndexByLine[5] = 2 then it means that changeset[2] is the last one on line 6
11255       * </pre>
11256       */
11257      public Builder clearChangesetIndexByLine() {
11258        changesetIndexByLine_ = java.util.Collections.emptyList();
11259        bitField0_ = (bitField0_ & ~0x00000004);
11260        onChanged();
11261        return this;
11262      }
11263
11264      // @@protoc_insertion_point(builder_scope:Changesets)
11265    }
11266
11267    // @@protoc_insertion_point(class_scope:Changesets)
11268    private static final org.sonar.batch.protocol.output.BatchReport.Changesets DEFAULT_INSTANCE;
11269    static {
11270      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.Changesets();
11271    }
11272
11273    public static org.sonar.batch.protocol.output.BatchReport.Changesets getDefaultInstance() {
11274      return DEFAULT_INSTANCE;
11275    }
11276
11277    public static final com.google.protobuf.Parser<Changesets> PARSER =
11278        new com.google.protobuf.AbstractParser<Changesets>() {
11279      public Changesets parsePartialFrom(
11280          com.google.protobuf.CodedInputStream input,
11281          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11282          throws com.google.protobuf.InvalidProtocolBufferException {
11283        try {
11284          return new Changesets(input, extensionRegistry);
11285        } catch (RuntimeException e) {
11286          if (e.getCause() instanceof
11287              com.google.protobuf.InvalidProtocolBufferException) {
11288            throw (com.google.protobuf.InvalidProtocolBufferException)
11289                e.getCause();
11290          }
11291          throw e;
11292        }
11293      }
11294    };
11295
11296    @java.lang.Override
11297    public com.google.protobuf.Parser<Changesets> getParserForType() {
11298      return PARSER;
11299    }
11300
11301    public org.sonar.batch.protocol.output.BatchReport.Changesets getDefaultInstanceForType() {
11302      return DEFAULT_INSTANCE;
11303    }
11304
11305  }
11306
11307  public interface DuplicateOrBuilder extends
11308      // @@protoc_insertion_point(interface_extends:Duplicate)
11309      com.google.protobuf.MessageOrBuilder {
11310
11311    /**
11312     * <code>optional int32 other_file_ref = 1;</code>
11313     *
11314     * <pre>
11315     * Will be null when duplicate is in the same file
11316     * </pre>
11317     */
11318    boolean hasOtherFileRef();
11319    /**
11320     * <code>optional int32 other_file_ref = 1;</code>
11321     *
11322     * <pre>
11323     * Will be null when duplicate is in the same file
11324     * </pre>
11325     */
11326    int getOtherFileRef();
11327
11328    /**
11329     * <code>optional .TextRange range = 2;</code>
11330     */
11331    boolean hasRange();
11332    /**
11333     * <code>optional .TextRange range = 2;</code>
11334     */
11335    org.sonar.batch.protocol.output.BatchReport.TextRange getRange();
11336    /**
11337     * <code>optional .TextRange range = 2;</code>
11338     */
11339    org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getRangeOrBuilder();
11340
11341    /**
11342     * <code>optional string other_file_key = 3;</code>
11343     *
11344     * <pre>
11345     * temporary field during development of computation stack for cross project duplications
11346     * </pre>
11347     */
11348    boolean hasOtherFileKey();
11349    /**
11350     * <code>optional string other_file_key = 3;</code>
11351     *
11352     * <pre>
11353     * temporary field during development of computation stack for cross project duplications
11354     * </pre>
11355     */
11356    java.lang.String getOtherFileKey();
11357    /**
11358     * <code>optional string other_file_key = 3;</code>
11359     *
11360     * <pre>
11361     * temporary field during development of computation stack for cross project duplications
11362     * </pre>
11363     */
11364    com.google.protobuf.ByteString
11365        getOtherFileKeyBytes();
11366  }
11367  /**
11368   * Protobuf type {@code Duplicate}
11369   */
11370  public  static final class Duplicate extends
11371      com.google.protobuf.GeneratedMessage implements
11372      // @@protoc_insertion_point(message_implements:Duplicate)
11373      DuplicateOrBuilder {
11374    // Use Duplicate.newBuilder() to construct.
11375    private Duplicate(com.google.protobuf.GeneratedMessage.Builder builder) {
11376      super(builder);
11377    }
11378    private Duplicate() {
11379      otherFileRef_ = 0;
11380      otherFileKey_ = "";
11381    }
11382
11383    @java.lang.Override
11384    public final com.google.protobuf.UnknownFieldSet
11385    getUnknownFields() {
11386      return this.unknownFields;
11387    }
11388    private Duplicate(
11389        com.google.protobuf.CodedInputStream input,
11390        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
11391      this();
11392      int mutable_bitField0_ = 0;
11393      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
11394          com.google.protobuf.UnknownFieldSet.newBuilder();
11395      try {
11396        boolean done = false;
11397        while (!done) {
11398          int tag = input.readTag();
11399          switch (tag) {
11400            case 0:
11401              done = true;
11402              break;
11403            default: {
11404              if (!parseUnknownField(input, unknownFields,
11405                                     extensionRegistry, tag)) {
11406                done = true;
11407              }
11408              break;
11409            }
11410            case 8: {
11411              bitField0_ |= 0x00000001;
11412              otherFileRef_ = input.readInt32();
11413              break;
11414            }
11415            case 18: {
11416              org.sonar.batch.protocol.output.BatchReport.TextRange.Builder subBuilder = null;
11417              if (((bitField0_ & 0x00000002) == 0x00000002)) {
11418                subBuilder = range_.toBuilder();
11419              }
11420              range_ = input.readMessage(org.sonar.batch.protocol.output.BatchReport.TextRange.PARSER, extensionRegistry);
11421              if (subBuilder != null) {
11422                subBuilder.mergeFrom(range_);
11423                range_ = subBuilder.buildPartial();
11424              }
11425              bitField0_ |= 0x00000002;
11426              break;
11427            }
11428            case 26: {
11429              com.google.protobuf.ByteString bs = input.readBytes();
11430              bitField0_ |= 0x00000004;
11431              otherFileKey_ = bs;
11432              break;
11433            }
11434          }
11435        }
11436      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
11437        throw new RuntimeException(e.setUnfinishedMessage(this));
11438      } catch (java.io.IOException e) {
11439        throw new RuntimeException(
11440            new com.google.protobuf.InvalidProtocolBufferException(
11441                e.getMessage()).setUnfinishedMessage(this));
11442      } finally {
11443        this.unknownFields = unknownFields.build();
11444        makeExtensionsImmutable();
11445      }
11446    }
11447    public static final com.google.protobuf.Descriptors.Descriptor
11448        getDescriptor() {
11449      return org.sonar.batch.protocol.output.BatchReport.internal_static_Duplicate_descriptor;
11450    }
11451
11452    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
11453        internalGetFieldAccessorTable() {
11454      return org.sonar.batch.protocol.output.BatchReport.internal_static_Duplicate_fieldAccessorTable
11455          .ensureFieldAccessorsInitialized(
11456              org.sonar.batch.protocol.output.BatchReport.Duplicate.class, org.sonar.batch.protocol.output.BatchReport.Duplicate.Builder.class);
11457    }
11458
11459    private int bitField0_;
11460    public static final int OTHER_FILE_REF_FIELD_NUMBER = 1;
11461    private int otherFileRef_;
11462    /**
11463     * <code>optional int32 other_file_ref = 1;</code>
11464     *
11465     * <pre>
11466     * Will be null when duplicate is in the same file
11467     * </pre>
11468     */
11469    public boolean hasOtherFileRef() {
11470      return ((bitField0_ & 0x00000001) == 0x00000001);
11471    }
11472    /**
11473     * <code>optional int32 other_file_ref = 1;</code>
11474     *
11475     * <pre>
11476     * Will be null when duplicate is in the same file
11477     * </pre>
11478     */
11479    public int getOtherFileRef() {
11480      return otherFileRef_;
11481    }
11482
11483    public static final int RANGE_FIELD_NUMBER = 2;
11484    private org.sonar.batch.protocol.output.BatchReport.TextRange range_;
11485    /**
11486     * <code>optional .TextRange range = 2;</code>
11487     */
11488    public boolean hasRange() {
11489      return ((bitField0_ & 0x00000002) == 0x00000002);
11490    }
11491    /**
11492     * <code>optional .TextRange range = 2;</code>
11493     */
11494    public org.sonar.batch.protocol.output.BatchReport.TextRange getRange() {
11495      return range_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : range_;
11496    }
11497    /**
11498     * <code>optional .TextRange range = 2;</code>
11499     */
11500    public org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getRangeOrBuilder() {
11501      return range_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : range_;
11502    }
11503
11504    public static final int OTHER_FILE_KEY_FIELD_NUMBER = 3;
11505    private volatile java.lang.Object otherFileKey_;
11506    /**
11507     * <code>optional string other_file_key = 3;</code>
11508     *
11509     * <pre>
11510     * temporary field during development of computation stack for cross project duplications
11511     * </pre>
11512     */
11513    public boolean hasOtherFileKey() {
11514      return ((bitField0_ & 0x00000004) == 0x00000004);
11515    }
11516    /**
11517     * <code>optional string other_file_key = 3;</code>
11518     *
11519     * <pre>
11520     * temporary field during development of computation stack for cross project duplications
11521     * </pre>
11522     */
11523    public java.lang.String getOtherFileKey() {
11524      java.lang.Object ref = otherFileKey_;
11525      if (ref instanceof java.lang.String) {
11526        return (java.lang.String) ref;
11527      } else {
11528        com.google.protobuf.ByteString bs = 
11529            (com.google.protobuf.ByteString) ref;
11530        java.lang.String s = bs.toStringUtf8();
11531        if (bs.isValidUtf8()) {
11532          otherFileKey_ = s;
11533        }
11534        return s;
11535      }
11536    }
11537    /**
11538     * <code>optional string other_file_key = 3;</code>
11539     *
11540     * <pre>
11541     * temporary field during development of computation stack for cross project duplications
11542     * </pre>
11543     */
11544    public com.google.protobuf.ByteString
11545        getOtherFileKeyBytes() {
11546      java.lang.Object ref = otherFileKey_;
11547      if (ref instanceof java.lang.String) {
11548        com.google.protobuf.ByteString b = 
11549            com.google.protobuf.ByteString.copyFromUtf8(
11550                (java.lang.String) ref);
11551        otherFileKey_ = b;
11552        return b;
11553      } else {
11554        return (com.google.protobuf.ByteString) ref;
11555      }
11556    }
11557
11558    private byte memoizedIsInitialized = -1;
11559    public final boolean isInitialized() {
11560      byte isInitialized = memoizedIsInitialized;
11561      if (isInitialized == 1) return true;
11562      if (isInitialized == 0) return false;
11563
11564      memoizedIsInitialized = 1;
11565      return true;
11566    }
11567
11568    public void writeTo(com.google.protobuf.CodedOutputStream output)
11569                        throws java.io.IOException {
11570      if (((bitField0_ & 0x00000001) == 0x00000001)) {
11571        output.writeInt32(1, otherFileRef_);
11572      }
11573      if (((bitField0_ & 0x00000002) == 0x00000002)) {
11574        output.writeMessage(2, getRange());
11575      }
11576      if (((bitField0_ & 0x00000004) == 0x00000004)) {
11577        output.writeBytes(3, getOtherFileKeyBytes());
11578      }
11579      unknownFields.writeTo(output);
11580    }
11581
11582    private int memoizedSerializedSize = -1;
11583    public int getSerializedSize() {
11584      int size = memoizedSerializedSize;
11585      if (size != -1) return size;
11586
11587      size = 0;
11588      if (((bitField0_ & 0x00000001) == 0x00000001)) {
11589        size += com.google.protobuf.CodedOutputStream
11590          .computeInt32Size(1, otherFileRef_);
11591      }
11592      if (((bitField0_ & 0x00000002) == 0x00000002)) {
11593        size += com.google.protobuf.CodedOutputStream
11594          .computeMessageSize(2, getRange());
11595      }
11596      if (((bitField0_ & 0x00000004) == 0x00000004)) {
11597        size += com.google.protobuf.CodedOutputStream
11598          .computeBytesSize(3, getOtherFileKeyBytes());
11599      }
11600      size += unknownFields.getSerializedSize();
11601      memoizedSerializedSize = size;
11602      return size;
11603    }
11604
11605    private static final long serialVersionUID = 0L;
11606    public static org.sonar.batch.protocol.output.BatchReport.Duplicate parseFrom(
11607        com.google.protobuf.ByteString data)
11608        throws com.google.protobuf.InvalidProtocolBufferException {
11609      return PARSER.parseFrom(data);
11610    }
11611    public static org.sonar.batch.protocol.output.BatchReport.Duplicate parseFrom(
11612        com.google.protobuf.ByteString data,
11613        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11614        throws com.google.protobuf.InvalidProtocolBufferException {
11615      return PARSER.parseFrom(data, extensionRegistry);
11616    }
11617    public static org.sonar.batch.protocol.output.BatchReport.Duplicate parseFrom(byte[] data)
11618        throws com.google.protobuf.InvalidProtocolBufferException {
11619      return PARSER.parseFrom(data);
11620    }
11621    public static org.sonar.batch.protocol.output.BatchReport.Duplicate parseFrom(
11622        byte[] data,
11623        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11624        throws com.google.protobuf.InvalidProtocolBufferException {
11625      return PARSER.parseFrom(data, extensionRegistry);
11626    }
11627    public static org.sonar.batch.protocol.output.BatchReport.Duplicate parseFrom(java.io.InputStream input)
11628        throws java.io.IOException {
11629      return PARSER.parseFrom(input);
11630    }
11631    public static org.sonar.batch.protocol.output.BatchReport.Duplicate parseFrom(
11632        java.io.InputStream input,
11633        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11634        throws java.io.IOException {
11635      return PARSER.parseFrom(input, extensionRegistry);
11636    }
11637    public static org.sonar.batch.protocol.output.BatchReport.Duplicate parseDelimitedFrom(java.io.InputStream input)
11638        throws java.io.IOException {
11639      return PARSER.parseDelimitedFrom(input);
11640    }
11641    public static org.sonar.batch.protocol.output.BatchReport.Duplicate parseDelimitedFrom(
11642        java.io.InputStream input,
11643        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11644        throws java.io.IOException {
11645      return PARSER.parseDelimitedFrom(input, extensionRegistry);
11646    }
11647    public static org.sonar.batch.protocol.output.BatchReport.Duplicate parseFrom(
11648        com.google.protobuf.CodedInputStream input)
11649        throws java.io.IOException {
11650      return PARSER.parseFrom(input);
11651    }
11652    public static org.sonar.batch.protocol.output.BatchReport.Duplicate parseFrom(
11653        com.google.protobuf.CodedInputStream input,
11654        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11655        throws java.io.IOException {
11656      return PARSER.parseFrom(input, extensionRegistry);
11657    }
11658
11659    public Builder newBuilderForType() { return newBuilder(); }
11660    public static Builder newBuilder() {
11661      return DEFAULT_INSTANCE.toBuilder();
11662    }
11663    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.Duplicate prototype) {
11664      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
11665    }
11666    public Builder toBuilder() {
11667      return this == DEFAULT_INSTANCE
11668          ? new Builder() : new Builder().mergeFrom(this);
11669    }
11670
11671    @java.lang.Override
11672    protected Builder newBuilderForType(
11673        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
11674      Builder builder = new Builder(parent);
11675      return builder;
11676    }
11677    /**
11678     * Protobuf type {@code Duplicate}
11679     */
11680    public static final class Builder extends
11681        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
11682        // @@protoc_insertion_point(builder_implements:Duplicate)
11683        org.sonar.batch.protocol.output.BatchReport.DuplicateOrBuilder {
11684      public static final com.google.protobuf.Descriptors.Descriptor
11685          getDescriptor() {
11686        return org.sonar.batch.protocol.output.BatchReport.internal_static_Duplicate_descriptor;
11687      }
11688
11689      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
11690          internalGetFieldAccessorTable() {
11691        return org.sonar.batch.protocol.output.BatchReport.internal_static_Duplicate_fieldAccessorTable
11692            .ensureFieldAccessorsInitialized(
11693                org.sonar.batch.protocol.output.BatchReport.Duplicate.class, org.sonar.batch.protocol.output.BatchReport.Duplicate.Builder.class);
11694      }
11695
11696      // Construct using org.sonar.batch.protocol.output.BatchReport.Duplicate.newBuilder()
11697      private Builder() {
11698        maybeForceBuilderInitialization();
11699      }
11700
11701      private Builder(
11702          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
11703        super(parent);
11704        maybeForceBuilderInitialization();
11705      }
11706      private void maybeForceBuilderInitialization() {
11707        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
11708          getRangeFieldBuilder();
11709        }
11710      }
11711      public Builder clear() {
11712        super.clear();
11713        otherFileRef_ = 0;
11714        bitField0_ = (bitField0_ & ~0x00000001);
11715        if (rangeBuilder_ == null) {
11716          range_ = null;
11717        } else {
11718          rangeBuilder_.clear();
11719        }
11720        bitField0_ = (bitField0_ & ~0x00000002);
11721        otherFileKey_ = "";
11722        bitField0_ = (bitField0_ & ~0x00000004);
11723        return this;
11724      }
11725
11726      public com.google.protobuf.Descriptors.Descriptor
11727          getDescriptorForType() {
11728        return org.sonar.batch.protocol.output.BatchReport.internal_static_Duplicate_descriptor;
11729      }
11730
11731      public org.sonar.batch.protocol.output.BatchReport.Duplicate getDefaultInstanceForType() {
11732        return org.sonar.batch.protocol.output.BatchReport.Duplicate.getDefaultInstance();
11733      }
11734
11735      public org.sonar.batch.protocol.output.BatchReport.Duplicate build() {
11736        org.sonar.batch.protocol.output.BatchReport.Duplicate result = buildPartial();
11737        if (!result.isInitialized()) {
11738          throw newUninitializedMessageException(result);
11739        }
11740        return result;
11741      }
11742
11743      public org.sonar.batch.protocol.output.BatchReport.Duplicate buildPartial() {
11744        org.sonar.batch.protocol.output.BatchReport.Duplicate result = new org.sonar.batch.protocol.output.BatchReport.Duplicate(this);
11745        int from_bitField0_ = bitField0_;
11746        int to_bitField0_ = 0;
11747        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
11748          to_bitField0_ |= 0x00000001;
11749        }
11750        result.otherFileRef_ = otherFileRef_;
11751        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
11752          to_bitField0_ |= 0x00000002;
11753        }
11754        if (rangeBuilder_ == null) {
11755          result.range_ = range_;
11756        } else {
11757          result.range_ = rangeBuilder_.build();
11758        }
11759        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
11760          to_bitField0_ |= 0x00000004;
11761        }
11762        result.otherFileKey_ = otherFileKey_;
11763        result.bitField0_ = to_bitField0_;
11764        onBuilt();
11765        return result;
11766      }
11767
11768      public Builder mergeFrom(com.google.protobuf.Message other) {
11769        if (other instanceof org.sonar.batch.protocol.output.BatchReport.Duplicate) {
11770          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.Duplicate)other);
11771        } else {
11772          super.mergeFrom(other);
11773          return this;
11774        }
11775      }
11776
11777      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.Duplicate other) {
11778        if (other == org.sonar.batch.protocol.output.BatchReport.Duplicate.getDefaultInstance()) return this;
11779        if (other.hasOtherFileRef()) {
11780          setOtherFileRef(other.getOtherFileRef());
11781        }
11782        if (other.hasRange()) {
11783          mergeRange(other.getRange());
11784        }
11785        if (other.hasOtherFileKey()) {
11786          bitField0_ |= 0x00000004;
11787          otherFileKey_ = other.otherFileKey_;
11788          onChanged();
11789        }
11790        this.mergeUnknownFields(other.unknownFields);
11791        onChanged();
11792        return this;
11793      }
11794
11795      public final boolean isInitialized() {
11796        return true;
11797      }
11798
11799      public Builder mergeFrom(
11800          com.google.protobuf.CodedInputStream input,
11801          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11802          throws java.io.IOException {
11803        org.sonar.batch.protocol.output.BatchReport.Duplicate parsedMessage = null;
11804        try {
11805          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
11806        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
11807          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.Duplicate) e.getUnfinishedMessage();
11808          throw e;
11809        } finally {
11810          if (parsedMessage != null) {
11811            mergeFrom(parsedMessage);
11812          }
11813        }
11814        return this;
11815      }
11816      private int bitField0_;
11817
11818      private int otherFileRef_ ;
11819      /**
11820       * <code>optional int32 other_file_ref = 1;</code>
11821       *
11822       * <pre>
11823       * Will be null when duplicate is in the same file
11824       * </pre>
11825       */
11826      public boolean hasOtherFileRef() {
11827        return ((bitField0_ & 0x00000001) == 0x00000001);
11828      }
11829      /**
11830       * <code>optional int32 other_file_ref = 1;</code>
11831       *
11832       * <pre>
11833       * Will be null when duplicate is in the same file
11834       * </pre>
11835       */
11836      public int getOtherFileRef() {
11837        return otherFileRef_;
11838      }
11839      /**
11840       * <code>optional int32 other_file_ref = 1;</code>
11841       *
11842       * <pre>
11843       * Will be null when duplicate is in the same file
11844       * </pre>
11845       */
11846      public Builder setOtherFileRef(int value) {
11847        bitField0_ |= 0x00000001;
11848        otherFileRef_ = value;
11849        onChanged();
11850        return this;
11851      }
11852      /**
11853       * <code>optional int32 other_file_ref = 1;</code>
11854       *
11855       * <pre>
11856       * Will be null when duplicate is in the same file
11857       * </pre>
11858       */
11859      public Builder clearOtherFileRef() {
11860        bitField0_ = (bitField0_ & ~0x00000001);
11861        otherFileRef_ = 0;
11862        onChanged();
11863        return this;
11864      }
11865
11866      private org.sonar.batch.protocol.output.BatchReport.TextRange range_ = null;
11867      private com.google.protobuf.SingleFieldBuilder<
11868          org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> rangeBuilder_;
11869      /**
11870       * <code>optional .TextRange range = 2;</code>
11871       */
11872      public boolean hasRange() {
11873        return ((bitField0_ & 0x00000002) == 0x00000002);
11874      }
11875      /**
11876       * <code>optional .TextRange range = 2;</code>
11877       */
11878      public org.sonar.batch.protocol.output.BatchReport.TextRange getRange() {
11879        if (rangeBuilder_ == null) {
11880          return range_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : range_;
11881        } else {
11882          return rangeBuilder_.getMessage();
11883        }
11884      }
11885      /**
11886       * <code>optional .TextRange range = 2;</code>
11887       */
11888      public Builder setRange(org.sonar.batch.protocol.output.BatchReport.TextRange value) {
11889        if (rangeBuilder_ == null) {
11890          if (value == null) {
11891            throw new NullPointerException();
11892          }
11893          range_ = value;
11894          onChanged();
11895        } else {
11896          rangeBuilder_.setMessage(value);
11897        }
11898        bitField0_ |= 0x00000002;
11899        return this;
11900      }
11901      /**
11902       * <code>optional .TextRange range = 2;</code>
11903       */
11904      public Builder setRange(
11905          org.sonar.batch.protocol.output.BatchReport.TextRange.Builder builderForValue) {
11906        if (rangeBuilder_ == null) {
11907          range_ = builderForValue.build();
11908          onChanged();
11909        } else {
11910          rangeBuilder_.setMessage(builderForValue.build());
11911        }
11912        bitField0_ |= 0x00000002;
11913        return this;
11914      }
11915      /**
11916       * <code>optional .TextRange range = 2;</code>
11917       */
11918      public Builder mergeRange(org.sonar.batch.protocol.output.BatchReport.TextRange value) {
11919        if (rangeBuilder_ == null) {
11920          if (((bitField0_ & 0x00000002) == 0x00000002) &&
11921              range_ != null &&
11922              range_ != org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance()) {
11923            range_ =
11924              org.sonar.batch.protocol.output.BatchReport.TextRange.newBuilder(range_).mergeFrom(value).buildPartial();
11925          } else {
11926            range_ = value;
11927          }
11928          onChanged();
11929        } else {
11930          rangeBuilder_.mergeFrom(value);
11931        }
11932        bitField0_ |= 0x00000002;
11933        return this;
11934      }
11935      /**
11936       * <code>optional .TextRange range = 2;</code>
11937       */
11938      public Builder clearRange() {
11939        if (rangeBuilder_ == null) {
11940          range_ = null;
11941          onChanged();
11942        } else {
11943          rangeBuilder_.clear();
11944        }
11945        bitField0_ = (bitField0_ & ~0x00000002);
11946        return this;
11947      }
11948      /**
11949       * <code>optional .TextRange range = 2;</code>
11950       */
11951      public org.sonar.batch.protocol.output.BatchReport.TextRange.Builder getRangeBuilder() {
11952        bitField0_ |= 0x00000002;
11953        onChanged();
11954        return getRangeFieldBuilder().getBuilder();
11955      }
11956      /**
11957       * <code>optional .TextRange range = 2;</code>
11958       */
11959      public org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getRangeOrBuilder() {
11960        if (rangeBuilder_ != null) {
11961          return rangeBuilder_.getMessageOrBuilder();
11962        } else {
11963          return range_ == null ?
11964              org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : range_;
11965        }
11966      }
11967      /**
11968       * <code>optional .TextRange range = 2;</code>
11969       */
11970      private com.google.protobuf.SingleFieldBuilder<
11971          org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> 
11972          getRangeFieldBuilder() {
11973        if (rangeBuilder_ == null) {
11974          rangeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
11975              org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder>(
11976                  getRange(),
11977                  getParentForChildren(),
11978                  isClean());
11979          range_ = null;
11980        }
11981        return rangeBuilder_;
11982      }
11983
11984      private java.lang.Object otherFileKey_ = "";
11985      /**
11986       * <code>optional string other_file_key = 3;</code>
11987       *
11988       * <pre>
11989       * temporary field during development of computation stack for cross project duplications
11990       * </pre>
11991       */
11992      public boolean hasOtherFileKey() {
11993        return ((bitField0_ & 0x00000004) == 0x00000004);
11994      }
11995      /**
11996       * <code>optional string other_file_key = 3;</code>
11997       *
11998       * <pre>
11999       * temporary field during development of computation stack for cross project duplications
12000       * </pre>
12001       */
12002      public java.lang.String getOtherFileKey() {
12003        java.lang.Object ref = otherFileKey_;
12004        if (!(ref instanceof java.lang.String)) {
12005          com.google.protobuf.ByteString bs =
12006              (com.google.protobuf.ByteString) ref;
12007          java.lang.String s = bs.toStringUtf8();
12008          if (bs.isValidUtf8()) {
12009            otherFileKey_ = s;
12010          }
12011          return s;
12012        } else {
12013          return (java.lang.String) ref;
12014        }
12015      }
12016      /**
12017       * <code>optional string other_file_key = 3;</code>
12018       *
12019       * <pre>
12020       * temporary field during development of computation stack for cross project duplications
12021       * </pre>
12022       */
12023      public com.google.protobuf.ByteString
12024          getOtherFileKeyBytes() {
12025        java.lang.Object ref = otherFileKey_;
12026        if (ref instanceof String) {
12027          com.google.protobuf.ByteString b = 
12028              com.google.protobuf.ByteString.copyFromUtf8(
12029                  (java.lang.String) ref);
12030          otherFileKey_ = b;
12031          return b;
12032        } else {
12033          return (com.google.protobuf.ByteString) ref;
12034        }
12035      }
12036      /**
12037       * <code>optional string other_file_key = 3;</code>
12038       *
12039       * <pre>
12040       * temporary field during development of computation stack for cross project duplications
12041       * </pre>
12042       */
12043      public Builder setOtherFileKey(
12044          java.lang.String value) {
12045        if (value == null) {
12046    throw new NullPointerException();
12047  }
12048  bitField0_ |= 0x00000004;
12049        otherFileKey_ = value;
12050        onChanged();
12051        return this;
12052      }
12053      /**
12054       * <code>optional string other_file_key = 3;</code>
12055       *
12056       * <pre>
12057       * temporary field during development of computation stack for cross project duplications
12058       * </pre>
12059       */
12060      public Builder clearOtherFileKey() {
12061        bitField0_ = (bitField0_ & ~0x00000004);
12062        otherFileKey_ = getDefaultInstance().getOtherFileKey();
12063        onChanged();
12064        return this;
12065      }
12066      /**
12067       * <code>optional string other_file_key = 3;</code>
12068       *
12069       * <pre>
12070       * temporary field during development of computation stack for cross project duplications
12071       * </pre>
12072       */
12073      public Builder setOtherFileKeyBytes(
12074          com.google.protobuf.ByteString value) {
12075        if (value == null) {
12076    throw new NullPointerException();
12077  }
12078  bitField0_ |= 0x00000004;
12079        otherFileKey_ = value;
12080        onChanged();
12081        return this;
12082      }
12083
12084      // @@protoc_insertion_point(builder_scope:Duplicate)
12085    }
12086
12087    // @@protoc_insertion_point(class_scope:Duplicate)
12088    private static final org.sonar.batch.protocol.output.BatchReport.Duplicate DEFAULT_INSTANCE;
12089    static {
12090      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.Duplicate();
12091    }
12092
12093    public static org.sonar.batch.protocol.output.BatchReport.Duplicate getDefaultInstance() {
12094      return DEFAULT_INSTANCE;
12095    }
12096
12097    public static final com.google.protobuf.Parser<Duplicate> PARSER =
12098        new com.google.protobuf.AbstractParser<Duplicate>() {
12099      public Duplicate parsePartialFrom(
12100          com.google.protobuf.CodedInputStream input,
12101          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12102          throws com.google.protobuf.InvalidProtocolBufferException {
12103        try {
12104          return new Duplicate(input, extensionRegistry);
12105        } catch (RuntimeException e) {
12106          if (e.getCause() instanceof
12107              com.google.protobuf.InvalidProtocolBufferException) {
12108            throw (com.google.protobuf.InvalidProtocolBufferException)
12109                e.getCause();
12110          }
12111          throw e;
12112        }
12113      }
12114    };
12115
12116    @java.lang.Override
12117    public com.google.protobuf.Parser<Duplicate> getParserForType() {
12118      return PARSER;
12119    }
12120
12121    public org.sonar.batch.protocol.output.BatchReport.Duplicate getDefaultInstanceForType() {
12122      return DEFAULT_INSTANCE;
12123    }
12124
12125  }
12126
12127  public interface DuplicationOrBuilder extends
12128      // @@protoc_insertion_point(interface_extends:Duplication)
12129      com.google.protobuf.MessageOrBuilder {
12130
12131    /**
12132     * <code>optional .TextRange origin_position = 1;</code>
12133     *
12134     * <pre>
12135     * Origin position in current file
12136     * </pre>
12137     */
12138    boolean hasOriginPosition();
12139    /**
12140     * <code>optional .TextRange origin_position = 1;</code>
12141     *
12142     * <pre>
12143     * Origin position in current file
12144     * </pre>
12145     */
12146    org.sonar.batch.protocol.output.BatchReport.TextRange getOriginPosition();
12147    /**
12148     * <code>optional .TextRange origin_position = 1;</code>
12149     *
12150     * <pre>
12151     * Origin position in current file
12152     * </pre>
12153     */
12154    org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getOriginPositionOrBuilder();
12155
12156    /**
12157     * <code>repeated .Duplicate duplicate = 2;</code>
12158     */
12159    java.util.List<org.sonar.batch.protocol.output.BatchReport.Duplicate> 
12160        getDuplicateList();
12161    /**
12162     * <code>repeated .Duplicate duplicate = 2;</code>
12163     */
12164    org.sonar.batch.protocol.output.BatchReport.Duplicate getDuplicate(int index);
12165    /**
12166     * <code>repeated .Duplicate duplicate = 2;</code>
12167     */
12168    int getDuplicateCount();
12169    /**
12170     * <code>repeated .Duplicate duplicate = 2;</code>
12171     */
12172    java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.DuplicateOrBuilder> 
12173        getDuplicateOrBuilderList();
12174    /**
12175     * <code>repeated .Duplicate duplicate = 2;</code>
12176     */
12177    org.sonar.batch.protocol.output.BatchReport.DuplicateOrBuilder getDuplicateOrBuilder(
12178        int index);
12179  }
12180  /**
12181   * Protobuf type {@code Duplication}
12182   */
12183  public  static final class Duplication extends
12184      com.google.protobuf.GeneratedMessage implements
12185      // @@protoc_insertion_point(message_implements:Duplication)
12186      DuplicationOrBuilder {
12187    // Use Duplication.newBuilder() to construct.
12188    private Duplication(com.google.protobuf.GeneratedMessage.Builder builder) {
12189      super(builder);
12190    }
12191    private Duplication() {
12192      duplicate_ = java.util.Collections.emptyList();
12193    }
12194
12195    @java.lang.Override
12196    public final com.google.protobuf.UnknownFieldSet
12197    getUnknownFields() {
12198      return this.unknownFields;
12199    }
12200    private Duplication(
12201        com.google.protobuf.CodedInputStream input,
12202        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
12203      this();
12204      int mutable_bitField0_ = 0;
12205      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
12206          com.google.protobuf.UnknownFieldSet.newBuilder();
12207      try {
12208        boolean done = false;
12209        while (!done) {
12210          int tag = input.readTag();
12211          switch (tag) {
12212            case 0:
12213              done = true;
12214              break;
12215            default: {
12216              if (!parseUnknownField(input, unknownFields,
12217                                     extensionRegistry, tag)) {
12218                done = true;
12219              }
12220              break;
12221            }
12222            case 10: {
12223              org.sonar.batch.protocol.output.BatchReport.TextRange.Builder subBuilder = null;
12224              if (((bitField0_ & 0x00000001) == 0x00000001)) {
12225                subBuilder = originPosition_.toBuilder();
12226              }
12227              originPosition_ = input.readMessage(org.sonar.batch.protocol.output.BatchReport.TextRange.PARSER, extensionRegistry);
12228              if (subBuilder != null) {
12229                subBuilder.mergeFrom(originPosition_);
12230                originPosition_ = subBuilder.buildPartial();
12231              }
12232              bitField0_ |= 0x00000001;
12233              break;
12234            }
12235            case 18: {
12236              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
12237                duplicate_ = new java.util.ArrayList<org.sonar.batch.protocol.output.BatchReport.Duplicate>();
12238                mutable_bitField0_ |= 0x00000002;
12239              }
12240              duplicate_.add(input.readMessage(org.sonar.batch.protocol.output.BatchReport.Duplicate.PARSER, extensionRegistry));
12241              break;
12242            }
12243          }
12244        }
12245      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
12246        throw new RuntimeException(e.setUnfinishedMessage(this));
12247      } catch (java.io.IOException e) {
12248        throw new RuntimeException(
12249            new com.google.protobuf.InvalidProtocolBufferException(
12250                e.getMessage()).setUnfinishedMessage(this));
12251      } finally {
12252        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
12253          duplicate_ = java.util.Collections.unmodifiableList(duplicate_);
12254        }
12255        this.unknownFields = unknownFields.build();
12256        makeExtensionsImmutable();
12257      }
12258    }
12259    public static final com.google.protobuf.Descriptors.Descriptor
12260        getDescriptor() {
12261      return org.sonar.batch.protocol.output.BatchReport.internal_static_Duplication_descriptor;
12262    }
12263
12264    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
12265        internalGetFieldAccessorTable() {
12266      return org.sonar.batch.protocol.output.BatchReport.internal_static_Duplication_fieldAccessorTable
12267          .ensureFieldAccessorsInitialized(
12268              org.sonar.batch.protocol.output.BatchReport.Duplication.class, org.sonar.batch.protocol.output.BatchReport.Duplication.Builder.class);
12269    }
12270
12271    private int bitField0_;
12272    public static final int ORIGIN_POSITION_FIELD_NUMBER = 1;
12273    private org.sonar.batch.protocol.output.BatchReport.TextRange originPosition_;
12274    /**
12275     * <code>optional .TextRange origin_position = 1;</code>
12276     *
12277     * <pre>
12278     * Origin position in current file
12279     * </pre>
12280     */
12281    public boolean hasOriginPosition() {
12282      return ((bitField0_ & 0x00000001) == 0x00000001);
12283    }
12284    /**
12285     * <code>optional .TextRange origin_position = 1;</code>
12286     *
12287     * <pre>
12288     * Origin position in current file
12289     * </pre>
12290     */
12291    public org.sonar.batch.protocol.output.BatchReport.TextRange getOriginPosition() {
12292      return originPosition_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : originPosition_;
12293    }
12294    /**
12295     * <code>optional .TextRange origin_position = 1;</code>
12296     *
12297     * <pre>
12298     * Origin position in current file
12299     * </pre>
12300     */
12301    public org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getOriginPositionOrBuilder() {
12302      return originPosition_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : originPosition_;
12303    }
12304
12305    public static final int DUPLICATE_FIELD_NUMBER = 2;
12306    private java.util.List<org.sonar.batch.protocol.output.BatchReport.Duplicate> duplicate_;
12307    /**
12308     * <code>repeated .Duplicate duplicate = 2;</code>
12309     */
12310    public java.util.List<org.sonar.batch.protocol.output.BatchReport.Duplicate> getDuplicateList() {
12311      return duplicate_;
12312    }
12313    /**
12314     * <code>repeated .Duplicate duplicate = 2;</code>
12315     */
12316    public java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.DuplicateOrBuilder> 
12317        getDuplicateOrBuilderList() {
12318      return duplicate_;
12319    }
12320    /**
12321     * <code>repeated .Duplicate duplicate = 2;</code>
12322     */
12323    public int getDuplicateCount() {
12324      return duplicate_.size();
12325    }
12326    /**
12327     * <code>repeated .Duplicate duplicate = 2;</code>
12328     */
12329    public org.sonar.batch.protocol.output.BatchReport.Duplicate getDuplicate(int index) {
12330      return duplicate_.get(index);
12331    }
12332    /**
12333     * <code>repeated .Duplicate duplicate = 2;</code>
12334     */
12335    public org.sonar.batch.protocol.output.BatchReport.DuplicateOrBuilder getDuplicateOrBuilder(
12336        int index) {
12337      return duplicate_.get(index);
12338    }
12339
12340    private byte memoizedIsInitialized = -1;
12341    public final boolean isInitialized() {
12342      byte isInitialized = memoizedIsInitialized;
12343      if (isInitialized == 1) return true;
12344      if (isInitialized == 0) return false;
12345
12346      memoizedIsInitialized = 1;
12347      return true;
12348    }
12349
12350    public void writeTo(com.google.protobuf.CodedOutputStream output)
12351                        throws java.io.IOException {
12352      if (((bitField0_ & 0x00000001) == 0x00000001)) {
12353        output.writeMessage(1, getOriginPosition());
12354      }
12355      for (int i = 0; i < duplicate_.size(); i++) {
12356        output.writeMessage(2, duplicate_.get(i));
12357      }
12358      unknownFields.writeTo(output);
12359    }
12360
12361    private int memoizedSerializedSize = -1;
12362    public int getSerializedSize() {
12363      int size = memoizedSerializedSize;
12364      if (size != -1) return size;
12365
12366      size = 0;
12367      if (((bitField0_ & 0x00000001) == 0x00000001)) {
12368        size += com.google.protobuf.CodedOutputStream
12369          .computeMessageSize(1, getOriginPosition());
12370      }
12371      for (int i = 0; i < duplicate_.size(); i++) {
12372        size += com.google.protobuf.CodedOutputStream
12373          .computeMessageSize(2, duplicate_.get(i));
12374      }
12375      size += unknownFields.getSerializedSize();
12376      memoizedSerializedSize = size;
12377      return size;
12378    }
12379
12380    private static final long serialVersionUID = 0L;
12381    public static org.sonar.batch.protocol.output.BatchReport.Duplication parseFrom(
12382        com.google.protobuf.ByteString data)
12383        throws com.google.protobuf.InvalidProtocolBufferException {
12384      return PARSER.parseFrom(data);
12385    }
12386    public static org.sonar.batch.protocol.output.BatchReport.Duplication parseFrom(
12387        com.google.protobuf.ByteString data,
12388        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12389        throws com.google.protobuf.InvalidProtocolBufferException {
12390      return PARSER.parseFrom(data, extensionRegistry);
12391    }
12392    public static org.sonar.batch.protocol.output.BatchReport.Duplication parseFrom(byte[] data)
12393        throws com.google.protobuf.InvalidProtocolBufferException {
12394      return PARSER.parseFrom(data);
12395    }
12396    public static org.sonar.batch.protocol.output.BatchReport.Duplication parseFrom(
12397        byte[] data,
12398        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12399        throws com.google.protobuf.InvalidProtocolBufferException {
12400      return PARSER.parseFrom(data, extensionRegistry);
12401    }
12402    public static org.sonar.batch.protocol.output.BatchReport.Duplication parseFrom(java.io.InputStream input)
12403        throws java.io.IOException {
12404      return PARSER.parseFrom(input);
12405    }
12406    public static org.sonar.batch.protocol.output.BatchReport.Duplication parseFrom(
12407        java.io.InputStream input,
12408        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12409        throws java.io.IOException {
12410      return PARSER.parseFrom(input, extensionRegistry);
12411    }
12412    public static org.sonar.batch.protocol.output.BatchReport.Duplication parseDelimitedFrom(java.io.InputStream input)
12413        throws java.io.IOException {
12414      return PARSER.parseDelimitedFrom(input);
12415    }
12416    public static org.sonar.batch.protocol.output.BatchReport.Duplication parseDelimitedFrom(
12417        java.io.InputStream input,
12418        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12419        throws java.io.IOException {
12420      return PARSER.parseDelimitedFrom(input, extensionRegistry);
12421    }
12422    public static org.sonar.batch.protocol.output.BatchReport.Duplication parseFrom(
12423        com.google.protobuf.CodedInputStream input)
12424        throws java.io.IOException {
12425      return PARSER.parseFrom(input);
12426    }
12427    public static org.sonar.batch.protocol.output.BatchReport.Duplication parseFrom(
12428        com.google.protobuf.CodedInputStream input,
12429        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12430        throws java.io.IOException {
12431      return PARSER.parseFrom(input, extensionRegistry);
12432    }
12433
12434    public Builder newBuilderForType() { return newBuilder(); }
12435    public static Builder newBuilder() {
12436      return DEFAULT_INSTANCE.toBuilder();
12437    }
12438    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.Duplication prototype) {
12439      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
12440    }
12441    public Builder toBuilder() {
12442      return this == DEFAULT_INSTANCE
12443          ? new Builder() : new Builder().mergeFrom(this);
12444    }
12445
12446    @java.lang.Override
12447    protected Builder newBuilderForType(
12448        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
12449      Builder builder = new Builder(parent);
12450      return builder;
12451    }
12452    /**
12453     * Protobuf type {@code Duplication}
12454     */
12455    public static final class Builder extends
12456        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
12457        // @@protoc_insertion_point(builder_implements:Duplication)
12458        org.sonar.batch.protocol.output.BatchReport.DuplicationOrBuilder {
12459      public static final com.google.protobuf.Descriptors.Descriptor
12460          getDescriptor() {
12461        return org.sonar.batch.protocol.output.BatchReport.internal_static_Duplication_descriptor;
12462      }
12463
12464      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
12465          internalGetFieldAccessorTable() {
12466        return org.sonar.batch.protocol.output.BatchReport.internal_static_Duplication_fieldAccessorTable
12467            .ensureFieldAccessorsInitialized(
12468                org.sonar.batch.protocol.output.BatchReport.Duplication.class, org.sonar.batch.protocol.output.BatchReport.Duplication.Builder.class);
12469      }
12470
12471      // Construct using org.sonar.batch.protocol.output.BatchReport.Duplication.newBuilder()
12472      private Builder() {
12473        maybeForceBuilderInitialization();
12474      }
12475
12476      private Builder(
12477          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
12478        super(parent);
12479        maybeForceBuilderInitialization();
12480      }
12481      private void maybeForceBuilderInitialization() {
12482        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
12483          getOriginPositionFieldBuilder();
12484          getDuplicateFieldBuilder();
12485        }
12486      }
12487      public Builder clear() {
12488        super.clear();
12489        if (originPositionBuilder_ == null) {
12490          originPosition_ = null;
12491        } else {
12492          originPositionBuilder_.clear();
12493        }
12494        bitField0_ = (bitField0_ & ~0x00000001);
12495        if (duplicateBuilder_ == null) {
12496          duplicate_ = java.util.Collections.emptyList();
12497          bitField0_ = (bitField0_ & ~0x00000002);
12498        } else {
12499          duplicateBuilder_.clear();
12500        }
12501        return this;
12502      }
12503
12504      public com.google.protobuf.Descriptors.Descriptor
12505          getDescriptorForType() {
12506        return org.sonar.batch.protocol.output.BatchReport.internal_static_Duplication_descriptor;
12507      }
12508
12509      public org.sonar.batch.protocol.output.BatchReport.Duplication getDefaultInstanceForType() {
12510        return org.sonar.batch.protocol.output.BatchReport.Duplication.getDefaultInstance();
12511      }
12512
12513      public org.sonar.batch.protocol.output.BatchReport.Duplication build() {
12514        org.sonar.batch.protocol.output.BatchReport.Duplication result = buildPartial();
12515        if (!result.isInitialized()) {
12516          throw newUninitializedMessageException(result);
12517        }
12518        return result;
12519      }
12520
12521      public org.sonar.batch.protocol.output.BatchReport.Duplication buildPartial() {
12522        org.sonar.batch.protocol.output.BatchReport.Duplication result = new org.sonar.batch.protocol.output.BatchReport.Duplication(this);
12523        int from_bitField0_ = bitField0_;
12524        int to_bitField0_ = 0;
12525        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
12526          to_bitField0_ |= 0x00000001;
12527        }
12528        if (originPositionBuilder_ == null) {
12529          result.originPosition_ = originPosition_;
12530        } else {
12531          result.originPosition_ = originPositionBuilder_.build();
12532        }
12533        if (duplicateBuilder_ == null) {
12534          if (((bitField0_ & 0x00000002) == 0x00000002)) {
12535            duplicate_ = java.util.Collections.unmodifiableList(duplicate_);
12536            bitField0_ = (bitField0_ & ~0x00000002);
12537          }
12538          result.duplicate_ = duplicate_;
12539        } else {
12540          result.duplicate_ = duplicateBuilder_.build();
12541        }
12542        result.bitField0_ = to_bitField0_;
12543        onBuilt();
12544        return result;
12545      }
12546
12547      public Builder mergeFrom(com.google.protobuf.Message other) {
12548        if (other instanceof org.sonar.batch.protocol.output.BatchReport.Duplication) {
12549          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.Duplication)other);
12550        } else {
12551          super.mergeFrom(other);
12552          return this;
12553        }
12554      }
12555
12556      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.Duplication other) {
12557        if (other == org.sonar.batch.protocol.output.BatchReport.Duplication.getDefaultInstance()) return this;
12558        if (other.hasOriginPosition()) {
12559          mergeOriginPosition(other.getOriginPosition());
12560        }
12561        if (duplicateBuilder_ == null) {
12562          if (!other.duplicate_.isEmpty()) {
12563            if (duplicate_.isEmpty()) {
12564              duplicate_ = other.duplicate_;
12565              bitField0_ = (bitField0_ & ~0x00000002);
12566            } else {
12567              ensureDuplicateIsMutable();
12568              duplicate_.addAll(other.duplicate_);
12569            }
12570            onChanged();
12571          }
12572        } else {
12573          if (!other.duplicate_.isEmpty()) {
12574            if (duplicateBuilder_.isEmpty()) {
12575              duplicateBuilder_.dispose();
12576              duplicateBuilder_ = null;
12577              duplicate_ = other.duplicate_;
12578              bitField0_ = (bitField0_ & ~0x00000002);
12579              duplicateBuilder_ = 
12580                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
12581                   getDuplicateFieldBuilder() : null;
12582            } else {
12583              duplicateBuilder_.addAllMessages(other.duplicate_);
12584            }
12585          }
12586        }
12587        this.mergeUnknownFields(other.unknownFields);
12588        onChanged();
12589        return this;
12590      }
12591
12592      public final boolean isInitialized() {
12593        return true;
12594      }
12595
12596      public Builder mergeFrom(
12597          com.google.protobuf.CodedInputStream input,
12598          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12599          throws java.io.IOException {
12600        org.sonar.batch.protocol.output.BatchReport.Duplication parsedMessage = null;
12601        try {
12602          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
12603        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
12604          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.Duplication) e.getUnfinishedMessage();
12605          throw e;
12606        } finally {
12607          if (parsedMessage != null) {
12608            mergeFrom(parsedMessage);
12609          }
12610        }
12611        return this;
12612      }
12613      private int bitField0_;
12614
12615      private org.sonar.batch.protocol.output.BatchReport.TextRange originPosition_ = null;
12616      private com.google.protobuf.SingleFieldBuilder<
12617          org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> originPositionBuilder_;
12618      /**
12619       * <code>optional .TextRange origin_position = 1;</code>
12620       *
12621       * <pre>
12622       * Origin position in current file
12623       * </pre>
12624       */
12625      public boolean hasOriginPosition() {
12626        return ((bitField0_ & 0x00000001) == 0x00000001);
12627      }
12628      /**
12629       * <code>optional .TextRange origin_position = 1;</code>
12630       *
12631       * <pre>
12632       * Origin position in current file
12633       * </pre>
12634       */
12635      public org.sonar.batch.protocol.output.BatchReport.TextRange getOriginPosition() {
12636        if (originPositionBuilder_ == null) {
12637          return originPosition_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : originPosition_;
12638        } else {
12639          return originPositionBuilder_.getMessage();
12640        }
12641      }
12642      /**
12643       * <code>optional .TextRange origin_position = 1;</code>
12644       *
12645       * <pre>
12646       * Origin position in current file
12647       * </pre>
12648       */
12649      public Builder setOriginPosition(org.sonar.batch.protocol.output.BatchReport.TextRange value) {
12650        if (originPositionBuilder_ == null) {
12651          if (value == null) {
12652            throw new NullPointerException();
12653          }
12654          originPosition_ = value;
12655          onChanged();
12656        } else {
12657          originPositionBuilder_.setMessage(value);
12658        }
12659        bitField0_ |= 0x00000001;
12660        return this;
12661      }
12662      /**
12663       * <code>optional .TextRange origin_position = 1;</code>
12664       *
12665       * <pre>
12666       * Origin position in current file
12667       * </pre>
12668       */
12669      public Builder setOriginPosition(
12670          org.sonar.batch.protocol.output.BatchReport.TextRange.Builder builderForValue) {
12671        if (originPositionBuilder_ == null) {
12672          originPosition_ = builderForValue.build();
12673          onChanged();
12674        } else {
12675          originPositionBuilder_.setMessage(builderForValue.build());
12676        }
12677        bitField0_ |= 0x00000001;
12678        return this;
12679      }
12680      /**
12681       * <code>optional .TextRange origin_position = 1;</code>
12682       *
12683       * <pre>
12684       * Origin position in current file
12685       * </pre>
12686       */
12687      public Builder mergeOriginPosition(org.sonar.batch.protocol.output.BatchReport.TextRange value) {
12688        if (originPositionBuilder_ == null) {
12689          if (((bitField0_ & 0x00000001) == 0x00000001) &&
12690              originPosition_ != null &&
12691              originPosition_ != org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance()) {
12692            originPosition_ =
12693              org.sonar.batch.protocol.output.BatchReport.TextRange.newBuilder(originPosition_).mergeFrom(value).buildPartial();
12694          } else {
12695            originPosition_ = value;
12696          }
12697          onChanged();
12698        } else {
12699          originPositionBuilder_.mergeFrom(value);
12700        }
12701        bitField0_ |= 0x00000001;
12702        return this;
12703      }
12704      /**
12705       * <code>optional .TextRange origin_position = 1;</code>
12706       *
12707       * <pre>
12708       * Origin position in current file
12709       * </pre>
12710       */
12711      public Builder clearOriginPosition() {
12712        if (originPositionBuilder_ == null) {
12713          originPosition_ = null;
12714          onChanged();
12715        } else {
12716          originPositionBuilder_.clear();
12717        }
12718        bitField0_ = (bitField0_ & ~0x00000001);
12719        return this;
12720      }
12721      /**
12722       * <code>optional .TextRange origin_position = 1;</code>
12723       *
12724       * <pre>
12725       * Origin position in current file
12726       * </pre>
12727       */
12728      public org.sonar.batch.protocol.output.BatchReport.TextRange.Builder getOriginPositionBuilder() {
12729        bitField0_ |= 0x00000001;
12730        onChanged();
12731        return getOriginPositionFieldBuilder().getBuilder();
12732      }
12733      /**
12734       * <code>optional .TextRange origin_position = 1;</code>
12735       *
12736       * <pre>
12737       * Origin position in current file
12738       * </pre>
12739       */
12740      public org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getOriginPositionOrBuilder() {
12741        if (originPositionBuilder_ != null) {
12742          return originPositionBuilder_.getMessageOrBuilder();
12743        } else {
12744          return originPosition_ == null ?
12745              org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : originPosition_;
12746        }
12747      }
12748      /**
12749       * <code>optional .TextRange origin_position = 1;</code>
12750       *
12751       * <pre>
12752       * Origin position in current file
12753       * </pre>
12754       */
12755      private com.google.protobuf.SingleFieldBuilder<
12756          org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> 
12757          getOriginPositionFieldBuilder() {
12758        if (originPositionBuilder_ == null) {
12759          originPositionBuilder_ = new com.google.protobuf.SingleFieldBuilder<
12760              org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder>(
12761                  getOriginPosition(),
12762                  getParentForChildren(),
12763                  isClean());
12764          originPosition_ = null;
12765        }
12766        return originPositionBuilder_;
12767      }
12768
12769      private java.util.List<org.sonar.batch.protocol.output.BatchReport.Duplicate> duplicate_ =
12770        java.util.Collections.emptyList();
12771      private void ensureDuplicateIsMutable() {
12772        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
12773          duplicate_ = new java.util.ArrayList<org.sonar.batch.protocol.output.BatchReport.Duplicate>(duplicate_);
12774          bitField0_ |= 0x00000002;
12775         }
12776      }
12777
12778      private com.google.protobuf.RepeatedFieldBuilder<
12779          org.sonar.batch.protocol.output.BatchReport.Duplicate, org.sonar.batch.protocol.output.BatchReport.Duplicate.Builder, org.sonar.batch.protocol.output.BatchReport.DuplicateOrBuilder> duplicateBuilder_;
12780
12781      /**
12782       * <code>repeated .Duplicate duplicate = 2;</code>
12783       */
12784      public java.util.List<org.sonar.batch.protocol.output.BatchReport.Duplicate> getDuplicateList() {
12785        if (duplicateBuilder_ == null) {
12786          return java.util.Collections.unmodifiableList(duplicate_);
12787        } else {
12788          return duplicateBuilder_.getMessageList();
12789        }
12790      }
12791      /**
12792       * <code>repeated .Duplicate duplicate = 2;</code>
12793       */
12794      public int getDuplicateCount() {
12795        if (duplicateBuilder_ == null) {
12796          return duplicate_.size();
12797        } else {
12798          return duplicateBuilder_.getCount();
12799        }
12800      }
12801      /**
12802       * <code>repeated .Duplicate duplicate = 2;</code>
12803       */
12804      public org.sonar.batch.protocol.output.BatchReport.Duplicate getDuplicate(int index) {
12805        if (duplicateBuilder_ == null) {
12806          return duplicate_.get(index);
12807        } else {
12808          return duplicateBuilder_.getMessage(index);
12809        }
12810      }
12811      /**
12812       * <code>repeated .Duplicate duplicate = 2;</code>
12813       */
12814      public Builder setDuplicate(
12815          int index, org.sonar.batch.protocol.output.BatchReport.Duplicate value) {
12816        if (duplicateBuilder_ == null) {
12817          if (value == null) {
12818            throw new NullPointerException();
12819          }
12820          ensureDuplicateIsMutable();
12821          duplicate_.set(index, value);
12822          onChanged();
12823        } else {
12824          duplicateBuilder_.setMessage(index, value);
12825        }
12826        return this;
12827      }
12828      /**
12829       * <code>repeated .Duplicate duplicate = 2;</code>
12830       */
12831      public Builder setDuplicate(
12832          int index, org.sonar.batch.protocol.output.BatchReport.Duplicate.Builder builderForValue) {
12833        if (duplicateBuilder_ == null) {
12834          ensureDuplicateIsMutable();
12835          duplicate_.set(index, builderForValue.build());
12836          onChanged();
12837        } else {
12838          duplicateBuilder_.setMessage(index, builderForValue.build());
12839        }
12840        return this;
12841      }
12842      /**
12843       * <code>repeated .Duplicate duplicate = 2;</code>
12844       */
12845      public Builder addDuplicate(org.sonar.batch.protocol.output.BatchReport.Duplicate value) {
12846        if (duplicateBuilder_ == null) {
12847          if (value == null) {
12848            throw new NullPointerException();
12849          }
12850          ensureDuplicateIsMutable();
12851          duplicate_.add(value);
12852          onChanged();
12853        } else {
12854          duplicateBuilder_.addMessage(value);
12855        }
12856        return this;
12857      }
12858      /**
12859       * <code>repeated .Duplicate duplicate = 2;</code>
12860       */
12861      public Builder addDuplicate(
12862          int index, org.sonar.batch.protocol.output.BatchReport.Duplicate value) {
12863        if (duplicateBuilder_ == null) {
12864          if (value == null) {
12865            throw new NullPointerException();
12866          }
12867          ensureDuplicateIsMutable();
12868          duplicate_.add(index, value);
12869          onChanged();
12870        } else {
12871          duplicateBuilder_.addMessage(index, value);
12872        }
12873        return this;
12874      }
12875      /**
12876       * <code>repeated .Duplicate duplicate = 2;</code>
12877       */
12878      public Builder addDuplicate(
12879          org.sonar.batch.protocol.output.BatchReport.Duplicate.Builder builderForValue) {
12880        if (duplicateBuilder_ == null) {
12881          ensureDuplicateIsMutable();
12882          duplicate_.add(builderForValue.build());
12883          onChanged();
12884        } else {
12885          duplicateBuilder_.addMessage(builderForValue.build());
12886        }
12887        return this;
12888      }
12889      /**
12890       * <code>repeated .Duplicate duplicate = 2;</code>
12891       */
12892      public Builder addDuplicate(
12893          int index, org.sonar.batch.protocol.output.BatchReport.Duplicate.Builder builderForValue) {
12894        if (duplicateBuilder_ == null) {
12895          ensureDuplicateIsMutable();
12896          duplicate_.add(index, builderForValue.build());
12897          onChanged();
12898        } else {
12899          duplicateBuilder_.addMessage(index, builderForValue.build());
12900        }
12901        return this;
12902      }
12903      /**
12904       * <code>repeated .Duplicate duplicate = 2;</code>
12905       */
12906      public Builder addAllDuplicate(
12907          java.lang.Iterable<? extends org.sonar.batch.protocol.output.BatchReport.Duplicate> values) {
12908        if (duplicateBuilder_ == null) {
12909          ensureDuplicateIsMutable();
12910          com.google.protobuf.AbstractMessageLite.Builder.addAll(
12911              values, duplicate_);
12912          onChanged();
12913        } else {
12914          duplicateBuilder_.addAllMessages(values);
12915        }
12916        return this;
12917      }
12918      /**
12919       * <code>repeated .Duplicate duplicate = 2;</code>
12920       */
12921      public Builder clearDuplicate() {
12922        if (duplicateBuilder_ == null) {
12923          duplicate_ = java.util.Collections.emptyList();
12924          bitField0_ = (bitField0_ & ~0x00000002);
12925          onChanged();
12926        } else {
12927          duplicateBuilder_.clear();
12928        }
12929        return this;
12930      }
12931      /**
12932       * <code>repeated .Duplicate duplicate = 2;</code>
12933       */
12934      public Builder removeDuplicate(int index) {
12935        if (duplicateBuilder_ == null) {
12936          ensureDuplicateIsMutable();
12937          duplicate_.remove(index);
12938          onChanged();
12939        } else {
12940          duplicateBuilder_.remove(index);
12941        }
12942        return this;
12943      }
12944      /**
12945       * <code>repeated .Duplicate duplicate = 2;</code>
12946       */
12947      public org.sonar.batch.protocol.output.BatchReport.Duplicate.Builder getDuplicateBuilder(
12948          int index) {
12949        return getDuplicateFieldBuilder().getBuilder(index);
12950      }
12951      /**
12952       * <code>repeated .Duplicate duplicate = 2;</code>
12953       */
12954      public org.sonar.batch.protocol.output.BatchReport.DuplicateOrBuilder getDuplicateOrBuilder(
12955          int index) {
12956        if (duplicateBuilder_ == null) {
12957          return duplicate_.get(index);  } else {
12958          return duplicateBuilder_.getMessageOrBuilder(index);
12959        }
12960      }
12961      /**
12962       * <code>repeated .Duplicate duplicate = 2;</code>
12963       */
12964      public java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.DuplicateOrBuilder> 
12965           getDuplicateOrBuilderList() {
12966        if (duplicateBuilder_ != null) {
12967          return duplicateBuilder_.getMessageOrBuilderList();
12968        } else {
12969          return java.util.Collections.unmodifiableList(duplicate_);
12970        }
12971      }
12972      /**
12973       * <code>repeated .Duplicate duplicate = 2;</code>
12974       */
12975      public org.sonar.batch.protocol.output.BatchReport.Duplicate.Builder addDuplicateBuilder() {
12976        return getDuplicateFieldBuilder().addBuilder(
12977            org.sonar.batch.protocol.output.BatchReport.Duplicate.getDefaultInstance());
12978      }
12979      /**
12980       * <code>repeated .Duplicate duplicate = 2;</code>
12981       */
12982      public org.sonar.batch.protocol.output.BatchReport.Duplicate.Builder addDuplicateBuilder(
12983          int index) {
12984        return getDuplicateFieldBuilder().addBuilder(
12985            index, org.sonar.batch.protocol.output.BatchReport.Duplicate.getDefaultInstance());
12986      }
12987      /**
12988       * <code>repeated .Duplicate duplicate = 2;</code>
12989       */
12990      public java.util.List<org.sonar.batch.protocol.output.BatchReport.Duplicate.Builder> 
12991           getDuplicateBuilderList() {
12992        return getDuplicateFieldBuilder().getBuilderList();
12993      }
12994      private com.google.protobuf.RepeatedFieldBuilder<
12995          org.sonar.batch.protocol.output.BatchReport.Duplicate, org.sonar.batch.protocol.output.BatchReport.Duplicate.Builder, org.sonar.batch.protocol.output.BatchReport.DuplicateOrBuilder> 
12996          getDuplicateFieldBuilder() {
12997        if (duplicateBuilder_ == null) {
12998          duplicateBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
12999              org.sonar.batch.protocol.output.BatchReport.Duplicate, org.sonar.batch.protocol.output.BatchReport.Duplicate.Builder, org.sonar.batch.protocol.output.BatchReport.DuplicateOrBuilder>(
13000                  duplicate_,
13001                  ((bitField0_ & 0x00000002) == 0x00000002),
13002                  getParentForChildren(),
13003                  isClean());
13004          duplicate_ = null;
13005        }
13006        return duplicateBuilder_;
13007      }
13008
13009      // @@protoc_insertion_point(builder_scope:Duplication)
13010    }
13011
13012    // @@protoc_insertion_point(class_scope:Duplication)
13013    private static final org.sonar.batch.protocol.output.BatchReport.Duplication DEFAULT_INSTANCE;
13014    static {
13015      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.Duplication();
13016    }
13017
13018    public static org.sonar.batch.protocol.output.BatchReport.Duplication getDefaultInstance() {
13019      return DEFAULT_INSTANCE;
13020    }
13021
13022    public static final com.google.protobuf.Parser<Duplication> PARSER =
13023        new com.google.protobuf.AbstractParser<Duplication>() {
13024      public Duplication parsePartialFrom(
13025          com.google.protobuf.CodedInputStream input,
13026          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
13027          throws com.google.protobuf.InvalidProtocolBufferException {
13028        try {
13029          return new Duplication(input, extensionRegistry);
13030        } catch (RuntimeException e) {
13031          if (e.getCause() instanceof
13032              com.google.protobuf.InvalidProtocolBufferException) {
13033            throw (com.google.protobuf.InvalidProtocolBufferException)
13034                e.getCause();
13035          }
13036          throw e;
13037        }
13038      }
13039    };
13040
13041    @java.lang.Override
13042    public com.google.protobuf.Parser<Duplication> getParserForType() {
13043      return PARSER;
13044    }
13045
13046    public org.sonar.batch.protocol.output.BatchReport.Duplication getDefaultInstanceForType() {
13047      return DEFAULT_INSTANCE;
13048    }
13049
13050  }
13051
13052  public interface TextRangeOrBuilder extends
13053      // @@protoc_insertion_point(interface_extends:TextRange)
13054      com.google.protobuf.MessageOrBuilder {
13055
13056    /**
13057     * <code>optional int32 start_line = 1;</code>
13058     *
13059     * <pre>
13060     * Should never be null
13061     * </pre>
13062     */
13063    boolean hasStartLine();
13064    /**
13065     * <code>optional int32 start_line = 1;</code>
13066     *
13067     * <pre>
13068     * Should never be null
13069     * </pre>
13070     */
13071    int getStartLine();
13072
13073    /**
13074     * <code>optional int32 end_line = 2;</code>
13075     *
13076     * <pre>
13077     * End line (inclusive). Null means it is same as start line
13078     * </pre>
13079     */
13080    boolean hasEndLine();
13081    /**
13082     * <code>optional int32 end_line = 2;</code>
13083     *
13084     * <pre>
13085     * End line (inclusive). Null means it is same as start line
13086     * </pre>
13087     */
13088    int getEndLine();
13089
13090    /**
13091     * <code>optional int32 start_offset = 3;</code>
13092     *
13093     * <pre>
13094     * If null it means range starts at the first offset of start line
13095     * </pre>
13096     */
13097    boolean hasStartOffset();
13098    /**
13099     * <code>optional int32 start_offset = 3;</code>
13100     *
13101     * <pre>
13102     * If null it means range starts at the first offset of start line
13103     * </pre>
13104     */
13105    int getStartOffset();
13106
13107    /**
13108     * <code>optional int32 end_offset = 4;</code>
13109     *
13110     * <pre>
13111     * If null it means range ends at the last offset of end line
13112     * </pre>
13113     */
13114    boolean hasEndOffset();
13115    /**
13116     * <code>optional int32 end_offset = 4;</code>
13117     *
13118     * <pre>
13119     * If null it means range ends at the last offset of end line
13120     * </pre>
13121     */
13122    int getEndOffset();
13123  }
13124  /**
13125   * Protobuf type {@code TextRange}
13126   *
13127   * <pre>
13128   * Lines start at 1 and line offsets start at 0
13129   * </pre>
13130   */
13131  public  static final class TextRange extends
13132      com.google.protobuf.GeneratedMessage implements
13133      // @@protoc_insertion_point(message_implements:TextRange)
13134      TextRangeOrBuilder {
13135    // Use TextRange.newBuilder() to construct.
13136    private TextRange(com.google.protobuf.GeneratedMessage.Builder builder) {
13137      super(builder);
13138    }
13139    private TextRange() {
13140      startLine_ = 0;
13141      endLine_ = 0;
13142      startOffset_ = 0;
13143      endOffset_ = 0;
13144    }
13145
13146    @java.lang.Override
13147    public final com.google.protobuf.UnknownFieldSet
13148    getUnknownFields() {
13149      return this.unknownFields;
13150    }
13151    private TextRange(
13152        com.google.protobuf.CodedInputStream input,
13153        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
13154      this();
13155      int mutable_bitField0_ = 0;
13156      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
13157          com.google.protobuf.UnknownFieldSet.newBuilder();
13158      try {
13159        boolean done = false;
13160        while (!done) {
13161          int tag = input.readTag();
13162          switch (tag) {
13163            case 0:
13164              done = true;
13165              break;
13166            default: {
13167              if (!parseUnknownField(input, unknownFields,
13168                                     extensionRegistry, tag)) {
13169                done = true;
13170              }
13171              break;
13172            }
13173            case 8: {
13174              bitField0_ |= 0x00000001;
13175              startLine_ = input.readInt32();
13176              break;
13177            }
13178            case 16: {
13179              bitField0_ |= 0x00000002;
13180              endLine_ = input.readInt32();
13181              break;
13182            }
13183            case 24: {
13184              bitField0_ |= 0x00000004;
13185              startOffset_ = input.readInt32();
13186              break;
13187            }
13188            case 32: {
13189              bitField0_ |= 0x00000008;
13190              endOffset_ = input.readInt32();
13191              break;
13192            }
13193          }
13194        }
13195      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
13196        throw new RuntimeException(e.setUnfinishedMessage(this));
13197      } catch (java.io.IOException e) {
13198        throw new RuntimeException(
13199            new com.google.protobuf.InvalidProtocolBufferException(
13200                e.getMessage()).setUnfinishedMessage(this));
13201      } finally {
13202        this.unknownFields = unknownFields.build();
13203        makeExtensionsImmutable();
13204      }
13205    }
13206    public static final com.google.protobuf.Descriptors.Descriptor
13207        getDescriptor() {
13208      return org.sonar.batch.protocol.output.BatchReport.internal_static_TextRange_descriptor;
13209    }
13210
13211    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
13212        internalGetFieldAccessorTable() {
13213      return org.sonar.batch.protocol.output.BatchReport.internal_static_TextRange_fieldAccessorTable
13214          .ensureFieldAccessorsInitialized(
13215              org.sonar.batch.protocol.output.BatchReport.TextRange.class, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder.class);
13216    }
13217
13218    private int bitField0_;
13219    public static final int START_LINE_FIELD_NUMBER = 1;
13220    private int startLine_;
13221    /**
13222     * <code>optional int32 start_line = 1;</code>
13223     *
13224     * <pre>
13225     * Should never be null
13226     * </pre>
13227     */
13228    public boolean hasStartLine() {
13229      return ((bitField0_ & 0x00000001) == 0x00000001);
13230    }
13231    /**
13232     * <code>optional int32 start_line = 1;</code>
13233     *
13234     * <pre>
13235     * Should never be null
13236     * </pre>
13237     */
13238    public int getStartLine() {
13239      return startLine_;
13240    }
13241
13242    public static final int END_LINE_FIELD_NUMBER = 2;
13243    private int endLine_;
13244    /**
13245     * <code>optional int32 end_line = 2;</code>
13246     *
13247     * <pre>
13248     * End line (inclusive). Null means it is same as start line
13249     * </pre>
13250     */
13251    public boolean hasEndLine() {
13252      return ((bitField0_ & 0x00000002) == 0x00000002);
13253    }
13254    /**
13255     * <code>optional int32 end_line = 2;</code>
13256     *
13257     * <pre>
13258     * End line (inclusive). Null means it is same as start line
13259     * </pre>
13260     */
13261    public int getEndLine() {
13262      return endLine_;
13263    }
13264
13265    public static final int START_OFFSET_FIELD_NUMBER = 3;
13266    private int startOffset_;
13267    /**
13268     * <code>optional int32 start_offset = 3;</code>
13269     *
13270     * <pre>
13271     * If null it means range starts at the first offset of start line
13272     * </pre>
13273     */
13274    public boolean hasStartOffset() {
13275      return ((bitField0_ & 0x00000004) == 0x00000004);
13276    }
13277    /**
13278     * <code>optional int32 start_offset = 3;</code>
13279     *
13280     * <pre>
13281     * If null it means range starts at the first offset of start line
13282     * </pre>
13283     */
13284    public int getStartOffset() {
13285      return startOffset_;
13286    }
13287
13288    public static final int END_OFFSET_FIELD_NUMBER = 4;
13289    private int endOffset_;
13290    /**
13291     * <code>optional int32 end_offset = 4;</code>
13292     *
13293     * <pre>
13294     * If null it means range ends at the last offset of end line
13295     * </pre>
13296     */
13297    public boolean hasEndOffset() {
13298      return ((bitField0_ & 0x00000008) == 0x00000008);
13299    }
13300    /**
13301     * <code>optional int32 end_offset = 4;</code>
13302     *
13303     * <pre>
13304     * If null it means range ends at the last offset of end line
13305     * </pre>
13306     */
13307    public int getEndOffset() {
13308      return endOffset_;
13309    }
13310
13311    private byte memoizedIsInitialized = -1;
13312    public final boolean isInitialized() {
13313      byte isInitialized = memoizedIsInitialized;
13314      if (isInitialized == 1) return true;
13315      if (isInitialized == 0) return false;
13316
13317      memoizedIsInitialized = 1;
13318      return true;
13319    }
13320
13321    public void writeTo(com.google.protobuf.CodedOutputStream output)
13322                        throws java.io.IOException {
13323      if (((bitField0_ & 0x00000001) == 0x00000001)) {
13324        output.writeInt32(1, startLine_);
13325      }
13326      if (((bitField0_ & 0x00000002) == 0x00000002)) {
13327        output.writeInt32(2, endLine_);
13328      }
13329      if (((bitField0_ & 0x00000004) == 0x00000004)) {
13330        output.writeInt32(3, startOffset_);
13331      }
13332      if (((bitField0_ & 0x00000008) == 0x00000008)) {
13333        output.writeInt32(4, endOffset_);
13334      }
13335      unknownFields.writeTo(output);
13336    }
13337
13338    private int memoizedSerializedSize = -1;
13339    public int getSerializedSize() {
13340      int size = memoizedSerializedSize;
13341      if (size != -1) return size;
13342
13343      size = 0;
13344      if (((bitField0_ & 0x00000001) == 0x00000001)) {
13345        size += com.google.protobuf.CodedOutputStream
13346          .computeInt32Size(1, startLine_);
13347      }
13348      if (((bitField0_ & 0x00000002) == 0x00000002)) {
13349        size += com.google.protobuf.CodedOutputStream
13350          .computeInt32Size(2, endLine_);
13351      }
13352      if (((bitField0_ & 0x00000004) == 0x00000004)) {
13353        size += com.google.protobuf.CodedOutputStream
13354          .computeInt32Size(3, startOffset_);
13355      }
13356      if (((bitField0_ & 0x00000008) == 0x00000008)) {
13357        size += com.google.protobuf.CodedOutputStream
13358          .computeInt32Size(4, endOffset_);
13359      }
13360      size += unknownFields.getSerializedSize();
13361      memoizedSerializedSize = size;
13362      return size;
13363    }
13364
13365    private static final long serialVersionUID = 0L;
13366    public static org.sonar.batch.protocol.output.BatchReport.TextRange parseFrom(
13367        com.google.protobuf.ByteString data)
13368        throws com.google.protobuf.InvalidProtocolBufferException {
13369      return PARSER.parseFrom(data);
13370    }
13371    public static org.sonar.batch.protocol.output.BatchReport.TextRange parseFrom(
13372        com.google.protobuf.ByteString data,
13373        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
13374        throws com.google.protobuf.InvalidProtocolBufferException {
13375      return PARSER.parseFrom(data, extensionRegistry);
13376    }
13377    public static org.sonar.batch.protocol.output.BatchReport.TextRange parseFrom(byte[] data)
13378        throws com.google.protobuf.InvalidProtocolBufferException {
13379      return PARSER.parseFrom(data);
13380    }
13381    public static org.sonar.batch.protocol.output.BatchReport.TextRange parseFrom(
13382        byte[] data,
13383        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
13384        throws com.google.protobuf.InvalidProtocolBufferException {
13385      return PARSER.parseFrom(data, extensionRegistry);
13386    }
13387    public static org.sonar.batch.protocol.output.BatchReport.TextRange parseFrom(java.io.InputStream input)
13388        throws java.io.IOException {
13389      return PARSER.parseFrom(input);
13390    }
13391    public static org.sonar.batch.protocol.output.BatchReport.TextRange parseFrom(
13392        java.io.InputStream input,
13393        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
13394        throws java.io.IOException {
13395      return PARSER.parseFrom(input, extensionRegistry);
13396    }
13397    public static org.sonar.batch.protocol.output.BatchReport.TextRange parseDelimitedFrom(java.io.InputStream input)
13398        throws java.io.IOException {
13399      return PARSER.parseDelimitedFrom(input);
13400    }
13401    public static org.sonar.batch.protocol.output.BatchReport.TextRange parseDelimitedFrom(
13402        java.io.InputStream input,
13403        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
13404        throws java.io.IOException {
13405      return PARSER.parseDelimitedFrom(input, extensionRegistry);
13406    }
13407    public static org.sonar.batch.protocol.output.BatchReport.TextRange parseFrom(
13408        com.google.protobuf.CodedInputStream input)
13409        throws java.io.IOException {
13410      return PARSER.parseFrom(input);
13411    }
13412    public static org.sonar.batch.protocol.output.BatchReport.TextRange parseFrom(
13413        com.google.protobuf.CodedInputStream input,
13414        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
13415        throws java.io.IOException {
13416      return PARSER.parseFrom(input, extensionRegistry);
13417    }
13418
13419    public Builder newBuilderForType() { return newBuilder(); }
13420    public static Builder newBuilder() {
13421      return DEFAULT_INSTANCE.toBuilder();
13422    }
13423    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.TextRange prototype) {
13424      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
13425    }
13426    public Builder toBuilder() {
13427      return this == DEFAULT_INSTANCE
13428          ? new Builder() : new Builder().mergeFrom(this);
13429    }
13430
13431    @java.lang.Override
13432    protected Builder newBuilderForType(
13433        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
13434      Builder builder = new Builder(parent);
13435      return builder;
13436    }
13437    /**
13438     * Protobuf type {@code TextRange}
13439     *
13440     * <pre>
13441     * Lines start at 1 and line offsets start at 0
13442     * </pre>
13443     */
13444    public static final class Builder extends
13445        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
13446        // @@protoc_insertion_point(builder_implements:TextRange)
13447        org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder {
13448      public static final com.google.protobuf.Descriptors.Descriptor
13449          getDescriptor() {
13450        return org.sonar.batch.protocol.output.BatchReport.internal_static_TextRange_descriptor;
13451      }
13452
13453      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
13454          internalGetFieldAccessorTable() {
13455        return org.sonar.batch.protocol.output.BatchReport.internal_static_TextRange_fieldAccessorTable
13456            .ensureFieldAccessorsInitialized(
13457                org.sonar.batch.protocol.output.BatchReport.TextRange.class, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder.class);
13458      }
13459
13460      // Construct using org.sonar.batch.protocol.output.BatchReport.TextRange.newBuilder()
13461      private Builder() {
13462        maybeForceBuilderInitialization();
13463      }
13464
13465      private Builder(
13466          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
13467        super(parent);
13468        maybeForceBuilderInitialization();
13469      }
13470      private void maybeForceBuilderInitialization() {
13471        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
13472        }
13473      }
13474      public Builder clear() {
13475        super.clear();
13476        startLine_ = 0;
13477        bitField0_ = (bitField0_ & ~0x00000001);
13478        endLine_ = 0;
13479        bitField0_ = (bitField0_ & ~0x00000002);
13480        startOffset_ = 0;
13481        bitField0_ = (bitField0_ & ~0x00000004);
13482        endOffset_ = 0;
13483        bitField0_ = (bitField0_ & ~0x00000008);
13484        return this;
13485      }
13486
13487      public com.google.protobuf.Descriptors.Descriptor
13488          getDescriptorForType() {
13489        return org.sonar.batch.protocol.output.BatchReport.internal_static_TextRange_descriptor;
13490      }
13491
13492      public org.sonar.batch.protocol.output.BatchReport.TextRange getDefaultInstanceForType() {
13493        return org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance();
13494      }
13495
13496      public org.sonar.batch.protocol.output.BatchReport.TextRange build() {
13497        org.sonar.batch.protocol.output.BatchReport.TextRange result = buildPartial();
13498        if (!result.isInitialized()) {
13499          throw newUninitializedMessageException(result);
13500        }
13501        return result;
13502      }
13503
13504      public org.sonar.batch.protocol.output.BatchReport.TextRange buildPartial() {
13505        org.sonar.batch.protocol.output.BatchReport.TextRange result = new org.sonar.batch.protocol.output.BatchReport.TextRange(this);
13506        int from_bitField0_ = bitField0_;
13507        int to_bitField0_ = 0;
13508        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
13509          to_bitField0_ |= 0x00000001;
13510        }
13511        result.startLine_ = startLine_;
13512        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
13513          to_bitField0_ |= 0x00000002;
13514        }
13515        result.endLine_ = endLine_;
13516        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
13517          to_bitField0_ |= 0x00000004;
13518        }
13519        result.startOffset_ = startOffset_;
13520        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
13521          to_bitField0_ |= 0x00000008;
13522        }
13523        result.endOffset_ = endOffset_;
13524        result.bitField0_ = to_bitField0_;
13525        onBuilt();
13526        return result;
13527      }
13528
13529      public Builder mergeFrom(com.google.protobuf.Message other) {
13530        if (other instanceof org.sonar.batch.protocol.output.BatchReport.TextRange) {
13531          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.TextRange)other);
13532        } else {
13533          super.mergeFrom(other);
13534          return this;
13535        }
13536      }
13537
13538      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.TextRange other) {
13539        if (other == org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance()) return this;
13540        if (other.hasStartLine()) {
13541          setStartLine(other.getStartLine());
13542        }
13543        if (other.hasEndLine()) {
13544          setEndLine(other.getEndLine());
13545        }
13546        if (other.hasStartOffset()) {
13547          setStartOffset(other.getStartOffset());
13548        }
13549        if (other.hasEndOffset()) {
13550          setEndOffset(other.getEndOffset());
13551        }
13552        this.mergeUnknownFields(other.unknownFields);
13553        onChanged();
13554        return this;
13555      }
13556
13557      public final boolean isInitialized() {
13558        return true;
13559      }
13560
13561      public Builder mergeFrom(
13562          com.google.protobuf.CodedInputStream input,
13563          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
13564          throws java.io.IOException {
13565        org.sonar.batch.protocol.output.BatchReport.TextRange parsedMessage = null;
13566        try {
13567          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
13568        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
13569          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.TextRange) e.getUnfinishedMessage();
13570          throw e;
13571        } finally {
13572          if (parsedMessage != null) {
13573            mergeFrom(parsedMessage);
13574          }
13575        }
13576        return this;
13577      }
13578      private int bitField0_;
13579
13580      private int startLine_ ;
13581      /**
13582       * <code>optional int32 start_line = 1;</code>
13583       *
13584       * <pre>
13585       * Should never be null
13586       * </pre>
13587       */
13588      public boolean hasStartLine() {
13589        return ((bitField0_ & 0x00000001) == 0x00000001);
13590      }
13591      /**
13592       * <code>optional int32 start_line = 1;</code>
13593       *
13594       * <pre>
13595       * Should never be null
13596       * </pre>
13597       */
13598      public int getStartLine() {
13599        return startLine_;
13600      }
13601      /**
13602       * <code>optional int32 start_line = 1;</code>
13603       *
13604       * <pre>
13605       * Should never be null
13606       * </pre>
13607       */
13608      public Builder setStartLine(int value) {
13609        bitField0_ |= 0x00000001;
13610        startLine_ = value;
13611        onChanged();
13612        return this;
13613      }
13614      /**
13615       * <code>optional int32 start_line = 1;</code>
13616       *
13617       * <pre>
13618       * Should never be null
13619       * </pre>
13620       */
13621      public Builder clearStartLine() {
13622        bitField0_ = (bitField0_ & ~0x00000001);
13623        startLine_ = 0;
13624        onChanged();
13625        return this;
13626      }
13627
13628      private int endLine_ ;
13629      /**
13630       * <code>optional int32 end_line = 2;</code>
13631       *
13632       * <pre>
13633       * End line (inclusive). Null means it is same as start line
13634       * </pre>
13635       */
13636      public boolean hasEndLine() {
13637        return ((bitField0_ & 0x00000002) == 0x00000002);
13638      }
13639      /**
13640       * <code>optional int32 end_line = 2;</code>
13641       *
13642       * <pre>
13643       * End line (inclusive). Null means it is same as start line
13644       * </pre>
13645       */
13646      public int getEndLine() {
13647        return endLine_;
13648      }
13649      /**
13650       * <code>optional int32 end_line = 2;</code>
13651       *
13652       * <pre>
13653       * End line (inclusive). Null means it is same as start line
13654       * </pre>
13655       */
13656      public Builder setEndLine(int value) {
13657        bitField0_ |= 0x00000002;
13658        endLine_ = value;
13659        onChanged();
13660        return this;
13661      }
13662      /**
13663       * <code>optional int32 end_line = 2;</code>
13664       *
13665       * <pre>
13666       * End line (inclusive). Null means it is same as start line
13667       * </pre>
13668       */
13669      public Builder clearEndLine() {
13670        bitField0_ = (bitField0_ & ~0x00000002);
13671        endLine_ = 0;
13672        onChanged();
13673        return this;
13674      }
13675
13676      private int startOffset_ ;
13677      /**
13678       * <code>optional int32 start_offset = 3;</code>
13679       *
13680       * <pre>
13681       * If null it means range starts at the first offset of start line
13682       * </pre>
13683       */
13684      public boolean hasStartOffset() {
13685        return ((bitField0_ & 0x00000004) == 0x00000004);
13686      }
13687      /**
13688       * <code>optional int32 start_offset = 3;</code>
13689       *
13690       * <pre>
13691       * If null it means range starts at the first offset of start line
13692       * </pre>
13693       */
13694      public int getStartOffset() {
13695        return startOffset_;
13696      }
13697      /**
13698       * <code>optional int32 start_offset = 3;</code>
13699       *
13700       * <pre>
13701       * If null it means range starts at the first offset of start line
13702       * </pre>
13703       */
13704      public Builder setStartOffset(int value) {
13705        bitField0_ |= 0x00000004;
13706        startOffset_ = value;
13707        onChanged();
13708        return this;
13709      }
13710      /**
13711       * <code>optional int32 start_offset = 3;</code>
13712       *
13713       * <pre>
13714       * If null it means range starts at the first offset of start line
13715       * </pre>
13716       */
13717      public Builder clearStartOffset() {
13718        bitField0_ = (bitField0_ & ~0x00000004);
13719        startOffset_ = 0;
13720        onChanged();
13721        return this;
13722      }
13723
13724      private int endOffset_ ;
13725      /**
13726       * <code>optional int32 end_offset = 4;</code>
13727       *
13728       * <pre>
13729       * If null it means range ends at the last offset of end line
13730       * </pre>
13731       */
13732      public boolean hasEndOffset() {
13733        return ((bitField0_ & 0x00000008) == 0x00000008);
13734      }
13735      /**
13736       * <code>optional int32 end_offset = 4;</code>
13737       *
13738       * <pre>
13739       * If null it means range ends at the last offset of end line
13740       * </pre>
13741       */
13742      public int getEndOffset() {
13743        return endOffset_;
13744      }
13745      /**
13746       * <code>optional int32 end_offset = 4;</code>
13747       *
13748       * <pre>
13749       * If null it means range ends at the last offset of end line
13750       * </pre>
13751       */
13752      public Builder setEndOffset(int value) {
13753        bitField0_ |= 0x00000008;
13754        endOffset_ = value;
13755        onChanged();
13756        return this;
13757      }
13758      /**
13759       * <code>optional int32 end_offset = 4;</code>
13760       *
13761       * <pre>
13762       * If null it means range ends at the last offset of end line
13763       * </pre>
13764       */
13765      public Builder clearEndOffset() {
13766        bitField0_ = (bitField0_ & ~0x00000008);
13767        endOffset_ = 0;
13768        onChanged();
13769        return this;
13770      }
13771
13772      // @@protoc_insertion_point(builder_scope:TextRange)
13773    }
13774
13775    // @@protoc_insertion_point(class_scope:TextRange)
13776    private static final org.sonar.batch.protocol.output.BatchReport.TextRange DEFAULT_INSTANCE;
13777    static {
13778      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.TextRange();
13779    }
13780
13781    public static org.sonar.batch.protocol.output.BatchReport.TextRange getDefaultInstance() {
13782      return DEFAULT_INSTANCE;
13783    }
13784
13785    public static final com.google.protobuf.Parser<TextRange> PARSER =
13786        new com.google.protobuf.AbstractParser<TextRange>() {
13787      public TextRange parsePartialFrom(
13788          com.google.protobuf.CodedInputStream input,
13789          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
13790          throws com.google.protobuf.InvalidProtocolBufferException {
13791        try {
13792          return new TextRange(input, extensionRegistry);
13793        } catch (RuntimeException e) {
13794          if (e.getCause() instanceof
13795              com.google.protobuf.InvalidProtocolBufferException) {
13796            throw (com.google.protobuf.InvalidProtocolBufferException)
13797                e.getCause();
13798          }
13799          throw e;
13800        }
13801      }
13802    };
13803
13804    @java.lang.Override
13805    public com.google.protobuf.Parser<TextRange> getParserForType() {
13806      return PARSER;
13807    }
13808
13809    public org.sonar.batch.protocol.output.BatchReport.TextRange getDefaultInstanceForType() {
13810      return DEFAULT_INSTANCE;
13811    }
13812
13813  }
13814
13815  public interface SymbolOrBuilder extends
13816      // @@protoc_insertion_point(interface_extends:Symbol)
13817      com.google.protobuf.MessageOrBuilder {
13818
13819    /**
13820     * <code>optional .TextRange declaration = 1;</code>
13821     */
13822    boolean hasDeclaration();
13823    /**
13824     * <code>optional .TextRange declaration = 1;</code>
13825     */
13826    org.sonar.batch.protocol.output.BatchReport.TextRange getDeclaration();
13827    /**
13828     * <code>optional .TextRange declaration = 1;</code>
13829     */
13830    org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getDeclarationOrBuilder();
13831
13832    /**
13833     * <code>repeated .TextRange reference = 2;</code>
13834     */
13835    java.util.List<org.sonar.batch.protocol.output.BatchReport.TextRange> 
13836        getReferenceList();
13837    /**
13838     * <code>repeated .TextRange reference = 2;</code>
13839     */
13840    org.sonar.batch.protocol.output.BatchReport.TextRange getReference(int index);
13841    /**
13842     * <code>repeated .TextRange reference = 2;</code>
13843     */
13844    int getReferenceCount();
13845    /**
13846     * <code>repeated .TextRange reference = 2;</code>
13847     */
13848    java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> 
13849        getReferenceOrBuilderList();
13850    /**
13851     * <code>repeated .TextRange reference = 2;</code>
13852     */
13853    org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getReferenceOrBuilder(
13854        int index);
13855  }
13856  /**
13857   * Protobuf type {@code Symbol}
13858   */
13859  public  static final class Symbol extends
13860      com.google.protobuf.GeneratedMessage implements
13861      // @@protoc_insertion_point(message_implements:Symbol)
13862      SymbolOrBuilder {
13863    // Use Symbol.newBuilder() to construct.
13864    private Symbol(com.google.protobuf.GeneratedMessage.Builder builder) {
13865      super(builder);
13866    }
13867    private Symbol() {
13868      reference_ = java.util.Collections.emptyList();
13869    }
13870
13871    @java.lang.Override
13872    public final com.google.protobuf.UnknownFieldSet
13873    getUnknownFields() {
13874      return this.unknownFields;
13875    }
13876    private Symbol(
13877        com.google.protobuf.CodedInputStream input,
13878        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
13879      this();
13880      int mutable_bitField0_ = 0;
13881      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
13882          com.google.protobuf.UnknownFieldSet.newBuilder();
13883      try {
13884        boolean done = false;
13885        while (!done) {
13886          int tag = input.readTag();
13887          switch (tag) {
13888            case 0:
13889              done = true;
13890              break;
13891            default: {
13892              if (!parseUnknownField(input, unknownFields,
13893                                     extensionRegistry, tag)) {
13894                done = true;
13895              }
13896              break;
13897            }
13898            case 10: {
13899              org.sonar.batch.protocol.output.BatchReport.TextRange.Builder subBuilder = null;
13900              if (((bitField0_ & 0x00000001) == 0x00000001)) {
13901                subBuilder = declaration_.toBuilder();
13902              }
13903              declaration_ = input.readMessage(org.sonar.batch.protocol.output.BatchReport.TextRange.PARSER, extensionRegistry);
13904              if (subBuilder != null) {
13905                subBuilder.mergeFrom(declaration_);
13906                declaration_ = subBuilder.buildPartial();
13907              }
13908              bitField0_ |= 0x00000001;
13909              break;
13910            }
13911            case 18: {
13912              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
13913                reference_ = new java.util.ArrayList<org.sonar.batch.protocol.output.BatchReport.TextRange>();
13914                mutable_bitField0_ |= 0x00000002;
13915              }
13916              reference_.add(input.readMessage(org.sonar.batch.protocol.output.BatchReport.TextRange.PARSER, extensionRegistry));
13917              break;
13918            }
13919          }
13920        }
13921      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
13922        throw new RuntimeException(e.setUnfinishedMessage(this));
13923      } catch (java.io.IOException e) {
13924        throw new RuntimeException(
13925            new com.google.protobuf.InvalidProtocolBufferException(
13926                e.getMessage()).setUnfinishedMessage(this));
13927      } finally {
13928        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
13929          reference_ = java.util.Collections.unmodifiableList(reference_);
13930        }
13931        this.unknownFields = unknownFields.build();
13932        makeExtensionsImmutable();
13933      }
13934    }
13935    public static final com.google.protobuf.Descriptors.Descriptor
13936        getDescriptor() {
13937      return org.sonar.batch.protocol.output.BatchReport.internal_static_Symbol_descriptor;
13938    }
13939
13940    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
13941        internalGetFieldAccessorTable() {
13942      return org.sonar.batch.protocol.output.BatchReport.internal_static_Symbol_fieldAccessorTable
13943          .ensureFieldAccessorsInitialized(
13944              org.sonar.batch.protocol.output.BatchReport.Symbol.class, org.sonar.batch.protocol.output.BatchReport.Symbol.Builder.class);
13945    }
13946
13947    private int bitField0_;
13948    public static final int DECLARATION_FIELD_NUMBER = 1;
13949    private org.sonar.batch.protocol.output.BatchReport.TextRange declaration_;
13950    /**
13951     * <code>optional .TextRange declaration = 1;</code>
13952     */
13953    public boolean hasDeclaration() {
13954      return ((bitField0_ & 0x00000001) == 0x00000001);
13955    }
13956    /**
13957     * <code>optional .TextRange declaration = 1;</code>
13958     */
13959    public org.sonar.batch.protocol.output.BatchReport.TextRange getDeclaration() {
13960      return declaration_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : declaration_;
13961    }
13962    /**
13963     * <code>optional .TextRange declaration = 1;</code>
13964     */
13965    public org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getDeclarationOrBuilder() {
13966      return declaration_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : declaration_;
13967    }
13968
13969    public static final int REFERENCE_FIELD_NUMBER = 2;
13970    private java.util.List<org.sonar.batch.protocol.output.BatchReport.TextRange> reference_;
13971    /**
13972     * <code>repeated .TextRange reference = 2;</code>
13973     */
13974    public java.util.List<org.sonar.batch.protocol.output.BatchReport.TextRange> getReferenceList() {
13975      return reference_;
13976    }
13977    /**
13978     * <code>repeated .TextRange reference = 2;</code>
13979     */
13980    public java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> 
13981        getReferenceOrBuilderList() {
13982      return reference_;
13983    }
13984    /**
13985     * <code>repeated .TextRange reference = 2;</code>
13986     */
13987    public int getReferenceCount() {
13988      return reference_.size();
13989    }
13990    /**
13991     * <code>repeated .TextRange reference = 2;</code>
13992     */
13993    public org.sonar.batch.protocol.output.BatchReport.TextRange getReference(int index) {
13994      return reference_.get(index);
13995    }
13996    /**
13997     * <code>repeated .TextRange reference = 2;</code>
13998     */
13999    public org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getReferenceOrBuilder(
14000        int index) {
14001      return reference_.get(index);
14002    }
14003
14004    private byte memoizedIsInitialized = -1;
14005    public final boolean isInitialized() {
14006      byte isInitialized = memoizedIsInitialized;
14007      if (isInitialized == 1) return true;
14008      if (isInitialized == 0) return false;
14009
14010      memoizedIsInitialized = 1;
14011      return true;
14012    }
14013
14014    public void writeTo(com.google.protobuf.CodedOutputStream output)
14015                        throws java.io.IOException {
14016      if (((bitField0_ & 0x00000001) == 0x00000001)) {
14017        output.writeMessage(1, getDeclaration());
14018      }
14019      for (int i = 0; i < reference_.size(); i++) {
14020        output.writeMessage(2, reference_.get(i));
14021      }
14022      unknownFields.writeTo(output);
14023    }
14024
14025    private int memoizedSerializedSize = -1;
14026    public int getSerializedSize() {
14027      int size = memoizedSerializedSize;
14028      if (size != -1) return size;
14029
14030      size = 0;
14031      if (((bitField0_ & 0x00000001) == 0x00000001)) {
14032        size += com.google.protobuf.CodedOutputStream
14033          .computeMessageSize(1, getDeclaration());
14034      }
14035      for (int i = 0; i < reference_.size(); i++) {
14036        size += com.google.protobuf.CodedOutputStream
14037          .computeMessageSize(2, reference_.get(i));
14038      }
14039      size += unknownFields.getSerializedSize();
14040      memoizedSerializedSize = size;
14041      return size;
14042    }
14043
14044    private static final long serialVersionUID = 0L;
14045    public static org.sonar.batch.protocol.output.BatchReport.Symbol parseFrom(
14046        com.google.protobuf.ByteString data)
14047        throws com.google.protobuf.InvalidProtocolBufferException {
14048      return PARSER.parseFrom(data);
14049    }
14050    public static org.sonar.batch.protocol.output.BatchReport.Symbol parseFrom(
14051        com.google.protobuf.ByteString data,
14052        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14053        throws com.google.protobuf.InvalidProtocolBufferException {
14054      return PARSER.parseFrom(data, extensionRegistry);
14055    }
14056    public static org.sonar.batch.protocol.output.BatchReport.Symbol parseFrom(byte[] data)
14057        throws com.google.protobuf.InvalidProtocolBufferException {
14058      return PARSER.parseFrom(data);
14059    }
14060    public static org.sonar.batch.protocol.output.BatchReport.Symbol parseFrom(
14061        byte[] data,
14062        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14063        throws com.google.protobuf.InvalidProtocolBufferException {
14064      return PARSER.parseFrom(data, extensionRegistry);
14065    }
14066    public static org.sonar.batch.protocol.output.BatchReport.Symbol parseFrom(java.io.InputStream input)
14067        throws java.io.IOException {
14068      return PARSER.parseFrom(input);
14069    }
14070    public static org.sonar.batch.protocol.output.BatchReport.Symbol parseFrom(
14071        java.io.InputStream input,
14072        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14073        throws java.io.IOException {
14074      return PARSER.parseFrom(input, extensionRegistry);
14075    }
14076    public static org.sonar.batch.protocol.output.BatchReport.Symbol parseDelimitedFrom(java.io.InputStream input)
14077        throws java.io.IOException {
14078      return PARSER.parseDelimitedFrom(input);
14079    }
14080    public static org.sonar.batch.protocol.output.BatchReport.Symbol parseDelimitedFrom(
14081        java.io.InputStream input,
14082        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14083        throws java.io.IOException {
14084      return PARSER.parseDelimitedFrom(input, extensionRegistry);
14085    }
14086    public static org.sonar.batch.protocol.output.BatchReport.Symbol parseFrom(
14087        com.google.protobuf.CodedInputStream input)
14088        throws java.io.IOException {
14089      return PARSER.parseFrom(input);
14090    }
14091    public static org.sonar.batch.protocol.output.BatchReport.Symbol parseFrom(
14092        com.google.protobuf.CodedInputStream input,
14093        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14094        throws java.io.IOException {
14095      return PARSER.parseFrom(input, extensionRegistry);
14096    }
14097
14098    public Builder newBuilderForType() { return newBuilder(); }
14099    public static Builder newBuilder() {
14100      return DEFAULT_INSTANCE.toBuilder();
14101    }
14102    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.Symbol prototype) {
14103      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
14104    }
14105    public Builder toBuilder() {
14106      return this == DEFAULT_INSTANCE
14107          ? new Builder() : new Builder().mergeFrom(this);
14108    }
14109
14110    @java.lang.Override
14111    protected Builder newBuilderForType(
14112        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
14113      Builder builder = new Builder(parent);
14114      return builder;
14115    }
14116    /**
14117     * Protobuf type {@code Symbol}
14118     */
14119    public static final class Builder extends
14120        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
14121        // @@protoc_insertion_point(builder_implements:Symbol)
14122        org.sonar.batch.protocol.output.BatchReport.SymbolOrBuilder {
14123      public static final com.google.protobuf.Descriptors.Descriptor
14124          getDescriptor() {
14125        return org.sonar.batch.protocol.output.BatchReport.internal_static_Symbol_descriptor;
14126      }
14127
14128      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
14129          internalGetFieldAccessorTable() {
14130        return org.sonar.batch.protocol.output.BatchReport.internal_static_Symbol_fieldAccessorTable
14131            .ensureFieldAccessorsInitialized(
14132                org.sonar.batch.protocol.output.BatchReport.Symbol.class, org.sonar.batch.protocol.output.BatchReport.Symbol.Builder.class);
14133      }
14134
14135      // Construct using org.sonar.batch.protocol.output.BatchReport.Symbol.newBuilder()
14136      private Builder() {
14137        maybeForceBuilderInitialization();
14138      }
14139
14140      private Builder(
14141          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
14142        super(parent);
14143        maybeForceBuilderInitialization();
14144      }
14145      private void maybeForceBuilderInitialization() {
14146        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
14147          getDeclarationFieldBuilder();
14148          getReferenceFieldBuilder();
14149        }
14150      }
14151      public Builder clear() {
14152        super.clear();
14153        if (declarationBuilder_ == null) {
14154          declaration_ = null;
14155        } else {
14156          declarationBuilder_.clear();
14157        }
14158        bitField0_ = (bitField0_ & ~0x00000001);
14159        if (referenceBuilder_ == null) {
14160          reference_ = java.util.Collections.emptyList();
14161          bitField0_ = (bitField0_ & ~0x00000002);
14162        } else {
14163          referenceBuilder_.clear();
14164        }
14165        return this;
14166      }
14167
14168      public com.google.protobuf.Descriptors.Descriptor
14169          getDescriptorForType() {
14170        return org.sonar.batch.protocol.output.BatchReport.internal_static_Symbol_descriptor;
14171      }
14172
14173      public org.sonar.batch.protocol.output.BatchReport.Symbol getDefaultInstanceForType() {
14174        return org.sonar.batch.protocol.output.BatchReport.Symbol.getDefaultInstance();
14175      }
14176
14177      public org.sonar.batch.protocol.output.BatchReport.Symbol build() {
14178        org.sonar.batch.protocol.output.BatchReport.Symbol result = buildPartial();
14179        if (!result.isInitialized()) {
14180          throw newUninitializedMessageException(result);
14181        }
14182        return result;
14183      }
14184
14185      public org.sonar.batch.protocol.output.BatchReport.Symbol buildPartial() {
14186        org.sonar.batch.protocol.output.BatchReport.Symbol result = new org.sonar.batch.protocol.output.BatchReport.Symbol(this);
14187        int from_bitField0_ = bitField0_;
14188        int to_bitField0_ = 0;
14189        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
14190          to_bitField0_ |= 0x00000001;
14191        }
14192        if (declarationBuilder_ == null) {
14193          result.declaration_ = declaration_;
14194        } else {
14195          result.declaration_ = declarationBuilder_.build();
14196        }
14197        if (referenceBuilder_ == null) {
14198          if (((bitField0_ & 0x00000002) == 0x00000002)) {
14199            reference_ = java.util.Collections.unmodifiableList(reference_);
14200            bitField0_ = (bitField0_ & ~0x00000002);
14201          }
14202          result.reference_ = reference_;
14203        } else {
14204          result.reference_ = referenceBuilder_.build();
14205        }
14206        result.bitField0_ = to_bitField0_;
14207        onBuilt();
14208        return result;
14209      }
14210
14211      public Builder mergeFrom(com.google.protobuf.Message other) {
14212        if (other instanceof org.sonar.batch.protocol.output.BatchReport.Symbol) {
14213          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.Symbol)other);
14214        } else {
14215          super.mergeFrom(other);
14216          return this;
14217        }
14218      }
14219
14220      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.Symbol other) {
14221        if (other == org.sonar.batch.protocol.output.BatchReport.Symbol.getDefaultInstance()) return this;
14222        if (other.hasDeclaration()) {
14223          mergeDeclaration(other.getDeclaration());
14224        }
14225        if (referenceBuilder_ == null) {
14226          if (!other.reference_.isEmpty()) {
14227            if (reference_.isEmpty()) {
14228              reference_ = other.reference_;
14229              bitField0_ = (bitField0_ & ~0x00000002);
14230            } else {
14231              ensureReferenceIsMutable();
14232              reference_.addAll(other.reference_);
14233            }
14234            onChanged();
14235          }
14236        } else {
14237          if (!other.reference_.isEmpty()) {
14238            if (referenceBuilder_.isEmpty()) {
14239              referenceBuilder_.dispose();
14240              referenceBuilder_ = null;
14241              reference_ = other.reference_;
14242              bitField0_ = (bitField0_ & ~0x00000002);
14243              referenceBuilder_ = 
14244                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
14245                   getReferenceFieldBuilder() : null;
14246            } else {
14247              referenceBuilder_.addAllMessages(other.reference_);
14248            }
14249          }
14250        }
14251        this.mergeUnknownFields(other.unknownFields);
14252        onChanged();
14253        return this;
14254      }
14255
14256      public final boolean isInitialized() {
14257        return true;
14258      }
14259
14260      public Builder mergeFrom(
14261          com.google.protobuf.CodedInputStream input,
14262          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14263          throws java.io.IOException {
14264        org.sonar.batch.protocol.output.BatchReport.Symbol parsedMessage = null;
14265        try {
14266          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
14267        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
14268          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.Symbol) e.getUnfinishedMessage();
14269          throw e;
14270        } finally {
14271          if (parsedMessage != null) {
14272            mergeFrom(parsedMessage);
14273          }
14274        }
14275        return this;
14276      }
14277      private int bitField0_;
14278
14279      private org.sonar.batch.protocol.output.BatchReport.TextRange declaration_ = null;
14280      private com.google.protobuf.SingleFieldBuilder<
14281          org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> declarationBuilder_;
14282      /**
14283       * <code>optional .TextRange declaration = 1;</code>
14284       */
14285      public boolean hasDeclaration() {
14286        return ((bitField0_ & 0x00000001) == 0x00000001);
14287      }
14288      /**
14289       * <code>optional .TextRange declaration = 1;</code>
14290       */
14291      public org.sonar.batch.protocol.output.BatchReport.TextRange getDeclaration() {
14292        if (declarationBuilder_ == null) {
14293          return declaration_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : declaration_;
14294        } else {
14295          return declarationBuilder_.getMessage();
14296        }
14297      }
14298      /**
14299       * <code>optional .TextRange declaration = 1;</code>
14300       */
14301      public Builder setDeclaration(org.sonar.batch.protocol.output.BatchReport.TextRange value) {
14302        if (declarationBuilder_ == null) {
14303          if (value == null) {
14304            throw new NullPointerException();
14305          }
14306          declaration_ = value;
14307          onChanged();
14308        } else {
14309          declarationBuilder_.setMessage(value);
14310        }
14311        bitField0_ |= 0x00000001;
14312        return this;
14313      }
14314      /**
14315       * <code>optional .TextRange declaration = 1;</code>
14316       */
14317      public Builder setDeclaration(
14318          org.sonar.batch.protocol.output.BatchReport.TextRange.Builder builderForValue) {
14319        if (declarationBuilder_ == null) {
14320          declaration_ = builderForValue.build();
14321          onChanged();
14322        } else {
14323          declarationBuilder_.setMessage(builderForValue.build());
14324        }
14325        bitField0_ |= 0x00000001;
14326        return this;
14327      }
14328      /**
14329       * <code>optional .TextRange declaration = 1;</code>
14330       */
14331      public Builder mergeDeclaration(org.sonar.batch.protocol.output.BatchReport.TextRange value) {
14332        if (declarationBuilder_ == null) {
14333          if (((bitField0_ & 0x00000001) == 0x00000001) &&
14334              declaration_ != null &&
14335              declaration_ != org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance()) {
14336            declaration_ =
14337              org.sonar.batch.protocol.output.BatchReport.TextRange.newBuilder(declaration_).mergeFrom(value).buildPartial();
14338          } else {
14339            declaration_ = value;
14340          }
14341          onChanged();
14342        } else {
14343          declarationBuilder_.mergeFrom(value);
14344        }
14345        bitField0_ |= 0x00000001;
14346        return this;
14347      }
14348      /**
14349       * <code>optional .TextRange declaration = 1;</code>
14350       */
14351      public Builder clearDeclaration() {
14352        if (declarationBuilder_ == null) {
14353          declaration_ = null;
14354          onChanged();
14355        } else {
14356          declarationBuilder_.clear();
14357        }
14358        bitField0_ = (bitField0_ & ~0x00000001);
14359        return this;
14360      }
14361      /**
14362       * <code>optional .TextRange declaration = 1;</code>
14363       */
14364      public org.sonar.batch.protocol.output.BatchReport.TextRange.Builder getDeclarationBuilder() {
14365        bitField0_ |= 0x00000001;
14366        onChanged();
14367        return getDeclarationFieldBuilder().getBuilder();
14368      }
14369      /**
14370       * <code>optional .TextRange declaration = 1;</code>
14371       */
14372      public org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getDeclarationOrBuilder() {
14373        if (declarationBuilder_ != null) {
14374          return declarationBuilder_.getMessageOrBuilder();
14375        } else {
14376          return declaration_ == null ?
14377              org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : declaration_;
14378        }
14379      }
14380      /**
14381       * <code>optional .TextRange declaration = 1;</code>
14382       */
14383      private com.google.protobuf.SingleFieldBuilder<
14384          org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> 
14385          getDeclarationFieldBuilder() {
14386        if (declarationBuilder_ == null) {
14387          declarationBuilder_ = new com.google.protobuf.SingleFieldBuilder<
14388              org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder>(
14389                  getDeclaration(),
14390                  getParentForChildren(),
14391                  isClean());
14392          declaration_ = null;
14393        }
14394        return declarationBuilder_;
14395      }
14396
14397      private java.util.List<org.sonar.batch.protocol.output.BatchReport.TextRange> reference_ =
14398        java.util.Collections.emptyList();
14399      private void ensureReferenceIsMutable() {
14400        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
14401          reference_ = new java.util.ArrayList<org.sonar.batch.protocol.output.BatchReport.TextRange>(reference_);
14402          bitField0_ |= 0x00000002;
14403         }
14404      }
14405
14406      private com.google.protobuf.RepeatedFieldBuilder<
14407          org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> referenceBuilder_;
14408
14409      /**
14410       * <code>repeated .TextRange reference = 2;</code>
14411       */
14412      public java.util.List<org.sonar.batch.protocol.output.BatchReport.TextRange> getReferenceList() {
14413        if (referenceBuilder_ == null) {
14414          return java.util.Collections.unmodifiableList(reference_);
14415        } else {
14416          return referenceBuilder_.getMessageList();
14417        }
14418      }
14419      /**
14420       * <code>repeated .TextRange reference = 2;</code>
14421       */
14422      public int getReferenceCount() {
14423        if (referenceBuilder_ == null) {
14424          return reference_.size();
14425        } else {
14426          return referenceBuilder_.getCount();
14427        }
14428      }
14429      /**
14430       * <code>repeated .TextRange reference = 2;</code>
14431       */
14432      public org.sonar.batch.protocol.output.BatchReport.TextRange getReference(int index) {
14433        if (referenceBuilder_ == null) {
14434          return reference_.get(index);
14435        } else {
14436          return referenceBuilder_.getMessage(index);
14437        }
14438      }
14439      /**
14440       * <code>repeated .TextRange reference = 2;</code>
14441       */
14442      public Builder setReference(
14443          int index, org.sonar.batch.protocol.output.BatchReport.TextRange value) {
14444        if (referenceBuilder_ == null) {
14445          if (value == null) {
14446            throw new NullPointerException();
14447          }
14448          ensureReferenceIsMutable();
14449          reference_.set(index, value);
14450          onChanged();
14451        } else {
14452          referenceBuilder_.setMessage(index, value);
14453        }
14454        return this;
14455      }
14456      /**
14457       * <code>repeated .TextRange reference = 2;</code>
14458       */
14459      public Builder setReference(
14460          int index, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder builderForValue) {
14461        if (referenceBuilder_ == null) {
14462          ensureReferenceIsMutable();
14463          reference_.set(index, builderForValue.build());
14464          onChanged();
14465        } else {
14466          referenceBuilder_.setMessage(index, builderForValue.build());
14467        }
14468        return this;
14469      }
14470      /**
14471       * <code>repeated .TextRange reference = 2;</code>
14472       */
14473      public Builder addReference(org.sonar.batch.protocol.output.BatchReport.TextRange value) {
14474        if (referenceBuilder_ == null) {
14475          if (value == null) {
14476            throw new NullPointerException();
14477          }
14478          ensureReferenceIsMutable();
14479          reference_.add(value);
14480          onChanged();
14481        } else {
14482          referenceBuilder_.addMessage(value);
14483        }
14484        return this;
14485      }
14486      /**
14487       * <code>repeated .TextRange reference = 2;</code>
14488       */
14489      public Builder addReference(
14490          int index, org.sonar.batch.protocol.output.BatchReport.TextRange value) {
14491        if (referenceBuilder_ == null) {
14492          if (value == null) {
14493            throw new NullPointerException();
14494          }
14495          ensureReferenceIsMutable();
14496          reference_.add(index, value);
14497          onChanged();
14498        } else {
14499          referenceBuilder_.addMessage(index, value);
14500        }
14501        return this;
14502      }
14503      /**
14504       * <code>repeated .TextRange reference = 2;</code>
14505       */
14506      public Builder addReference(
14507          org.sonar.batch.protocol.output.BatchReport.TextRange.Builder builderForValue) {
14508        if (referenceBuilder_ == null) {
14509          ensureReferenceIsMutable();
14510          reference_.add(builderForValue.build());
14511          onChanged();
14512        } else {
14513          referenceBuilder_.addMessage(builderForValue.build());
14514        }
14515        return this;
14516      }
14517      /**
14518       * <code>repeated .TextRange reference = 2;</code>
14519       */
14520      public Builder addReference(
14521          int index, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder builderForValue) {
14522        if (referenceBuilder_ == null) {
14523          ensureReferenceIsMutable();
14524          reference_.add(index, builderForValue.build());
14525          onChanged();
14526        } else {
14527          referenceBuilder_.addMessage(index, builderForValue.build());
14528        }
14529        return this;
14530      }
14531      /**
14532       * <code>repeated .TextRange reference = 2;</code>
14533       */
14534      public Builder addAllReference(
14535          java.lang.Iterable<? extends org.sonar.batch.protocol.output.BatchReport.TextRange> values) {
14536        if (referenceBuilder_ == null) {
14537          ensureReferenceIsMutable();
14538          com.google.protobuf.AbstractMessageLite.Builder.addAll(
14539              values, reference_);
14540          onChanged();
14541        } else {
14542          referenceBuilder_.addAllMessages(values);
14543        }
14544        return this;
14545      }
14546      /**
14547       * <code>repeated .TextRange reference = 2;</code>
14548       */
14549      public Builder clearReference() {
14550        if (referenceBuilder_ == null) {
14551          reference_ = java.util.Collections.emptyList();
14552          bitField0_ = (bitField0_ & ~0x00000002);
14553          onChanged();
14554        } else {
14555          referenceBuilder_.clear();
14556        }
14557        return this;
14558      }
14559      /**
14560       * <code>repeated .TextRange reference = 2;</code>
14561       */
14562      public Builder removeReference(int index) {
14563        if (referenceBuilder_ == null) {
14564          ensureReferenceIsMutable();
14565          reference_.remove(index);
14566          onChanged();
14567        } else {
14568          referenceBuilder_.remove(index);
14569        }
14570        return this;
14571      }
14572      /**
14573       * <code>repeated .TextRange reference = 2;</code>
14574       */
14575      public org.sonar.batch.protocol.output.BatchReport.TextRange.Builder getReferenceBuilder(
14576          int index) {
14577        return getReferenceFieldBuilder().getBuilder(index);
14578      }
14579      /**
14580       * <code>repeated .TextRange reference = 2;</code>
14581       */
14582      public org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getReferenceOrBuilder(
14583          int index) {
14584        if (referenceBuilder_ == null) {
14585          return reference_.get(index);  } else {
14586          return referenceBuilder_.getMessageOrBuilder(index);
14587        }
14588      }
14589      /**
14590       * <code>repeated .TextRange reference = 2;</code>
14591       */
14592      public java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> 
14593           getReferenceOrBuilderList() {
14594        if (referenceBuilder_ != null) {
14595          return referenceBuilder_.getMessageOrBuilderList();
14596        } else {
14597          return java.util.Collections.unmodifiableList(reference_);
14598        }
14599      }
14600      /**
14601       * <code>repeated .TextRange reference = 2;</code>
14602       */
14603      public org.sonar.batch.protocol.output.BatchReport.TextRange.Builder addReferenceBuilder() {
14604        return getReferenceFieldBuilder().addBuilder(
14605            org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance());
14606      }
14607      /**
14608       * <code>repeated .TextRange reference = 2;</code>
14609       */
14610      public org.sonar.batch.protocol.output.BatchReport.TextRange.Builder addReferenceBuilder(
14611          int index) {
14612        return getReferenceFieldBuilder().addBuilder(
14613            index, org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance());
14614      }
14615      /**
14616       * <code>repeated .TextRange reference = 2;</code>
14617       */
14618      public java.util.List<org.sonar.batch.protocol.output.BatchReport.TextRange.Builder> 
14619           getReferenceBuilderList() {
14620        return getReferenceFieldBuilder().getBuilderList();
14621      }
14622      private com.google.protobuf.RepeatedFieldBuilder<
14623          org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> 
14624          getReferenceFieldBuilder() {
14625        if (referenceBuilder_ == null) {
14626          referenceBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
14627              org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder>(
14628                  reference_,
14629                  ((bitField0_ & 0x00000002) == 0x00000002),
14630                  getParentForChildren(),
14631                  isClean());
14632          reference_ = null;
14633        }
14634        return referenceBuilder_;
14635      }
14636
14637      // @@protoc_insertion_point(builder_scope:Symbol)
14638    }
14639
14640    // @@protoc_insertion_point(class_scope:Symbol)
14641    private static final org.sonar.batch.protocol.output.BatchReport.Symbol DEFAULT_INSTANCE;
14642    static {
14643      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.Symbol();
14644    }
14645
14646    public static org.sonar.batch.protocol.output.BatchReport.Symbol getDefaultInstance() {
14647      return DEFAULT_INSTANCE;
14648    }
14649
14650    public static final com.google.protobuf.Parser<Symbol> PARSER =
14651        new com.google.protobuf.AbstractParser<Symbol>() {
14652      public Symbol parsePartialFrom(
14653          com.google.protobuf.CodedInputStream input,
14654          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14655          throws com.google.protobuf.InvalidProtocolBufferException {
14656        try {
14657          return new Symbol(input, extensionRegistry);
14658        } catch (RuntimeException e) {
14659          if (e.getCause() instanceof
14660              com.google.protobuf.InvalidProtocolBufferException) {
14661            throw (com.google.protobuf.InvalidProtocolBufferException)
14662                e.getCause();
14663          }
14664          throw e;
14665        }
14666      }
14667    };
14668
14669    @java.lang.Override
14670    public com.google.protobuf.Parser<Symbol> getParserForType() {
14671      return PARSER;
14672    }
14673
14674    public org.sonar.batch.protocol.output.BatchReport.Symbol getDefaultInstanceForType() {
14675      return DEFAULT_INSTANCE;
14676    }
14677
14678  }
14679
14680  public interface CoverageOrBuilder extends
14681      // @@protoc_insertion_point(interface_extends:Coverage)
14682      com.google.protobuf.MessageOrBuilder {
14683
14684    /**
14685     * <code>optional int32 line = 1;</code>
14686     */
14687    boolean hasLine();
14688    /**
14689     * <code>optional int32 line = 1;</code>
14690     */
14691    int getLine();
14692
14693    /**
14694     * <code>optional int32 conditions = 2;</code>
14695     *
14696     * <pre>
14697     * Number of conditions to cover (if set, the value must be greater than 0)
14698     * </pre>
14699     */
14700    boolean hasConditions();
14701    /**
14702     * <code>optional int32 conditions = 2;</code>
14703     *
14704     * <pre>
14705     * Number of conditions to cover (if set, the value must be greater than 0)
14706     * </pre>
14707     */
14708    int getConditions();
14709
14710    /**
14711     * <code>optional bool ut_hits = 3;</code>
14712     *
14713     * <pre>
14714     * Is the line has been touched by a unit test ? Returning false means that no test has touched this executable line.
14715     * </pre>
14716     */
14717    boolean hasUtHits();
14718    /**
14719     * <code>optional bool ut_hits = 3;</code>
14720     *
14721     * <pre>
14722     * Is the line has been touched by a unit test ? Returning false means that no test has touched this executable line.
14723     * </pre>
14724     */
14725    boolean getUtHits();
14726
14727    /**
14728     * <code>optional bool it_hits = 4;</code>
14729     *
14730     * <pre>
14731     * Is the line has been touched by a integration test ? Returning false means that no test has touched this executable line.
14732     * </pre>
14733     */
14734    boolean hasItHits();
14735    /**
14736     * <code>optional bool it_hits = 4;</code>
14737     *
14738     * <pre>
14739     * Is the line has been touched by a integration test ? Returning false means that no test has touched this executable line.
14740     * </pre>
14741     */
14742    boolean getItHits();
14743
14744    /**
14745     * <code>optional int32 ut_covered_conditions = 5;</code>
14746     *
14747     * <pre>
14748     * Number of conditions covered by unit tests
14749     * </pre>
14750     */
14751    boolean hasUtCoveredConditions();
14752    /**
14753     * <code>optional int32 ut_covered_conditions = 5;</code>
14754     *
14755     * <pre>
14756     * Number of conditions covered by unit tests
14757     * </pre>
14758     */
14759    int getUtCoveredConditions();
14760
14761    /**
14762     * <code>optional int32 it_covered_conditions = 6;</code>
14763     *
14764     * <pre>
14765     * Number of conditions covered by integration tests
14766     * </pre>
14767     */
14768    boolean hasItCoveredConditions();
14769    /**
14770     * <code>optional int32 it_covered_conditions = 6;</code>
14771     *
14772     * <pre>
14773     * Number of conditions covered by integration tests
14774     * </pre>
14775     */
14776    int getItCoveredConditions();
14777
14778    /**
14779     * <code>optional int32 overall_covered_conditions = 7;</code>
14780     *
14781     * <pre>
14782     * Number of conditions covered by overall tests
14783     * </pre>
14784     */
14785    boolean hasOverallCoveredConditions();
14786    /**
14787     * <code>optional int32 overall_covered_conditions = 7;</code>
14788     *
14789     * <pre>
14790     * Number of conditions covered by overall tests
14791     * </pre>
14792     */
14793    int getOverallCoveredConditions();
14794  }
14795  /**
14796   * Protobuf type {@code Coverage}
14797   *
14798   * <pre>
14799   * Only FILE component has coverage information, and only executable lines should contains this information.
14800   * TODO rename it LineCoverage ?
14801   * </pre>
14802   */
14803  public  static final class Coverage extends
14804      com.google.protobuf.GeneratedMessage implements
14805      // @@protoc_insertion_point(message_implements:Coverage)
14806      CoverageOrBuilder {
14807    // Use Coverage.newBuilder() to construct.
14808    private Coverage(com.google.protobuf.GeneratedMessage.Builder builder) {
14809      super(builder);
14810    }
14811    private Coverage() {
14812      line_ = 0;
14813      conditions_ = 0;
14814      utHits_ = false;
14815      itHits_ = false;
14816      utCoveredConditions_ = 0;
14817      itCoveredConditions_ = 0;
14818      overallCoveredConditions_ = 0;
14819    }
14820
14821    @java.lang.Override
14822    public final com.google.protobuf.UnknownFieldSet
14823    getUnknownFields() {
14824      return this.unknownFields;
14825    }
14826    private Coverage(
14827        com.google.protobuf.CodedInputStream input,
14828        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
14829      this();
14830      int mutable_bitField0_ = 0;
14831      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
14832          com.google.protobuf.UnknownFieldSet.newBuilder();
14833      try {
14834        boolean done = false;
14835        while (!done) {
14836          int tag = input.readTag();
14837          switch (tag) {
14838            case 0:
14839              done = true;
14840              break;
14841            default: {
14842              if (!parseUnknownField(input, unknownFields,
14843                                     extensionRegistry, tag)) {
14844                done = true;
14845              }
14846              break;
14847            }
14848            case 8: {
14849              bitField0_ |= 0x00000001;
14850              line_ = input.readInt32();
14851              break;
14852            }
14853            case 16: {
14854              bitField0_ |= 0x00000002;
14855              conditions_ = input.readInt32();
14856              break;
14857            }
14858            case 24: {
14859              bitField0_ |= 0x00000004;
14860              utHits_ = input.readBool();
14861              break;
14862            }
14863            case 32: {
14864              bitField0_ |= 0x00000008;
14865              itHits_ = input.readBool();
14866              break;
14867            }
14868            case 40: {
14869              bitField0_ |= 0x00000010;
14870              utCoveredConditions_ = input.readInt32();
14871              break;
14872            }
14873            case 48: {
14874              bitField0_ |= 0x00000020;
14875              itCoveredConditions_ = input.readInt32();
14876              break;
14877            }
14878            case 56: {
14879              bitField0_ |= 0x00000040;
14880              overallCoveredConditions_ = input.readInt32();
14881              break;
14882            }
14883          }
14884        }
14885      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
14886        throw new RuntimeException(e.setUnfinishedMessage(this));
14887      } catch (java.io.IOException e) {
14888        throw new RuntimeException(
14889            new com.google.protobuf.InvalidProtocolBufferException(
14890                e.getMessage()).setUnfinishedMessage(this));
14891      } finally {
14892        this.unknownFields = unknownFields.build();
14893        makeExtensionsImmutable();
14894      }
14895    }
14896    public static final com.google.protobuf.Descriptors.Descriptor
14897        getDescriptor() {
14898      return org.sonar.batch.protocol.output.BatchReport.internal_static_Coverage_descriptor;
14899    }
14900
14901    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
14902        internalGetFieldAccessorTable() {
14903      return org.sonar.batch.protocol.output.BatchReport.internal_static_Coverage_fieldAccessorTable
14904          .ensureFieldAccessorsInitialized(
14905              org.sonar.batch.protocol.output.BatchReport.Coverage.class, org.sonar.batch.protocol.output.BatchReport.Coverage.Builder.class);
14906    }
14907
14908    private int bitField0_;
14909    public static final int LINE_FIELD_NUMBER = 1;
14910    private int line_;
14911    /**
14912     * <code>optional int32 line = 1;</code>
14913     */
14914    public boolean hasLine() {
14915      return ((bitField0_ & 0x00000001) == 0x00000001);
14916    }
14917    /**
14918     * <code>optional int32 line = 1;</code>
14919     */
14920    public int getLine() {
14921      return line_;
14922    }
14923
14924    public static final int CONDITIONS_FIELD_NUMBER = 2;
14925    private int conditions_;
14926    /**
14927     * <code>optional int32 conditions = 2;</code>
14928     *
14929     * <pre>
14930     * Number of conditions to cover (if set, the value must be greater than 0)
14931     * </pre>
14932     */
14933    public boolean hasConditions() {
14934      return ((bitField0_ & 0x00000002) == 0x00000002);
14935    }
14936    /**
14937     * <code>optional int32 conditions = 2;</code>
14938     *
14939     * <pre>
14940     * Number of conditions to cover (if set, the value must be greater than 0)
14941     * </pre>
14942     */
14943    public int getConditions() {
14944      return conditions_;
14945    }
14946
14947    public static final int UT_HITS_FIELD_NUMBER = 3;
14948    private boolean utHits_;
14949    /**
14950     * <code>optional bool ut_hits = 3;</code>
14951     *
14952     * <pre>
14953     * Is the line has been touched by a unit test ? Returning false means that no test has touched this executable line.
14954     * </pre>
14955     */
14956    public boolean hasUtHits() {
14957      return ((bitField0_ & 0x00000004) == 0x00000004);
14958    }
14959    /**
14960     * <code>optional bool ut_hits = 3;</code>
14961     *
14962     * <pre>
14963     * Is the line has been touched by a unit test ? Returning false means that no test has touched this executable line.
14964     * </pre>
14965     */
14966    public boolean getUtHits() {
14967      return utHits_;
14968    }
14969
14970    public static final int IT_HITS_FIELD_NUMBER = 4;
14971    private boolean itHits_;
14972    /**
14973     * <code>optional bool it_hits = 4;</code>
14974     *
14975     * <pre>
14976     * Is the line has been touched by a integration test ? Returning false means that no test has touched this executable line.
14977     * </pre>
14978     */
14979    public boolean hasItHits() {
14980      return ((bitField0_ & 0x00000008) == 0x00000008);
14981    }
14982    /**
14983     * <code>optional bool it_hits = 4;</code>
14984     *
14985     * <pre>
14986     * Is the line has been touched by a integration test ? Returning false means that no test has touched this executable line.
14987     * </pre>
14988     */
14989    public boolean getItHits() {
14990      return itHits_;
14991    }
14992
14993    public static final int UT_COVERED_CONDITIONS_FIELD_NUMBER = 5;
14994    private int utCoveredConditions_;
14995    /**
14996     * <code>optional int32 ut_covered_conditions = 5;</code>
14997     *
14998     * <pre>
14999     * Number of conditions covered by unit tests
15000     * </pre>
15001     */
15002    public boolean hasUtCoveredConditions() {
15003      return ((bitField0_ & 0x00000010) == 0x00000010);
15004    }
15005    /**
15006     * <code>optional int32 ut_covered_conditions = 5;</code>
15007     *
15008     * <pre>
15009     * Number of conditions covered by unit tests
15010     * </pre>
15011     */
15012    public int getUtCoveredConditions() {
15013      return utCoveredConditions_;
15014    }
15015
15016    public static final int IT_COVERED_CONDITIONS_FIELD_NUMBER = 6;
15017    private int itCoveredConditions_;
15018    /**
15019     * <code>optional int32 it_covered_conditions = 6;</code>
15020     *
15021     * <pre>
15022     * Number of conditions covered by integration tests
15023     * </pre>
15024     */
15025    public boolean hasItCoveredConditions() {
15026      return ((bitField0_ & 0x00000020) == 0x00000020);
15027    }
15028    /**
15029     * <code>optional int32 it_covered_conditions = 6;</code>
15030     *
15031     * <pre>
15032     * Number of conditions covered by integration tests
15033     * </pre>
15034     */
15035    public int getItCoveredConditions() {
15036      return itCoveredConditions_;
15037    }
15038
15039    public static final int OVERALL_COVERED_CONDITIONS_FIELD_NUMBER = 7;
15040    private int overallCoveredConditions_;
15041    /**
15042     * <code>optional int32 overall_covered_conditions = 7;</code>
15043     *
15044     * <pre>
15045     * Number of conditions covered by overall tests
15046     * </pre>
15047     */
15048    public boolean hasOverallCoveredConditions() {
15049      return ((bitField0_ & 0x00000040) == 0x00000040);
15050    }
15051    /**
15052     * <code>optional int32 overall_covered_conditions = 7;</code>
15053     *
15054     * <pre>
15055     * Number of conditions covered by overall tests
15056     * </pre>
15057     */
15058    public int getOverallCoveredConditions() {
15059      return overallCoveredConditions_;
15060    }
15061
15062    private byte memoizedIsInitialized = -1;
15063    public final boolean isInitialized() {
15064      byte isInitialized = memoizedIsInitialized;
15065      if (isInitialized == 1) return true;
15066      if (isInitialized == 0) return false;
15067
15068      memoizedIsInitialized = 1;
15069      return true;
15070    }
15071
15072    public void writeTo(com.google.protobuf.CodedOutputStream output)
15073                        throws java.io.IOException {
15074      if (((bitField0_ & 0x00000001) == 0x00000001)) {
15075        output.writeInt32(1, line_);
15076      }
15077      if (((bitField0_ & 0x00000002) == 0x00000002)) {
15078        output.writeInt32(2, conditions_);
15079      }
15080      if (((bitField0_ & 0x00000004) == 0x00000004)) {
15081        output.writeBool(3, utHits_);
15082      }
15083      if (((bitField0_ & 0x00000008) == 0x00000008)) {
15084        output.writeBool(4, itHits_);
15085      }
15086      if (((bitField0_ & 0x00000010) == 0x00000010)) {
15087        output.writeInt32(5, utCoveredConditions_);
15088      }
15089      if (((bitField0_ & 0x00000020) == 0x00000020)) {
15090        output.writeInt32(6, itCoveredConditions_);
15091      }
15092      if (((bitField0_ & 0x00000040) == 0x00000040)) {
15093        output.writeInt32(7, overallCoveredConditions_);
15094      }
15095      unknownFields.writeTo(output);
15096    }
15097
15098    private int memoizedSerializedSize = -1;
15099    public int getSerializedSize() {
15100      int size = memoizedSerializedSize;
15101      if (size != -1) return size;
15102
15103      size = 0;
15104      if (((bitField0_ & 0x00000001) == 0x00000001)) {
15105        size += com.google.protobuf.CodedOutputStream
15106          .computeInt32Size(1, line_);
15107      }
15108      if (((bitField0_ & 0x00000002) == 0x00000002)) {
15109        size += com.google.protobuf.CodedOutputStream
15110          .computeInt32Size(2, conditions_);
15111      }
15112      if (((bitField0_ & 0x00000004) == 0x00000004)) {
15113        size += com.google.protobuf.CodedOutputStream
15114          .computeBoolSize(3, utHits_);
15115      }
15116      if (((bitField0_ & 0x00000008) == 0x00000008)) {
15117        size += com.google.protobuf.CodedOutputStream
15118          .computeBoolSize(4, itHits_);
15119      }
15120      if (((bitField0_ & 0x00000010) == 0x00000010)) {
15121        size += com.google.protobuf.CodedOutputStream
15122          .computeInt32Size(5, utCoveredConditions_);
15123      }
15124      if (((bitField0_ & 0x00000020) == 0x00000020)) {
15125        size += com.google.protobuf.CodedOutputStream
15126          .computeInt32Size(6, itCoveredConditions_);
15127      }
15128      if (((bitField0_ & 0x00000040) == 0x00000040)) {
15129        size += com.google.protobuf.CodedOutputStream
15130          .computeInt32Size(7, overallCoveredConditions_);
15131      }
15132      size += unknownFields.getSerializedSize();
15133      memoizedSerializedSize = size;
15134      return size;
15135    }
15136
15137    private static final long serialVersionUID = 0L;
15138    public static org.sonar.batch.protocol.output.BatchReport.Coverage parseFrom(
15139        com.google.protobuf.ByteString data)
15140        throws com.google.protobuf.InvalidProtocolBufferException {
15141      return PARSER.parseFrom(data);
15142    }
15143    public static org.sonar.batch.protocol.output.BatchReport.Coverage parseFrom(
15144        com.google.protobuf.ByteString data,
15145        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15146        throws com.google.protobuf.InvalidProtocolBufferException {
15147      return PARSER.parseFrom(data, extensionRegistry);
15148    }
15149    public static org.sonar.batch.protocol.output.BatchReport.Coverage parseFrom(byte[] data)
15150        throws com.google.protobuf.InvalidProtocolBufferException {
15151      return PARSER.parseFrom(data);
15152    }
15153    public static org.sonar.batch.protocol.output.BatchReport.Coverage parseFrom(
15154        byte[] data,
15155        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15156        throws com.google.protobuf.InvalidProtocolBufferException {
15157      return PARSER.parseFrom(data, extensionRegistry);
15158    }
15159    public static org.sonar.batch.protocol.output.BatchReport.Coverage parseFrom(java.io.InputStream input)
15160        throws java.io.IOException {
15161      return PARSER.parseFrom(input);
15162    }
15163    public static org.sonar.batch.protocol.output.BatchReport.Coverage parseFrom(
15164        java.io.InputStream input,
15165        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15166        throws java.io.IOException {
15167      return PARSER.parseFrom(input, extensionRegistry);
15168    }
15169    public static org.sonar.batch.protocol.output.BatchReport.Coverage parseDelimitedFrom(java.io.InputStream input)
15170        throws java.io.IOException {
15171      return PARSER.parseDelimitedFrom(input);
15172    }
15173    public static org.sonar.batch.protocol.output.BatchReport.Coverage parseDelimitedFrom(
15174        java.io.InputStream input,
15175        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15176        throws java.io.IOException {
15177      return PARSER.parseDelimitedFrom(input, extensionRegistry);
15178    }
15179    public static org.sonar.batch.protocol.output.BatchReport.Coverage parseFrom(
15180        com.google.protobuf.CodedInputStream input)
15181        throws java.io.IOException {
15182      return PARSER.parseFrom(input);
15183    }
15184    public static org.sonar.batch.protocol.output.BatchReport.Coverage parseFrom(
15185        com.google.protobuf.CodedInputStream input,
15186        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15187        throws java.io.IOException {
15188      return PARSER.parseFrom(input, extensionRegistry);
15189    }
15190
15191    public Builder newBuilderForType() { return newBuilder(); }
15192    public static Builder newBuilder() {
15193      return DEFAULT_INSTANCE.toBuilder();
15194    }
15195    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.Coverage prototype) {
15196      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
15197    }
15198    public Builder toBuilder() {
15199      return this == DEFAULT_INSTANCE
15200          ? new Builder() : new Builder().mergeFrom(this);
15201    }
15202
15203    @java.lang.Override
15204    protected Builder newBuilderForType(
15205        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
15206      Builder builder = new Builder(parent);
15207      return builder;
15208    }
15209    /**
15210     * Protobuf type {@code Coverage}
15211     *
15212     * <pre>
15213     * Only FILE component has coverage information, and only executable lines should contains this information.
15214     * TODO rename it LineCoverage ?
15215     * </pre>
15216     */
15217    public static final class Builder extends
15218        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
15219        // @@protoc_insertion_point(builder_implements:Coverage)
15220        org.sonar.batch.protocol.output.BatchReport.CoverageOrBuilder {
15221      public static final com.google.protobuf.Descriptors.Descriptor
15222          getDescriptor() {
15223        return org.sonar.batch.protocol.output.BatchReport.internal_static_Coverage_descriptor;
15224      }
15225
15226      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
15227          internalGetFieldAccessorTable() {
15228        return org.sonar.batch.protocol.output.BatchReport.internal_static_Coverage_fieldAccessorTable
15229            .ensureFieldAccessorsInitialized(
15230                org.sonar.batch.protocol.output.BatchReport.Coverage.class, org.sonar.batch.protocol.output.BatchReport.Coverage.Builder.class);
15231      }
15232
15233      // Construct using org.sonar.batch.protocol.output.BatchReport.Coverage.newBuilder()
15234      private Builder() {
15235        maybeForceBuilderInitialization();
15236      }
15237
15238      private Builder(
15239          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
15240        super(parent);
15241        maybeForceBuilderInitialization();
15242      }
15243      private void maybeForceBuilderInitialization() {
15244        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
15245        }
15246      }
15247      public Builder clear() {
15248        super.clear();
15249        line_ = 0;
15250        bitField0_ = (bitField0_ & ~0x00000001);
15251        conditions_ = 0;
15252        bitField0_ = (bitField0_ & ~0x00000002);
15253        utHits_ = false;
15254        bitField0_ = (bitField0_ & ~0x00000004);
15255        itHits_ = false;
15256        bitField0_ = (bitField0_ & ~0x00000008);
15257        utCoveredConditions_ = 0;
15258        bitField0_ = (bitField0_ & ~0x00000010);
15259        itCoveredConditions_ = 0;
15260        bitField0_ = (bitField0_ & ~0x00000020);
15261        overallCoveredConditions_ = 0;
15262        bitField0_ = (bitField0_ & ~0x00000040);
15263        return this;
15264      }
15265
15266      public com.google.protobuf.Descriptors.Descriptor
15267          getDescriptorForType() {
15268        return org.sonar.batch.protocol.output.BatchReport.internal_static_Coverage_descriptor;
15269      }
15270
15271      public org.sonar.batch.protocol.output.BatchReport.Coverage getDefaultInstanceForType() {
15272        return org.sonar.batch.protocol.output.BatchReport.Coverage.getDefaultInstance();
15273      }
15274
15275      public org.sonar.batch.protocol.output.BatchReport.Coverage build() {
15276        org.sonar.batch.protocol.output.BatchReport.Coverage result = buildPartial();
15277        if (!result.isInitialized()) {
15278          throw newUninitializedMessageException(result);
15279        }
15280        return result;
15281      }
15282
15283      public org.sonar.batch.protocol.output.BatchReport.Coverage buildPartial() {
15284        org.sonar.batch.protocol.output.BatchReport.Coverage result = new org.sonar.batch.protocol.output.BatchReport.Coverage(this);
15285        int from_bitField0_ = bitField0_;
15286        int to_bitField0_ = 0;
15287        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
15288          to_bitField0_ |= 0x00000001;
15289        }
15290        result.line_ = line_;
15291        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
15292          to_bitField0_ |= 0x00000002;
15293        }
15294        result.conditions_ = conditions_;
15295        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
15296          to_bitField0_ |= 0x00000004;
15297        }
15298        result.utHits_ = utHits_;
15299        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
15300          to_bitField0_ |= 0x00000008;
15301        }
15302        result.itHits_ = itHits_;
15303        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
15304          to_bitField0_ |= 0x00000010;
15305        }
15306        result.utCoveredConditions_ = utCoveredConditions_;
15307        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
15308          to_bitField0_ |= 0x00000020;
15309        }
15310        result.itCoveredConditions_ = itCoveredConditions_;
15311        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
15312          to_bitField0_ |= 0x00000040;
15313        }
15314        result.overallCoveredConditions_ = overallCoveredConditions_;
15315        result.bitField0_ = to_bitField0_;
15316        onBuilt();
15317        return result;
15318      }
15319
15320      public Builder mergeFrom(com.google.protobuf.Message other) {
15321        if (other instanceof org.sonar.batch.protocol.output.BatchReport.Coverage) {
15322          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.Coverage)other);
15323        } else {
15324          super.mergeFrom(other);
15325          return this;
15326        }
15327      }
15328
15329      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.Coverage other) {
15330        if (other == org.sonar.batch.protocol.output.BatchReport.Coverage.getDefaultInstance()) return this;
15331        if (other.hasLine()) {
15332          setLine(other.getLine());
15333        }
15334        if (other.hasConditions()) {
15335          setConditions(other.getConditions());
15336        }
15337        if (other.hasUtHits()) {
15338          setUtHits(other.getUtHits());
15339        }
15340        if (other.hasItHits()) {
15341          setItHits(other.getItHits());
15342        }
15343        if (other.hasUtCoveredConditions()) {
15344          setUtCoveredConditions(other.getUtCoveredConditions());
15345        }
15346        if (other.hasItCoveredConditions()) {
15347          setItCoveredConditions(other.getItCoveredConditions());
15348        }
15349        if (other.hasOverallCoveredConditions()) {
15350          setOverallCoveredConditions(other.getOverallCoveredConditions());
15351        }
15352        this.mergeUnknownFields(other.unknownFields);
15353        onChanged();
15354        return this;
15355      }
15356
15357      public final boolean isInitialized() {
15358        return true;
15359      }
15360
15361      public Builder mergeFrom(
15362          com.google.protobuf.CodedInputStream input,
15363          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15364          throws java.io.IOException {
15365        org.sonar.batch.protocol.output.BatchReport.Coverage parsedMessage = null;
15366        try {
15367          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
15368        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
15369          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.Coverage) e.getUnfinishedMessage();
15370          throw e;
15371        } finally {
15372          if (parsedMessage != null) {
15373            mergeFrom(parsedMessage);
15374          }
15375        }
15376        return this;
15377      }
15378      private int bitField0_;
15379
15380      private int line_ ;
15381      /**
15382       * <code>optional int32 line = 1;</code>
15383       */
15384      public boolean hasLine() {
15385        return ((bitField0_ & 0x00000001) == 0x00000001);
15386      }
15387      /**
15388       * <code>optional int32 line = 1;</code>
15389       */
15390      public int getLine() {
15391        return line_;
15392      }
15393      /**
15394       * <code>optional int32 line = 1;</code>
15395       */
15396      public Builder setLine(int value) {
15397        bitField0_ |= 0x00000001;
15398        line_ = value;
15399        onChanged();
15400        return this;
15401      }
15402      /**
15403       * <code>optional int32 line = 1;</code>
15404       */
15405      public Builder clearLine() {
15406        bitField0_ = (bitField0_ & ~0x00000001);
15407        line_ = 0;
15408        onChanged();
15409        return this;
15410      }
15411
15412      private int conditions_ ;
15413      /**
15414       * <code>optional int32 conditions = 2;</code>
15415       *
15416       * <pre>
15417       * Number of conditions to cover (if set, the value must be greater than 0)
15418       * </pre>
15419       */
15420      public boolean hasConditions() {
15421        return ((bitField0_ & 0x00000002) == 0x00000002);
15422      }
15423      /**
15424       * <code>optional int32 conditions = 2;</code>
15425       *
15426       * <pre>
15427       * Number of conditions to cover (if set, the value must be greater than 0)
15428       * </pre>
15429       */
15430      public int getConditions() {
15431        return conditions_;
15432      }
15433      /**
15434       * <code>optional int32 conditions = 2;</code>
15435       *
15436       * <pre>
15437       * Number of conditions to cover (if set, the value must be greater than 0)
15438       * </pre>
15439       */
15440      public Builder setConditions(int value) {
15441        bitField0_ |= 0x00000002;
15442        conditions_ = value;
15443        onChanged();
15444        return this;
15445      }
15446      /**
15447       * <code>optional int32 conditions = 2;</code>
15448       *
15449       * <pre>
15450       * Number of conditions to cover (if set, the value must be greater than 0)
15451       * </pre>
15452       */
15453      public Builder clearConditions() {
15454        bitField0_ = (bitField0_ & ~0x00000002);
15455        conditions_ = 0;
15456        onChanged();
15457        return this;
15458      }
15459
15460      private boolean utHits_ ;
15461      /**
15462       * <code>optional bool ut_hits = 3;</code>
15463       *
15464       * <pre>
15465       * Is the line has been touched by a unit test ? Returning false means that no test has touched this executable line.
15466       * </pre>
15467       */
15468      public boolean hasUtHits() {
15469        return ((bitField0_ & 0x00000004) == 0x00000004);
15470      }
15471      /**
15472       * <code>optional bool ut_hits = 3;</code>
15473       *
15474       * <pre>
15475       * Is the line has been touched by a unit test ? Returning false means that no test has touched this executable line.
15476       * </pre>
15477       */
15478      public boolean getUtHits() {
15479        return utHits_;
15480      }
15481      /**
15482       * <code>optional bool ut_hits = 3;</code>
15483       *
15484       * <pre>
15485       * Is the line has been touched by a unit test ? Returning false means that no test has touched this executable line.
15486       * </pre>
15487       */
15488      public Builder setUtHits(boolean value) {
15489        bitField0_ |= 0x00000004;
15490        utHits_ = value;
15491        onChanged();
15492        return this;
15493      }
15494      /**
15495       * <code>optional bool ut_hits = 3;</code>
15496       *
15497       * <pre>
15498       * Is the line has been touched by a unit test ? Returning false means that no test has touched this executable line.
15499       * </pre>
15500       */
15501      public Builder clearUtHits() {
15502        bitField0_ = (bitField0_ & ~0x00000004);
15503        utHits_ = false;
15504        onChanged();
15505        return this;
15506      }
15507
15508      private boolean itHits_ ;
15509      /**
15510       * <code>optional bool it_hits = 4;</code>
15511       *
15512       * <pre>
15513       * Is the line has been touched by a integration test ? Returning false means that no test has touched this executable line.
15514       * </pre>
15515       */
15516      public boolean hasItHits() {
15517        return ((bitField0_ & 0x00000008) == 0x00000008);
15518      }
15519      /**
15520       * <code>optional bool it_hits = 4;</code>
15521       *
15522       * <pre>
15523       * Is the line has been touched by a integration test ? Returning false means that no test has touched this executable line.
15524       * </pre>
15525       */
15526      public boolean getItHits() {
15527        return itHits_;
15528      }
15529      /**
15530       * <code>optional bool it_hits = 4;</code>
15531       *
15532       * <pre>
15533       * Is the line has been touched by a integration test ? Returning false means that no test has touched this executable line.
15534       * </pre>
15535       */
15536      public Builder setItHits(boolean value) {
15537        bitField0_ |= 0x00000008;
15538        itHits_ = value;
15539        onChanged();
15540        return this;
15541      }
15542      /**
15543       * <code>optional bool it_hits = 4;</code>
15544       *
15545       * <pre>
15546       * Is the line has been touched by a integration test ? Returning false means that no test has touched this executable line.
15547       * </pre>
15548       */
15549      public Builder clearItHits() {
15550        bitField0_ = (bitField0_ & ~0x00000008);
15551        itHits_ = false;
15552        onChanged();
15553        return this;
15554      }
15555
15556      private int utCoveredConditions_ ;
15557      /**
15558       * <code>optional int32 ut_covered_conditions = 5;</code>
15559       *
15560       * <pre>
15561       * Number of conditions covered by unit tests
15562       * </pre>
15563       */
15564      public boolean hasUtCoveredConditions() {
15565        return ((bitField0_ & 0x00000010) == 0x00000010);
15566      }
15567      /**
15568       * <code>optional int32 ut_covered_conditions = 5;</code>
15569       *
15570       * <pre>
15571       * Number of conditions covered by unit tests
15572       * </pre>
15573       */
15574      public int getUtCoveredConditions() {
15575        return utCoveredConditions_;
15576      }
15577      /**
15578       * <code>optional int32 ut_covered_conditions = 5;</code>
15579       *
15580       * <pre>
15581       * Number of conditions covered by unit tests
15582       * </pre>
15583       */
15584      public Builder setUtCoveredConditions(int value) {
15585        bitField0_ |= 0x00000010;
15586        utCoveredConditions_ = value;
15587        onChanged();
15588        return this;
15589      }
15590      /**
15591       * <code>optional int32 ut_covered_conditions = 5;</code>
15592       *
15593       * <pre>
15594       * Number of conditions covered by unit tests
15595       * </pre>
15596       */
15597      public Builder clearUtCoveredConditions() {
15598        bitField0_ = (bitField0_ & ~0x00000010);
15599        utCoveredConditions_ = 0;
15600        onChanged();
15601        return this;
15602      }
15603
15604      private int itCoveredConditions_ ;
15605      /**
15606       * <code>optional int32 it_covered_conditions = 6;</code>
15607       *
15608       * <pre>
15609       * Number of conditions covered by integration tests
15610       * </pre>
15611       */
15612      public boolean hasItCoveredConditions() {
15613        return ((bitField0_ & 0x00000020) == 0x00000020);
15614      }
15615      /**
15616       * <code>optional int32 it_covered_conditions = 6;</code>
15617       *
15618       * <pre>
15619       * Number of conditions covered by integration tests
15620       * </pre>
15621       */
15622      public int getItCoveredConditions() {
15623        return itCoveredConditions_;
15624      }
15625      /**
15626       * <code>optional int32 it_covered_conditions = 6;</code>
15627       *
15628       * <pre>
15629       * Number of conditions covered by integration tests
15630       * </pre>
15631       */
15632      public Builder setItCoveredConditions(int value) {
15633        bitField0_ |= 0x00000020;
15634        itCoveredConditions_ = value;
15635        onChanged();
15636        return this;
15637      }
15638      /**
15639       * <code>optional int32 it_covered_conditions = 6;</code>
15640       *
15641       * <pre>
15642       * Number of conditions covered by integration tests
15643       * </pre>
15644       */
15645      public Builder clearItCoveredConditions() {
15646        bitField0_ = (bitField0_ & ~0x00000020);
15647        itCoveredConditions_ = 0;
15648        onChanged();
15649        return this;
15650      }
15651
15652      private int overallCoveredConditions_ ;
15653      /**
15654       * <code>optional int32 overall_covered_conditions = 7;</code>
15655       *
15656       * <pre>
15657       * Number of conditions covered by overall tests
15658       * </pre>
15659       */
15660      public boolean hasOverallCoveredConditions() {
15661        return ((bitField0_ & 0x00000040) == 0x00000040);
15662      }
15663      /**
15664       * <code>optional int32 overall_covered_conditions = 7;</code>
15665       *
15666       * <pre>
15667       * Number of conditions covered by overall tests
15668       * </pre>
15669       */
15670      public int getOverallCoveredConditions() {
15671        return overallCoveredConditions_;
15672      }
15673      /**
15674       * <code>optional int32 overall_covered_conditions = 7;</code>
15675       *
15676       * <pre>
15677       * Number of conditions covered by overall tests
15678       * </pre>
15679       */
15680      public Builder setOverallCoveredConditions(int value) {
15681        bitField0_ |= 0x00000040;
15682        overallCoveredConditions_ = value;
15683        onChanged();
15684        return this;
15685      }
15686      /**
15687       * <code>optional int32 overall_covered_conditions = 7;</code>
15688       *
15689       * <pre>
15690       * Number of conditions covered by overall tests
15691       * </pre>
15692       */
15693      public Builder clearOverallCoveredConditions() {
15694        bitField0_ = (bitField0_ & ~0x00000040);
15695        overallCoveredConditions_ = 0;
15696        onChanged();
15697        return this;
15698      }
15699
15700      // @@protoc_insertion_point(builder_scope:Coverage)
15701    }
15702
15703    // @@protoc_insertion_point(class_scope:Coverage)
15704    private static final org.sonar.batch.protocol.output.BatchReport.Coverage DEFAULT_INSTANCE;
15705    static {
15706      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.Coverage();
15707    }
15708
15709    public static org.sonar.batch.protocol.output.BatchReport.Coverage getDefaultInstance() {
15710      return DEFAULT_INSTANCE;
15711    }
15712
15713    public static final com.google.protobuf.Parser<Coverage> PARSER =
15714        new com.google.protobuf.AbstractParser<Coverage>() {
15715      public Coverage parsePartialFrom(
15716          com.google.protobuf.CodedInputStream input,
15717          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15718          throws com.google.protobuf.InvalidProtocolBufferException {
15719        try {
15720          return new Coverage(input, extensionRegistry);
15721        } catch (RuntimeException e) {
15722          if (e.getCause() instanceof
15723              com.google.protobuf.InvalidProtocolBufferException) {
15724            throw (com.google.protobuf.InvalidProtocolBufferException)
15725                e.getCause();
15726          }
15727          throw e;
15728        }
15729      }
15730    };
15731
15732    @java.lang.Override
15733    public com.google.protobuf.Parser<Coverage> getParserForType() {
15734      return PARSER;
15735    }
15736
15737    public org.sonar.batch.protocol.output.BatchReport.Coverage getDefaultInstanceForType() {
15738      return DEFAULT_INSTANCE;
15739    }
15740
15741  }
15742
15743  public interface SyntaxHighlightingOrBuilder extends
15744      // @@protoc_insertion_point(interface_extends:SyntaxHighlighting)
15745      com.google.protobuf.MessageOrBuilder {
15746
15747    /**
15748     * <code>optional .TextRange range = 1;</code>
15749     */
15750    boolean hasRange();
15751    /**
15752     * <code>optional .TextRange range = 1;</code>
15753     */
15754    org.sonar.batch.protocol.output.BatchReport.TextRange getRange();
15755    /**
15756     * <code>optional .TextRange range = 1;</code>
15757     */
15758    org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getRangeOrBuilder();
15759
15760    /**
15761     * <code>optional .HighlightingType type = 2;</code>
15762     */
15763    boolean hasType();
15764    /**
15765     * <code>optional .HighlightingType type = 2;</code>
15766     */
15767    org.sonar.batch.protocol.Constants.HighlightingType getType();
15768  }
15769  /**
15770   * Protobuf type {@code SyntaxHighlighting}
15771   *
15772   * <pre>
15773   * Must be sorted by line and start offset
15774   * TODO rename it SyntaxHighlightingRule ?
15775   * </pre>
15776   */
15777  public  static final class SyntaxHighlighting extends
15778      com.google.protobuf.GeneratedMessage implements
15779      // @@protoc_insertion_point(message_implements:SyntaxHighlighting)
15780      SyntaxHighlightingOrBuilder {
15781    // Use SyntaxHighlighting.newBuilder() to construct.
15782    private SyntaxHighlighting(com.google.protobuf.GeneratedMessage.Builder builder) {
15783      super(builder);
15784    }
15785    private SyntaxHighlighting() {
15786      type_ = 0;
15787    }
15788
15789    @java.lang.Override
15790    public final com.google.protobuf.UnknownFieldSet
15791    getUnknownFields() {
15792      return this.unknownFields;
15793    }
15794    private SyntaxHighlighting(
15795        com.google.protobuf.CodedInputStream input,
15796        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
15797      this();
15798      int mutable_bitField0_ = 0;
15799      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
15800          com.google.protobuf.UnknownFieldSet.newBuilder();
15801      try {
15802        boolean done = false;
15803        while (!done) {
15804          int tag = input.readTag();
15805          switch (tag) {
15806            case 0:
15807              done = true;
15808              break;
15809            default: {
15810              if (!parseUnknownField(input, unknownFields,
15811                                     extensionRegistry, tag)) {
15812                done = true;
15813              }
15814              break;
15815            }
15816            case 10: {
15817              org.sonar.batch.protocol.output.BatchReport.TextRange.Builder subBuilder = null;
15818              if (((bitField0_ & 0x00000001) == 0x00000001)) {
15819                subBuilder = range_.toBuilder();
15820              }
15821              range_ = input.readMessage(org.sonar.batch.protocol.output.BatchReport.TextRange.PARSER, extensionRegistry);
15822              if (subBuilder != null) {
15823                subBuilder.mergeFrom(range_);
15824                range_ = subBuilder.buildPartial();
15825              }
15826              bitField0_ |= 0x00000001;
15827              break;
15828            }
15829            case 16: {
15830              int rawValue = input.readEnum();
15831              org.sonar.batch.protocol.Constants.HighlightingType value = org.sonar.batch.protocol.Constants.HighlightingType.valueOf(rawValue);
15832              if (value == null) {
15833                unknownFields.mergeVarintField(2, rawValue);
15834              } else {
15835                bitField0_ |= 0x00000002;
15836                type_ = rawValue;
15837              }
15838              break;
15839            }
15840          }
15841        }
15842      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
15843        throw new RuntimeException(e.setUnfinishedMessage(this));
15844      } catch (java.io.IOException e) {
15845        throw new RuntimeException(
15846            new com.google.protobuf.InvalidProtocolBufferException(
15847                e.getMessage()).setUnfinishedMessage(this));
15848      } finally {
15849        this.unknownFields = unknownFields.build();
15850        makeExtensionsImmutable();
15851      }
15852    }
15853    public static final com.google.protobuf.Descriptors.Descriptor
15854        getDescriptor() {
15855      return org.sonar.batch.protocol.output.BatchReport.internal_static_SyntaxHighlighting_descriptor;
15856    }
15857
15858    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
15859        internalGetFieldAccessorTable() {
15860      return org.sonar.batch.protocol.output.BatchReport.internal_static_SyntaxHighlighting_fieldAccessorTable
15861          .ensureFieldAccessorsInitialized(
15862              org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting.class, org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting.Builder.class);
15863    }
15864
15865    private int bitField0_;
15866    public static final int RANGE_FIELD_NUMBER = 1;
15867    private org.sonar.batch.protocol.output.BatchReport.TextRange range_;
15868    /**
15869     * <code>optional .TextRange range = 1;</code>
15870     */
15871    public boolean hasRange() {
15872      return ((bitField0_ & 0x00000001) == 0x00000001);
15873    }
15874    /**
15875     * <code>optional .TextRange range = 1;</code>
15876     */
15877    public org.sonar.batch.protocol.output.BatchReport.TextRange getRange() {
15878      return range_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : range_;
15879    }
15880    /**
15881     * <code>optional .TextRange range = 1;</code>
15882     */
15883    public org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getRangeOrBuilder() {
15884      return range_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : range_;
15885    }
15886
15887    public static final int TYPE_FIELD_NUMBER = 2;
15888    private int type_;
15889    /**
15890     * <code>optional .HighlightingType type = 2;</code>
15891     */
15892    public boolean hasType() {
15893      return ((bitField0_ & 0x00000002) == 0x00000002);
15894    }
15895    /**
15896     * <code>optional .HighlightingType type = 2;</code>
15897     */
15898    public org.sonar.batch.protocol.Constants.HighlightingType getType() {
15899      org.sonar.batch.protocol.Constants.HighlightingType result = org.sonar.batch.protocol.Constants.HighlightingType.valueOf(type_);
15900      return result == null ? org.sonar.batch.protocol.Constants.HighlightingType.ANNOTATION : result;
15901    }
15902
15903    private byte memoizedIsInitialized = -1;
15904    public final boolean isInitialized() {
15905      byte isInitialized = memoizedIsInitialized;
15906      if (isInitialized == 1) return true;
15907      if (isInitialized == 0) return false;
15908
15909      memoizedIsInitialized = 1;
15910      return true;
15911    }
15912
15913    public void writeTo(com.google.protobuf.CodedOutputStream output)
15914                        throws java.io.IOException {
15915      if (((bitField0_ & 0x00000001) == 0x00000001)) {
15916        output.writeMessage(1, getRange());
15917      }
15918      if (((bitField0_ & 0x00000002) == 0x00000002)) {
15919        output.writeEnum(2, type_);
15920      }
15921      unknownFields.writeTo(output);
15922    }
15923
15924    private int memoizedSerializedSize = -1;
15925    public int getSerializedSize() {
15926      int size = memoizedSerializedSize;
15927      if (size != -1) return size;
15928
15929      size = 0;
15930      if (((bitField0_ & 0x00000001) == 0x00000001)) {
15931        size += com.google.protobuf.CodedOutputStream
15932          .computeMessageSize(1, getRange());
15933      }
15934      if (((bitField0_ & 0x00000002) == 0x00000002)) {
15935        size += com.google.protobuf.CodedOutputStream
15936          .computeEnumSize(2, type_);
15937      }
15938      size += unknownFields.getSerializedSize();
15939      memoizedSerializedSize = size;
15940      return size;
15941    }
15942
15943    private static final long serialVersionUID = 0L;
15944    public static org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting parseFrom(
15945        com.google.protobuf.ByteString data)
15946        throws com.google.protobuf.InvalidProtocolBufferException {
15947      return PARSER.parseFrom(data);
15948    }
15949    public static org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting parseFrom(
15950        com.google.protobuf.ByteString data,
15951        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15952        throws com.google.protobuf.InvalidProtocolBufferException {
15953      return PARSER.parseFrom(data, extensionRegistry);
15954    }
15955    public static org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting parseFrom(byte[] data)
15956        throws com.google.protobuf.InvalidProtocolBufferException {
15957      return PARSER.parseFrom(data);
15958    }
15959    public static org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting parseFrom(
15960        byte[] data,
15961        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15962        throws com.google.protobuf.InvalidProtocolBufferException {
15963      return PARSER.parseFrom(data, extensionRegistry);
15964    }
15965    public static org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting parseFrom(java.io.InputStream input)
15966        throws java.io.IOException {
15967      return PARSER.parseFrom(input);
15968    }
15969    public static org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting parseFrom(
15970        java.io.InputStream input,
15971        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15972        throws java.io.IOException {
15973      return PARSER.parseFrom(input, extensionRegistry);
15974    }
15975    public static org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting parseDelimitedFrom(java.io.InputStream input)
15976        throws java.io.IOException {
15977      return PARSER.parseDelimitedFrom(input);
15978    }
15979    public static org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting parseDelimitedFrom(
15980        java.io.InputStream input,
15981        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15982        throws java.io.IOException {
15983      return PARSER.parseDelimitedFrom(input, extensionRegistry);
15984    }
15985    public static org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting parseFrom(
15986        com.google.protobuf.CodedInputStream input)
15987        throws java.io.IOException {
15988      return PARSER.parseFrom(input);
15989    }
15990    public static org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting parseFrom(
15991        com.google.protobuf.CodedInputStream input,
15992        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15993        throws java.io.IOException {
15994      return PARSER.parseFrom(input, extensionRegistry);
15995    }
15996
15997    public Builder newBuilderForType() { return newBuilder(); }
15998    public static Builder newBuilder() {
15999      return DEFAULT_INSTANCE.toBuilder();
16000    }
16001    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting prototype) {
16002      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
16003    }
16004    public Builder toBuilder() {
16005      return this == DEFAULT_INSTANCE
16006          ? new Builder() : new Builder().mergeFrom(this);
16007    }
16008
16009    @java.lang.Override
16010    protected Builder newBuilderForType(
16011        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
16012      Builder builder = new Builder(parent);
16013      return builder;
16014    }
16015    /**
16016     * Protobuf type {@code SyntaxHighlighting}
16017     *
16018     * <pre>
16019     * Must be sorted by line and start offset
16020     * TODO rename it SyntaxHighlightingRule ?
16021     * </pre>
16022     */
16023    public static final class Builder extends
16024        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
16025        // @@protoc_insertion_point(builder_implements:SyntaxHighlighting)
16026        org.sonar.batch.protocol.output.BatchReport.SyntaxHighlightingOrBuilder {
16027      public static final com.google.protobuf.Descriptors.Descriptor
16028          getDescriptor() {
16029        return org.sonar.batch.protocol.output.BatchReport.internal_static_SyntaxHighlighting_descriptor;
16030      }
16031
16032      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
16033          internalGetFieldAccessorTable() {
16034        return org.sonar.batch.protocol.output.BatchReport.internal_static_SyntaxHighlighting_fieldAccessorTable
16035            .ensureFieldAccessorsInitialized(
16036                org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting.class, org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting.Builder.class);
16037      }
16038
16039      // Construct using org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting.newBuilder()
16040      private Builder() {
16041        maybeForceBuilderInitialization();
16042      }
16043
16044      private Builder(
16045          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
16046        super(parent);
16047        maybeForceBuilderInitialization();
16048      }
16049      private void maybeForceBuilderInitialization() {
16050        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
16051          getRangeFieldBuilder();
16052        }
16053      }
16054      public Builder clear() {
16055        super.clear();
16056        if (rangeBuilder_ == null) {
16057          range_ = null;
16058        } else {
16059          rangeBuilder_.clear();
16060        }
16061        bitField0_ = (bitField0_ & ~0x00000001);
16062        type_ = 0;
16063        bitField0_ = (bitField0_ & ~0x00000002);
16064        return this;
16065      }
16066
16067      public com.google.protobuf.Descriptors.Descriptor
16068          getDescriptorForType() {
16069        return org.sonar.batch.protocol.output.BatchReport.internal_static_SyntaxHighlighting_descriptor;
16070      }
16071
16072      public org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting getDefaultInstanceForType() {
16073        return org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting.getDefaultInstance();
16074      }
16075
16076      public org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting build() {
16077        org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting result = buildPartial();
16078        if (!result.isInitialized()) {
16079          throw newUninitializedMessageException(result);
16080        }
16081        return result;
16082      }
16083
16084      public org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting buildPartial() {
16085        org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting result = new org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting(this);
16086        int from_bitField0_ = bitField0_;
16087        int to_bitField0_ = 0;
16088        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
16089          to_bitField0_ |= 0x00000001;
16090        }
16091        if (rangeBuilder_ == null) {
16092          result.range_ = range_;
16093        } else {
16094          result.range_ = rangeBuilder_.build();
16095        }
16096        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
16097          to_bitField0_ |= 0x00000002;
16098        }
16099        result.type_ = type_;
16100        result.bitField0_ = to_bitField0_;
16101        onBuilt();
16102        return result;
16103      }
16104
16105      public Builder mergeFrom(com.google.protobuf.Message other) {
16106        if (other instanceof org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting) {
16107          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting)other);
16108        } else {
16109          super.mergeFrom(other);
16110          return this;
16111        }
16112      }
16113
16114      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting other) {
16115        if (other == org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting.getDefaultInstance()) return this;
16116        if (other.hasRange()) {
16117          mergeRange(other.getRange());
16118        }
16119        if (other.hasType()) {
16120          setType(other.getType());
16121        }
16122        this.mergeUnknownFields(other.unknownFields);
16123        onChanged();
16124        return this;
16125      }
16126
16127      public final boolean isInitialized() {
16128        return true;
16129      }
16130
16131      public Builder mergeFrom(
16132          com.google.protobuf.CodedInputStream input,
16133          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
16134          throws java.io.IOException {
16135        org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting parsedMessage = null;
16136        try {
16137          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
16138        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
16139          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting) e.getUnfinishedMessage();
16140          throw e;
16141        } finally {
16142          if (parsedMessage != null) {
16143            mergeFrom(parsedMessage);
16144          }
16145        }
16146        return this;
16147      }
16148      private int bitField0_;
16149
16150      private org.sonar.batch.protocol.output.BatchReport.TextRange range_ = null;
16151      private com.google.protobuf.SingleFieldBuilder<
16152          org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> rangeBuilder_;
16153      /**
16154       * <code>optional .TextRange range = 1;</code>
16155       */
16156      public boolean hasRange() {
16157        return ((bitField0_ & 0x00000001) == 0x00000001);
16158      }
16159      /**
16160       * <code>optional .TextRange range = 1;</code>
16161       */
16162      public org.sonar.batch.protocol.output.BatchReport.TextRange getRange() {
16163        if (rangeBuilder_ == null) {
16164          return range_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : range_;
16165        } else {
16166          return rangeBuilder_.getMessage();
16167        }
16168      }
16169      /**
16170       * <code>optional .TextRange range = 1;</code>
16171       */
16172      public Builder setRange(org.sonar.batch.protocol.output.BatchReport.TextRange value) {
16173        if (rangeBuilder_ == null) {
16174          if (value == null) {
16175            throw new NullPointerException();
16176          }
16177          range_ = value;
16178          onChanged();
16179        } else {
16180          rangeBuilder_.setMessage(value);
16181        }
16182        bitField0_ |= 0x00000001;
16183        return this;
16184      }
16185      /**
16186       * <code>optional .TextRange range = 1;</code>
16187       */
16188      public Builder setRange(
16189          org.sonar.batch.protocol.output.BatchReport.TextRange.Builder builderForValue) {
16190        if (rangeBuilder_ == null) {
16191          range_ = builderForValue.build();
16192          onChanged();
16193        } else {
16194          rangeBuilder_.setMessage(builderForValue.build());
16195        }
16196        bitField0_ |= 0x00000001;
16197        return this;
16198      }
16199      /**
16200       * <code>optional .TextRange range = 1;</code>
16201       */
16202      public Builder mergeRange(org.sonar.batch.protocol.output.BatchReport.TextRange value) {
16203        if (rangeBuilder_ == null) {
16204          if (((bitField0_ & 0x00000001) == 0x00000001) &&
16205              range_ != null &&
16206              range_ != org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance()) {
16207            range_ =
16208              org.sonar.batch.protocol.output.BatchReport.TextRange.newBuilder(range_).mergeFrom(value).buildPartial();
16209          } else {
16210            range_ = value;
16211          }
16212          onChanged();
16213        } else {
16214          rangeBuilder_.mergeFrom(value);
16215        }
16216        bitField0_ |= 0x00000001;
16217        return this;
16218      }
16219      /**
16220       * <code>optional .TextRange range = 1;</code>
16221       */
16222      public Builder clearRange() {
16223        if (rangeBuilder_ == null) {
16224          range_ = null;
16225          onChanged();
16226        } else {
16227          rangeBuilder_.clear();
16228        }
16229        bitField0_ = (bitField0_ & ~0x00000001);
16230        return this;
16231      }
16232      /**
16233       * <code>optional .TextRange range = 1;</code>
16234       */
16235      public org.sonar.batch.protocol.output.BatchReport.TextRange.Builder getRangeBuilder() {
16236        bitField0_ |= 0x00000001;
16237        onChanged();
16238        return getRangeFieldBuilder().getBuilder();
16239      }
16240      /**
16241       * <code>optional .TextRange range = 1;</code>
16242       */
16243      public org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getRangeOrBuilder() {
16244        if (rangeBuilder_ != null) {
16245          return rangeBuilder_.getMessageOrBuilder();
16246        } else {
16247          return range_ == null ?
16248              org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : range_;
16249        }
16250      }
16251      /**
16252       * <code>optional .TextRange range = 1;</code>
16253       */
16254      private com.google.protobuf.SingleFieldBuilder<
16255          org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> 
16256          getRangeFieldBuilder() {
16257        if (rangeBuilder_ == null) {
16258          rangeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
16259              org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder>(
16260                  getRange(),
16261                  getParentForChildren(),
16262                  isClean());
16263          range_ = null;
16264        }
16265        return rangeBuilder_;
16266      }
16267
16268      private int type_ = 0;
16269      /**
16270       * <code>optional .HighlightingType type = 2;</code>
16271       */
16272      public boolean hasType() {
16273        return ((bitField0_ & 0x00000002) == 0x00000002);
16274      }
16275      /**
16276       * <code>optional .HighlightingType type = 2;</code>
16277       */
16278      public org.sonar.batch.protocol.Constants.HighlightingType getType() {
16279        org.sonar.batch.protocol.Constants.HighlightingType result = org.sonar.batch.protocol.Constants.HighlightingType.valueOf(type_);
16280        return result == null ? org.sonar.batch.protocol.Constants.HighlightingType.ANNOTATION : result;
16281      }
16282      /**
16283       * <code>optional .HighlightingType type = 2;</code>
16284       */
16285      public Builder setType(org.sonar.batch.protocol.Constants.HighlightingType value) {
16286        if (value == null) {
16287          throw new NullPointerException();
16288        }
16289        bitField0_ |= 0x00000002;
16290        type_ = value.getNumber();
16291        onChanged();
16292        return this;
16293      }
16294      /**
16295       * <code>optional .HighlightingType type = 2;</code>
16296       */
16297      public Builder clearType() {
16298        bitField0_ = (bitField0_ & ~0x00000002);
16299        type_ = 0;
16300        onChanged();
16301        return this;
16302      }
16303
16304      // @@protoc_insertion_point(builder_scope:SyntaxHighlighting)
16305    }
16306
16307    // @@protoc_insertion_point(class_scope:SyntaxHighlighting)
16308    private static final org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting DEFAULT_INSTANCE;
16309    static {
16310      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting();
16311    }
16312
16313    public static org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting getDefaultInstance() {
16314      return DEFAULT_INSTANCE;
16315    }
16316
16317    public static final com.google.protobuf.Parser<SyntaxHighlighting> PARSER =
16318        new com.google.protobuf.AbstractParser<SyntaxHighlighting>() {
16319      public SyntaxHighlighting parsePartialFrom(
16320          com.google.protobuf.CodedInputStream input,
16321          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
16322          throws com.google.protobuf.InvalidProtocolBufferException {
16323        try {
16324          return new SyntaxHighlighting(input, extensionRegistry);
16325        } catch (RuntimeException e) {
16326          if (e.getCause() instanceof
16327              com.google.protobuf.InvalidProtocolBufferException) {
16328            throw (com.google.protobuf.InvalidProtocolBufferException)
16329                e.getCause();
16330          }
16331          throw e;
16332        }
16333      }
16334    };
16335
16336    @java.lang.Override
16337    public com.google.protobuf.Parser<SyntaxHighlighting> getParserForType() {
16338      return PARSER;
16339    }
16340
16341    public org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting getDefaultInstanceForType() {
16342      return DEFAULT_INSTANCE;
16343    }
16344
16345  }
16346
16347  public interface TestOrBuilder extends
16348      // @@protoc_insertion_point(interface_extends:Test)
16349      com.google.protobuf.MessageOrBuilder {
16350
16351    /**
16352     * <code>optional string name = 1;</code>
16353     */
16354    boolean hasName();
16355    /**
16356     * <code>optional string name = 1;</code>
16357     */
16358    java.lang.String getName();
16359    /**
16360     * <code>optional string name = 1;</code>
16361     */
16362    com.google.protobuf.ByteString
16363        getNameBytes();
16364
16365    /**
16366     * <code>optional .TestStatus status = 2;</code>
16367     */
16368    boolean hasStatus();
16369    /**
16370     * <code>optional .TestStatus status = 2;</code>
16371     */
16372    org.sonar.batch.protocol.Constants.TestStatus getStatus();
16373
16374    /**
16375     * <code>optional int64 duration_in_ms = 3;</code>
16376     */
16377    boolean hasDurationInMs();
16378    /**
16379     * <code>optional int64 duration_in_ms = 3;</code>
16380     */
16381    long getDurationInMs();
16382
16383    /**
16384     * <code>optional string stacktrace = 4;</code>
16385     */
16386    boolean hasStacktrace();
16387    /**
16388     * <code>optional string stacktrace = 4;</code>
16389     */
16390    java.lang.String getStacktrace();
16391    /**
16392     * <code>optional string stacktrace = 4;</code>
16393     */
16394    com.google.protobuf.ByteString
16395        getStacktraceBytes();
16396
16397    /**
16398     * <code>optional string msg = 5;</code>
16399     */
16400    boolean hasMsg();
16401    /**
16402     * <code>optional string msg = 5;</code>
16403     */
16404    java.lang.String getMsg();
16405    /**
16406     * <code>optional string msg = 5;</code>
16407     */
16408    com.google.protobuf.ByteString
16409        getMsgBytes();
16410  }
16411  /**
16412   * Protobuf type {@code Test}
16413   */
16414  public  static final class Test extends
16415      com.google.protobuf.GeneratedMessage implements
16416      // @@protoc_insertion_point(message_implements:Test)
16417      TestOrBuilder {
16418    // Use Test.newBuilder() to construct.
16419    private Test(com.google.protobuf.GeneratedMessage.Builder builder) {
16420      super(builder);
16421    }
16422    private Test() {
16423      name_ = "";
16424      status_ = 1;
16425      durationInMs_ = 0L;
16426      stacktrace_ = "";
16427      msg_ = "";
16428    }
16429
16430    @java.lang.Override
16431    public final com.google.protobuf.UnknownFieldSet
16432    getUnknownFields() {
16433      return this.unknownFields;
16434    }
16435    private Test(
16436        com.google.protobuf.CodedInputStream input,
16437        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
16438      this();
16439      int mutable_bitField0_ = 0;
16440      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
16441          com.google.protobuf.UnknownFieldSet.newBuilder();
16442      try {
16443        boolean done = false;
16444        while (!done) {
16445          int tag = input.readTag();
16446          switch (tag) {
16447            case 0:
16448              done = true;
16449              break;
16450            default: {
16451              if (!parseUnknownField(input, unknownFields,
16452                                     extensionRegistry, tag)) {
16453                done = true;
16454              }
16455              break;
16456            }
16457            case 10: {
16458              com.google.protobuf.ByteString bs = input.readBytes();
16459              bitField0_ |= 0x00000001;
16460              name_ = bs;
16461              break;
16462            }
16463            case 16: {
16464              int rawValue = input.readEnum();
16465              org.sonar.batch.protocol.Constants.TestStatus value = org.sonar.batch.protocol.Constants.TestStatus.valueOf(rawValue);
16466              if (value == null) {
16467                unknownFields.mergeVarintField(2, rawValue);
16468              } else {
16469                bitField0_ |= 0x00000002;
16470                status_ = rawValue;
16471              }
16472              break;
16473            }
16474            case 24: {
16475              bitField0_ |= 0x00000004;
16476              durationInMs_ = input.readInt64();
16477              break;
16478            }
16479            case 34: {
16480              com.google.protobuf.ByteString bs = input.readBytes();
16481              bitField0_ |= 0x00000008;
16482              stacktrace_ = bs;
16483              break;
16484            }
16485            case 42: {
16486              com.google.protobuf.ByteString bs = input.readBytes();
16487              bitField0_ |= 0x00000010;
16488              msg_ = bs;
16489              break;
16490            }
16491          }
16492        }
16493      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
16494        throw new RuntimeException(e.setUnfinishedMessage(this));
16495      } catch (java.io.IOException e) {
16496        throw new RuntimeException(
16497            new com.google.protobuf.InvalidProtocolBufferException(
16498                e.getMessage()).setUnfinishedMessage(this));
16499      } finally {
16500        this.unknownFields = unknownFields.build();
16501        makeExtensionsImmutable();
16502      }
16503    }
16504    public static final com.google.protobuf.Descriptors.Descriptor
16505        getDescriptor() {
16506      return org.sonar.batch.protocol.output.BatchReport.internal_static_Test_descriptor;
16507    }
16508
16509    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
16510        internalGetFieldAccessorTable() {
16511      return org.sonar.batch.protocol.output.BatchReport.internal_static_Test_fieldAccessorTable
16512          .ensureFieldAccessorsInitialized(
16513              org.sonar.batch.protocol.output.BatchReport.Test.class, org.sonar.batch.protocol.output.BatchReport.Test.Builder.class);
16514    }
16515
16516    private int bitField0_;
16517    public static final int NAME_FIELD_NUMBER = 1;
16518    private volatile java.lang.Object name_;
16519    /**
16520     * <code>optional string name = 1;</code>
16521     */
16522    public boolean hasName() {
16523      return ((bitField0_ & 0x00000001) == 0x00000001);
16524    }
16525    /**
16526     * <code>optional string name = 1;</code>
16527     */
16528    public java.lang.String getName() {
16529      java.lang.Object ref = name_;
16530      if (ref instanceof java.lang.String) {
16531        return (java.lang.String) ref;
16532      } else {
16533        com.google.protobuf.ByteString bs = 
16534            (com.google.protobuf.ByteString) ref;
16535        java.lang.String s = bs.toStringUtf8();
16536        if (bs.isValidUtf8()) {
16537          name_ = s;
16538        }
16539        return s;
16540      }
16541    }
16542    /**
16543     * <code>optional string name = 1;</code>
16544     */
16545    public com.google.protobuf.ByteString
16546        getNameBytes() {
16547      java.lang.Object ref = name_;
16548      if (ref instanceof java.lang.String) {
16549        com.google.protobuf.ByteString b = 
16550            com.google.protobuf.ByteString.copyFromUtf8(
16551                (java.lang.String) ref);
16552        name_ = b;
16553        return b;
16554      } else {
16555        return (com.google.protobuf.ByteString) ref;
16556      }
16557    }
16558
16559    public static final int STATUS_FIELD_NUMBER = 2;
16560    private int status_;
16561    /**
16562     * <code>optional .TestStatus status = 2;</code>
16563     */
16564    public boolean hasStatus() {
16565      return ((bitField0_ & 0x00000002) == 0x00000002);
16566    }
16567    /**
16568     * <code>optional .TestStatus status = 2;</code>
16569     */
16570    public org.sonar.batch.protocol.Constants.TestStatus getStatus() {
16571      org.sonar.batch.protocol.Constants.TestStatus result = org.sonar.batch.protocol.Constants.TestStatus.valueOf(status_);
16572      return result == null ? org.sonar.batch.protocol.Constants.TestStatus.OK : result;
16573    }
16574
16575    public static final int DURATION_IN_MS_FIELD_NUMBER = 3;
16576    private long durationInMs_;
16577    /**
16578     * <code>optional int64 duration_in_ms = 3;</code>
16579     */
16580    public boolean hasDurationInMs() {
16581      return ((bitField0_ & 0x00000004) == 0x00000004);
16582    }
16583    /**
16584     * <code>optional int64 duration_in_ms = 3;</code>
16585     */
16586    public long getDurationInMs() {
16587      return durationInMs_;
16588    }
16589
16590    public static final int STACKTRACE_FIELD_NUMBER = 4;
16591    private volatile java.lang.Object stacktrace_;
16592    /**
16593     * <code>optional string stacktrace = 4;</code>
16594     */
16595    public boolean hasStacktrace() {
16596      return ((bitField0_ & 0x00000008) == 0x00000008);
16597    }
16598    /**
16599     * <code>optional string stacktrace = 4;</code>
16600     */
16601    public java.lang.String getStacktrace() {
16602      java.lang.Object ref = stacktrace_;
16603      if (ref instanceof java.lang.String) {
16604        return (java.lang.String) ref;
16605      } else {
16606        com.google.protobuf.ByteString bs = 
16607            (com.google.protobuf.ByteString) ref;
16608        java.lang.String s = bs.toStringUtf8();
16609        if (bs.isValidUtf8()) {
16610          stacktrace_ = s;
16611        }
16612        return s;
16613      }
16614    }
16615    /**
16616     * <code>optional string stacktrace = 4;</code>
16617     */
16618    public com.google.protobuf.ByteString
16619        getStacktraceBytes() {
16620      java.lang.Object ref = stacktrace_;
16621      if (ref instanceof java.lang.String) {
16622        com.google.protobuf.ByteString b = 
16623            com.google.protobuf.ByteString.copyFromUtf8(
16624                (java.lang.String) ref);
16625        stacktrace_ = b;
16626        return b;
16627      } else {
16628        return (com.google.protobuf.ByteString) ref;
16629      }
16630    }
16631
16632    public static final int MSG_FIELD_NUMBER = 5;
16633    private volatile java.lang.Object msg_;
16634    /**
16635     * <code>optional string msg = 5;</code>
16636     */
16637    public boolean hasMsg() {
16638      return ((bitField0_ & 0x00000010) == 0x00000010);
16639    }
16640    /**
16641     * <code>optional string msg = 5;</code>
16642     */
16643    public java.lang.String getMsg() {
16644      java.lang.Object ref = msg_;
16645      if (ref instanceof java.lang.String) {
16646        return (java.lang.String) ref;
16647      } else {
16648        com.google.protobuf.ByteString bs = 
16649            (com.google.protobuf.ByteString) ref;
16650        java.lang.String s = bs.toStringUtf8();
16651        if (bs.isValidUtf8()) {
16652          msg_ = s;
16653        }
16654        return s;
16655      }
16656    }
16657    /**
16658     * <code>optional string msg = 5;</code>
16659     */
16660    public com.google.protobuf.ByteString
16661        getMsgBytes() {
16662      java.lang.Object ref = msg_;
16663      if (ref instanceof java.lang.String) {
16664        com.google.protobuf.ByteString b = 
16665            com.google.protobuf.ByteString.copyFromUtf8(
16666                (java.lang.String) ref);
16667        msg_ = b;
16668        return b;
16669      } else {
16670        return (com.google.protobuf.ByteString) ref;
16671      }
16672    }
16673
16674    private byte memoizedIsInitialized = -1;
16675    public final boolean isInitialized() {
16676      byte isInitialized = memoizedIsInitialized;
16677      if (isInitialized == 1) return true;
16678      if (isInitialized == 0) return false;
16679
16680      memoizedIsInitialized = 1;
16681      return true;
16682    }
16683
16684    public void writeTo(com.google.protobuf.CodedOutputStream output)
16685                        throws java.io.IOException {
16686      if (((bitField0_ & 0x00000001) == 0x00000001)) {
16687        output.writeBytes(1, getNameBytes());
16688      }
16689      if (((bitField0_ & 0x00000002) == 0x00000002)) {
16690        output.writeEnum(2, status_);
16691      }
16692      if (((bitField0_ & 0x00000004) == 0x00000004)) {
16693        output.writeInt64(3, durationInMs_);
16694      }
16695      if (((bitField0_ & 0x00000008) == 0x00000008)) {
16696        output.writeBytes(4, getStacktraceBytes());
16697      }
16698      if (((bitField0_ & 0x00000010) == 0x00000010)) {
16699        output.writeBytes(5, getMsgBytes());
16700      }
16701      unknownFields.writeTo(output);
16702    }
16703
16704    private int memoizedSerializedSize = -1;
16705    public int getSerializedSize() {
16706      int size = memoizedSerializedSize;
16707      if (size != -1) return size;
16708
16709      size = 0;
16710      if (((bitField0_ & 0x00000001) == 0x00000001)) {
16711        size += com.google.protobuf.CodedOutputStream
16712          .computeBytesSize(1, getNameBytes());
16713      }
16714      if (((bitField0_ & 0x00000002) == 0x00000002)) {
16715        size += com.google.protobuf.CodedOutputStream
16716          .computeEnumSize(2, status_);
16717      }
16718      if (((bitField0_ & 0x00000004) == 0x00000004)) {
16719        size += com.google.protobuf.CodedOutputStream
16720          .computeInt64Size(3, durationInMs_);
16721      }
16722      if (((bitField0_ & 0x00000008) == 0x00000008)) {
16723        size += com.google.protobuf.CodedOutputStream
16724          .computeBytesSize(4, getStacktraceBytes());
16725      }
16726      if (((bitField0_ & 0x00000010) == 0x00000010)) {
16727        size += com.google.protobuf.CodedOutputStream
16728          .computeBytesSize(5, getMsgBytes());
16729      }
16730      size += unknownFields.getSerializedSize();
16731      memoizedSerializedSize = size;
16732      return size;
16733    }
16734
16735    private static final long serialVersionUID = 0L;
16736    public static org.sonar.batch.protocol.output.BatchReport.Test parseFrom(
16737        com.google.protobuf.ByteString data)
16738        throws com.google.protobuf.InvalidProtocolBufferException {
16739      return PARSER.parseFrom(data);
16740    }
16741    public static org.sonar.batch.protocol.output.BatchReport.Test parseFrom(
16742        com.google.protobuf.ByteString data,
16743        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
16744        throws com.google.protobuf.InvalidProtocolBufferException {
16745      return PARSER.parseFrom(data, extensionRegistry);
16746    }
16747    public static org.sonar.batch.protocol.output.BatchReport.Test parseFrom(byte[] data)
16748        throws com.google.protobuf.InvalidProtocolBufferException {
16749      return PARSER.parseFrom(data);
16750    }
16751    public static org.sonar.batch.protocol.output.BatchReport.Test parseFrom(
16752        byte[] data,
16753        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
16754        throws com.google.protobuf.InvalidProtocolBufferException {
16755      return PARSER.parseFrom(data, extensionRegistry);
16756    }
16757    public static org.sonar.batch.protocol.output.BatchReport.Test parseFrom(java.io.InputStream input)
16758        throws java.io.IOException {
16759      return PARSER.parseFrom(input);
16760    }
16761    public static org.sonar.batch.protocol.output.BatchReport.Test parseFrom(
16762        java.io.InputStream input,
16763        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
16764        throws java.io.IOException {
16765      return PARSER.parseFrom(input, extensionRegistry);
16766    }
16767    public static org.sonar.batch.protocol.output.BatchReport.Test parseDelimitedFrom(java.io.InputStream input)
16768        throws java.io.IOException {
16769      return PARSER.parseDelimitedFrom(input);
16770    }
16771    public static org.sonar.batch.protocol.output.BatchReport.Test parseDelimitedFrom(
16772        java.io.InputStream input,
16773        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
16774        throws java.io.IOException {
16775      return PARSER.parseDelimitedFrom(input, extensionRegistry);
16776    }
16777    public static org.sonar.batch.protocol.output.BatchReport.Test parseFrom(
16778        com.google.protobuf.CodedInputStream input)
16779        throws java.io.IOException {
16780      return PARSER.parseFrom(input);
16781    }
16782    public static org.sonar.batch.protocol.output.BatchReport.Test parseFrom(
16783        com.google.protobuf.CodedInputStream input,
16784        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
16785        throws java.io.IOException {
16786      return PARSER.parseFrom(input, extensionRegistry);
16787    }
16788
16789    public Builder newBuilderForType() { return newBuilder(); }
16790    public static Builder newBuilder() {
16791      return DEFAULT_INSTANCE.toBuilder();
16792    }
16793    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.Test prototype) {
16794      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
16795    }
16796    public Builder toBuilder() {
16797      return this == DEFAULT_INSTANCE
16798          ? new Builder() : new Builder().mergeFrom(this);
16799    }
16800
16801    @java.lang.Override
16802    protected Builder newBuilderForType(
16803        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
16804      Builder builder = new Builder(parent);
16805      return builder;
16806    }
16807    /**
16808     * Protobuf type {@code Test}
16809     */
16810    public static final class Builder extends
16811        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
16812        // @@protoc_insertion_point(builder_implements:Test)
16813        org.sonar.batch.protocol.output.BatchReport.TestOrBuilder {
16814      public static final com.google.protobuf.Descriptors.Descriptor
16815          getDescriptor() {
16816        return org.sonar.batch.protocol.output.BatchReport.internal_static_Test_descriptor;
16817      }
16818
16819      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
16820          internalGetFieldAccessorTable() {
16821        return org.sonar.batch.protocol.output.BatchReport.internal_static_Test_fieldAccessorTable
16822            .ensureFieldAccessorsInitialized(
16823                org.sonar.batch.protocol.output.BatchReport.Test.class, org.sonar.batch.protocol.output.BatchReport.Test.Builder.class);
16824      }
16825
16826      // Construct using org.sonar.batch.protocol.output.BatchReport.Test.newBuilder()
16827      private Builder() {
16828        maybeForceBuilderInitialization();
16829      }
16830
16831      private Builder(
16832          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
16833        super(parent);
16834        maybeForceBuilderInitialization();
16835      }
16836      private void maybeForceBuilderInitialization() {
16837        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
16838        }
16839      }
16840      public Builder clear() {
16841        super.clear();
16842        name_ = "";
16843        bitField0_ = (bitField0_ & ~0x00000001);
16844        status_ = 1;
16845        bitField0_ = (bitField0_ & ~0x00000002);
16846        durationInMs_ = 0L;
16847        bitField0_ = (bitField0_ & ~0x00000004);
16848        stacktrace_ = "";
16849        bitField0_ = (bitField0_ & ~0x00000008);
16850        msg_ = "";
16851        bitField0_ = (bitField0_ & ~0x00000010);
16852        return this;
16853      }
16854
16855      public com.google.protobuf.Descriptors.Descriptor
16856          getDescriptorForType() {
16857        return org.sonar.batch.protocol.output.BatchReport.internal_static_Test_descriptor;
16858      }
16859
16860      public org.sonar.batch.protocol.output.BatchReport.Test getDefaultInstanceForType() {
16861        return org.sonar.batch.protocol.output.BatchReport.Test.getDefaultInstance();
16862      }
16863
16864      public org.sonar.batch.protocol.output.BatchReport.Test build() {
16865        org.sonar.batch.protocol.output.BatchReport.Test result = buildPartial();
16866        if (!result.isInitialized()) {
16867          throw newUninitializedMessageException(result);
16868        }
16869        return result;
16870      }
16871
16872      public org.sonar.batch.protocol.output.BatchReport.Test buildPartial() {
16873        org.sonar.batch.protocol.output.BatchReport.Test result = new org.sonar.batch.protocol.output.BatchReport.Test(this);
16874        int from_bitField0_ = bitField0_;
16875        int to_bitField0_ = 0;
16876        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
16877          to_bitField0_ |= 0x00000001;
16878        }
16879        result.name_ = name_;
16880        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
16881          to_bitField0_ |= 0x00000002;
16882        }
16883        result.status_ = status_;
16884        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
16885          to_bitField0_ |= 0x00000004;
16886        }
16887        result.durationInMs_ = durationInMs_;
16888        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
16889          to_bitField0_ |= 0x00000008;
16890        }
16891        result.stacktrace_ = stacktrace_;
16892        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
16893          to_bitField0_ |= 0x00000010;
16894        }
16895        result.msg_ = msg_;
16896        result.bitField0_ = to_bitField0_;
16897        onBuilt();
16898        return result;
16899      }
16900
16901      public Builder mergeFrom(com.google.protobuf.Message other) {
16902        if (other instanceof org.sonar.batch.protocol.output.BatchReport.Test) {
16903          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.Test)other);
16904        } else {
16905          super.mergeFrom(other);
16906          return this;
16907        }
16908      }
16909
16910      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.Test other) {
16911        if (other == org.sonar.batch.protocol.output.BatchReport.Test.getDefaultInstance()) return this;
16912        if (other.hasName()) {
16913          bitField0_ |= 0x00000001;
16914          name_ = other.name_;
16915          onChanged();
16916        }
16917        if (other.hasStatus()) {
16918          setStatus(other.getStatus());
16919        }
16920        if (other.hasDurationInMs()) {
16921          setDurationInMs(other.getDurationInMs());
16922        }
16923        if (other.hasStacktrace()) {
16924          bitField0_ |= 0x00000008;
16925          stacktrace_ = other.stacktrace_;
16926          onChanged();
16927        }
16928        if (other.hasMsg()) {
16929          bitField0_ |= 0x00000010;
16930          msg_ = other.msg_;
16931          onChanged();
16932        }
16933        this.mergeUnknownFields(other.unknownFields);
16934        onChanged();
16935        return this;
16936      }
16937
16938      public final boolean isInitialized() {
16939        return true;
16940      }
16941
16942      public Builder mergeFrom(
16943          com.google.protobuf.CodedInputStream input,
16944          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
16945          throws java.io.IOException {
16946        org.sonar.batch.protocol.output.BatchReport.Test parsedMessage = null;
16947        try {
16948          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
16949        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
16950          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.Test) e.getUnfinishedMessage();
16951          throw e;
16952        } finally {
16953          if (parsedMessage != null) {
16954            mergeFrom(parsedMessage);
16955          }
16956        }
16957        return this;
16958      }
16959      private int bitField0_;
16960
16961      private java.lang.Object name_ = "";
16962      /**
16963       * <code>optional string name = 1;</code>
16964       */
16965      public boolean hasName() {
16966        return ((bitField0_ & 0x00000001) == 0x00000001);
16967      }
16968      /**
16969       * <code>optional string name = 1;</code>
16970       */
16971      public java.lang.String getName() {
16972        java.lang.Object ref = name_;
16973        if (!(ref instanceof java.lang.String)) {
16974          com.google.protobuf.ByteString bs =
16975              (com.google.protobuf.ByteString) ref;
16976          java.lang.String s = bs.toStringUtf8();
16977          if (bs.isValidUtf8()) {
16978            name_ = s;
16979          }
16980          return s;
16981        } else {
16982          return (java.lang.String) ref;
16983        }
16984      }
16985      /**
16986       * <code>optional string name = 1;</code>
16987       */
16988      public com.google.protobuf.ByteString
16989          getNameBytes() {
16990        java.lang.Object ref = name_;
16991        if (ref instanceof String) {
16992          com.google.protobuf.ByteString b = 
16993              com.google.protobuf.ByteString.copyFromUtf8(
16994                  (java.lang.String) ref);
16995          name_ = b;
16996          return b;
16997        } else {
16998          return (com.google.protobuf.ByteString) ref;
16999        }
17000      }
17001      /**
17002       * <code>optional string name = 1;</code>
17003       */
17004      public Builder setName(
17005          java.lang.String value) {
17006        if (value == null) {
17007    throw new NullPointerException();
17008  }
17009  bitField0_ |= 0x00000001;
17010        name_ = value;
17011        onChanged();
17012        return this;
17013      }
17014      /**
17015       * <code>optional string name = 1;</code>
17016       */
17017      public Builder clearName() {
17018        bitField0_ = (bitField0_ & ~0x00000001);
17019        name_ = getDefaultInstance().getName();
17020        onChanged();
17021        return this;
17022      }
17023      /**
17024       * <code>optional string name = 1;</code>
17025       */
17026      public Builder setNameBytes(
17027          com.google.protobuf.ByteString value) {
17028        if (value == null) {
17029    throw new NullPointerException();
17030  }
17031  bitField0_ |= 0x00000001;
17032        name_ = value;
17033        onChanged();
17034        return this;
17035      }
17036
17037      private int status_ = 1;
17038      /**
17039       * <code>optional .TestStatus status = 2;</code>
17040       */
17041      public boolean hasStatus() {
17042        return ((bitField0_ & 0x00000002) == 0x00000002);
17043      }
17044      /**
17045       * <code>optional .TestStatus status = 2;</code>
17046       */
17047      public org.sonar.batch.protocol.Constants.TestStatus getStatus() {
17048        org.sonar.batch.protocol.Constants.TestStatus result = org.sonar.batch.protocol.Constants.TestStatus.valueOf(status_);
17049        return result == null ? org.sonar.batch.protocol.Constants.TestStatus.OK : result;
17050      }
17051      /**
17052       * <code>optional .TestStatus status = 2;</code>
17053       */
17054      public Builder setStatus(org.sonar.batch.protocol.Constants.TestStatus value) {
17055        if (value == null) {
17056          throw new NullPointerException();
17057        }
17058        bitField0_ |= 0x00000002;
17059        status_ = value.getNumber();
17060        onChanged();
17061        return this;
17062      }
17063      /**
17064       * <code>optional .TestStatus status = 2;</code>
17065       */
17066      public Builder clearStatus() {
17067        bitField0_ = (bitField0_ & ~0x00000002);
17068        status_ = 1;
17069        onChanged();
17070        return this;
17071      }
17072
17073      private long durationInMs_ ;
17074      /**
17075       * <code>optional int64 duration_in_ms = 3;</code>
17076       */
17077      public boolean hasDurationInMs() {
17078        return ((bitField0_ & 0x00000004) == 0x00000004);
17079      }
17080      /**
17081       * <code>optional int64 duration_in_ms = 3;</code>
17082       */
17083      public long getDurationInMs() {
17084        return durationInMs_;
17085      }
17086      /**
17087       * <code>optional int64 duration_in_ms = 3;</code>
17088       */
17089      public Builder setDurationInMs(long value) {
17090        bitField0_ |= 0x00000004;
17091        durationInMs_ = value;
17092        onChanged();
17093        return this;
17094      }
17095      /**
17096       * <code>optional int64 duration_in_ms = 3;</code>
17097       */
17098      public Builder clearDurationInMs() {
17099        bitField0_ = (bitField0_ & ~0x00000004);
17100        durationInMs_ = 0L;
17101        onChanged();
17102        return this;
17103      }
17104
17105      private java.lang.Object stacktrace_ = "";
17106      /**
17107       * <code>optional string stacktrace = 4;</code>
17108       */
17109      public boolean hasStacktrace() {
17110        return ((bitField0_ & 0x00000008) == 0x00000008);
17111      }
17112      /**
17113       * <code>optional string stacktrace = 4;</code>
17114       */
17115      public java.lang.String getStacktrace() {
17116        java.lang.Object ref = stacktrace_;
17117        if (!(ref instanceof java.lang.String)) {
17118          com.google.protobuf.ByteString bs =
17119              (com.google.protobuf.ByteString) ref;
17120          java.lang.String s = bs.toStringUtf8();
17121          if (bs.isValidUtf8()) {
17122            stacktrace_ = s;
17123          }
17124          return s;
17125        } else {
17126          return (java.lang.String) ref;
17127        }
17128      }
17129      /**
17130       * <code>optional string stacktrace = 4;</code>
17131       */
17132      public com.google.protobuf.ByteString
17133          getStacktraceBytes() {
17134        java.lang.Object ref = stacktrace_;
17135        if (ref instanceof String) {
17136          com.google.protobuf.ByteString b = 
17137              com.google.protobuf.ByteString.copyFromUtf8(
17138                  (java.lang.String) ref);
17139          stacktrace_ = b;
17140          return b;
17141        } else {
17142          return (com.google.protobuf.ByteString) ref;
17143        }
17144      }
17145      /**
17146       * <code>optional string stacktrace = 4;</code>
17147       */
17148      public Builder setStacktrace(
17149          java.lang.String value) {
17150        if (value == null) {
17151    throw new NullPointerException();
17152  }
17153  bitField0_ |= 0x00000008;
17154        stacktrace_ = value;
17155        onChanged();
17156        return this;
17157      }
17158      /**
17159       * <code>optional string stacktrace = 4;</code>
17160       */
17161      public Builder clearStacktrace() {
17162        bitField0_ = (bitField0_ & ~0x00000008);
17163        stacktrace_ = getDefaultInstance().getStacktrace();
17164        onChanged();
17165        return this;
17166      }
17167      /**
17168       * <code>optional string stacktrace = 4;</code>
17169       */
17170      public Builder setStacktraceBytes(
17171          com.google.protobuf.ByteString value) {
17172        if (value == null) {
17173    throw new NullPointerException();
17174  }
17175  bitField0_ |= 0x00000008;
17176        stacktrace_ = value;
17177        onChanged();
17178        return this;
17179      }
17180
17181      private java.lang.Object msg_ = "";
17182      /**
17183       * <code>optional string msg = 5;</code>
17184       */
17185      public boolean hasMsg() {
17186        return ((bitField0_ & 0x00000010) == 0x00000010);
17187      }
17188      /**
17189       * <code>optional string msg = 5;</code>
17190       */
17191      public java.lang.String getMsg() {
17192        java.lang.Object ref = msg_;
17193        if (!(ref instanceof java.lang.String)) {
17194          com.google.protobuf.ByteString bs =
17195              (com.google.protobuf.ByteString) ref;
17196          java.lang.String s = bs.toStringUtf8();
17197          if (bs.isValidUtf8()) {
17198            msg_ = s;
17199          }
17200          return s;
17201        } else {
17202          return (java.lang.String) ref;
17203        }
17204      }
17205      /**
17206       * <code>optional string msg = 5;</code>
17207       */
17208      public com.google.protobuf.ByteString
17209          getMsgBytes() {
17210        java.lang.Object ref = msg_;
17211        if (ref instanceof String) {
17212          com.google.protobuf.ByteString b = 
17213              com.google.protobuf.ByteString.copyFromUtf8(
17214                  (java.lang.String) ref);
17215          msg_ = b;
17216          return b;
17217        } else {
17218          return (com.google.protobuf.ByteString) ref;
17219        }
17220      }
17221      /**
17222       * <code>optional string msg = 5;</code>
17223       */
17224      public Builder setMsg(
17225          java.lang.String value) {
17226        if (value == null) {
17227    throw new NullPointerException();
17228  }
17229  bitField0_ |= 0x00000010;
17230        msg_ = value;
17231        onChanged();
17232        return this;
17233      }
17234      /**
17235       * <code>optional string msg = 5;</code>
17236       */
17237      public Builder clearMsg() {
17238        bitField0_ = (bitField0_ & ~0x00000010);
17239        msg_ = getDefaultInstance().getMsg();
17240        onChanged();
17241        return this;
17242      }
17243      /**
17244       * <code>optional string msg = 5;</code>
17245       */
17246      public Builder setMsgBytes(
17247          com.google.protobuf.ByteString value) {
17248        if (value == null) {
17249    throw new NullPointerException();
17250  }
17251  bitField0_ |= 0x00000010;
17252        msg_ = value;
17253        onChanged();
17254        return this;
17255      }
17256
17257      // @@protoc_insertion_point(builder_scope:Test)
17258    }
17259
17260    // @@protoc_insertion_point(class_scope:Test)
17261    private static final org.sonar.batch.protocol.output.BatchReport.Test DEFAULT_INSTANCE;
17262    static {
17263      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.Test();
17264    }
17265
17266    public static org.sonar.batch.protocol.output.BatchReport.Test getDefaultInstance() {
17267      return DEFAULT_INSTANCE;
17268    }
17269
17270    public static final com.google.protobuf.Parser<Test> PARSER =
17271        new com.google.protobuf.AbstractParser<Test>() {
17272      public Test parsePartialFrom(
17273          com.google.protobuf.CodedInputStream input,
17274          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
17275          throws com.google.protobuf.InvalidProtocolBufferException {
17276        try {
17277          return new Test(input, extensionRegistry);
17278        } catch (RuntimeException e) {
17279          if (e.getCause() instanceof
17280              com.google.protobuf.InvalidProtocolBufferException) {
17281            throw (com.google.protobuf.InvalidProtocolBufferException)
17282                e.getCause();
17283          }
17284          throw e;
17285        }
17286      }
17287    };
17288
17289    @java.lang.Override
17290    public com.google.protobuf.Parser<Test> getParserForType() {
17291      return PARSER;
17292    }
17293
17294    public org.sonar.batch.protocol.output.BatchReport.Test getDefaultInstanceForType() {
17295      return DEFAULT_INSTANCE;
17296    }
17297
17298  }
17299
17300  public interface CoverageDetailOrBuilder extends
17301      // @@protoc_insertion_point(interface_extends:CoverageDetail)
17302      com.google.protobuf.MessageOrBuilder {
17303
17304    /**
17305     * <code>optional string test_name = 1;</code>
17306     */
17307    boolean hasTestName();
17308    /**
17309     * <code>optional string test_name = 1;</code>
17310     */
17311    java.lang.String getTestName();
17312    /**
17313     * <code>optional string test_name = 1;</code>
17314     */
17315    com.google.protobuf.ByteString
17316        getTestNameBytes();
17317
17318    /**
17319     * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
17320     */
17321    java.util.List<org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile> 
17322        getCoveredFileList();
17323    /**
17324     * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
17325     */
17326    org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile getCoveredFile(int index);
17327    /**
17328     * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
17329     */
17330    int getCoveredFileCount();
17331    /**
17332     * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
17333     */
17334    java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFileOrBuilder> 
17335        getCoveredFileOrBuilderList();
17336    /**
17337     * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
17338     */
17339    org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFileOrBuilder getCoveredFileOrBuilder(
17340        int index);
17341  }
17342  /**
17343   * Protobuf type {@code CoverageDetail}
17344   */
17345  public  static final class CoverageDetail extends
17346      com.google.protobuf.GeneratedMessage implements
17347      // @@protoc_insertion_point(message_implements:CoverageDetail)
17348      CoverageDetailOrBuilder {
17349    // Use CoverageDetail.newBuilder() to construct.
17350    private CoverageDetail(com.google.protobuf.GeneratedMessage.Builder builder) {
17351      super(builder);
17352    }
17353    private CoverageDetail() {
17354      testName_ = "";
17355      coveredFile_ = java.util.Collections.emptyList();
17356    }
17357
17358    @java.lang.Override
17359    public final com.google.protobuf.UnknownFieldSet
17360    getUnknownFields() {
17361      return this.unknownFields;
17362    }
17363    private CoverageDetail(
17364        com.google.protobuf.CodedInputStream input,
17365        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
17366      this();
17367      int mutable_bitField0_ = 0;
17368      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
17369          com.google.protobuf.UnknownFieldSet.newBuilder();
17370      try {
17371        boolean done = false;
17372        while (!done) {
17373          int tag = input.readTag();
17374          switch (tag) {
17375            case 0:
17376              done = true;
17377              break;
17378            default: {
17379              if (!parseUnknownField(input, unknownFields,
17380                                     extensionRegistry, tag)) {
17381                done = true;
17382              }
17383              break;
17384            }
17385            case 10: {
17386              com.google.protobuf.ByteString bs = input.readBytes();
17387              bitField0_ |= 0x00000001;
17388              testName_ = bs;
17389              break;
17390            }
17391            case 18: {
17392              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
17393                coveredFile_ = new java.util.ArrayList<org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile>();
17394                mutable_bitField0_ |= 0x00000002;
17395              }
17396              coveredFile_.add(input.readMessage(org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.PARSER, extensionRegistry));
17397              break;
17398            }
17399          }
17400        }
17401      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
17402        throw new RuntimeException(e.setUnfinishedMessage(this));
17403      } catch (java.io.IOException e) {
17404        throw new RuntimeException(
17405            new com.google.protobuf.InvalidProtocolBufferException(
17406                e.getMessage()).setUnfinishedMessage(this));
17407      } finally {
17408        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
17409          coveredFile_ = java.util.Collections.unmodifiableList(coveredFile_);
17410        }
17411        this.unknownFields = unknownFields.build();
17412        makeExtensionsImmutable();
17413      }
17414    }
17415    public static final com.google.protobuf.Descriptors.Descriptor
17416        getDescriptor() {
17417      return org.sonar.batch.protocol.output.BatchReport.internal_static_CoverageDetail_descriptor;
17418    }
17419
17420    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
17421        internalGetFieldAccessorTable() {
17422      return org.sonar.batch.protocol.output.BatchReport.internal_static_CoverageDetail_fieldAccessorTable
17423          .ensureFieldAccessorsInitialized(
17424              org.sonar.batch.protocol.output.BatchReport.CoverageDetail.class, org.sonar.batch.protocol.output.BatchReport.CoverageDetail.Builder.class);
17425    }
17426
17427    public interface CoveredFileOrBuilder extends
17428        // @@protoc_insertion_point(interface_extends:CoverageDetail.CoveredFile)
17429        com.google.protobuf.MessageOrBuilder {
17430
17431      /**
17432       * <code>optional int32 file_ref = 1;</code>
17433       */
17434      boolean hasFileRef();
17435      /**
17436       * <code>optional int32 file_ref = 1;</code>
17437       */
17438      int getFileRef();
17439
17440      /**
17441       * <code>repeated int32 covered_line = 2 [packed = true];</code>
17442       */
17443      java.util.List<java.lang.Integer> getCoveredLineList();
17444      /**
17445       * <code>repeated int32 covered_line = 2 [packed = true];</code>
17446       */
17447      int getCoveredLineCount();
17448      /**
17449       * <code>repeated int32 covered_line = 2 [packed = true];</code>
17450       */
17451      int getCoveredLine(int index);
17452    }
17453    /**
17454     * Protobuf type {@code CoverageDetail.CoveredFile}
17455     */
17456    public  static final class CoveredFile extends
17457        com.google.protobuf.GeneratedMessage implements
17458        // @@protoc_insertion_point(message_implements:CoverageDetail.CoveredFile)
17459        CoveredFileOrBuilder {
17460      // Use CoveredFile.newBuilder() to construct.
17461      private CoveredFile(com.google.protobuf.GeneratedMessage.Builder builder) {
17462        super(builder);
17463      }
17464      private CoveredFile() {
17465        fileRef_ = 0;
17466        coveredLine_ = java.util.Collections.emptyList();
17467      }
17468
17469      @java.lang.Override
17470      public final com.google.protobuf.UnknownFieldSet
17471      getUnknownFields() {
17472        return this.unknownFields;
17473      }
17474      private CoveredFile(
17475          com.google.protobuf.CodedInputStream input,
17476          com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
17477        this();
17478        int mutable_bitField0_ = 0;
17479        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
17480            com.google.protobuf.UnknownFieldSet.newBuilder();
17481        try {
17482          boolean done = false;
17483          while (!done) {
17484            int tag = input.readTag();
17485            switch (tag) {
17486              case 0:
17487                done = true;
17488                break;
17489              default: {
17490                if (!parseUnknownField(input, unknownFields,
17491                                       extensionRegistry, tag)) {
17492                  done = true;
17493                }
17494                break;
17495              }
17496              case 8: {
17497                bitField0_ |= 0x00000001;
17498                fileRef_ = input.readInt32();
17499                break;
17500              }
17501              case 16: {
17502                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
17503                  coveredLine_ = new java.util.ArrayList<java.lang.Integer>();
17504                  mutable_bitField0_ |= 0x00000002;
17505                }
17506                coveredLine_.add(input.readInt32());
17507                break;
17508              }
17509              case 18: {
17510                int length = input.readRawVarint32();
17511                int limit = input.pushLimit(length);
17512                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002) && input.getBytesUntilLimit() > 0) {
17513                  coveredLine_ = new java.util.ArrayList<java.lang.Integer>();
17514                  mutable_bitField0_ |= 0x00000002;
17515                }
17516                while (input.getBytesUntilLimit() > 0) {
17517                  coveredLine_.add(input.readInt32());
17518                }
17519                input.popLimit(limit);
17520                break;
17521              }
17522            }
17523          }
17524        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
17525          throw new RuntimeException(e.setUnfinishedMessage(this));
17526        } catch (java.io.IOException e) {
17527          throw new RuntimeException(
17528              new com.google.protobuf.InvalidProtocolBufferException(
17529                  e.getMessage()).setUnfinishedMessage(this));
17530        } finally {
17531          if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
17532            coveredLine_ = java.util.Collections.unmodifiableList(coveredLine_);
17533          }
17534          this.unknownFields = unknownFields.build();
17535          makeExtensionsImmutable();
17536        }
17537      }
17538      public static final com.google.protobuf.Descriptors.Descriptor
17539          getDescriptor() {
17540        return org.sonar.batch.protocol.output.BatchReport.internal_static_CoverageDetail_CoveredFile_descriptor;
17541      }
17542
17543      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
17544          internalGetFieldAccessorTable() {
17545        return org.sonar.batch.protocol.output.BatchReport.internal_static_CoverageDetail_CoveredFile_fieldAccessorTable
17546            .ensureFieldAccessorsInitialized(
17547                org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.class, org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.Builder.class);
17548      }
17549
17550      private int bitField0_;
17551      public static final int FILE_REF_FIELD_NUMBER = 1;
17552      private int fileRef_;
17553      /**
17554       * <code>optional int32 file_ref = 1;</code>
17555       */
17556      public boolean hasFileRef() {
17557        return ((bitField0_ & 0x00000001) == 0x00000001);
17558      }
17559      /**
17560       * <code>optional int32 file_ref = 1;</code>
17561       */
17562      public int getFileRef() {
17563        return fileRef_;
17564      }
17565
17566      public static final int COVERED_LINE_FIELD_NUMBER = 2;
17567      private java.util.List<java.lang.Integer> coveredLine_;
17568      /**
17569       * <code>repeated int32 covered_line = 2 [packed = true];</code>
17570       */
17571      public java.util.List<java.lang.Integer>
17572          getCoveredLineList() {
17573        return coveredLine_;
17574      }
17575      /**
17576       * <code>repeated int32 covered_line = 2 [packed = true];</code>
17577       */
17578      public int getCoveredLineCount() {
17579        return coveredLine_.size();
17580      }
17581      /**
17582       * <code>repeated int32 covered_line = 2 [packed = true];</code>
17583       */
17584      public int getCoveredLine(int index) {
17585        return coveredLine_.get(index);
17586      }
17587      private int coveredLineMemoizedSerializedSize = -1;
17588
17589      private byte memoizedIsInitialized = -1;
17590      public final boolean isInitialized() {
17591        byte isInitialized = memoizedIsInitialized;
17592        if (isInitialized == 1) return true;
17593        if (isInitialized == 0) return false;
17594
17595        memoizedIsInitialized = 1;
17596        return true;
17597      }
17598
17599      public void writeTo(com.google.protobuf.CodedOutputStream output)
17600                          throws java.io.IOException {
17601        getSerializedSize();
17602        if (((bitField0_ & 0x00000001) == 0x00000001)) {
17603          output.writeInt32(1, fileRef_);
17604        }
17605        if (getCoveredLineList().size() > 0) {
17606          output.writeRawVarint32(18);
17607          output.writeRawVarint32(coveredLineMemoizedSerializedSize);
17608        }
17609        for (int i = 0; i < coveredLine_.size(); i++) {
17610          output.writeInt32NoTag(coveredLine_.get(i));
17611        }
17612        unknownFields.writeTo(output);
17613      }
17614
17615      private int memoizedSerializedSize = -1;
17616      public int getSerializedSize() {
17617        int size = memoizedSerializedSize;
17618        if (size != -1) return size;
17619
17620        size = 0;
17621        if (((bitField0_ & 0x00000001) == 0x00000001)) {
17622          size += com.google.protobuf.CodedOutputStream
17623            .computeInt32Size(1, fileRef_);
17624        }
17625        {
17626          int dataSize = 0;
17627          for (int i = 0; i < coveredLine_.size(); i++) {
17628            dataSize += com.google.protobuf.CodedOutputStream
17629              .computeInt32SizeNoTag(coveredLine_.get(i));
17630          }
17631          size += dataSize;
17632          if (!getCoveredLineList().isEmpty()) {
17633            size += 1;
17634            size += com.google.protobuf.CodedOutputStream
17635                .computeInt32SizeNoTag(dataSize);
17636          }
17637          coveredLineMemoizedSerializedSize = dataSize;
17638        }
17639        size += unknownFields.getSerializedSize();
17640        memoizedSerializedSize = size;
17641        return size;
17642      }
17643
17644      private static final long serialVersionUID = 0L;
17645      public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile parseFrom(
17646          com.google.protobuf.ByteString data)
17647          throws com.google.protobuf.InvalidProtocolBufferException {
17648        return PARSER.parseFrom(data);
17649      }
17650      public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile parseFrom(
17651          com.google.protobuf.ByteString data,
17652          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
17653          throws com.google.protobuf.InvalidProtocolBufferException {
17654        return PARSER.parseFrom(data, extensionRegistry);
17655      }
17656      public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile parseFrom(byte[] data)
17657          throws com.google.protobuf.InvalidProtocolBufferException {
17658        return PARSER.parseFrom(data);
17659      }
17660      public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile parseFrom(
17661          byte[] data,
17662          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
17663          throws com.google.protobuf.InvalidProtocolBufferException {
17664        return PARSER.parseFrom(data, extensionRegistry);
17665      }
17666      public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile parseFrom(java.io.InputStream input)
17667          throws java.io.IOException {
17668        return PARSER.parseFrom(input);
17669      }
17670      public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile parseFrom(
17671          java.io.InputStream input,
17672          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
17673          throws java.io.IOException {
17674        return PARSER.parseFrom(input, extensionRegistry);
17675      }
17676      public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile parseDelimitedFrom(java.io.InputStream input)
17677          throws java.io.IOException {
17678        return PARSER.parseDelimitedFrom(input);
17679      }
17680      public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile parseDelimitedFrom(
17681          java.io.InputStream input,
17682          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
17683          throws java.io.IOException {
17684        return PARSER.parseDelimitedFrom(input, extensionRegistry);
17685      }
17686      public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile parseFrom(
17687          com.google.protobuf.CodedInputStream input)
17688          throws java.io.IOException {
17689        return PARSER.parseFrom(input);
17690      }
17691      public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile parseFrom(
17692          com.google.protobuf.CodedInputStream input,
17693          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
17694          throws java.io.IOException {
17695        return PARSER.parseFrom(input, extensionRegistry);
17696      }
17697
17698      public Builder newBuilderForType() { return newBuilder(); }
17699      public static Builder newBuilder() {
17700        return DEFAULT_INSTANCE.toBuilder();
17701      }
17702      public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile prototype) {
17703        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
17704      }
17705      public Builder toBuilder() {
17706        return this == DEFAULT_INSTANCE
17707            ? new Builder() : new Builder().mergeFrom(this);
17708      }
17709
17710      @java.lang.Override
17711      protected Builder newBuilderForType(
17712          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
17713        Builder builder = new Builder(parent);
17714        return builder;
17715      }
17716      /**
17717       * Protobuf type {@code CoverageDetail.CoveredFile}
17718       */
17719      public static final class Builder extends
17720          com.google.protobuf.GeneratedMessage.Builder<Builder> implements
17721          // @@protoc_insertion_point(builder_implements:CoverageDetail.CoveredFile)
17722          org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFileOrBuilder {
17723        public static final com.google.protobuf.Descriptors.Descriptor
17724            getDescriptor() {
17725          return org.sonar.batch.protocol.output.BatchReport.internal_static_CoverageDetail_CoveredFile_descriptor;
17726        }
17727
17728        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
17729            internalGetFieldAccessorTable() {
17730          return org.sonar.batch.protocol.output.BatchReport.internal_static_CoverageDetail_CoveredFile_fieldAccessorTable
17731              .ensureFieldAccessorsInitialized(
17732                  org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.class, org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.Builder.class);
17733        }
17734
17735        // Construct using org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.newBuilder()
17736        private Builder() {
17737          maybeForceBuilderInitialization();
17738        }
17739
17740        private Builder(
17741            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
17742          super(parent);
17743          maybeForceBuilderInitialization();
17744        }
17745        private void maybeForceBuilderInitialization() {
17746          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
17747          }
17748        }
17749        public Builder clear() {
17750          super.clear();
17751          fileRef_ = 0;
17752          bitField0_ = (bitField0_ & ~0x00000001);
17753          coveredLine_ = java.util.Collections.emptyList();
17754          bitField0_ = (bitField0_ & ~0x00000002);
17755          return this;
17756        }
17757
17758        public com.google.protobuf.Descriptors.Descriptor
17759            getDescriptorForType() {
17760          return org.sonar.batch.protocol.output.BatchReport.internal_static_CoverageDetail_CoveredFile_descriptor;
17761        }
17762
17763        public org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile getDefaultInstanceForType() {
17764          return org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.getDefaultInstance();
17765        }
17766
17767        public org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile build() {
17768          org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile result = buildPartial();
17769          if (!result.isInitialized()) {
17770            throw newUninitializedMessageException(result);
17771          }
17772          return result;
17773        }
17774
17775        public org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile buildPartial() {
17776          org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile result = new org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile(this);
17777          int from_bitField0_ = bitField0_;
17778          int to_bitField0_ = 0;
17779          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
17780            to_bitField0_ |= 0x00000001;
17781          }
17782          result.fileRef_ = fileRef_;
17783          if (((bitField0_ & 0x00000002) == 0x00000002)) {
17784            coveredLine_ = java.util.Collections.unmodifiableList(coveredLine_);
17785            bitField0_ = (bitField0_ & ~0x00000002);
17786          }
17787          result.coveredLine_ = coveredLine_;
17788          result.bitField0_ = to_bitField0_;
17789          onBuilt();
17790          return result;
17791        }
17792
17793        public Builder mergeFrom(com.google.protobuf.Message other) {
17794          if (other instanceof org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile) {
17795            return mergeFrom((org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile)other);
17796          } else {
17797            super.mergeFrom(other);
17798            return this;
17799          }
17800        }
17801
17802        public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile other) {
17803          if (other == org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.getDefaultInstance()) return this;
17804          if (other.hasFileRef()) {
17805            setFileRef(other.getFileRef());
17806          }
17807          if (!other.coveredLine_.isEmpty()) {
17808            if (coveredLine_.isEmpty()) {
17809              coveredLine_ = other.coveredLine_;
17810              bitField0_ = (bitField0_ & ~0x00000002);
17811            } else {
17812              ensureCoveredLineIsMutable();
17813              coveredLine_.addAll(other.coveredLine_);
17814            }
17815            onChanged();
17816          }
17817          this.mergeUnknownFields(other.unknownFields);
17818          onChanged();
17819          return this;
17820        }
17821
17822        public final boolean isInitialized() {
17823          return true;
17824        }
17825
17826        public Builder mergeFrom(
17827            com.google.protobuf.CodedInputStream input,
17828            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
17829            throws java.io.IOException {
17830          org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile parsedMessage = null;
17831          try {
17832            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
17833          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
17834            parsedMessage = (org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile) e.getUnfinishedMessage();
17835            throw e;
17836          } finally {
17837            if (parsedMessage != null) {
17838              mergeFrom(parsedMessage);
17839            }
17840          }
17841          return this;
17842        }
17843        private int bitField0_;
17844
17845        private int fileRef_ ;
17846        /**
17847         * <code>optional int32 file_ref = 1;</code>
17848         */
17849        public boolean hasFileRef() {
17850          return ((bitField0_ & 0x00000001) == 0x00000001);
17851        }
17852        /**
17853         * <code>optional int32 file_ref = 1;</code>
17854         */
17855        public int getFileRef() {
17856          return fileRef_;
17857        }
17858        /**
17859         * <code>optional int32 file_ref = 1;</code>
17860         */
17861        public Builder setFileRef(int value) {
17862          bitField0_ |= 0x00000001;
17863          fileRef_ = value;
17864          onChanged();
17865          return this;
17866        }
17867        /**
17868         * <code>optional int32 file_ref = 1;</code>
17869         */
17870        public Builder clearFileRef() {
17871          bitField0_ = (bitField0_ & ~0x00000001);
17872          fileRef_ = 0;
17873          onChanged();
17874          return this;
17875        }
17876
17877        private java.util.List<java.lang.Integer> coveredLine_ = java.util.Collections.emptyList();
17878        private void ensureCoveredLineIsMutable() {
17879          if (!((bitField0_ & 0x00000002) == 0x00000002)) {
17880            coveredLine_ = new java.util.ArrayList<java.lang.Integer>(coveredLine_);
17881            bitField0_ |= 0x00000002;
17882           }
17883        }
17884        /**
17885         * <code>repeated int32 covered_line = 2 [packed = true];</code>
17886         */
17887        public java.util.List<java.lang.Integer>
17888            getCoveredLineList() {
17889          return java.util.Collections.unmodifiableList(coveredLine_);
17890        }
17891        /**
17892         * <code>repeated int32 covered_line = 2 [packed = true];</code>
17893         */
17894        public int getCoveredLineCount() {
17895          return coveredLine_.size();
17896        }
17897        /**
17898         * <code>repeated int32 covered_line = 2 [packed = true];</code>
17899         */
17900        public int getCoveredLine(int index) {
17901          return coveredLine_.get(index);
17902        }
17903        /**
17904         * <code>repeated int32 covered_line = 2 [packed = true];</code>
17905         */
17906        public Builder setCoveredLine(
17907            int index, int value) {
17908          ensureCoveredLineIsMutable();
17909          coveredLine_.set(index, value);
17910          onChanged();
17911          return this;
17912        }
17913        /**
17914         * <code>repeated int32 covered_line = 2 [packed = true];</code>
17915         */
17916        public Builder addCoveredLine(int value) {
17917          ensureCoveredLineIsMutable();
17918          coveredLine_.add(value);
17919          onChanged();
17920          return this;
17921        }
17922        /**
17923         * <code>repeated int32 covered_line = 2 [packed = true];</code>
17924         */
17925        public Builder addAllCoveredLine(
17926            java.lang.Iterable<? extends java.lang.Integer> values) {
17927          ensureCoveredLineIsMutable();
17928          com.google.protobuf.AbstractMessageLite.Builder.addAll(
17929              values, coveredLine_);
17930          onChanged();
17931          return this;
17932        }
17933        /**
17934         * <code>repeated int32 covered_line = 2 [packed = true];</code>
17935         */
17936        public Builder clearCoveredLine() {
17937          coveredLine_ = java.util.Collections.emptyList();
17938          bitField0_ = (bitField0_ & ~0x00000002);
17939          onChanged();
17940          return this;
17941        }
17942
17943        // @@protoc_insertion_point(builder_scope:CoverageDetail.CoveredFile)
17944      }
17945
17946      // @@protoc_insertion_point(class_scope:CoverageDetail.CoveredFile)
17947      private static final org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile DEFAULT_INSTANCE;
17948      static {
17949        DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile();
17950      }
17951
17952      public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile getDefaultInstance() {
17953        return DEFAULT_INSTANCE;
17954      }
17955
17956      public static final com.google.protobuf.Parser<CoveredFile> PARSER =
17957          new com.google.protobuf.AbstractParser<CoveredFile>() {
17958        public CoveredFile parsePartialFrom(
17959            com.google.protobuf.CodedInputStream input,
17960            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
17961            throws com.google.protobuf.InvalidProtocolBufferException {
17962          try {
17963            return new CoveredFile(input, extensionRegistry);
17964          } catch (RuntimeException e) {
17965            if (e.getCause() instanceof
17966                com.google.protobuf.InvalidProtocolBufferException) {
17967              throw (com.google.protobuf.InvalidProtocolBufferException)
17968                  e.getCause();
17969            }
17970            throw e;
17971          }
17972        }
17973      };
17974
17975      @java.lang.Override
17976      public com.google.protobuf.Parser<CoveredFile> getParserForType() {
17977        return PARSER;
17978      }
17979
17980      public org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile getDefaultInstanceForType() {
17981        return DEFAULT_INSTANCE;
17982      }
17983
17984    }
17985
17986    private int bitField0_;
17987    public static final int TEST_NAME_FIELD_NUMBER = 1;
17988    private volatile java.lang.Object testName_;
17989    /**
17990     * <code>optional string test_name = 1;</code>
17991     */
17992    public boolean hasTestName() {
17993      return ((bitField0_ & 0x00000001) == 0x00000001);
17994    }
17995    /**
17996     * <code>optional string test_name = 1;</code>
17997     */
17998    public java.lang.String getTestName() {
17999      java.lang.Object ref = testName_;
18000      if (ref instanceof java.lang.String) {
18001        return (java.lang.String) ref;
18002      } else {
18003        com.google.protobuf.ByteString bs = 
18004            (com.google.protobuf.ByteString) ref;
18005        java.lang.String s = bs.toStringUtf8();
18006        if (bs.isValidUtf8()) {
18007          testName_ = s;
18008        }
18009        return s;
18010      }
18011    }
18012    /**
18013     * <code>optional string test_name = 1;</code>
18014     */
18015    public com.google.protobuf.ByteString
18016        getTestNameBytes() {
18017      java.lang.Object ref = testName_;
18018      if (ref instanceof java.lang.String) {
18019        com.google.protobuf.ByteString b = 
18020            com.google.protobuf.ByteString.copyFromUtf8(
18021                (java.lang.String) ref);
18022        testName_ = b;
18023        return b;
18024      } else {
18025        return (com.google.protobuf.ByteString) ref;
18026      }
18027    }
18028
18029    public static final int COVERED_FILE_FIELD_NUMBER = 2;
18030    private java.util.List<org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile> coveredFile_;
18031    /**
18032     * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
18033     */
18034    public java.util.List<org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile> getCoveredFileList() {
18035      return coveredFile_;
18036    }
18037    /**
18038     * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
18039     */
18040    public java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFileOrBuilder> 
18041        getCoveredFileOrBuilderList() {
18042      return coveredFile_;
18043    }
18044    /**
18045     * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
18046     */
18047    public int getCoveredFileCount() {
18048      return coveredFile_.size();
18049    }
18050    /**
18051     * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
18052     */
18053    public org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile getCoveredFile(int index) {
18054      return coveredFile_.get(index);
18055    }
18056    /**
18057     * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
18058     */
18059    public org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFileOrBuilder getCoveredFileOrBuilder(
18060        int index) {
18061      return coveredFile_.get(index);
18062    }
18063
18064    private byte memoizedIsInitialized = -1;
18065    public final boolean isInitialized() {
18066      byte isInitialized = memoizedIsInitialized;
18067      if (isInitialized == 1) return true;
18068      if (isInitialized == 0) return false;
18069
18070      memoizedIsInitialized = 1;
18071      return true;
18072    }
18073
18074    public void writeTo(com.google.protobuf.CodedOutputStream output)
18075                        throws java.io.IOException {
18076      if (((bitField0_ & 0x00000001) == 0x00000001)) {
18077        output.writeBytes(1, getTestNameBytes());
18078      }
18079      for (int i = 0; i < coveredFile_.size(); i++) {
18080        output.writeMessage(2, coveredFile_.get(i));
18081      }
18082      unknownFields.writeTo(output);
18083    }
18084
18085    private int memoizedSerializedSize = -1;
18086    public int getSerializedSize() {
18087      int size = memoizedSerializedSize;
18088      if (size != -1) return size;
18089
18090      size = 0;
18091      if (((bitField0_ & 0x00000001) == 0x00000001)) {
18092        size += com.google.protobuf.CodedOutputStream
18093          .computeBytesSize(1, getTestNameBytes());
18094      }
18095      for (int i = 0; i < coveredFile_.size(); i++) {
18096        size += com.google.protobuf.CodedOutputStream
18097          .computeMessageSize(2, coveredFile_.get(i));
18098      }
18099      size += unknownFields.getSerializedSize();
18100      memoizedSerializedSize = size;
18101      return size;
18102    }
18103
18104    private static final long serialVersionUID = 0L;
18105    public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail parseFrom(
18106        com.google.protobuf.ByteString data)
18107        throws com.google.protobuf.InvalidProtocolBufferException {
18108      return PARSER.parseFrom(data);
18109    }
18110    public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail parseFrom(
18111        com.google.protobuf.ByteString data,
18112        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
18113        throws com.google.protobuf.InvalidProtocolBufferException {
18114      return PARSER.parseFrom(data, extensionRegistry);
18115    }
18116    public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail parseFrom(byte[] data)
18117        throws com.google.protobuf.InvalidProtocolBufferException {
18118      return PARSER.parseFrom(data);
18119    }
18120    public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail parseFrom(
18121        byte[] data,
18122        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
18123        throws com.google.protobuf.InvalidProtocolBufferException {
18124      return PARSER.parseFrom(data, extensionRegistry);
18125    }
18126    public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail parseFrom(java.io.InputStream input)
18127        throws java.io.IOException {
18128      return PARSER.parseFrom(input);
18129    }
18130    public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail parseFrom(
18131        java.io.InputStream input,
18132        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
18133        throws java.io.IOException {
18134      return PARSER.parseFrom(input, extensionRegistry);
18135    }
18136    public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail parseDelimitedFrom(java.io.InputStream input)
18137        throws java.io.IOException {
18138      return PARSER.parseDelimitedFrom(input);
18139    }
18140    public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail parseDelimitedFrom(
18141        java.io.InputStream input,
18142        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
18143        throws java.io.IOException {
18144      return PARSER.parseDelimitedFrom(input, extensionRegistry);
18145    }
18146    public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail parseFrom(
18147        com.google.protobuf.CodedInputStream input)
18148        throws java.io.IOException {
18149      return PARSER.parseFrom(input);
18150    }
18151    public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail parseFrom(
18152        com.google.protobuf.CodedInputStream input,
18153        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
18154        throws java.io.IOException {
18155      return PARSER.parseFrom(input, extensionRegistry);
18156    }
18157
18158    public Builder newBuilderForType() { return newBuilder(); }
18159    public static Builder newBuilder() {
18160      return DEFAULT_INSTANCE.toBuilder();
18161    }
18162    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.CoverageDetail prototype) {
18163      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
18164    }
18165    public Builder toBuilder() {
18166      return this == DEFAULT_INSTANCE
18167          ? new Builder() : new Builder().mergeFrom(this);
18168    }
18169
18170    @java.lang.Override
18171    protected Builder newBuilderForType(
18172        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
18173      Builder builder = new Builder(parent);
18174      return builder;
18175    }
18176    /**
18177     * Protobuf type {@code CoverageDetail}
18178     */
18179    public static final class Builder extends
18180        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
18181        // @@protoc_insertion_point(builder_implements:CoverageDetail)
18182        org.sonar.batch.protocol.output.BatchReport.CoverageDetailOrBuilder {
18183      public static final com.google.protobuf.Descriptors.Descriptor
18184          getDescriptor() {
18185        return org.sonar.batch.protocol.output.BatchReport.internal_static_CoverageDetail_descriptor;
18186      }
18187
18188      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
18189          internalGetFieldAccessorTable() {
18190        return org.sonar.batch.protocol.output.BatchReport.internal_static_CoverageDetail_fieldAccessorTable
18191            .ensureFieldAccessorsInitialized(
18192                org.sonar.batch.protocol.output.BatchReport.CoverageDetail.class, org.sonar.batch.protocol.output.BatchReport.CoverageDetail.Builder.class);
18193      }
18194
18195      // Construct using org.sonar.batch.protocol.output.BatchReport.CoverageDetail.newBuilder()
18196      private Builder() {
18197        maybeForceBuilderInitialization();
18198      }
18199
18200      private Builder(
18201          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
18202        super(parent);
18203        maybeForceBuilderInitialization();
18204      }
18205      private void maybeForceBuilderInitialization() {
18206        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
18207          getCoveredFileFieldBuilder();
18208        }
18209      }
18210      public Builder clear() {
18211        super.clear();
18212        testName_ = "";
18213        bitField0_ = (bitField0_ & ~0x00000001);
18214        if (coveredFileBuilder_ == null) {
18215          coveredFile_ = java.util.Collections.emptyList();
18216          bitField0_ = (bitField0_ & ~0x00000002);
18217        } else {
18218          coveredFileBuilder_.clear();
18219        }
18220        return this;
18221      }
18222
18223      public com.google.protobuf.Descriptors.Descriptor
18224          getDescriptorForType() {
18225        return org.sonar.batch.protocol.output.BatchReport.internal_static_CoverageDetail_descriptor;
18226      }
18227
18228      public org.sonar.batch.protocol.output.BatchReport.CoverageDetail getDefaultInstanceForType() {
18229        return org.sonar.batch.protocol.output.BatchReport.CoverageDetail.getDefaultInstance();
18230      }
18231
18232      public org.sonar.batch.protocol.output.BatchReport.CoverageDetail build() {
18233        org.sonar.batch.protocol.output.BatchReport.CoverageDetail result = buildPartial();
18234        if (!result.isInitialized()) {
18235          throw newUninitializedMessageException(result);
18236        }
18237        return result;
18238      }
18239
18240      public org.sonar.batch.protocol.output.BatchReport.CoverageDetail buildPartial() {
18241        org.sonar.batch.protocol.output.BatchReport.CoverageDetail result = new org.sonar.batch.protocol.output.BatchReport.CoverageDetail(this);
18242        int from_bitField0_ = bitField0_;
18243        int to_bitField0_ = 0;
18244        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
18245          to_bitField0_ |= 0x00000001;
18246        }
18247        result.testName_ = testName_;
18248        if (coveredFileBuilder_ == null) {
18249          if (((bitField0_ & 0x00000002) == 0x00000002)) {
18250            coveredFile_ = java.util.Collections.unmodifiableList(coveredFile_);
18251            bitField0_ = (bitField0_ & ~0x00000002);
18252          }
18253          result.coveredFile_ = coveredFile_;
18254        } else {
18255          result.coveredFile_ = coveredFileBuilder_.build();
18256        }
18257        result.bitField0_ = to_bitField0_;
18258        onBuilt();
18259        return result;
18260      }
18261
18262      public Builder mergeFrom(com.google.protobuf.Message other) {
18263        if (other instanceof org.sonar.batch.protocol.output.BatchReport.CoverageDetail) {
18264          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.CoverageDetail)other);
18265        } else {
18266          super.mergeFrom(other);
18267          return this;
18268        }
18269      }
18270
18271      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.CoverageDetail other) {
18272        if (other == org.sonar.batch.protocol.output.BatchReport.CoverageDetail.getDefaultInstance()) return this;
18273        if (other.hasTestName()) {
18274          bitField0_ |= 0x00000001;
18275          testName_ = other.testName_;
18276          onChanged();
18277        }
18278        if (coveredFileBuilder_ == null) {
18279          if (!other.coveredFile_.isEmpty()) {
18280            if (coveredFile_.isEmpty()) {
18281              coveredFile_ = other.coveredFile_;
18282              bitField0_ = (bitField0_ & ~0x00000002);
18283            } else {
18284              ensureCoveredFileIsMutable();
18285              coveredFile_.addAll(other.coveredFile_);
18286            }
18287            onChanged();
18288          }
18289        } else {
18290          if (!other.coveredFile_.isEmpty()) {
18291            if (coveredFileBuilder_.isEmpty()) {
18292              coveredFileBuilder_.dispose();
18293              coveredFileBuilder_ = null;
18294              coveredFile_ = other.coveredFile_;
18295              bitField0_ = (bitField0_ & ~0x00000002);
18296              coveredFileBuilder_ = 
18297                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
18298                   getCoveredFileFieldBuilder() : null;
18299            } else {
18300              coveredFileBuilder_.addAllMessages(other.coveredFile_);
18301            }
18302          }
18303        }
18304        this.mergeUnknownFields(other.unknownFields);
18305        onChanged();
18306        return this;
18307      }
18308
18309      public final boolean isInitialized() {
18310        return true;
18311      }
18312
18313      public Builder mergeFrom(
18314          com.google.protobuf.CodedInputStream input,
18315          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
18316          throws java.io.IOException {
18317        org.sonar.batch.protocol.output.BatchReport.CoverageDetail parsedMessage = null;
18318        try {
18319          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
18320        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
18321          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.CoverageDetail) e.getUnfinishedMessage();
18322          throw e;
18323        } finally {
18324          if (parsedMessage != null) {
18325            mergeFrom(parsedMessage);
18326          }
18327        }
18328        return this;
18329      }
18330      private int bitField0_;
18331
18332      private java.lang.Object testName_ = "";
18333      /**
18334       * <code>optional string test_name = 1;</code>
18335       */
18336      public boolean hasTestName() {
18337        return ((bitField0_ & 0x00000001) == 0x00000001);
18338      }
18339      /**
18340       * <code>optional string test_name = 1;</code>
18341       */
18342      public java.lang.String getTestName() {
18343        java.lang.Object ref = testName_;
18344        if (!(ref instanceof java.lang.String)) {
18345          com.google.protobuf.ByteString bs =
18346              (com.google.protobuf.ByteString) ref;
18347          java.lang.String s = bs.toStringUtf8();
18348          if (bs.isValidUtf8()) {
18349            testName_ = s;
18350          }
18351          return s;
18352        } else {
18353          return (java.lang.String) ref;
18354        }
18355      }
18356      /**
18357       * <code>optional string test_name = 1;</code>
18358       */
18359      public com.google.protobuf.ByteString
18360          getTestNameBytes() {
18361        java.lang.Object ref = testName_;
18362        if (ref instanceof String) {
18363          com.google.protobuf.ByteString b = 
18364              com.google.protobuf.ByteString.copyFromUtf8(
18365                  (java.lang.String) ref);
18366          testName_ = b;
18367          return b;
18368        } else {
18369          return (com.google.protobuf.ByteString) ref;
18370        }
18371      }
18372      /**
18373       * <code>optional string test_name = 1;</code>
18374       */
18375      public Builder setTestName(
18376          java.lang.String value) {
18377        if (value == null) {
18378    throw new NullPointerException();
18379  }
18380  bitField0_ |= 0x00000001;
18381        testName_ = value;
18382        onChanged();
18383        return this;
18384      }
18385      /**
18386       * <code>optional string test_name = 1;</code>
18387       */
18388      public Builder clearTestName() {
18389        bitField0_ = (bitField0_ & ~0x00000001);
18390        testName_ = getDefaultInstance().getTestName();
18391        onChanged();
18392        return this;
18393      }
18394      /**
18395       * <code>optional string test_name = 1;</code>
18396       */
18397      public Builder setTestNameBytes(
18398          com.google.protobuf.ByteString value) {
18399        if (value == null) {
18400    throw new NullPointerException();
18401  }
18402  bitField0_ |= 0x00000001;
18403        testName_ = value;
18404        onChanged();
18405        return this;
18406      }
18407
18408      private java.util.List<org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile> coveredFile_ =
18409        java.util.Collections.emptyList();
18410      private void ensureCoveredFileIsMutable() {
18411        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
18412          coveredFile_ = new java.util.ArrayList<org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile>(coveredFile_);
18413          bitField0_ |= 0x00000002;
18414         }
18415      }
18416
18417      private com.google.protobuf.RepeatedFieldBuilder<
18418          org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile, org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.Builder, org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFileOrBuilder> coveredFileBuilder_;
18419
18420      /**
18421       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
18422       */
18423      public java.util.List<org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile> getCoveredFileList() {
18424        if (coveredFileBuilder_ == null) {
18425          return java.util.Collections.unmodifiableList(coveredFile_);
18426        } else {
18427          return coveredFileBuilder_.getMessageList();
18428        }
18429      }
18430      /**
18431       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
18432       */
18433      public int getCoveredFileCount() {
18434        if (coveredFileBuilder_ == null) {
18435          return coveredFile_.size();
18436        } else {
18437          return coveredFileBuilder_.getCount();
18438        }
18439      }
18440      /**
18441       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
18442       */
18443      public org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile getCoveredFile(int index) {
18444        if (coveredFileBuilder_ == null) {
18445          return coveredFile_.get(index);
18446        } else {
18447          return coveredFileBuilder_.getMessage(index);
18448        }
18449      }
18450      /**
18451       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
18452       */
18453      public Builder setCoveredFile(
18454          int index, org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile value) {
18455        if (coveredFileBuilder_ == null) {
18456          if (value == null) {
18457            throw new NullPointerException();
18458          }
18459          ensureCoveredFileIsMutable();
18460          coveredFile_.set(index, value);
18461          onChanged();
18462        } else {
18463          coveredFileBuilder_.setMessage(index, value);
18464        }
18465        return this;
18466      }
18467      /**
18468       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
18469       */
18470      public Builder setCoveredFile(
18471          int index, org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.Builder builderForValue) {
18472        if (coveredFileBuilder_ == null) {
18473          ensureCoveredFileIsMutable();
18474          coveredFile_.set(index, builderForValue.build());
18475          onChanged();
18476        } else {
18477          coveredFileBuilder_.setMessage(index, builderForValue.build());
18478        }
18479        return this;
18480      }
18481      /**
18482       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
18483       */
18484      public Builder addCoveredFile(org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile value) {
18485        if (coveredFileBuilder_ == null) {
18486          if (value == null) {
18487            throw new NullPointerException();
18488          }
18489          ensureCoveredFileIsMutable();
18490          coveredFile_.add(value);
18491          onChanged();
18492        } else {
18493          coveredFileBuilder_.addMessage(value);
18494        }
18495        return this;
18496      }
18497      /**
18498       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
18499       */
18500      public Builder addCoveredFile(
18501          int index, org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile value) {
18502        if (coveredFileBuilder_ == null) {
18503          if (value == null) {
18504            throw new NullPointerException();
18505          }
18506          ensureCoveredFileIsMutable();
18507          coveredFile_.add(index, value);
18508          onChanged();
18509        } else {
18510          coveredFileBuilder_.addMessage(index, value);
18511        }
18512        return this;
18513      }
18514      /**
18515       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
18516       */
18517      public Builder addCoveredFile(
18518          org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.Builder builderForValue) {
18519        if (coveredFileBuilder_ == null) {
18520          ensureCoveredFileIsMutable();
18521          coveredFile_.add(builderForValue.build());
18522          onChanged();
18523        } else {
18524          coveredFileBuilder_.addMessage(builderForValue.build());
18525        }
18526        return this;
18527      }
18528      /**
18529       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
18530       */
18531      public Builder addCoveredFile(
18532          int index, org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.Builder builderForValue) {
18533        if (coveredFileBuilder_ == null) {
18534          ensureCoveredFileIsMutable();
18535          coveredFile_.add(index, builderForValue.build());
18536          onChanged();
18537        } else {
18538          coveredFileBuilder_.addMessage(index, builderForValue.build());
18539        }
18540        return this;
18541      }
18542      /**
18543       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
18544       */
18545      public Builder addAllCoveredFile(
18546          java.lang.Iterable<? extends org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile> values) {
18547        if (coveredFileBuilder_ == null) {
18548          ensureCoveredFileIsMutable();
18549          com.google.protobuf.AbstractMessageLite.Builder.addAll(
18550              values, coveredFile_);
18551          onChanged();
18552        } else {
18553          coveredFileBuilder_.addAllMessages(values);
18554        }
18555        return this;
18556      }
18557      /**
18558       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
18559       */
18560      public Builder clearCoveredFile() {
18561        if (coveredFileBuilder_ == null) {
18562          coveredFile_ = java.util.Collections.emptyList();
18563          bitField0_ = (bitField0_ & ~0x00000002);
18564          onChanged();
18565        } else {
18566          coveredFileBuilder_.clear();
18567        }
18568        return this;
18569      }
18570      /**
18571       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
18572       */
18573      public Builder removeCoveredFile(int index) {
18574        if (coveredFileBuilder_ == null) {
18575          ensureCoveredFileIsMutable();
18576          coveredFile_.remove(index);
18577          onChanged();
18578        } else {
18579          coveredFileBuilder_.remove(index);
18580        }
18581        return this;
18582      }
18583      /**
18584       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
18585       */
18586      public org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.Builder getCoveredFileBuilder(
18587          int index) {
18588        return getCoveredFileFieldBuilder().getBuilder(index);
18589      }
18590      /**
18591       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
18592       */
18593      public org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFileOrBuilder getCoveredFileOrBuilder(
18594          int index) {
18595        if (coveredFileBuilder_ == null) {
18596          return coveredFile_.get(index);  } else {
18597          return coveredFileBuilder_.getMessageOrBuilder(index);
18598        }
18599      }
18600      /**
18601       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
18602       */
18603      public java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFileOrBuilder> 
18604           getCoveredFileOrBuilderList() {
18605        if (coveredFileBuilder_ != null) {
18606          return coveredFileBuilder_.getMessageOrBuilderList();
18607        } else {
18608          return java.util.Collections.unmodifiableList(coveredFile_);
18609        }
18610      }
18611      /**
18612       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
18613       */
18614      public org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.Builder addCoveredFileBuilder() {
18615        return getCoveredFileFieldBuilder().addBuilder(
18616            org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.getDefaultInstance());
18617      }
18618      /**
18619       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
18620       */
18621      public org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.Builder addCoveredFileBuilder(
18622          int index) {
18623        return getCoveredFileFieldBuilder().addBuilder(
18624            index, org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.getDefaultInstance());
18625      }
18626      /**
18627       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
18628       */
18629      public java.util.List<org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.Builder> 
18630           getCoveredFileBuilderList() {
18631        return getCoveredFileFieldBuilder().getBuilderList();
18632      }
18633      private com.google.protobuf.RepeatedFieldBuilder<
18634          org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile, org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.Builder, org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFileOrBuilder> 
18635          getCoveredFileFieldBuilder() {
18636        if (coveredFileBuilder_ == null) {
18637          coveredFileBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
18638              org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile, org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.Builder, org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFileOrBuilder>(
18639                  coveredFile_,
18640                  ((bitField0_ & 0x00000002) == 0x00000002),
18641                  getParentForChildren(),
18642                  isClean());
18643          coveredFile_ = null;
18644        }
18645        return coveredFileBuilder_;
18646      }
18647
18648      // @@protoc_insertion_point(builder_scope:CoverageDetail)
18649    }
18650
18651    // @@protoc_insertion_point(class_scope:CoverageDetail)
18652    private static final org.sonar.batch.protocol.output.BatchReport.CoverageDetail DEFAULT_INSTANCE;
18653    static {
18654      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.CoverageDetail();
18655    }
18656
18657    public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail getDefaultInstance() {
18658      return DEFAULT_INSTANCE;
18659    }
18660
18661    public static final com.google.protobuf.Parser<CoverageDetail> PARSER =
18662        new com.google.protobuf.AbstractParser<CoverageDetail>() {
18663      public CoverageDetail parsePartialFrom(
18664          com.google.protobuf.CodedInputStream input,
18665          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
18666          throws com.google.protobuf.InvalidProtocolBufferException {
18667        try {
18668          return new CoverageDetail(input, extensionRegistry);
18669        } catch (RuntimeException e) {
18670          if (e.getCause() instanceof
18671              com.google.protobuf.InvalidProtocolBufferException) {
18672            throw (com.google.protobuf.InvalidProtocolBufferException)
18673                e.getCause();
18674          }
18675          throw e;
18676        }
18677      }
18678    };
18679
18680    @java.lang.Override
18681    public com.google.protobuf.Parser<CoverageDetail> getParserForType() {
18682      return PARSER;
18683    }
18684
18685    public org.sonar.batch.protocol.output.BatchReport.CoverageDetail getDefaultInstanceForType() {
18686      return DEFAULT_INSTANCE;
18687    }
18688
18689  }
18690
18691  private static com.google.protobuf.Descriptors.Descriptor
18692    internal_static_Metadata_descriptor;
18693  private static
18694    com.google.protobuf.GeneratedMessage.FieldAccessorTable
18695      internal_static_Metadata_fieldAccessorTable;
18696  private static com.google.protobuf.Descriptors.Descriptor
18697    internal_static_ActiveRule_descriptor;
18698  private static
18699    com.google.protobuf.GeneratedMessage.FieldAccessorTable
18700      internal_static_ActiveRule_fieldAccessorTable;
18701  private static com.google.protobuf.Descriptors.Descriptor
18702    internal_static_ActiveRule_ActiveRuleParam_descriptor;
18703  private static
18704    com.google.protobuf.GeneratedMessage.FieldAccessorTable
18705      internal_static_ActiveRule_ActiveRuleParam_fieldAccessorTable;
18706  private static com.google.protobuf.Descriptors.Descriptor
18707    internal_static_ComponentLink_descriptor;
18708  private static
18709    com.google.protobuf.GeneratedMessage.FieldAccessorTable
18710      internal_static_ComponentLink_fieldAccessorTable;
18711  private static com.google.protobuf.Descriptors.Descriptor
18712    internal_static_Component_descriptor;
18713  private static
18714    com.google.protobuf.GeneratedMessage.FieldAccessorTable
18715      internal_static_Component_fieldAccessorTable;
18716  private static com.google.protobuf.Descriptors.Descriptor
18717    internal_static_Measure_descriptor;
18718  private static
18719    com.google.protobuf.GeneratedMessage.FieldAccessorTable
18720      internal_static_Measure_fieldAccessorTable;
18721  private static com.google.protobuf.Descriptors.Descriptor
18722    internal_static_Issue_descriptor;
18723  private static
18724    com.google.protobuf.GeneratedMessage.FieldAccessorTable
18725      internal_static_Issue_fieldAccessorTable;
18726  private static com.google.protobuf.Descriptors.Descriptor
18727    internal_static_IssueLocation_descriptor;
18728  private static
18729    com.google.protobuf.GeneratedMessage.FieldAccessorTable
18730      internal_static_IssueLocation_fieldAccessorTable;
18731  private static com.google.protobuf.Descriptors.Descriptor
18732    internal_static_Flow_descriptor;
18733  private static
18734    com.google.protobuf.GeneratedMessage.FieldAccessorTable
18735      internal_static_Flow_fieldAccessorTable;
18736  private static com.google.protobuf.Descriptors.Descriptor
18737    internal_static_Changesets_descriptor;
18738  private static
18739    com.google.protobuf.GeneratedMessage.FieldAccessorTable
18740      internal_static_Changesets_fieldAccessorTable;
18741  private static com.google.protobuf.Descriptors.Descriptor
18742    internal_static_Changesets_Changeset_descriptor;
18743  private static
18744    com.google.protobuf.GeneratedMessage.FieldAccessorTable
18745      internal_static_Changesets_Changeset_fieldAccessorTable;
18746  private static com.google.protobuf.Descriptors.Descriptor
18747    internal_static_Duplicate_descriptor;
18748  private static
18749    com.google.protobuf.GeneratedMessage.FieldAccessorTable
18750      internal_static_Duplicate_fieldAccessorTable;
18751  private static com.google.protobuf.Descriptors.Descriptor
18752    internal_static_Duplication_descriptor;
18753  private static
18754    com.google.protobuf.GeneratedMessage.FieldAccessorTable
18755      internal_static_Duplication_fieldAccessorTable;
18756  private static com.google.protobuf.Descriptors.Descriptor
18757    internal_static_TextRange_descriptor;
18758  private static
18759    com.google.protobuf.GeneratedMessage.FieldAccessorTable
18760      internal_static_TextRange_fieldAccessorTable;
18761  private static com.google.protobuf.Descriptors.Descriptor
18762    internal_static_Symbol_descriptor;
18763  private static
18764    com.google.protobuf.GeneratedMessage.FieldAccessorTable
18765      internal_static_Symbol_fieldAccessorTable;
18766  private static com.google.protobuf.Descriptors.Descriptor
18767    internal_static_Coverage_descriptor;
18768  private static
18769    com.google.protobuf.GeneratedMessage.FieldAccessorTable
18770      internal_static_Coverage_fieldAccessorTable;
18771  private static com.google.protobuf.Descriptors.Descriptor
18772    internal_static_SyntaxHighlighting_descriptor;
18773  private static
18774    com.google.protobuf.GeneratedMessage.FieldAccessorTable
18775      internal_static_SyntaxHighlighting_fieldAccessorTable;
18776  private static com.google.protobuf.Descriptors.Descriptor
18777    internal_static_Test_descriptor;
18778  private static
18779    com.google.protobuf.GeneratedMessage.FieldAccessorTable
18780      internal_static_Test_fieldAccessorTable;
18781  private static com.google.protobuf.Descriptors.Descriptor
18782    internal_static_CoverageDetail_descriptor;
18783  private static
18784    com.google.protobuf.GeneratedMessage.FieldAccessorTable
18785      internal_static_CoverageDetail_fieldAccessorTable;
18786  private static com.google.protobuf.Descriptors.Descriptor
18787    internal_static_CoverageDetail_CoveredFile_descriptor;
18788  private static
18789    com.google.protobuf.GeneratedMessage.FieldAccessorTable
18790      internal_static_CoverageDetail_CoveredFile_fieldAccessorTable;
18791
18792  public static com.google.protobuf.Descriptors.FileDescriptor
18793      getDescriptor() {
18794    return descriptor;
18795  }
18796  private static com.google.protobuf.Descriptors.FileDescriptor
18797      descriptor;
18798  static {
18799    java.lang.String[] descriptorData = {
18800      "\n\022batch_report.proto\032\017constants.proto\"b\n" +
18801      "\010Metadata\022\025\n\ranalysis_date\030\001 \001(\003\022\023\n\013proj" +
18802      "ect_key\030\002 \001(\t\022\016\n\006branch\030\003 \001(\t\022\032\n\022root_co" +
18803      "mponent_ref\030\004 \001(\005\"\257\001\n\nActiveRule\022\027\n\017rule" +
18804      "_repository\030\001 \001(\t\022\020\n\010rule_key\030\002 \001(\t\022\033\n\010s" +
18805      "everity\030\003 \001(\0162\t.Severity\022*\n\005param\030\004 \003(\0132" +
18806      "\033.ActiveRule.ActiveRuleParam\032-\n\017ActiveRu" +
18807      "leParam\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t\"?\n\rC" +
18808      "omponentLink\022 \n\004type\030\001 \001(\0162\022.ComponentLi" +
18809      "nkType\022\014\n\004href\030\002 \001(\t\"\354\001\n\tComponent\022\013\n\003re",
18810      "f\030\001 \001(\005\022\014\n\004path\030\002 \001(\t\022\014\n\004name\030\003 \001(\t\022\034\n\004t" +
18811      "ype\030\004 \001(\0162\016.ComponentType\022\017\n\007is_test\030\005 \001" +
18812      "(\010\022\020\n\010language\030\006 \001(\t\022\025\n\tchild_ref\030\007 \003(\005B" +
18813      "\002\020\001\022\034\n\004link\030\010 \003(\0132\016.ComponentLink\022\017\n\007ver" +
18814      "sion\030\t \001(\t\022\013\n\003key\030\n \001(\t\022\r\n\005lines\030\013 \001(\005\022\023" +
18815      "\n\013description\030\014 \001(\t\"\256\001\n\007Measure\022%\n\nvalue" +
18816      "_type\030\001 \001(\0162\021.MeasureValueType\022\025\n\rboolea" +
18817      "n_value\030\002 \001(\010\022\021\n\tint_value\030\003 \001(\005\022\022\n\nlong" +
18818      "_value\030\004 \001(\003\022\024\n\014double_value\030\005 \001(\001\022\024\n\014st" +
18819      "ring_value\030\006 \001(\t\022\022\n\nmetric_key\030\007 \001(\t\"\266\001\n",
18820      "\005Issue\022\027\n\017rule_repository\030\001 \001(\t\022\020\n\010rule_" +
18821      "key\030\002 \001(\t\022\014\n\004line\030\003 \001(\005\022\013\n\003msg\030\004 \001(\t\022\033\n\010" +
18822      "severity\030\005 \001(\0162\t.Severity\022\025\n\reffort_to_f" +
18823      "ix\030\006 \001(\001\022\036\n\ntext_range\030\007 \001(\0132\n.TextRange" +
18824      "\022\023\n\004flow\030\010 \003(\0132\005.Flow\"S\n\rIssueLocation\022\025" +
18825      "\n\rcomponent_ref\030\001 \001(\005\022\036\n\ntext_range\030\002 \001(" +
18826      "\0132\n.TextRange\022\013\n\003msg\030\003 \001(\t\"(\n\004Flow\022 \n\010lo" +
18827      "cation\030\001 \003(\0132\016.IssueLocation\"\254\001\n\nChanges" +
18828      "ets\022\025\n\rcomponent_ref\030\001 \001(\005\022(\n\tchangeset\030" +
18829      "\002 \003(\0132\025.Changesets.Changeset\022 \n\024changese",
18830      "tIndexByLine\030\003 \003(\005B\002\020\001\032;\n\tChangeset\022\020\n\010r" +
18831      "evision\030\001 \001(\t\022\016\n\006author\030\002 \001(\t\022\014\n\004date\030\003 " +
18832      "\001(\003\"V\n\tDuplicate\022\026\n\016other_file_ref\030\001 \001(\005" +
18833      "\022\031\n\005range\030\002 \001(\0132\n.TextRange\022\026\n\016other_fil" +
18834      "e_key\030\003 \001(\t\"Q\n\013Duplication\022#\n\017origin_pos" +
18835      "ition\030\001 \001(\0132\n.TextRange\022\035\n\tduplicate\030\002 \003" +
18836      "(\0132\n.Duplicate\"[\n\tTextRange\022\022\n\nstart_lin" +
18837      "e\030\001 \001(\005\022\020\n\010end_line\030\002 \001(\005\022\024\n\014start_offse" +
18838      "t\030\003 \001(\005\022\022\n\nend_offset\030\004 \001(\005\"H\n\006Symbol\022\037\n" +
18839      "\013declaration\030\001 \001(\0132\n.TextRange\022\035\n\trefere",
18840      "nce\030\002 \003(\0132\n.TextRange\"\260\001\n\010Coverage\022\014\n\004li" +
18841      "ne\030\001 \001(\005\022\022\n\nconditions\030\002 \001(\005\022\017\n\007ut_hits\030" +
18842      "\003 \001(\010\022\017\n\007it_hits\030\004 \001(\010\022\035\n\025ut_covered_con" +
18843      "ditions\030\005 \001(\005\022\035\n\025it_covered_conditions\030\006" +
18844      " \001(\005\022\"\n\032overall_covered_conditions\030\007 \001(\005" +
18845      "\"P\n\022SyntaxHighlighting\022\031\n\005range\030\001 \001(\0132\n." +
18846      "TextRange\022\037\n\004type\030\002 \001(\0162\021.HighlightingTy" +
18847      "pe\"j\n\004Test\022\014\n\004name\030\001 \001(\t\022\033\n\006status\030\002 \001(\016" +
18848      "2\013.TestStatus\022\026\n\016duration_in_ms\030\003 \001(\003\022\022\n" +
18849      "\nstacktrace\030\004 \001(\t\022\013\n\003msg\030\005 \001(\t\"\221\001\n\016Cover",
18850      "ageDetail\022\021\n\ttest_name\030\001 \001(\t\0221\n\014covered_" +
18851      "file\030\002 \003(\0132\033.CoverageDetail.CoveredFile\032" +
18852      "9\n\013CoveredFile\022\020\n\010file_ref\030\001 \001(\005\022\030\n\014cove" +
18853      "red_line\030\002 \003(\005B\002\020\001B#\n\037org.sonar.batch.pr" +
18854      "otocol.outputH\001"
18855    };
18856    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
18857        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
18858          public com.google.protobuf.ExtensionRegistry assignDescriptors(
18859              com.google.protobuf.Descriptors.FileDescriptor root) {
18860            descriptor = root;
18861            return null;
18862          }
18863        };
18864    com.google.protobuf.Descriptors.FileDescriptor
18865      .internalBuildGeneratedFileFrom(descriptorData,
18866        new com.google.protobuf.Descriptors.FileDescriptor[] {
18867          org.sonar.batch.protocol.Constants.getDescriptor(),
18868        }, assigner);
18869    internal_static_Metadata_descriptor =
18870      getDescriptor().getMessageTypes().get(0);
18871    internal_static_Metadata_fieldAccessorTable = new
18872      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
18873        internal_static_Metadata_descriptor,
18874        new java.lang.String[] { "AnalysisDate", "ProjectKey", "Branch", "RootComponentRef", });
18875    internal_static_ActiveRule_descriptor =
18876      getDescriptor().getMessageTypes().get(1);
18877    internal_static_ActiveRule_fieldAccessorTable = new
18878      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
18879        internal_static_ActiveRule_descriptor,
18880        new java.lang.String[] { "RuleRepository", "RuleKey", "Severity", "Param", });
18881    internal_static_ActiveRule_ActiveRuleParam_descriptor =
18882      internal_static_ActiveRule_descriptor.getNestedTypes().get(0);
18883    internal_static_ActiveRule_ActiveRuleParam_fieldAccessorTable = new
18884      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
18885        internal_static_ActiveRule_ActiveRuleParam_descriptor,
18886        new java.lang.String[] { "Key", "Value", });
18887    internal_static_ComponentLink_descriptor =
18888      getDescriptor().getMessageTypes().get(2);
18889    internal_static_ComponentLink_fieldAccessorTable = new
18890      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
18891        internal_static_ComponentLink_descriptor,
18892        new java.lang.String[] { "Type", "Href", });
18893    internal_static_Component_descriptor =
18894      getDescriptor().getMessageTypes().get(3);
18895    internal_static_Component_fieldAccessorTable = new
18896      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
18897        internal_static_Component_descriptor,
18898        new java.lang.String[] { "Ref", "Path", "Name", "Type", "IsTest", "Language", "ChildRef", "Link", "Version", "Key", "Lines", "Description", });
18899    internal_static_Measure_descriptor =
18900      getDescriptor().getMessageTypes().get(4);
18901    internal_static_Measure_fieldAccessorTable = new
18902      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
18903        internal_static_Measure_descriptor,
18904        new java.lang.String[] { "ValueType", "BooleanValue", "IntValue", "LongValue", "DoubleValue", "StringValue", "MetricKey", });
18905    internal_static_Issue_descriptor =
18906      getDescriptor().getMessageTypes().get(5);
18907    internal_static_Issue_fieldAccessorTable = new
18908      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
18909        internal_static_Issue_descriptor,
18910        new java.lang.String[] { "RuleRepository", "RuleKey", "Line", "Msg", "Severity", "EffortToFix", "TextRange", "Flow", });
18911    internal_static_IssueLocation_descriptor =
18912      getDescriptor().getMessageTypes().get(6);
18913    internal_static_IssueLocation_fieldAccessorTable = new
18914      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
18915        internal_static_IssueLocation_descriptor,
18916        new java.lang.String[] { "ComponentRef", "TextRange", "Msg", });
18917    internal_static_Flow_descriptor =
18918      getDescriptor().getMessageTypes().get(7);
18919    internal_static_Flow_fieldAccessorTable = new
18920      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
18921        internal_static_Flow_descriptor,
18922        new java.lang.String[] { "Location", });
18923    internal_static_Changesets_descriptor =
18924      getDescriptor().getMessageTypes().get(8);
18925    internal_static_Changesets_fieldAccessorTable = new
18926      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
18927        internal_static_Changesets_descriptor,
18928        new java.lang.String[] { "ComponentRef", "Changeset", "ChangesetIndexByLine", });
18929    internal_static_Changesets_Changeset_descriptor =
18930      internal_static_Changesets_descriptor.getNestedTypes().get(0);
18931    internal_static_Changesets_Changeset_fieldAccessorTable = new
18932      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
18933        internal_static_Changesets_Changeset_descriptor,
18934        new java.lang.String[] { "Revision", "Author", "Date", });
18935    internal_static_Duplicate_descriptor =
18936      getDescriptor().getMessageTypes().get(9);
18937    internal_static_Duplicate_fieldAccessorTable = new
18938      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
18939        internal_static_Duplicate_descriptor,
18940        new java.lang.String[] { "OtherFileRef", "Range", "OtherFileKey", });
18941    internal_static_Duplication_descriptor =
18942      getDescriptor().getMessageTypes().get(10);
18943    internal_static_Duplication_fieldAccessorTable = new
18944      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
18945        internal_static_Duplication_descriptor,
18946        new java.lang.String[] { "OriginPosition", "Duplicate", });
18947    internal_static_TextRange_descriptor =
18948      getDescriptor().getMessageTypes().get(11);
18949    internal_static_TextRange_fieldAccessorTable = new
18950      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
18951        internal_static_TextRange_descriptor,
18952        new java.lang.String[] { "StartLine", "EndLine", "StartOffset", "EndOffset", });
18953    internal_static_Symbol_descriptor =
18954      getDescriptor().getMessageTypes().get(12);
18955    internal_static_Symbol_fieldAccessorTable = new
18956      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
18957        internal_static_Symbol_descriptor,
18958        new java.lang.String[] { "Declaration", "Reference", });
18959    internal_static_Coverage_descriptor =
18960      getDescriptor().getMessageTypes().get(13);
18961    internal_static_Coverage_fieldAccessorTable = new
18962      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
18963        internal_static_Coverage_descriptor,
18964        new java.lang.String[] { "Line", "Conditions", "UtHits", "ItHits", "UtCoveredConditions", "ItCoveredConditions", "OverallCoveredConditions", });
18965    internal_static_SyntaxHighlighting_descriptor =
18966      getDescriptor().getMessageTypes().get(14);
18967    internal_static_SyntaxHighlighting_fieldAccessorTable = new
18968      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
18969        internal_static_SyntaxHighlighting_descriptor,
18970        new java.lang.String[] { "Range", "Type", });
18971    internal_static_Test_descriptor =
18972      getDescriptor().getMessageTypes().get(15);
18973    internal_static_Test_fieldAccessorTable = new
18974      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
18975        internal_static_Test_descriptor,
18976        new java.lang.String[] { "Name", "Status", "DurationInMs", "Stacktrace", "Msg", });
18977    internal_static_CoverageDetail_descriptor =
18978      getDescriptor().getMessageTypes().get(16);
18979    internal_static_CoverageDetail_fieldAccessorTable = new
18980      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
18981        internal_static_CoverageDetail_descriptor,
18982        new java.lang.String[] { "TestName", "CoveredFile", });
18983    internal_static_CoverageDetail_CoveredFile_descriptor =
18984      internal_static_CoverageDetail_descriptor.getNestedTypes().get(0);
18985    internal_static_CoverageDetail_CoveredFile_fieldAccessorTable = new
18986      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
18987        internal_static_CoverageDetail_CoveredFile_descriptor,
18988        new java.lang.String[] { "FileRef", "CoveredLine", });
18989    org.sonar.batch.protocol.Constants.getDescriptor();
18990  }
18991
18992  // @@protoc_insertion_point(outer_class_scope)
18993}